diff --git a/VERSION b/VERSION index dc2dc52ee3..5998bc0785 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -21.7.2 \ No newline at end of file +21.7.3 \ No newline at end of file diff --git a/ci.json b/ci.json index 6a246fc88e..175addb4e5 100644 --- a/ci.json +++ b/ci.json @@ -6,13 +6,13 @@ }, "zentaoext": { "gitRepo": "zentao/zentaoext", - "gitVersion": "release/12.1" + "gitVersion": "release/12.2" }, "zentaomax": { - "gitVersion": "release/7.1" + "gitVersion": "release/7.2" }, "zentaoipd": { - "gitVersion": "release/4.1" + "gitVersion": "release/4.2" }, "devops": { "gitRepo": "zentao/devops" diff --git a/config/config.php b/config/config.php index 2a81077599..e043889609 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.7.2'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '21.7.3'; // 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. diff --git a/config/zentaopms.php b/config/zentaopms.php index 2f5b108a29..08e40e4376 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -363,6 +363,7 @@ $config->logonMethods[] = 'user.deny'; $config->logonMethods[] = 'user.logout'; $config->logonMethods[] = 'zanode.nodelist'; $config->logonMethods[] = 'screen.viewold'; +$config->logonMethods[] = 'system.backupview'; $config->openModules = array(); $config->openModules[] = 'install'; diff --git a/db/standard/zentao21.7.3.sql b/db/standard/zentao21.7.3.sql new file mode 100644 index 0000000000..b48d0c2d24 --- /dev/null +++ b/db/standard/zentao21.7.3.sql @@ -0,0 +1,4356 @@ +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 `vision_date` (`vision`,`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `execution` (`execution`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_actionproduct` ( + `action` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + KEY `action_product` (`action`,`product`), + KEY `product` (`product`) +) 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 `vision_date` (`vision`,`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `execution` (`execution`), + 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 '', + `branch` varchar(255) 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_deliverable` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `module` varchar(30) DEFAULT NULL, + `method` varchar(30) DEFAULT NULL, + `model` text DEFAULT NULL, + `type` enum('doc','file') DEFAULT 'file', + `desc` text DEFAULT NULL, + `files` varchar(255) DEFAULT NULL, + `createdBy` varchar(30) DEFAULT NULL, + `createdDate` date DEFAULT NULL, + `lastEditedBy` varchar(30) DEFAULT NULL, + `lastEditedDate` date DEFAULT NULL, + `deleted` enum('0','1') 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, + `docs` text DEFAULT NULL, + `docVersions` text DEFAULT NULL, + `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 '', + `templateDesc` text DEFAULT NULL, + `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, + `builtIn` enum('0','1') NOT NULL DEFAULT '0', + `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` mediumint(8) 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` mediumint(8) 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` longtext DEFAULT NULL, + `oldValue` text DEFAULT NULL, + `new` longtext 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` int(11) unsigned NOT NULL DEFAULT 0, + `metricCode` varchar(100) NOT NULL DEFAULT '', + `system` tinyint(1) unsigned NOT NULL DEFAULT 0, + `program` int(11) unsigned NOT NULL DEFAULT 0, + `project` int(11) unsigned NOT NULL DEFAULT 0, + `product` int(11) unsigned NOT NULL DEFAULT 0, + `execution` int(11) unsigned NOT NULL DEFAULT 0, + `code` char(30) NOT NULL DEFAULT '', + `pipeline` char(30) NOT NULL DEFAULT '', + `repo` char(30) NOT NULL DEFAULT '', + `user` varchar(30) NOT NULL DEFAULT '', + `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 `metricCode_system_date` (`metricCode`,`system`,`date`), + KEY `metricCode_program_date` (`metricCode`,`program`,`date`), + KEY `metricCode_project_date` (`metricCode`,`project`,`date`), + KEY `metricCode_product_date` (`metricCode`,`product`,`date`), + KEY `metricCode_execution_date` (`metricCode`,`execution`,`date`), + KEY `metricCode_user_date` (`metricCode`,`user`,`date`) +) 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(60) 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(100) 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, + `isTpl` tinyint(1) unsigned 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, + `tplAcl` char(30) NOT NULL DEFAULT 'open', + `tplWhiteList` 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', + `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 DEFAULT NULL, + `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, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` char(30) NOT NULL DEFAULT '', + `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(100) 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_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 '', + `docs` text DEFAULT NULL, + `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, + `docs` text DEFAULT NULL, + `docVersions` 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, + `isTpl` tinyint(1) unsigned 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, + `docs` text DEFAULT NULL, + `docVersions` text DEFAULT NULL, + `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, + `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 '', + `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, + `deliverable` text 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/update21.7.2.sql b/db/update21.7.2.sql new file mode 100644 index 0000000000..716203a5af --- /dev/null +++ b/db/update21.7.2.sql @@ -0,0 +1,27 @@ +ALTER TABLE `zt_project` ADD `tplAcl` char(30) NOT NULL DEFAULT 'open' AFTER `whitelist`; +ALTER TABLE `zt_project` ADD `tplWhiteList` text NULL AFTER `tplAcl`; + +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项级别', 'charterLevel', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterLevel', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterLevel'); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项类型', 'charterCategory', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterCategory', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterCategory'); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项适用市场', 'charterMarket', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterMarket', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterMarket'); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项状态', 'charterStatus', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterStatus', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterStatus'); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项关闭原因', 'charterCloseReason', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterCloseReason', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterCloseReason'); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项审批结果', 'charterReviewResult', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterReviewResult', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterReviewResult'); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) +SELECT 'lang', '立项审批状态', 'charterReviewStatus', '1', 'rnd', 'admin', '1970-01-01 00:00:01', 'charterReviewStatus', '', '', '' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `zt_workflowdatasource` WHERE `type` = 'lang' AND `code` = 'charterReviewStatus'); + +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterLevel' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'level'; +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterCategory' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'category'; +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterMarket' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'market'; +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterStatus' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'status'; +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterCloseReason' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'closedReason'; +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterReviewResult' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'reviewedResult'; +UPDATE `zt_workflowfield` SET `options` = (SELECT `id` FROM `zt_workflowdatasource` WHERE `code` = 'charterReviewStatus' LIMIT 1) WHERE `module` = 'charter' AND `field` = 'reviewStatus'; + +INSERT INTO `zt_grouppriv` SELECT `group`, `module`, 'browsescene' AS `method` FROM `zt_grouppriv` WHERE `module` = 'testcase' AND `method` = 'browse'; \ No newline at end of file diff --git a/db/zentao.sql b/db/zentao.sql index 1aec9cf67f..0d83fc90e6 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -1615,6 +1615,8 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `team` varchar(90) NOT NULL DEFAULT '', `acl` char(30) NOT NULL DEFAULT 'open', `whitelist` text NULL, + `tplAcl` char(30) NOT NULL DEFAULT 'open', + `tplWhiteList` text NULL, `order` mediumint(8) unsigned NOT NULL DEFAULT '0', `vision` varchar(10) NOT NULL DEFAULT 'rnd', `stageBy` enum('project','product') NOT NULL DEFAULT 'product', @@ -4447,6 +4449,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (1, 'testcase', 'batchEdit'), (1, 'testcase', 'batchReview'), (1, 'testcase', 'browse'), +(1, 'testcase', 'browseScene'), (1, 'testcase', 'bugs'), (1, 'testcase', 'confirmChange'), (1, 'testcase', 'confirmLibcaseChange'), @@ -5392,6 +5395,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (2, 'task', 'start'), (2, 'task', 'view'), (2, 'testcase', 'browse'), +(2, 'testcase', 'browseScene'), (2, 'testcase', 'bugs'), (2, 'testcase', 'createBug'), (2, 'testcase', 'export'), @@ -6057,6 +6061,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (3, 'testcase', 'batchEdit'), (3, 'testcase', 'batchReview'), (3, 'testcase', 'browse'), +(3, 'testcase', 'browseScene'), (3, 'testcase', 'bugs'), (3, 'testcase', 'confirmChange'), (3, 'testcase', 'confirmLibcaseChange'), @@ -7064,6 +7069,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (4, 'testcase', 'batchEdit'), (4, 'testcase', 'batchReview'), (4, 'testcase', 'browse'), +(4, 'testcase', 'browseScene'), (4, 'testcase', 'bugs'), (4, 'testcase', 'confirmChange'), (4, 'testcase', 'confirmLibcaseChange'), @@ -8089,6 +8095,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (5, 'task', 'start'), (5, 'task', 'view'), (5, 'testcase', 'browse'), +(5, 'testcase', 'browseScene'), (5, 'testcase', 'bugs'), (5, 'testcase', 'createBug'), (5, 'testcase', 'export'), @@ -8872,6 +8879,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (6, 'task', 'start'), (6, 'task', 'view'), (6, 'testcase', 'browse'), +(6, 'testcase', 'browseScene'), (6, 'testcase', 'bugs'), (6, 'testcase', 'export'), (6, 'testcase', 'groupCase'), @@ -9727,6 +9735,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (7, 'task', 'start'), (7, 'task', 'view'), (7, 'testcase', 'browse'), +(7, 'testcase', 'browseScene'), (7, 'testcase', 'bugs'), (7, 'testcase', 'createBug'), (7, 'testcase', 'export'), @@ -10445,6 +10454,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (8, 'testcase', 'batchEdit'), (8, 'testcase', 'batchReview'), (8, 'testcase', 'browse'), +(8, 'testcase', 'browseScene'), (8, 'testcase', 'bugs'), (8, 'testcase', 'confirmChange'), (8, 'testcase', 'confirmLibcaseChange'), @@ -11324,6 +11334,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (9, 'task', 'start'), (9, 'task', 'view'), (9, 'testcase', 'browse'), +(9, 'testcase', 'browseScene'), (9, 'testcase', 'bugs'), (9, 'testcase', 'export'), (9, 'testcase', 'groupCase'), @@ -11827,6 +11838,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (10, 'task', 'start'), (10, 'task', 'view'), (10, 'testcase', 'browse'), +(10, 'testcase', 'browseScene'), (10, 'testcase', 'bugs'), (10, 'testcase', 'export'), (10, 'testcase', 'groupCase'), @@ -12300,6 +12312,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (11, 'task', 'start'), (11, 'task', 'view'), (11, 'testcase', 'browse'), +(11, 'testcase', 'browseScene'), (11, 'testcase', 'bugs'), (11, 'testcase', 'export'), (11, 'testcase', 'groupCase'), diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 921bd44b7e..0a680bc19a 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,35 @@ +2025-07-03 21.7.3 +完成的需求 +开源版: +75768 优化编辑器固定工具栏中常显的按钮 +74527 在文档顶部工具栏的更多下拉菜单中打印插入禅道数据按钮 +74092 文档新编辑器中插入的简单表格支持拆分单元格 +74080 文档新编辑器中插入的简单表格支持合并单元格 +企业版: +75451 甘特图组件支持通过插件的形式来一次性配置禅道定制样式 +75138 支持导出文档中插入的看板视图和表格视图中的标题 +70456 新编辑器文档支持前端直接导出 Word +70053 导出文档时可以导出文档中的关键字 +70050 blocksuite编辑器中/命令插入的附件支持导出 +70017 文档导出Word支持代码块完整显示及自动分页 +旗舰版: +75810 实现项目模板下甘特图维护任务依赖关系的功能 +75809 项目模板增加权限设置 +75320 复制项目的下一步页面重构 +75305 创建项目页面只展示使用中的项目模板 +75209 复制项目新增数据逻辑 +75035 隐藏执行的功能 +75019 从已有项目创建页面优化 +74203 由模板创建项目新增数据逻辑 +74194 实现项目模板下文档的功能 +74158 实现项目模板下审批的功能 +73893 实现项目模板的停用功能 +73892 实现项目模板的发布功能 +73889 实现项目模板的编辑功能 +修复的Bug +旗舰版: +63839 报告模板的二级导航名称错误应该是【报告模板】 + 2025-06-27 21.7.2 完成的需求 开源版: diff --git a/extension/lite/project/ext/css/execution/lite.ui.css b/extension/lite/project/ext/css/execution/lite.ui.css index 76d95bb4ea..7b04b1e677 100644 --- a/extension/lite/project/ext/css/execution/lite.ui.css +++ b/extension/lite/project/ext/css/execution/lite.ui.css @@ -3,7 +3,6 @@ .kanban-card .panel {margin: 0 0; border: 1px solid #DCDCDC; border-radius: 4px; box-shadow: none; cursor: pointer; height: 160px; margin-bottom: 5px;} .kanban-card .panel:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,100,.25);} .kanban-card .panel:hover .kanban-actions {visibility: unset;} -.kanban-card .kanban-actions {position: absolute; top: 4px; right: 4px;} .kanban-card .kanban-actions .dropdown-menu.pull-right {top:31px; right: -84px; left: auto;} .kanban-card .kanban-actions .dropdown-menu.pull-left {top:31px; right:-1px; left: auto;} .kanban-card .kanban-desc {color: #838a9d; word-break:break-all; height: 85px; overflow: hidden; display: -webkit-box;} diff --git a/extension/lite/project/ext/ui/execution.html.php b/extension/lite/project/ext/ui/execution.html.php index 091ce11fc2..f738420bcc 100644 --- a/extension/lite/project/ext/ui/execution.html.php +++ b/extension/lite/project/ext/ui/execution.html.php @@ -72,8 +72,7 @@ $fnBuildSingleCard = function($kanban) use ($executionActions, $lang, $kanbanvie return cell ( setID("kanban-{$kanban->id}"), - setClass('kanban-card'), - set::width('1/4'), + setClass('kanban-card flex-none w-1/4'), set('data-url', createLink('execution', $kanbanview, "kanbanID=$kanban->id")), div ( @@ -82,16 +81,20 @@ $fnBuildSingleCard = function($kanban) use ($executionActions, $lang, $kanbanvie ( setClass('panel-heading justify-start'), set::style(array('position' => 'relative')), - span(setClass("label kanban-status-{$kanban->status}"), zget($lang->execution->statusList, $kanban->status)), - h::strong(setClass('kanban-name'), set::title($kanban->name), $kanban->name), + span(setClass("label kanban-status-{$kanban->status} flex-none"), zget($lang->execution->statusList, $kanban->status)), + h::strong(setClass('kanban-name flex-auto text-clip'), set::title($kanban->name), $kanban->name), $canActions ? div ( setClass("kanban-actions kanban-actions{$kanban->id}"), dropdown ( - icon('ellipsis-v'), + set::caret(false), + btn + ( + setClass('ghost square open-url not-open-url'), + set::icon('ellipsis-v') + ), set::items($actionItems), - set::hasIcons(true) ) ) : null ), @@ -101,7 +104,7 @@ $fnBuildSingleCard = function($kanban) use ($executionActions, $lang, $kanbanvie div(setClass('kanban-desc'), html($kanban->desc)), row ( - setClass('kanban-footer bottom-2'), + setClass('kanban-footer bottom-6'), set::style(array('position' => 'relative')), cell ( @@ -129,7 +132,7 @@ $fnShowCards = function($kanbanList) use ($fnBuildSingleCard) $cards = array(); foreach($kanbanList as $kanban) $cards[] = $fnBuildSingleCard($kanban); - return row(setClass('kanban-cards'), $cards); + return row(setClass('kanban-cards flex flex-wrap'), $cards); }; data('recTotal', count($kanbanList)); diff --git a/extension/lite/story/ext/control/close.php b/extension/lite/story/ext/control/close.php new file mode 100644 index 0000000000..a1699ab426 --- /dev/null +++ b/extension/lite/story/ext/control/close.php @@ -0,0 +1,24 @@ +lang->{$storyType}->reasonList as $key => $value) + { + if(!in_array($key, array('done', 'duplicate', 'cancel'))) unset($this->lang->{$storyType}->reasonList[$key]); + } + + return parent::close($storyID, $from, $storyType); + } +} diff --git a/extension/lite/story/ext/ui/close.lite.html.hook.php b/extension/lite/story/ext/ui/close.lite.html.hook.php deleted file mode 100644 index 1328eba2a8..0000000000 --- a/extension/lite/story/ext/ui/close.lite.html.hook.php +++ /dev/null @@ -1,5 +0,0 @@ - $value) -{ - if(!in_array($key, array('done', 'duplicate', 'cancel'))) unset($reasonList[$key]); -} diff --git a/framework/base/helper.class.php b/framework/base/helper.class.php index 1ee249bb55..7a3ecfaeab 100644 --- a/framework/base/helper.class.php +++ b/framework/base/helper.class.php @@ -57,7 +57,7 @@ class baseHelper if(!is_object(${$objName}) or empty($key)) return false; $key = str_replace('.', '->', $key); $value = serialize($value); - $code = ("\$${objName}->{$key}=unserialize(<<{$key}=unserialize(<<config->debug)) error_reporting(E_ALL & ~ E_STRICT); + if(!empty($this->config->debug)) error_reporting(E_ALL); } /** @@ -949,11 +949,8 @@ class baseRouter if(empty($account) and isset($_COOKIE['za'])) $account = $_COOKIE['za']; $vision = ''; - $sql = new sql(); if($this->config->installed and validater::checkAccount($account) and !$this->upgrading) { - $account = $sql->quote($account); - if(!empty($_COOKIE['vision'])) { $vision = $_COOKIE['vision']; @@ -1229,15 +1226,9 @@ class baseRouter if(is_writable($savePath)) { session_save_path($this->getTmpRoot() . 'session'); + $ztSessionHandler = new ztSessionHandler(); - session_set_save_handler( - array($ztSessionHandler, 'open'), - array($ztSessionHandler, 'close'), - array($ztSessionHandler, 'read'), - array($ztSessionHandler, 'write'), - array($ztSessionHandler, 'destroy'), - array($ztSessionHandler, 'gc') - ); + session_set_save_handler($ztSessionHandler, true); } } @@ -3359,7 +3350,7 @@ class baseRouter } /* Show non-serious errors to classic page. */ - if($level == E_NOTICE or $level == E_WARNING or $level == E_STRICT or $level == 8192) + if($level == E_NOTICE or $level == E_WARNING or $level == 8192) { $cmd = "vim +$line $file"; $size = strlen($cmd); @@ -3548,31 +3539,45 @@ class baseRouter } } -/** - * config类。 - * The config class. - * - * @package framework - */ -class config +if(version_compare(PHP_VERSION, '8.2.0', '>=')) +{ + #[\AllowDynamicProperties] // https://www.php.net/manual/zh/class.allowdynamicproperties.php + class config + { + public function set(string $key, $value) + { + helper::setMember('config', $key, $value); + } + } +} +else { /** - * 设置成员变量,成员可以是'db.user'类似的格式。 - * Set the value of a member. the member can be the format like db.user. + * config类。 + * The config class. * - * - * set('db.user', 'wwccss'); - * ?> - * - * @param string $key the key of the member - * @param mixed $value the value - * @access public - * @return void + * @package framework */ - public function set(string $key, $value) + class config { - helper::setMember('config', $key, $value); + /** + * 设置成员变量,成员可以是'db.user'类似的格式。 + * Set the value of a member. the member can be the format like db.user. + * + * + * set('db.user', 'wwccss'); + * ?> + * + * @param string $key the key of the member + * @param mixed $value the value + * @access public + * @return void + */ + public function set(string $key, $value) + { + helper::setMember('config', $key, $value); + } } } @@ -3582,6 +3587,7 @@ class config * * @package framework */ +#[AllowDynamicProperties] class language { /** @@ -3626,6 +3632,7 @@ class language * * @package framework */ +#[AllowDynamicProperties] class super { /** @@ -3797,7 +3804,7 @@ class EndResponseException extends \Exception * * @package framework */ -class ztSessionHandler +class ztSessionHandler implements SessionHandlerInterface { public $sessSavePath; public $sessionFile; @@ -3853,6 +3860,7 @@ class ztSessionHandler * @access public * @return bool */ + #[\ReturnTypeWillChange] public function open($savePath, $sessionName): bool { $this->sessSavePath = $savePath; @@ -3866,6 +3874,7 @@ class ztSessionHandler * @access public * @return bool */ + #[\ReturnTypeWillChange] public function close(): bool { return true; @@ -3878,6 +3887,7 @@ class ztSessionHandler * @access public * @return string|false */ + #[\ReturnTypeWillChange] public function read($id): string|false { $sessFile = $this->getSessionFile($id); @@ -3894,6 +3904,7 @@ class ztSessionHandler * @access public * @return bool */ + #[\ReturnTypeWillChange] public function write($id, $sessData): bool { $sessFile = $this->getSessionFile($id); @@ -3913,6 +3924,7 @@ class ztSessionHandler * @access public * @return bool */ + #[\ReturnTypeWillChange] public function destroy($id): bool { $sessFile = $this->getSessionFile($id); @@ -3928,16 +3940,14 @@ class ztSessionHandler * @access public * @return int|false */ + #[\ReturnTypeWillChange] public function gc($maxlifeTime): int|false { $time = time(); $count = 0; foreach(glob("{$this->sessSavePath}/sess_*") as $fileName) { - if(filemtime($fileName) + $maxlifeTime < $time) - { - if(unlink($fileName)) $count++; - } + if(filemtime($fileName) + $maxlifeTime < $time && unlink($fileName)) $count++; } return $count; diff --git a/framework/control.class.php b/framework/control.class.php index 8bf985df95..9419a028b0 100644 --- a/framework/control.class.php +++ b/framework/control.class.php @@ -18,6 +18,8 @@ * @package framework */ include __DIR__ . '/base/control.class.php'; + +#[AllowDynamicProperties] class control extends baseControl { /** @@ -515,7 +517,7 @@ class control extends baseControl * @access public * @return zin\fieldList */ - public function appendExtendFields(zin\fieldList $fields, string $moduleName = '', string $methodName = '', object $object = null): zin\fieldList + public function appendExtendFields(zin\fieldList $fields, string $moduleName = '', string $methodName = '', ?object $object = null): zin\fieldList { if($this->config->edition == 'open') return $fields; if(!empty($this->app->installing) || !empty($this->app->upgrading)) return $fields; @@ -534,6 +536,16 @@ class control extends baseControl $uiID = $this->loadModel('workflowlayout')->getUIByData($flow->module, $action->action, $object); $fieldList = $this->workflowaction->getPageFields($flow->module, $action->action, true, null, $uiID, $groupID); + + /* 复制项目时显示被复制项目的工作流字段值。*/ + if($moduleName == 'project' && $methodName == 'create') + { + foreach($fieldList as $field) + { + $objectValue = zget($object, $field->field, ''); + if($objectValue) $field->default = $objectValue; + } + } return $this->loadModel('flow')->buildFormFields($fields, $fieldList, array(), $object); } @@ -547,7 +559,7 @@ class control extends baseControl * @access public * @return string */ - public function appendExtendCssAndJS(string $moduleName = '', string $methodName = '', object $object = null): string + public function appendExtendCssAndJS(string $moduleName = '', string $methodName = '', ?object $object = null): string { if($this->config->edition == 'open') return ''; if(!empty($this->app->installing) || !empty($this->app->upgrading)) return ''; @@ -588,7 +600,7 @@ class control extends baseControl * @access public * @return array */ - public function appendExtendForm(string $position = 'info', object $object = null, string $moduleName = '', string $methodName = ''): array + public function appendExtendForm(string $position = 'info', ?object $object = null, string $moduleName = '', string $methodName = ''): array { if($this->config->edition == 'open') return array(); if(!empty($this->app->installing) || !empty($this->app->upgrading)) return array(); diff --git a/framework/helper.class.php b/framework/helper.class.php index 3bfb7dacd6..8075e939b9 100644 --- a/framework/helper.class.php +++ b/framework/helper.class.php @@ -509,7 +509,7 @@ function initPageEntity(object $object): array * @access public * @return array */ -function initTableData(array $items, array &$fieldList, object $model = null, string $moduleName = ''): array +function initTableData(array $items, array &$fieldList, ?object $model = null, string $moduleName = ''): array { if(!empty($_GET['orderBy']) && strpos($_GET['orderBy'], '-') !== false) list($orderField, $orderValue) = explode('_', $_GET['orderBy']); if(!empty($orderField) && !empty($orderValue) && !empty($fieldList[$orderField])) diff --git a/framework/model.class.php b/framework/model.class.php index d0a24cab3d..0bcbd659ce 100644 --- a/framework/model.class.php +++ b/framework/model.class.php @@ -18,6 +18,8 @@ * @package framework */ include __DIR__ . '/base/model.class.php'; + +#[AllowDynamicProperties] class model extends baseModel { /** diff --git a/framework/router.class.php b/framework/router.class.php index d0666cc59f..daa292f9bd 100755 --- a/framework/router.class.php +++ b/framework/router.class.php @@ -18,6 +18,9 @@ * @package framework */ include __DIR__ . '/base/router.class.php'; + + +#[AllowDynamicProperties] class router extends baseRouter { /** diff --git a/lib/base/dao/dao.class.php b/lib/base/dao/dao.class.php index a3d1c5c11f..1ed564cd6a 100644 --- a/lib/base/dao/dao.class.php +++ b/lib/base/dao/dao.class.php @@ -441,7 +441,7 @@ class baseDAO * @access public * @return void */ - public function setCache($key, $sql = '', $value = null, int $ttl = null) + public function setCache($key, $sql = '', $value = null, ?int $ttl = null) { if(!$this->app->isServing() || empty($this->cache)) return false; diff --git a/lib/cache/cache.class.php b/lib/cache/cache.class.php index dc0f657cea..5a4acb082b 100644 --- a/lib/cache/cache.class.php +++ b/lib/cache/cache.class.php @@ -50,6 +50,15 @@ class cache */ private $dao; + /** + * 全局数据库操作句柄。 + * Global database operation handler. + * + * @access private + * @var object + */ + private $dbh; + /** * 全局配置对象。 * Global configuration object. diff --git a/lib/dao/dao.class.php b/lib/dao/dao.class.php index 35f277dc9f..47435fbc0e 100644 --- a/lib/dao/dao.class.php +++ b/lib/dao/dao.class.php @@ -225,6 +225,7 @@ class dao extends baseDAO $method = $this->app->getMethodName(); if($module == 'story' && $this->app->rawModule == 'requirement') $module = 'requirement'; if($module == 'story' && $this->app->rawModule == 'epic') $module = 'epic'; + if($module == 'project' && $method == 'createtemplate') $method = 'create'; $flowAction = $this->dbh->query("SELECT * FROM " . TABLE_WORKFLOWACTION . " WHERE `module` = '{$module}' AND `action` = '{$method}' AND `buildin` = '1' AND `extensionType` = 'extend' AND `vision` = '{$this->config->vision}'")->fetch(PDO::FETCH_OBJ); if(!$flowAction) return $this; diff --git a/lib/form/form.class.php b/lib/form/form.class.php index 029c01253e..43ee193da4 100644 --- a/lib/form/form.class.php +++ b/lib/form/form.class.php @@ -68,7 +68,7 @@ class form extends fixer * @param int $objectID * @return form */ - public static function data(array $configObject = null, int $objectID = 0): form + public static function data(?array $configObject = null, int $objectID = 0): form { global $app, $config; @@ -85,7 +85,7 @@ class form extends fixer * @param array|null $configObject * @return form */ - public static function batchData(array $configObject = null): form + public static function batchData(?array $configObject = null): form { global $app, $config; @@ -119,6 +119,10 @@ class form extends fixer if($moduleName == 'projectrelease') $moduleName = 'release'; if($moduleName == 'projectbuild') $moduleName = 'build'; + /* 项目复制用项目创建的工作流。 */ + if($moduleName == 'project' && $methodName == 'copyconfirm') $methodName = 'create'; + if($moduleName == 'project' && $methodName == 'edittemplate') $methodName = 'edit'; + /* 用户需求和业务需求用自己的工作流。*/ if($moduleName == 'story' && $app->rawModule == 'requirement') $moduleName = 'requirement'; if($moduleName == 'story' && $app->rawModule == 'epic') $moduleName = 'epic'; diff --git a/lib/mobile/mobile.class.php b/lib/mobile/mobile.class.php index b73dc5ffc0..14fa3a8b22 100644 --- a/lib/mobile/mobile.class.php +++ b/lib/mobile/mobile.class.php @@ -651,7 +651,7 @@ class mobile * from the $headers array instead. */ public function __construct( - array $headers = null, + ?array $headers = null, $userAgent = null ) { $this->setHttpHeaders($headers); diff --git a/lib/pinyin/pinyin.class.php b/lib/pinyin/pinyin.class.php index 308a831695..60469dc516 100644 --- a/lib/pinyin/pinyin.class.php +++ b/lib/pinyin/pinyin.class.php @@ -7,6 +7,13 @@ */ class pinyin { + /** + * Segments. + * @var array + * + */ + protected array $segments = array(); + /** * Constructor. * diff --git a/lib/scm/scm.class.php b/lib/scm/scm.class.php index 6dff0a6e89..02fd3a8f30 100644 --- a/lib/scm/scm.class.php +++ b/lib/scm/scm.class.php @@ -61,9 +61,9 @@ class scm * @param int $pageID * @return array */ - public function branch(string $showDetail = '', string $orderBy = '', int $limit = 0, int $pageID = 1) + public function branch(string $showDetail = '', string $orderBy = '', int $limit = 0, int $pageID = 1, string $label = '') { - return $this->engine->branch($showDetail, $orderBy, $limit, $pageID); + return $this->engine->branch($showDetail, $orderBy, $limit, $pageID, $label); } /** diff --git a/lib/zin/core/item.class.php b/lib/zin/core/item.class.php index 7602a4d95a..dd20a51312 100644 --- a/lib/zin/core/item.class.php +++ b/lib/zin/core/item.class.php @@ -17,8 +17,6 @@ require_once __DIR__ . DS . 'zin.func.php'; class item extends node { - public bool $notRenderInGlobal = true; - public function build(): array|node|directive { if($this->parent instanceof node && method_exists($this->parent, 'onBuildItem')) diff --git a/lib/zin/core/jscallback.class.php b/lib/zin/core/jscallback.class.php index f974f9378f..58a39922df 100644 --- a/lib/zin/core/jscallback.class.php +++ b/lib/zin/core/jscallback.class.php @@ -47,6 +47,14 @@ class jsCallback extends jsHelper */ public bool $isArrowFunc = false; + /** + * Parent node + * + * @access public + * @var node + */ + public $parent = null; + /** * 构造函数。 * diff --git a/lib/zin/core/node.class.php b/lib/zin/core/node.class.php index ba9ac431f2..fb95bc0974 100644 --- a/lib/zin/core/node.class.php +++ b/lib/zin/core/node.class.php @@ -57,6 +57,8 @@ class node implements \JsonSerializable public array $eventBindings = array(); + public ?bool $notRenderInGlobal = null; + public function __construct(mixed ...$args) { $this->gid = static::nextGid(); diff --git a/lib/zin/core/props.class.php b/lib/zin/core/props.class.php index d7e00a983b..0270a6da82 100644 --- a/lib/zin/core/props.class.php +++ b/lib/zin/core/props.class.php @@ -109,7 +109,7 @@ class props extends \zin\utils\dataset if($value) $this->setVal($name, $value); } - public function bindEvent(string|array $name, string|array $handler = null) + public function bindEvent(string|array $name, mixed $handler = null) { if(is_array($name)) { diff --git a/lib/zin/core/set.class.php b/lib/zin/core/set.class.php index 5b6559c4d1..8cb74d8506 100644 --- a/lib/zin/core/set.class.php +++ b/lib/zin/core/set.class.php @@ -25,7 +25,7 @@ class set extends setting implements iDirective * @param array|object|string $data Properties list array. * @param mixed $value Property value. */ - public function __construct(array|string $data = null, mixed $value = null) + public function __construct(mixed $data = null, mixed $value = null) { parent::__construct($data, $value); diff --git a/lib/zin/core/setting.class.php b/lib/zin/core/setting.class.php index f17c212b55..eded89252d 100644 --- a/lib/zin/core/setting.class.php +++ b/lib/zin/core/setting.class.php @@ -136,7 +136,7 @@ class setting extends \zin\utils\dataset * @param mixed $value - Setting value. * @return setting */ -function setting(array|string $setting = null, mixed $value = null): setting +function setting(mixed $setting = null, mixed $value = null): setting { return new setting($setting, $value); } diff --git a/lib/zin/utils/dataset.class.php b/lib/zin/utils/dataset.class.php index 5e86393f9e..af99ea306c 100644 --- a/lib/zin/utils/dataset.class.php +++ b/lib/zin/utils/dataset.class.php @@ -25,6 +25,14 @@ class dataset implements \JsonSerializable */ protected array $storedData = array(); + /** + * Parent node + * + * @access public + * @var node + */ + public $parent = null; + /** * Create an instance, the initialed data can be passed. * @@ -32,7 +40,7 @@ class dataset implements \JsonSerializable * @param array|object|string $data Properties list array. * @param mixed $value Property value. */ - public function __construct(array|string $data = null, mixed $value = null) + public function __construct($data = null, $value = null) { if($data !== null) $this->set($data, $value); } @@ -191,7 +199,7 @@ class dataset implements \JsonSerializable * @param mixed $defaultValue Optional default value if actual value is null. * @return mixed */ - public function get(string|array $prop = null, mixed $defaultValue = null): mixed + public function get($prop = null, mixed $defaultValue = null): mixed { if(is_null($prop)) return $this->storedData; diff --git a/lib/zin/wg/backbtn/v1.php b/lib/zin/wg/backbtn/v1.php index b32a5a34b6..6e9cfffb15 100644 --- a/lib/zin/wg/backbtn/v1.php +++ b/lib/zin/wg/backbtn/v1.php @@ -46,7 +46,7 @@ class backBtn extends btn 'task' => 'execution-task,my-work,my-contribute,execution-tree,execution-grouptask,project-execution,product-track,repo-view,story-change,execution-kanban,execution-taskkanban,my-index,feedback-adminview,projectstory-track,execution-calendar,my-effort,company-effort,company-calendar,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view,task-view', 'story' => 'product-browse,projectstory-story,execution-story,my-work,my-contribute,productplan-view,build-view,projectbuild-view,product-track,repo-view,testcase-zerocase,my-index,feedback-adminview,projectstory-track,task-view,my-effort,company-effort,company-calendar,demandpool-track,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view,ticket-browse,ticket-view,roadmap-view,charter-view,demand-view,review-assess,review-audit,action-trash', 'bug' => 'bug-browse,project-bug,my-work,my-contribute,execution-bug,bug-view,qa-index,execution-task,product-track,execution-task,task-view,repo-view,story-change,repo-review,feedback-adminview,my-index,projectstory-track,my-effort,company-effort,company-calendar,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view,ticket-browse,ticket-view,productplan-view', - 'testcase' => 'testcase-browse,project-testcase,my-work,my-contribute,execution-testcase,testtask-cases,testsuite-view,product-browse,testcase-view,qa-index,caselib-browse,product-track,story-change,my-index,projectstory-track,my-effort,company-effort,company-calendar,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view,testreport-view,bug-browse,project-bug,bug-view', + 'testcase' => 'testcase-browse,testcase-browseScene,project-testcase,my-work,my-contribute,execution-testcase,testtask-cases,testsuite-view,product-browse,testcase-view,qa-index,caselib-browse,product-track,story-change,my-index,projectstory-track,my-effort,company-effort,company-calendar,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view,testreport-view,bug-browse,project-bug,bug-view', 'testsuite' => 'testsuite-browse,testsuite-view,testtask-cases,my-index,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view', 'testtask' => 'testtask-browse,testtask-cases,qa-index,testcase-browse,execution-build,my-index,my-effort,company-effort,company-calendar,product-dynamic,project-dynamic,execution-dynamic,project-view,execution-view,project-testcase', 'testreport' => 'testreport-browse,project-testreport,execution-testreport,execution-testtask', @@ -61,7 +61,7 @@ class backBtn extends btn 'build' => 'execution-build,build-view,project-index,kanban-view,testtask-browse,projectbuild-browse,my-effort,company-effort,company-calendar,my-index,project-dynamic,execution-dynamic,project-view,execution-view', 'projectbuild' => 'projectbuild-browse,projectbuild-view,project-index', 'repo' => 'repo-maintain,repo-log,repo-browse,repo-view,repo-review,mr-view,repo-browsewebhooks,repo-browserule', - 'mr' => 'pullreq-browse,mr-browse', + 'mr' => 'pullreq-browse,mr-browse,my-audit', 'pullreq' => 'pullreq-browse', 'compile' => 'compile-browse', 'store' => 'store-browse', diff --git a/lib/zin/wg/docapp/js/v1.js b/lib/zin/wg/docapp/js/v1.js index 3cbd26160d..0fc0d4dbd9 100644 --- a/lib/zin/wg/docapp/js/v1.js +++ b/lib/zin/wg/docapp/js/v1.js @@ -61,6 +61,33 @@ window.setZentaoSlashMenu = function(menus, title, vision, position) zui.Editor.setGlobalConfig({slashMenuStyles: [`link:${$.libRoot}zui.zentao.css`]}); } +/** + * 更多菜单操作。 + * More menu action. + * + * @param {MoreMenuItem} menu + */ +window.moreMenuAction = function(menu) +{ + if (menu.module && menu.method && menu.params) + { + if(menu.key == 'gantt' && !menu.isModal) + { + const doc = getDocApp().doc; + $.ajaxSubmit({ + url: $.createLink(menu.module, menu.method, menu.params), + data: {templateID: doc.data.id} + }); + } + else { + zui.Modal.open({ + size: menu.modalSize ? menu.modalSize : 'lg', + url: $.createLink(menu.module, menu.method, menu.params) + }); + } + } +} + /* 获取 ZentaoList 块属性。 */ function getZentaoListProps(type, blockID, props) { diff --git a/lib/zin/wg/docapp/v1.php b/lib/zin/wg/docapp/v1.php index ae73ec522e..66c1adb373 100644 --- a/lib/zin/wg/docapp/v1.php +++ b/lib/zin/wg/docapp/v1.php @@ -125,6 +125,42 @@ class docApp extends wg return $menus; } + /** + * 转换禅道数据菜单格式 + * Convert zentao list menu format. + * + * @access public + * @return array + */ + protected function convertZentaoListMenu(array $list): array + { + $menus = array(); + + foreach($list as $item) + { + $menu = array(); + + if(isset($item['key'])) $menu['key'] = $item['key']; + if(isset($item['name'])) $menu['text'] = $item['name']; + if(isset($item['icon'])) $menu['icon'] = $item['icon']; + if(isset($item['module'])) $menu['module'] = $item['module']; + if(isset($item['method'])) $menu['method'] = $item['method']; + if(isset($item['params'])) $menu['params'] = $item['params']; + if(isset($item['priv'])) $menu['priv'] = $item['priv']; + if(isset($item['isModal'])) $menu['isModal'] = $item['isModal']; + if(isset($item['modalSize'])) $menu['modalSize'] = $item['modalSize']; + + if(isset($item['subMenu'])) + { + $menu['items'] = $this->convertZentaoListMenu($item['subMenu']); + } + + $menus[] = $menu; + } + + return $menus; + } + protected function build() { global $app, $lang, $config; @@ -278,6 +314,15 @@ class docApp extends wg $historyPanelProps = array('fileListProps' => $fileListProps); $canPreviewOffice = $canDownload && isset($config->file->libreOfficeTurnon) and $config->file->libreOfficeTurnon == 1; + $zentaoListMenu = $hasZentaoSlashMenu ? $this->getZentaoListMenu() : array(); + + $moreMenus = $zentaoListMenu + ? array_merge([array( + 'text' => $lang->doc->zentaoData, + 'type' => 'heading', + )], $this->convertZentaoListMenu($zentaoListMenu)) + : array(); + return zui::docApp ( set::_class('shadow rounded ring canvas'), @@ -321,9 +366,11 @@ class docApp extends wg set::langData($langData), set::historyPanel($historyPanelProps), set::showToolbar(true), + set::moreMenu($moreMenus), + set::moreMenuAction(jsRaw('window.moreMenuAction')), set::canPreviewOffice($canPreviewOffice), set::fileInfoUrl($fileInfoUrl), - $hasZentaoSlashMenu ? jsCall('setZentaoSlashMenu', $this->getZentaoListMenu(), $lang->doc->zentaoData, $config->vision, $config->doc->zentaoListMenuPosition) : null + $hasZentaoSlashMenu ? jsCall('setZentaoSlashMenu', $zentaoListMenu, $lang->doc->zentaoData, $config->vision, $config->doc->zentaoListMenuPosition) : null ); } } diff --git a/lib/zin/wg/dropmenu/css/v1.css b/lib/zin/wg/dropmenu/css/v1.css index 9904ddbb1d..bd76831963 100644 --- a/lib/zin/wg/dropmenu/css/v1.css +++ b/lib/zin/wg/dropmenu/css/v1.css @@ -3,3 +3,4 @@ #pick-pop-admin-menu .dropmenu-item + .dropmenu-item {margin-top: 4px} #pick-pop-admin-menu .dropmenu-item.active {background-color: unset;} #pick-pop-admin-menu .dropmenu-item:hover {color: rgba(var(--color-primary-500-rgb),var(--tw-text-opacity)); background-color: rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));} +.dropmenu-item .item-content .label {flex-shrink: 0;} \ No newline at end of file diff --git a/lib/zin/wg/editor/v1.php b/lib/zin/wg/editor/v1.php index 3d899c660c..0005c6bbc6 100644 --- a/lib/zin/wg/editor/v1.php +++ b/lib/zin/wg/editor/v1.php @@ -31,14 +31,15 @@ class editor extends wg ); protected static string $css = << .menu-item {color: #9ea3b0!important;} - zen-editor-menu-item > .menu-item:hover {color: var(--color-primary-400)!important; background-color: var(--color-gray-200)!important;} + zen-editor-menu-item {display: inline-flex; align-items: center;} + zen-editor-menu-item > .menu-item {color: #64758B!important; display: inline-flex; align-items: center;} + zen-editor-menu-item > .menu-item:hover {color: var(--color-primary-400)!important; background-color: var(--color-gray-100)!important;} zen-editor-menu-item > .menu-item.is-active {color: var(--color-primary-400)!important; background-color: transparent!important; box-shadow: inset 0 0 0 1px var(--color-primary-300);} zen-editor-menu-item > .menu-item.is-active:hover {background-color: var(--color-gray-200)!important;} zen-editor-menu-item > .menu-item.is-active:not(:hover) {background-color: transparent!important;} - zen-editor-menu-item > .menu-item:has(.color):hover, zen-editor-menu-item > .menu-item:has(.color).is-active {background-color: transparent!important; box-shadow: inset 0 0 0 1px var(--color-primary-300)!important;} + zen-editor-menu-item > .menu-item:has(.color):hover, zen-editor-menu-item > .menu-item:has(.color).is-active {background-color: ransparent!important; box-shadow: inset 0 0 0 1px var(--color-primary-300)!important;} .menubar {border-bottom: 1px solid #d8dbde!important; padding: 0.125rem;} .tippy-content > div {border: 1px solid #d8dbde!important;} .tippy-content zen-editor-menu-item {line-height: normal;} @@ -94,7 +95,7 @@ class editor extends wg protected function build() { - global $lang; + global $lang, $app; $editor = new h ( @@ -115,6 +116,7 @@ class editor extends wg $editor->add(set($customProps)); $editor->add(set('css', self::$css)); // Inject CSS into editor. + $editor->add(set('css-src', $app->getWebRoot() . 'js/zui3/zen-editor/zui-inject-style.css')); // Inject CSS on page, for tippy menus. $editor->add(h('article', set('slot', 'content'), html($this->prop('value')), $this->children())); // Set initial content. $templateType = $this->prop('templateType'); diff --git a/lib/zin/wg/floattoolbar/v1.php b/lib/zin/wg/floattoolbar/v1.php index 5755cbf359..38f78be016 100644 --- a/lib/zin/wg/floattoolbar/v1.php +++ b/lib/zin/wg/floattoolbar/v1.php @@ -4,6 +4,8 @@ namespace zin; class floatToolbar extends wg { + protected ?object $object = null; + protected static array $defineProps = array( 'prefix?:array', 'main?:array', diff --git a/lib/zin/wg/formpanel/v1.php b/lib/zin/wg/formpanel/v1.php index 5baaba7ff0..4be8c68c2b 100644 --- a/lib/zin/wg/formpanel/v1.php +++ b/lib/zin/wg/formpanel/v1.php @@ -77,12 +77,13 @@ class formPanel extends panel { global $app; $moduleName = $app->getModuleName(); + $methodName = $app->getMethodName(); if($moduleName == 'caselib') return data('lib'); if($moduleName == 'flow') return data('data'); if($moduleName == 'productplan') return data('plan'); if($moduleName == 'projectrelease') return data('release'); if($moduleName == 'projectbuild') return data('build'); - if($moduleName == 'project' && $app->getMethodName() == 'create') return data('copyProject'); + if($moduleName == 'project' && ($methodName == 'create' or $methodName == 'createtemplate')) return data('copyProject') ? data('copyProject') : null; return data($moduleName); } @@ -105,6 +106,9 @@ class formPanel extends panel } } + if($moduleName == 'project' && $methodName == 'createtemplate') $methodName = 'create'; + if($moduleName == 'project' && $methodName == 'edittemplate') $methodName = 'edit'; + /* 反馈转化。 */ if($moduleName == 'feedback') { diff --git a/lib/zin/wg/relatedobjectlist/v1.php b/lib/zin/wg/relatedobjectlist/v1.php index 5e7a189617..9ece28f09d 100644 --- a/lib/zin/wg/relatedobjectlist/v1.php +++ b/lib/zin/wg/relatedobjectlist/v1.php @@ -195,7 +195,8 @@ class relatedObjectList extends relatedList set::icon('treemap'), set::size('sm'), set::type('secondary'), - setClass('my-2 pull-right'), + setClass('my-2'), + setClass($btn ? 'pull-right' : ''), setData(array('toggle' => 'modal', 'size' => 'lg')), setID('graphButton'), $app->loadLang('custom')->custom->relationGraph diff --git a/lib/zin/zentao/field.class.php b/lib/zin/zentao/field.class.php index 59d5400dc4..a452e78532 100644 --- a/lib/zin/zentao/field.class.php +++ b/lib/zin/zentao/field.class.php @@ -22,13 +22,11 @@ class field extends setting { public ?fieldList $fieldList; - public ?field $parent; - public ?string $dataType; public mixed $default; - public function __construct(string|object|array|null $nameOrProps = null, ?fieldList $fieldList = null, ?field $parent = null) + public function __construct(mixed $nameOrProps = null, ?fieldList $fieldList = null, ?field $parent = null) { $this->fieldList = $fieldList; $this->parent = $parent; @@ -120,7 +118,7 @@ class field extends setting return $this->setVal('strong', $strong); } - public function label(bool|string|null $label, string|object|array $classOrProps = null): field + public function label(mixed $label, mixed $classOrProps = null): field { $this->setVal('label', $label); if (is_string($classOrProps)) $this->labelClass($classOrProps); @@ -148,7 +146,7 @@ class field extends setting return $this->setVal('labelWidth', $width); } - public function labelHint(?string $hint, string|object|array $classOrProps = null): field + public function labelHint(?string $hint, mixed $classOrProps = null): field { $this->setVal('labelHint', $hint); if (is_string($classOrProps)) $this->labelHintClass($classOrProps); @@ -171,7 +169,7 @@ class field extends setting return $this->setVal('labelHintIcon', $icon); } - public function labelActions(array|false|null $actions, bool $reset = false, ?string $key = null): field + public function labelActions(mixed $actions, bool $reset = false, ?string $key = null): field { if($actions === false) return $this->remove('actions'); if($reset) return $this->setVal('actions', $actions); @@ -251,7 +249,7 @@ class field extends setting return $item; } - public function control(string|array|object|false|null $control, array|object|null $props = null): field + public function control(string|array|object|false|null $control, mixed $props = null): field { if($control === false) return $this->remove('control'); diff --git a/lib/zin/zentao/fieldlist.class.php b/lib/zin/zentao/fieldlist.class.php index e907e54a87..c37c20c575 100644 --- a/lib/zin/zentao/fieldlist.class.php +++ b/lib/zin/zentao/fieldlist.class.php @@ -334,7 +334,7 @@ class fieldList return isset(static::$map[$listName]) ? static::$map[$listName] : null; } - public static function getListFields(string $listName, string $fieldNames = null): array + public static function getListFields(string $listName, ?string $fieldNames = null): array { if(is_null($fieldNames)) list($listName, $fieldNames) = explode('/', $listName); if(is_null($fieldNames)) return null; diff --git a/lib/zin/zentao/zentao.func.php b/lib/zin/zentao/zentao.func.php index ab21950cb5..583664ec61 100644 --- a/lib/zin/zentao/zentao.func.php +++ b/lib/zin/zentao/zentao.func.php @@ -130,7 +130,7 @@ function isAjaxRequest(?string $type = null): bool * @param array $options * @return directive|set */ -function bind(string $name, bool|string|array $callback, array|string $options = null): directive|set +function bind(string $name, bool|string|array $callback, mixed $options = null): directive|set { if(is_string($options) && is_string($callback)) { diff --git a/module/action/model.php b/module/action/model.php index 0f1b41b5aa..d8cc36c12f 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -20,8 +20,6 @@ class actionModel extends model const BE_HIDDEN = 2; // The deleted object has been hidden. const MAXCOUNT = 1000; - public $productAlias = 't2'; - /** * 创建一个操作记录。 * Create a action. @@ -287,7 +285,7 @@ class actionModel extends model * @access public * @return object */ - public function processHistory(object $history = null): object + public function processHistory(?object $history = null): object { if(empty($history)) return $history; $users = $this->loadModel('user')->getPairs('noletter'); @@ -435,7 +433,7 @@ class actionModel extends model * @access public * @return array */ - public function getTrashes(string $objectType, string $type, string $orderBy, object $pager = null): array + public function getTrashes(string $objectType, string $type, string $orderBy, ?object $pager = null): array { $noMultipleExecutions = $this->dao->select('id')->from(TABLE_EXECUTION)->where('multiple')->eq('0')->andWhere('type')->in('sprint,kanban')->fetchPairs(); @@ -536,7 +534,7 @@ class actionModel extends model * @access public * @return array */ - public function getTrashesBySearch(string $objectType, string $type, string|int $queryID, string $orderBy, object $pager = null): array + public function getTrashesBySearch(string $objectType, string $type, string|int $queryID, string $orderBy, ?object $pager = null): array { if($objectType == 'all') return array(); if($queryID && $queryID != 'myQueryID') @@ -957,7 +955,7 @@ class actionModel extends model * @access public * @return array */ - public function buildActionList(array $actions, array|null $users = null, bool $commentEditable = true): array + public function buildActionList(array $actions, ?array $users = null, bool $commentEditable = true): array { if(empty($users)) $users = $this->loadModel('user')->getPairs('noletter'); @@ -1082,9 +1080,6 @@ class actionModel extends model */ public function getDynamicByProduct(int $productID, string $account = 'all', string $period = 'all', string $orderBy = 'date_desc', int $limit = 50, string $date = '', string $direction = 'next'): array { - $count = $this->dao->select('COUNT(1) AS count')->from(TABLE_ACTIONPRODUCT)->where('product')->eq($productID)->fetch('count'); - if($count > 10000) $this->productAlias = 't2 FORCE INDEX (action_product)'; - return $this->getDynamic($account, $period, $orderBy, $limit, (int)$productID, 'all', 'all', $date, $direction); } @@ -1214,12 +1209,7 @@ class actionModel extends model /* If the query condition include all executions, no limit execution. */ if(strpos($actionQuery, $allExecutions) !== false) $actionQuery = str_replace($allExecutions, '1 = 1', $actionQuery); - if($productID) - { - $actionQuery = str_replace(" `product` = '{$productID}'", " t2.`product` = '{$productID}'", $actionQuery); - $count = $this->dao->select('count(1) as count')->from(TABLE_ACTIONPRODUCT)->where('product')->eq($productID)->fetch('count'); - if($count > 10000) $this->productAlias = 't2 FORCE INDEX (action_product)'; - } + if($productID) $actionQuery = str_replace(" `product` = '{$productID}'", " t2.`product` = '{$productID}'", $actionQuery); if($date) $actionQuery = "({$actionQuery}) AND " . ('date' . ($direction == 'next' ? '<' : '>') . "'{$date}'"); /* 如果当前版本为lite,则过滤掉产品相关的动态。 */ @@ -1257,7 +1247,7 @@ class actionModel extends model if($noMultipleExecutions) $condition = "({$condition}) AND (`objectType` != 'execution' OR (`objectType` = 'execution' AND `objectID`" . (count($noMultipleExecutions) == 1 ? ' != ' . reset($noMultipleExecutions) : ' NOT ' . helper::dbIN($noMultipleExecutions)) . "))"; return $this->dao->select('action.*')->from(TABLE_ACTION)->alias('action') - ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias($this->productAlias)->on('action.id=t2.action')->fi() + ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias('t2')->on('action.id=t2.action')->fi() ->where('objectType')->notIN($this->config->action->ignoreObjectType4Dynamic) ->andWhere('action.action')->notIN($this->config->action->ignoreActions4Dynamic) ->andWhere("({$sql})") @@ -1956,7 +1946,7 @@ class actionModel extends model $hasProduct = preg_match('/t2\.(`?)product/', $condition); $condition = preg_replace("/AND +`?date`? +(<|>|<=|>=) +'\d{4}\-\d{2}\-\d{2}'/", '', $condition); $actions = $this->dao->select('action.id')->from(TABLE_ACTION)->alias('action') - ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias($this->productAlias)->on('action.id=t2.action')->fi() + ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias('t2')->on('action.id=t2.action')->fi() ->where($condition) ->andWhere('`date`' . ($direction == 'next' ? '<' : '>') . "'{$date}'") ->beginIF($direction == 'next' && $beginAndEnd['begin'] != EPOCH_DATE)->andWhere('date')->ge($beginAndEnd['begin'])->fi() @@ -2568,11 +2558,12 @@ class actionModel extends model $table = $this->actionTao->getActionTable($period); $hasProduct = preg_match('/t2\.(`?)product/', $condition); + $useIndex = $hasProduct && strpos('mysql,oceanbase', $this->config->db->driver) !== false ? ' USE INDEX (`vision_date`)' : ''; // 关联产品时指定索引以提高查询性能。Specify index to improve query performance when associated with product. $beginAndEnd = $this->computeBeginAndEnd($period, '', 'next'); $condition = preg_replace("/AND +`?date`? +(<|>|<=|>=) +'\d{4}\-\d{2}\-\d{2}'/", '', $condition); - $actions = $this->dao->select('action.id')->from($table)->alias('action') - ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias($this->productAlias)->on('action.id=t2.action')->fi() + $actions = $this->dao->select('action.id')->from($table)->alias('action' . $useIndex) + ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias('t2')->on('action.id=t2.action')->fi() ->where($condition) ->beginIF($beginAndEnd['begin'] != EPOCH_DATE)->andWhere('date')->ge($beginAndEnd['begin'])->fi() ->beginIF($beginAndEnd['end'] != FUTURE_DATE)->andWhere('date')->le($beginAndEnd['end'])->fi() @@ -2630,7 +2621,7 @@ class actionModel extends model $lastDate = substr($lastAction->originalDate, 0, 10); $condition = preg_replace("/AND +`?date`? +(<|>|<=|>=) +'\d{4}\-\d{2}\-\d{2}'/", '', $condition); $actions = $this->dao->select('action.id')->from(TABLE_ACTION)->alias('action') - ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias($this->productAlias)->on('action.id=t2.action')->fi() + ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias('t2')->on('action.id=t2.action')->fi() ->where($condition) ->andWhere("`date`")->ge($lastDate) ->andWhere("`date`")->lt($lastDate . ' 23:59:59') @@ -2659,7 +2650,7 @@ class actionModel extends model $lastAction = $this->dao->select('*')->from(TABLE_ACTION)->where('id')->eq($lastActionID)->fetch(); $lastDate = substr($lastAction->date, 0, 10); $actions = $this->dao->select('action.*')->from(TABLE_ACTION)->alias('action') - ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias($this->productAlias)->on('action.id=t2.action')->fi() + ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias('t2')->on('action.id=t2.action')->fi() ->where($condition) ->andWhere("`date`")->ge($lastDate) ->andWhere("`date`")->lt($lastDate . ' 23:59:59') diff --git a/module/action/tao.php b/module/action/tao.php index 14831d2ba5..ea567d4b4b 100644 --- a/module/action/tao.php +++ b/module/action/tao.php @@ -703,7 +703,7 @@ class actionTao extends actionModel if($productID === 'notzero') $hasProduct = true; return $this->dao->select('action.*')->from($actionTable)->alias('action') - ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias($this->productAlias)->on('action.id=t2.action')->fi() + ->beginIF($hasProduct)->leftJoin(TABLE_ACTIONPRODUCT)->alias('t2')->on('action.id=t2.action')->fi() ->where('objectType')->notIN($this->config->action->ignoreObjectType4Dynamic) ->andWhere('action.action')->notIN($this->config->action->ignoreActions4Dynamic) ->andWhere('vision')->eq($this->config->vision) diff --git a/module/action/test/model/getdynamicbyaccount.php b/module/action/test/model/getdynamicbyaccount.php index c4b74b4d19..591ef306d6 100755 --- a/module/action/test/model/getdynamicbyaccount.php +++ b/module/action/test/model/getdynamicbyaccount.php @@ -22,9 +22,8 @@ cid=1 - 查找用户admin动态 @12 - 查找用户dev17动态 @12 - 查找用户test18动态 @11 -- 查找今天的动态 @0 -- 查找昨天的动态 @1 -- 查找上周的动态 @3 +- 查找今天的动态 @1 +- 查找昨天的动态 @0 - 查找今天的动态 @0 - 查找用户admin动态 @12 - 查找用户dev17动态 @12 @@ -50,9 +49,8 @@ r($action->getDynamicByAccountTest($accountList[3])) && p() && e('11'); // 查 zenData('action')->loadYaml('action_week')->gen(35, true, false); zenData('actionrecent')->loadYaml('action_week')->gen(35, true, false); -r($action->getDynamicByAccountTest($accountList[1], $typeList[1])) && p() && e('0'); // 查找今天的动态 -r($action->getDynamicByAccountTest($accountList[1], $typeList[2])) && p() && e('1'); // 查找昨天的动态 -r($action->getDynamicByAccountTest($accountList[1], $typeList[3])) && p() && e('3'); // 查找上周的动态 +r($action->getDynamicByAccountTest($accountList[1], $typeList[1])) && p() && e('1'); // 查找今天的动态 +r($action->getDynamicByAccountTest($accountList[1], $typeList[2])) && p() && e('0'); // 查找昨天的动态 zenData('action')->loadYaml('action_year')->gen(35, true, false); zenData('actionrecent')->loadYaml('action_year')->gen(35, true, false); diff --git a/module/action/test/model/getdynamicbyexecution.php b/module/action/test/model/getdynamicbyexecution.php index ff301c6589..76781a93ac 100755 --- a/module/action/test/model/getdynamicbyexecution.php +++ b/module/action/test/model/getdynamicbyexecution.php @@ -27,9 +27,8 @@ cid=1 - 查找用户admin动态 @12 - 查找用户dev17动态 @12 - 查找用户test18动态 @11 -- 查找今天的动态 @0 -- 查找昨天的动态 @1 -- 查找上周的动态 @3 +- 查找今天的动态 @1 +- 查找昨天的动态 @0 - 查找今天的动态 @5 */ @@ -53,9 +52,8 @@ $action->gen(35, true, false); $actionrecent = zenData('actionrecent')->loadYaml('action_week'); $actionrecent->execution->range('101'); $actionrecent->gen(35, true, false); -r($actionTest->getDynamicByExecutionTest($executionID, $accountList[1], $typeList[1])) && p() && e('0'); // 查找今天的动态 -r($actionTest->getDynamicByExecutionTest($executionID, $accountList[1], $typeList[2])) && p() && e('1'); // 查找昨天的动态 -r($actionTest->getDynamicByExecutionTest($executionID, $accountList[1], $typeList[3])) && p() && e('3'); // 查找上周的动态 +r($actionTest->getDynamicByExecutionTest($executionID, $accountList[1], $typeList[1])) && p() && e('1'); // 查找今天的动态 +r($actionTest->getDynamicByExecutionTest($executionID, $accountList[1], $typeList[2])) && p() && e('0'); // 查找昨天的动态 $action = zenData('action')->loadYaml('action_year'); $action->execution->range('101'); @@ -63,4 +61,4 @@ $action->gen(35, true, false); $actionrecent = zenData('actionrecent')->loadYaml('action_year'); $actionrecent->execution->range('101'); $actionrecent->gen(35, true, false); -r($actionTest->getDynamicByExecutionTest($executionID, $accountList[0], $typeList[1])) && p() && e('5'); // 查找今天的动态 \ No newline at end of file +r($actionTest->getDynamicByExecutionTest($executionID, $accountList[0], $typeList[1])) && p() && e('5'); // 查找今天的动态 diff --git a/module/action/test/model/getdynamicbyproduct.php b/module/action/test/model/getdynamicbyproduct.php index 6fc192a61e..14ffbbb82f 100755 --- a/module/action/test/model/getdynamicbyproduct.php +++ b/module/action/test/model/getdynamicbyproduct.php @@ -23,9 +23,8 @@ cid=1 - 查找用户admin动态 @3 - 查找用户dev17动态 @2 - 查找用户test18动态 @2 -- 查找今天的动态 @0 -- 查找昨天的动态 @1 -- 查找上周的动态 @0 +- 查找今天的动态 @1 +- 查找昨天的动态 @0 - 查找今天的动态 @1 */ @@ -45,10 +44,9 @@ r($actionTest->getDynamicByProductTest($productID, $accountList[3])) && p() && e zenData('action')->loadYaml('action_week')->gen(35, true, false); zenData('actionrecent')->loadYaml('action_week')->gen(35, true, false); -r($actionTest->getDynamicByProductTest($productID, $accountList[1], $typeList[1])) && p() && e('0'); // 查找今天的动态 -r($actionTest->getDynamicByProductTest($productID, $accountList[1], $typeList[2])) && p() && e('1'); // 查找昨天的动态 -r($actionTest->getDynamicByProductTest($productID, $accountList[1], $typeList[3])) && p() && e('0'); // 查找上周的动态 +r($actionTest->getDynamicByProductTest($productID, $accountList[1], $typeList[1])) && p() && e('1'); // 查找今天的动态 +r($actionTest->getDynamicByProductTest($productID, $accountList[1], $typeList[2])) && p() && e('0'); // 查找昨天的动态 zenData('action')->loadYaml('action_year')->gen(35, true, false); zenData('actionrecent')->loadYaml('action_year')->gen(35, true, false); -r($actionTest->getDynamicByProductTest($productID, $accountList[0], $typeList[1])) && p() && e('1'); // 查找今天的动态 \ No newline at end of file +r($actionTest->getDynamicByProductTest($productID, $accountList[0], $typeList[1])) && p() && e('1'); // 查找今天的动态 diff --git a/module/action/test/model/getdynamicbyproject.php b/module/action/test/model/getdynamicbyproject.php index bb15b2a75d..4d610db121 100755 --- a/module/action/test/model/getdynamicbyproject.php +++ b/module/action/test/model/getdynamicbyproject.php @@ -27,9 +27,8 @@ cid=1 - 查找用户admin动态 @12 - 查找用户dev17动态 @12 - 查找用户test18动态 @11 -- 查找今天的动态 @0 -- 查找昨天的动态 @1 -- 查找上周的动态 @3 +- 查找今天的动态 @1 +- 查找昨天的动态 @0 - 查找今天的动态 @5 */ @@ -53,9 +52,8 @@ $action->gen(35, true, false); $actionrecent = zenData('actionrecent')->loadYaml('action_week'); $actionrecent->project->range('101'); $actionrecent->gen(35, true, false); -r($actionTest->getDynamicByProjectTest($projectID, $accountList[1], $typeList[1])) && p() && e('0'); // 查找今天的动态 -r($actionTest->getDynamicByProjectTest($projectID, $accountList[1], $typeList[2])) && p() && e('1'); // 查找昨天的动态 -r($actionTest->getDynamicByProjectTest($projectID, $accountList[1], $typeList[3])) && p() && e('3'); // 查找上周的动态 +r($actionTest->getDynamicByProjectTest($projectID, $accountList[1], $typeList[1])) && p() && e('1'); // 查找今天的动态 +r($actionTest->getDynamicByProjectTest($projectID, $accountList[1], $typeList[2])) && p() && e('0'); // 查找昨天的动态 $action = zenData('action')->loadYaml('action_year'); $action->project->range('101'); @@ -63,4 +61,4 @@ $action->gen(35, true, false); $actionrecent = zenData('actionrecent')->loadYaml('action_year'); $actionrecent->project->range('101'); $actionrecent->gen(35, true, false); -r($actionTest->getDynamicByProjectTest($projectID, $accountList[0], $typeList[1])) && p() && e('5'); // 查找今天的动态 \ No newline at end of file +r($actionTest->getDynamicByProjectTest($projectID, $accountList[0], $typeList[1])) && p() && e('5'); // 查找今天的动态 diff --git a/module/action/test/model/getdynamicbysearch.php b/module/action/test/model/getdynamicbysearch.php index 9cadb639fa..f34d9a519d 100755 --- a/module/action/test/model/getdynamicbysearch.php +++ b/module/action/test/model/getdynamicbysearch.php @@ -19,19 +19,25 @@ timeout=0 cid=1 - 获取排序为date倒序的所有动态 - - 第46条的id属性 @46 - - 第46条的objectType属性 @review - - 第78条的id属性 @78 - - 第78条的objectType属性 @testcase + - 第0条的id属性 @62 + - 第0条的objectType属性 @branch + - 第1条的id属性 @31 + - 第1条的objectType属性 @bug - 获取排序为date正序的所有动态 - - 第1条的id属性 @1 - - 第1条的objectType属性 @product + - 第0条的id属性 @63 + - 第0条的objectType属性 @module + - 第1条的id属性 @32 + - 第1条的objectType属性 @testcase - 获取排序为date倒序的今年之后的动态 - - 第46条的id属性 @46 - - 第46条的objectType属性 @review + - 第0条的id属性 @62 + - 第0条的objectType属性 @branch + - 第1条的id属性 @31 + - 第1条的objectType属性 @bug - 获取排序为date正序的所有动态 - - 第2条的id属性 @2 - - 第2条的objectType属性 @story + - 第0条的id属性 @61 + - 第0条的objectType属性 @todo + - 第1条的id属性 @30 + - 第1条的objectType属性 @build - 获取排序为date倒序的今年之后的动态 - 第0条的id属性 @31 - 第0条的objectType属性 @bug @@ -53,8 +59,8 @@ $directionList = array('next', 'pre'); $action = new actionTest(); -r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[0], $limit, $dateList[0], $directionList[0]))) && p('0:id,objectType;1:id,objectType') && e('64,testsuite;32,testcase'); // 获取排序为date倒序的所有动态 -r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[1], $limit, $dateList[0], $directionList[0]))) && p('0:id,objectType;1:id,objectType') && e('65,caselib;33,case'); // 获取排序为date正序的所有动态 -r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[0], $limit, $dateList[0], $directionList[1]))) && p('0:id,objectType;1:id,objectType') && e('64,testsuite;32,testcase'); // 获取排序为date倒序的今年之后的动态 -r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[0], $limit, $dateList[1], $directionList[0]))) && p('0:id,objectType;1:id,objectType') && e('63,module;31,bug'); // 获取排序为date倒序的今天之前的动态 -r(array_values($action->getDynamicBySearchTest($queryID[1], $orderByList[0], $limit, $dateList[0], $directionList[1]))) && p('0:id,objectType') && e('31,bug'); // 获取排序为date倒序的今年之后的动态 +r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[0], $limit, $dateList[0], $directionList[0]))) && p('0:id,objectType;1:id,objectType') && e('62,branch;31,bug'); // 获取排序为date倒序的所有动态 +r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[1], $limit, $dateList[0], $directionList[0]))) && p('0:id,objectType;1:id,objectType') && e('63,module;32,testcase'); // 获取排序为date正序的所有动态 +r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[0], $limit, $dateList[0], $directionList[1]))) && p('0:id,objectType;1:id,objectType') && e('62,branch;31,bug'); // 获取排序为date倒序的今年之后的动态 +r(array_values($action->getDynamicBySearchTest($queryID[0], $orderByList[0], $limit, $dateList[1], $directionList[0]))) && p('0:id,objectType;1:id,objectType') && e('61,todo;30,build'); // 获取排序为date倒序的今天之前的动态 +r(array_values($action->getDynamicBySearchTest($queryID[1], $orderByList[0], $limit, $dateList[0], $directionList[1]))) && p('0:id,objectType') && e('31,bug'); // 获取排序为date倒序的今年之后的动态 diff --git a/module/admin/config.php b/module/admin/config.php index 8de339d983..df03ab64d8 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -5,7 +5,7 @@ $config->admin->log->saveDays = 30; if(!isset($config->safe)) $config->safe = new stdclass(); if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123'; -$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['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', 'admin|metriclib', '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', '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'); diff --git a/module/admin/config/metriclib.php b/module/admin/config/metriclib.php new file mode 100644 index 0000000000..ec7c091272 --- /dev/null +++ b/module/admin/config/metriclib.php @@ -0,0 +1,12 @@ +admin->metricLib = new stdClass(); +$config->admin->metricLib->updateSQLs[1] = 'CREATE INDEX `metricCode_system_date` ON ' . TABLE_METRICLIB . ' (`metricCode`, `system`, `date`)'; +$config->admin->metricLib->updateSQLs[2] = 'CREATE INDEX `metricCode_program_date` ON ' . TABLE_METRICLIB . ' (`metricCode`, `program`, `date`)'; +$config->admin->metricLib->updateSQLs[3] = 'CREATE INDEX `metricCode_project_date` ON ' . TABLE_METRICLIB . ' (`metricCode`, `project`, `date`)'; +$config->admin->metricLib->updateSQLs[4] = 'CREATE INDEX `metricCode_product_date` ON ' . TABLE_METRICLIB . ' (`metricCode`, `product`, `date`)'; +$config->admin->metricLib->updateSQLs[5] = 'CREATE INDEX `metricCode_execution_date` ON ' . TABLE_METRICLIB . ' (`metricCode`, `execution`, `date`)'; +$config->admin->metricLib->updateSQLs[6] = 'CREATE INDEX `metricCode_user_date` ON ' . TABLE_METRICLIB . ' (`metricCode`, `user`(30), `date`)'; +$config->admin->metricLib->updateSQLs[7] = 'ALTER TABLE ' . TABLE_METRICLIB . ' DROP INDEX `metricID`'; +$config->admin->metricLib->updateSQLs[8] = 'ALTER TABLE ' . TABLE_METRICLIB . ' DROP INDEX `metricCode`'; +$config->admin->metricLib->updateSQLs[9] = 'ALTER TABLE ' . TABLE_METRICLIB . ' DROP INDEX `date`'; +$config->admin->metricLib->updateSQLs[10] = 'ALTER TABLE ' . TABLE_METRICLIB . ' DROP INDEX `deleted`'; diff --git a/module/admin/control.php b/module/admin/control.php index d41b844766..b22def7a29 100755 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -354,6 +354,38 @@ class admin extends control $this->display(); } + /** + * 更新度量库表的索引。 + * Upgrade metriclib table index. + * + * @param int $key + * @access public + * @return void + */ + public function metriclib(int $key = 0) + { + $sql = $this->config->admin->metricLib->updateSQLs[$key] ?? ''; + if($sql) + { + set_time_limit(0); + session_write_close(); + + try + { + $this->dbh->exec($sql); + } + catch(PDOException $e) + { + $this->app->triggerError($e->getMessage(), __FILE__, __LINE__); + } + if(isset($this->config->admin->metricLib->updateSQLs[++$key])) return $this->send(['result' => 'success', 'key' => $key]); + return $this->send(['result' => 'success']); + } + + $this->view->title = $this->lang->metriclib->common; + $this->display(); + } + /** * 更换表引擎为InnoDB。 * Ajax change table engine. diff --git a/module/admin/js/metriclib.ui.js b/module/admin/js/metriclib.ui.js new file mode 100644 index 0000000000..2090f7b598 --- /dev/null +++ b/module/admin/js/metriclib.ui.js @@ -0,0 +1,28 @@ +/** + * Update metriclib table structure. + */ +function updateMetriclib(key) +{ + $('#updateSQLs > #sql' + key).removeClass('hidden'); + $('#startUpdate').remove(); + + $.getJSON($.createLink('admin', 'metriclib', 'key=' + key), function(resp) + { + if(resp.result == 'success') + { + $('#sql' + key).addClass('text-success').find('.icon').toggleClass('animate-spin icon-spinner-indicator icon-check'); + if(resp.key) + { + updateMetriclib(resp.key); + } + else + { + $('#updated').removeClass('hidden'); + } + } + else + { + zui.Modal.alert(resp.message).then(() => {loadCurrentPage()}); + } + }); +} diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index dbc233e1f1..2dd015ab17 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -26,10 +26,10 @@ $lang->admin->setModuleIndex = 'Set Module'; $lang->admin->mon = 'month'; $lang->admin->day = 'day'; -$lang->admin->updateDynamics = 'updateDynamics'; -$lang->admin->updatePatch = 'updatePatch'; -$lang->admin->upgradeRecommend = 'upgradeRecommend'; -$lang->admin->zentaoUsed = ''; +$lang->admin->updateDynamics = 'Update Dynamics'; +$lang->admin->updatePatch = 'Patch Update'; +$lang->admin->upgradeRecommend = 'Upgrade Recommend'; +$lang->admin->zentaoUsed = 'You have been using ZenTao'; $lang->admin->api = 'API'; $lang->admin->log = 'Log'; @@ -300,4 +300,19 @@ $lang->admin->community->uxPlan->cancel = 'Canceled'; $lang->admin->community->unBind = new stdclass(); $lang->admin->community->unBind->success = 'Disconnect'; +$lang->admin->nickname = 'Nickname'; +$lang->admin->position = 'Position'; +$lang->admin->company = 'Company Name'; +$lang->admin->solvedProblems = 'Project Management Problems'; + +$lang->admin->mobile = 'Mobile Phone'; +$lang->admin->code = 'SMS Verification Code'; +$lang->admin->agreeUX = 'User Experience Program'; + +$lang->admin->metricLib = new stdclass(); +$lang->admin->metricLib->startUpdate = 'Start Update'; +$lang->admin->metricLib->updating = 'Updating'; +$lang->admin->metricLib->updated = 'Update Completed'; +$lang->admin->metricLib->tips = "Due to the large amount of data in the metric library table, updating indexes may take a long time. Please operate during low business hours. During this time, you can perform other operations, but please do not close the current page or browser."; + include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index 642c23a17c..00c8e991f9 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -48,6 +48,7 @@ $lang->admin->menuList->system['subMenu']['cron'] = array('link' => "{$la $lang->admin->menuList->system['subMenu']['timezone'] = array('link' => "{$lang->timezone}|custom|timezone|"); $lang->admin->menuList->system['subMenu']['buildindex'] = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); $lang->admin->menuList->system['subMenu']['tableengine'] = array('link' => "{$lang->admin->tableEngine}|admin|tableengine|"); +if($config->edition != 'open' && $config->vision == 'rnd') $lang->admin->menuList->system['subMenu']['metriclib'] = array('link' => "{$lang->metriclib->common}|admin|metriclib|"); if(in_array($this->config->db->driver, $this->config->mysqlDriverList)) $lang->admin->menuList->system['subMenu']['backup'] = array('link' => "{$lang->backup->common}|backup|index|"); $lang->admin->menuList->system['menuOrder']['5'] = 'mode'; diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index de3e901de2..bc6a8218b0 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -309,4 +309,10 @@ $lang->admin->mobile = '手机号'; $lang->admin->code = '短信验证码'; $lang->admin->agreeUX = '用户体验计划'; +$lang->admin->metricLib = new stdclass(); +$lang->admin->metricLib->startUpdate = '开始更新'; +$lang->admin->metricLib->updating = '正在更新'; +$lang->admin->metricLib->updated = '更新完成'; +$lang->admin->metricLib->tips = "由于度量库表数据量较大,更新索引可能需要较长时间,请在业务低峰期操作。在此期间您可以进行其他操作,但请勿关闭当前页面或浏览器。"; + include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/ui/metriclib.html.php b/module/admin/ui/metriclib.html.php new file mode 100644 index 0000000000..3bc95625d9 --- /dev/null +++ b/module/admin/ui/metriclib.html.php @@ -0,0 +1,55 @@ + + * @package admin + * @link https://www.zentao.net + */ +namespace zin; + +$sqls = []; +foreach($config->admin->metricLib->updateSQLs as $key => $sql) +{ + $sqls[] = div + ( + setID('sql' . $key), + setClass('hidden'), + icon(setClass('icon icon-spinner-indicator mr-2 animate-spin')), + $sql + ); +} + +panel +( + setClass('m-auto w-2/3'), + set::title($lang->metriclib->common), + set::headingClass('justify-start border-b'), + div + ( + setClass('mb-4'), + $lang->admin->metricLib->tips + ), + div + ( + setID('updateSQLs'), + setClass('mb-4'), + $sqls, + div + ( + setID('updated'), + setClass('text-success hidden'), + icon(setClass('icon icon-check mr-2')), + $lang->admin->metricLib->updated + ) + ), + a + ( + setID('startUpdate'), + setClass('btn primary'), + on::click('updateMetriclib(1)'), + $lang->admin->metricLib->startUpdate + ) +); diff --git a/module/api/model.php b/module/api/model.php index 3ae375a477..d52b6e0bd1 100644 --- a/module/api/model.php +++ b/module/api/model.php @@ -390,7 +390,7 @@ class apiModel extends model * @param object $pager * @return array */ - public function getListByModuleID(int $libID = 0, int $moduleID = 0, int $releaseID = 0, object $pager = null): array + public function getListByModuleID(int $libID = 0, int $moduleID = 0, int $releaseID = 0, ?object $pager = null): array { /* Get release info. */ if($releaseID > 0) @@ -472,7 +472,7 @@ class apiModel extends model * @access public * @return array */ - public function getStructByQuery(int $libID, object $pager = null, string $orderBy = ''): array + public function getStructByQuery(int $libID, ?object $pager = null, string $orderBy = ''): array { return $this->dao->select('t1.*,t2.realname as addedName')->from(TABLE_APISTRUCT)->alias('t1') ->leftJoin(TABLE_USER)->alias('t2')->on('t2.account = t1.addedBy') @@ -494,7 +494,7 @@ class apiModel extends model * @access public * @return array */ - public function getStructListByRelease(object $release, string $where = '1 = 1 ', object $pager = null, string $orderBy = 'id'): array + public function getStructListByRelease(object $release, string $where = '1 = 1 ', ?object $pager = null, string $orderBy = 'id'): array { $strJoin = array(); if(isset($release->snap['structs'])) @@ -527,7 +527,7 @@ class apiModel extends model * @access public * @return array */ - public function getReleaseByQuery(array $libID, object $pager = null, string $orderBy = ''): array + public function getReleaseByQuery(array $libID, ?object $pager = null, string $orderBy = ''): array { return $this->dao->select('*')->from(TABLE_API_LIB_RELEASE) ->where('lib')->in($libID) diff --git a/module/backup/ui/index.html.php b/module/backup/ui/index.html.php index 757890b621..6e936e3a87 100644 --- a/module/backup/ui/index.html.php +++ b/module/backup/ui/index.html.php @@ -138,6 +138,8 @@ if($config->inQuickon) if($this->config->inQuickon) { $data = array(); + $config->system->dtable->backup->fieldList['name']['link'] = array('module' => 'system', 'method' => 'backupView', 'params' => 'name={id}'); + $config->system->dtable->backup->fieldList['name']['data-toggle'] = 'modal'; if(!empty($backups)) $data = initTableData($backups, $config->system->dtable->backup->fieldList, $this->system); foreach($data as &$backup) diff --git a/module/block/config.php b/module/block/config.php index 045d9000bc..c36e94dd4b 100644 --- a/module/block/config.php +++ b/module/block/config.php @@ -330,9 +330,11 @@ $config->block->size['scrumproject']['projectdynamic'] = array(1 => 8, 2 => 8); $config->block->size['waterfallproject']['waterfallgantt'] = array(2 => 8, 1 => 8); $config->block->size['waterfallproject']['projectdynamic'] = array(1 => 8, 2 => 8); -$config->block->size['agileplusproject'] = $config->block->size['scrumproject']; -$config->block->size['waterfallplusproject'] = $config->block->size['waterfallproject']; -$config->block->size['ipdproject'] = $config->block->size['waterfallproject']; +/* 旗舰版和IPD版本,敏捷项目和瀑布项目都新增了区块,融合敏捷项目的区块和敏捷项目的区块保持一致,融合瀑布项目和IPD项目的区块和瀑布项目的区块保持一致 。*/ +/* In the max and IPD versions, new blocks are added for scrum project and waterfall project. The blocks for agile plus project are consistent with scrum project, and the blocks for waterfall plus and IPD project are consistent with waterfall project. */ +$config->block->size['agileplusproject'] = &$config->block->size['scrumproject']; +$config->block->size['waterfallplusproject'] = &$config->block->size['waterfallproject']; +$config->block->size['ipdproject'] = &$config->block->size['waterfallproject']; $config->block->size['execution']['overview'] = array(1 => 3); $config->block->size['execution']['statistic'] = array(2 => 5, 1 => 8); diff --git a/module/block/js/dashboard.ui.js b/module/block/js/dashboard.ui.js index 56531ae7a8..71cd6798de 100644 --- a/module/block/js/dashboard.ui.js +++ b/module/block/js/dashboard.ui.js @@ -1,6 +1,7 @@ $(function() { if($('#expiredModal').length) zui.Modal.open({id: 'expiredModal'}); + if($('#metriclibModal').length) zui.Modal.open({id: 'metriclibModal'}); if($('#annualModal').length) zui.Modal.open({id: 'annualModal'}); if($('#upgradeModal').length) zui.Modal.open({id: 'upgradeModal'}); }); diff --git a/module/block/ui/dashboard.html.php b/module/block/ui/dashboard.html.php index 97bbb72c47..d67df062d5 100644 --- a/module/block/ui/dashboard.html.php +++ b/module/block/ui/dashboard.html.php @@ -50,6 +50,13 @@ $remind ? modal html($remind) ) : null; +$metriclibRemind = $this->misc->getMetriclibRemind(); +$metriclibRemind ? modal +( + setID('metriclibModal'), + html($metriclibRemind) +) : null; + $upgradeRemind = $this->misc->getUpgradeRemind(); if($upgradeRemind) { diff --git a/module/block/zen.php b/module/block/zen.php index 9dd280fdad..55a16cb3c6 100644 --- a/module/block/zen.php +++ b/module/block/zen.php @@ -2471,7 +2471,7 @@ class blockZen extends block $involveds = $this->product->getOrderedProducts('involved', 0, 0, 'all'); $productIdList = array_merge(array_keys($products), array_keys($involveds)); - $stmt = $this->dao->select('id,product,lib,title,type,addedBy,addedDate,editedDate,status,acl,groups,readGroups,users,readUsers,deleted')->from(TABLE_DOC)->alias('t1') + $stmt = $this->dao->select('id,product,lib,title,type,addedBy,addedDate,editedDate,status,acl,`groups`,readGroups,users,readUsers,deleted')->from(TABLE_DOC)->alias('t1') ->where('deleted')->eq(0) ->andWhere('product')->in($productIdList) ->beginIF($this->config->doc->notArticleType)->andWhere('t1.type')->notIN($this->config->doc->notArticleType)->fi() @@ -3499,7 +3499,7 @@ class blockZen extends block * @access protected * @return object */ - protected function buildProjectStatistic(object $project, array $data, object $pager = null): object + protected function buildProjectStatistic(object $project, array $data, ?object $pager = null): object { extract($data); $projectID = $project->id; diff --git a/module/branch/model.php b/module/branch/model.php index e59615cea0..35965d036a 100644 --- a/module/branch/model.php +++ b/module/branch/model.php @@ -53,7 +53,7 @@ class branchModel extends model * @access public * @return array */ - public function getList(int $productID, int $executionID = 0, string $browseType = 'active', string $orderBy = 'order', object|null $pager = null, bool $withMainBranch = true): array + public function getList(int $productID, int $executionID = 0, string $browseType = 'active', string $orderBy = 'order', ?object $pager = null, bool $withMainBranch = true): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getBranches(); diff --git a/module/branch/test/lib/manage.ui.class.php b/module/branch/test/lib/manage.ui.class.php index 8cbe205486..0a123d1cff 100644 --- a/module/branch/test/lib/manage.ui.class.php +++ b/module/branch/test/lib/manage.ui.class.php @@ -34,12 +34,17 @@ class manageTester extends tester { $managePage = $this->initForm('branch', 'manage', $productID, 'appIframe-product'); $managePage->dom->allTab->click(); + $managePage->wait(2); $managePage->dom->closeBtn->click(); - $managePage->wait(1); + $managePage->wait(2); $managePage->dom->confirmBtn->click(); - $managePage->wait(1); + $managePage->wait(2); + $managePage->dom->allTab->click(); + $managePage->wait(2); $status = $managePage->dom->secStatus->getText(); - return ($status == $this->lang->branch->statusList->closed) ? $this->success("关闭分支成功") : $this->failed("关闭分支失败"); + return ($status == $this->lang->branch->statusList->closed) + ? $this->success("关闭分支成功") + : $this->failed("关闭分支失败"); } /** @@ -53,11 +58,16 @@ class manageTester extends tester { $managePage = $this->initForm('branch', 'manage', $productID, 'appIframe-product'); $managePage->dom->allTab->click(); + $managePage->wait(2); $managePage->dom->activateBtn->click(); - $managePage->wait(1); + $managePage->wait(2); $managePage->dom->confirmBtn->click(); - $managePage->wait(1); + $managePage->wait(2); + $managePage->dom->allTab->click(); + $managePage->wait(2); $status = $managePage->dom->secStatus->getText(); - return ($status == $this->lang->branch->statusList->active) ? $this->success("激活分支成功") : $this->failed("激活分支失败"); + return ($status == $this->lang->branch->statusList->active) + ? $this->success("激活分支成功") + : $this->failed("激活分支失败"); } } diff --git a/module/bug/model.php b/module/bug/model.php index e2056240f9..d559b4ca29 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -97,7 +97,7 @@ class bugModel extends model * @access public * @return array */ - public function getList(string $browseType, array $productIdList, int $projectID, array $executionIdList, int|string $branch = 'all', int $moduleID = 0, int $queryID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $browseType, array $productIdList, int $projectID, array $executionIdList, int|string $branch = 'all', int $moduleID = 0, int $queryID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { if($browseType == 'bymodule' && $this->session->bugBrowseType && $this->session->bugBrowseType != 'bysearch') $browseType = $this->session->bugBrowseType; @@ -125,7 +125,7 @@ class bugModel extends model * @access public * @return array */ - public function getPlanBugs(int $planID, string $status = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function getPlanBugs(int $planID, string $status = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return array(); @@ -216,7 +216,7 @@ class bugModel extends model * @access public * @return array */ - public function getActiveBugs(array|int $products, int|string $branch, string $executions, array $excludeBugs, object $pager = null, string $orderBy = 'id desc'): array + public function getActiveBugs(array|int $products, int|string $branch, string $executions, array $excludeBugs, ?object $pager = null, string $orderBy = 'id desc'): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getBugs(); @@ -244,7 +244,7 @@ class bugModel extends model * @access public * @return array */ - public function getActiveAndPostponedBugs(array $products, int $executionID, object $pager = null): array + public function getActiveAndPostponedBugs(array $products, int $executionID, ?object $pager = null): array { return $this->dao->select('t1.*')->from(TABLE_BUG)->alias('t1') ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.product = t2.product') @@ -670,7 +670,7 @@ class bugModel extends model * @access public * @return array */ - public function getBugs2Link(int $bugID, bool $bySearch = false, string $excludeBugs = '', int $queryID = 0, object $pager = null): array + public function getBugs2Link(int $bugID, bool $bySearch = false, string $excludeBugs = '', int $queryID = 0, ?object $pager = null): array { $bug = $this->getByID($bugID); @@ -861,7 +861,7 @@ class bugModel extends model * @access public * @return array */ - public function getUserBugs(string $account, string $type = 'assignedTo', string $orderBy = 'id_desc', int $limit = 0, object $pager = null, int $executionID = 0, int $queryID = 0): array + public function getUserBugs(string $account, string $type = 'assignedTo', string $orderBy = 'id_desc', int $limit = 0, ?object $pager = null, int $executionID = 0, int $queryID = 0): array { if($type != 'bySearch' and !$this->loadModel('common')->checkField(TABLE_BUG, $type)) return array(); @@ -974,7 +974,7 @@ class bugModel extends model * @access public * @return array */ - public function getProjectBugs(int $projectID, int $productID = 0, int|string $branchID = 0, int $build = 0, string $type = '', int $param = 0, string $orderBy = 'id_desc', string $excludeBugs = '', object $pager = null): array + public function getProjectBugs(int $projectID, int $productID = 0, int|string $branchID = 0, int $build = 0, string $type = '', int $param = 0, string $orderBy = 'id_desc', string $excludeBugs = '', ?object $pager = null): array { if(strpos($orderBy, 'pri_') !== false) $orderBy = str_replace('pri_', 'priOrder_', $orderBy); if(strpos($orderBy, 'severity_') !== false) $orderBy = str_replace('severity_', 'severityOrder_', $orderBy); @@ -1026,7 +1026,7 @@ class bugModel extends model * @access public * @return array */ - public function getExecutionBugs(int $executionID, int $productID = 0, string|int $branchID = 'all', string|array $builds = '0', string $type = '', int $param = 0, string $orderBy = 'id_desc', string $excludeBugs = '', object $pager = null): array + public function getExecutionBugs(int $executionID, int $productID = 0, string|int $branchID = 'all', string|array $builds = '0', string $type = '', int $param = 0, string $orderBy = 'id_desc', string $excludeBugs = '', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getBugs(); @@ -1088,7 +1088,7 @@ class bugModel extends model * @access public * @return array|null */ - public function getProductLeftBugs(array $buildIdList, int $productID, int|string $branch = '', string $linkedBugs = '', object $pager = null): array|null + public function getProductLeftBugs(array $buildIdList, int $productID, int|string $branch = '', string $linkedBugs = '', ?object $pager = null): array|null { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getBugs(); @@ -1202,7 +1202,7 @@ class bugModel extends model * @access public * @return array */ - public function getReleaseBugs(array $buildIdList, int $productID, int|string $branch = 0, string $linkedBugs = '', object $pager = null): array + public function getReleaseBugs(array $buildIdList, int $productID, int|string $branch = 0, string $linkedBugs = '', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getBugs(); @@ -2143,7 +2143,7 @@ class bugModel extends model * @access public * @return array */ - public function getBySearch(string $object = 'bug', array|int $productIdList = array(), int|string $branch = 0, int $projectID = 0, int $executionID = 0, int $queryID = 0, string $excludeBugs = '', string $orderBy = '', object $pager = null): array + public function getBySearch(string $object = 'bug', array|int $productIdList = array(), int|string $branch = 0, int $projectID = 0, int $executionID = 0, int $queryID = 0, string $excludeBugs = '', string $orderBy = '', ?object $pager = null): array { $bugQuery = $this->processSearchQuery($object, $queryID, $productIdList, (string)$branch); diff --git a/module/bug/tao.php b/module/bug/tao.php index 2e8da927cc..e1f2dbef43 100644 --- a/module/bug/tao.php +++ b/module/bug/tao.php @@ -38,7 +38,7 @@ class bugTao extends bugModel * @access protected * @return array */ - protected function getListByBrowseType(string $browseType, array $productIdList, int $projectID, array $executionIdList, int|string $branch, array $moduleIdList, int $queryID, string $orderBy, object $pager = null): array + protected function getListByBrowseType(string $browseType, array $productIdList, int $projectID, array $executionIdList, int|string $branch, array $moduleIdList, int $queryID, string $orderBy, ?object $pager = null): array { $browseType = strtolower($browseType); @@ -112,7 +112,7 @@ class bugTao extends bugModel * @access protected * @return array */ - protected function getNeedConfirmList(array $productIdList, int $projectID, array $executionIdList, int|string $branch, array $moduleIdList, string $orderBy, object $pager = null): array + protected function getNeedConfirmList(array $productIdList, int $projectID, array $executionIdList, int|string $branch, array $moduleIdList, string $orderBy, ?object $pager = null): array { return $this->dao->select("t1.*, t2.title AS storyTitle, IF(t1.`pri` = 0, {$this->config->maxPriValue}, t1.`pri`) AS priOrder, IF(t1.`severity` = 0, {$this->config->maxPriValue}, t1.`severity`) AS severityOrder")->from(TABLE_BUG)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id') diff --git a/module/bug/test/lib/bug.unittest.class.php b/module/bug/test/lib/bug.unittest.class.php index 78c32af05a..31f0701a12 100644 --- a/module/bug/test/lib/bug.unittest.class.php +++ b/module/bug/test/lib/bug.unittest.class.php @@ -1411,10 +1411,11 @@ class bugTest */ public function getActivatedBugsTest(string $productIdList, string $begin = '', string $end = '', string $buildIdList = ''): string { - if($begin == 'lastweek') $begin = date('Y-m-d', strtotime('-7 days')); - if($begin == 'lastmonth') $begin = date('Y-m-d', strtotime('-30 days')); - if($end == 'nextweek') $end = date('Y-m-d', strtotime('+7 days')); - if($end == 'nextmonth') $end = date('Y-m-d', strtotime('+30 days')); + $date = '2025-05-01'; + if($begin == 'lastweek') $begin = date('Y-m-d', strtotime($date . '-7 days')); + if($begin == 'lastmonth') $begin = date('Y-m-d', strtotime($date . '-30 days')); + if($end == 'nextweek') $end = date('Y-m-d', strtotime($date . '+7 days')); + if($end == 'nextmonth') $end = date('Y-m-d', strtotime($date . '+30 days')); $bugs = $this->objectModel->getActivatedBugs(explode(',', $productIdList), $begin, $end, explode(',', $buildIdList)); if(dao::isError()) return dao::getError(); return implode(',', array_column($bugs, 'id')); diff --git a/module/bug/test/model/getactivatedbugs.php b/module/bug/test/model/getactivatedbugs.php index a419c47f58..f060a9f1ad 100755 --- a/module/bug/test/model/getactivatedbugs.php +++ b/module/bug/test/model/getactivatedbugs.php @@ -4,7 +4,9 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/bug.unittest.class.php'; zenData('bug')->gen(30); -zenData('action')->loadYaml('action')->gen(100); +$action = zenData('action')->loadYaml('action'); +$action->date->range("20250401 000000-20250601 000000:1D")->type('timestamp')->format('YY-MM-DD hh:mm:ss'); +$action->gen(100); zenData('history')->loadYaml('history')->gen(100); zenData('user')->gen(1); @@ -16,10 +18,10 @@ title=bugModel->getActivatedBugs(); timeout=0 cid=1 -- 测试获取产品 1 2 3 类型 空 开始日期 上月 结束日期 下月 的bug @2,5,6,9 +- 测试获取产品 1 2 3 类型 空 开始日期 上月 结束日期 下月 的bug @1,2,5,6,9 - 测试获取产品 1 2 3 类型 空 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 1 2 3 类型 resolved 开始日期 上月 结束日期 下月 的bug @5,6,9 +- 测试获取产品 1 2 3 类型 resolved 开始日期 上月 结束日期 下月 的bug @1,5,6,9 - 测试获取产品 1 2 3 类型 resolved 开始日期 上周 结束日期 下周 的bug @0 - 测试获取产品 1 2 3 类型 opened 开始日期 上月 结束日期 下月 的bug @2,5,6,9 @@ -62,9 +64,9 @@ $buildIdList = array('1,0,trunk', '1,trunk', '0,trunk'); $bug = new bugTest(); -r($bug->getActivatedBugsTest($productIdList[0], $beginList[0], $endList[0], $buildIdList[0])) && p() && e('2,5,6,9'); // 测试获取产品 1 2 3 类型 空 开始日期 上月 结束日期 下月 的bug +r($bug->getActivatedBugsTest($productIdList[0], $beginList[0], $endList[0], $buildIdList[0])) && p() && e('1,2,5,6,9'); // 测试获取产品 1 2 3 类型 空 开始日期 上月 结束日期 下月 的bug r($bug->getActivatedBugsTest($productIdList[0], $beginList[1], $endList[1], $buildIdList[0])) && p() && e('0'); // 测试获取产品 1 2 3 类型 空 开始日期 上周 结束日期 下周 的bug -r($bug->getActivatedBugsTest($productIdList[0], $beginList[0], $endList[0], $buildIdList[1])) && p() && e('5,6,9'); // 测试获取产品 1 2 3 类型 resolved 开始日期 上月 结束日期 下月 的bug +r($bug->getActivatedBugsTest($productIdList[0], $beginList[0], $endList[0], $buildIdList[1])) && p() && e('1,5,6,9'); // 测试获取产品 1 2 3 类型 resolved 开始日期 上月 结束日期 下月 的bug r($bug->getActivatedBugsTest($productIdList[0], $beginList[1], $endList[1], $buildIdList[1])) && p() && e('0'); // 测试获取产品 1 2 3 类型 resolved 开始日期 上周 结束日期 下周 的bug r($bug->getActivatedBugsTest($productIdList[0], $beginList[0], $endList[0], $buildIdList[2])) && p() && e('2,5,6,9'); // 测试获取产品 1 2 3 类型 opened 开始日期 上月 结束日期 下月 的bug r($bug->getActivatedBugsTest($productIdList[0], $beginList[1], $endList[1], $buildIdList[2])) && p() && e('0'); // 测试获取产品 1 2 3 类型 opened 开始日期 上周 结束日期 下周 的bug diff --git a/module/bug/test/model/getactivebugs.php b/module/bug/test/model/getactivebugs.php index fe449793ba..515aeab0a5 100755 --- a/module/bug/test/model/getactivebugs.php +++ b/module/bug/test/model/getactivebugs.php @@ -15,42 +15,27 @@ title=bugModel->getActiveBugs(); timeout=0 cid=1 -- 测试获取产品 1 2 3 类型 空 开始日期 上月 结束日期 下月 的bug @2,5,6,9 +- 查询产品1 2 3 不存在的产品1000001下 且不排除bug的bug @BUG9,bug8,缺陷!()(){}|+=%^&*$#测试bug名称到底可以有多长!#¥%&*":.<>。?/();7,BUG6,BUG5,BUG4,BUG3,BUG2,BUG1 -- 测试获取产品 1 2 3 类型 空 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 1 2 3 类型 resolved 开始日期 上月 结束日期 下月 的bug @5,6,9 +- 查询产品1 2 3 不存在的产品1000001下 且排除bug2的bug @BUG9,bug8,缺陷!()(){}|+=%^&*$#测试bug名称到底可以有多长!#¥%&*":.<>。?/();7,BUG6,BUG5,BUG4,BUG3,BUG1 -- 测试获取产品 1 2 3 类型 resolved 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 1 2 3 类型 opened 开始日期 上月 结束日期 下月 的bug @2,5,6,9 +- 查询产品1 2 3 不存在的产品1000001下 且排除bug3 8的bug @BUG9,缺陷!()(){}|+=%^&*$#测试bug名称到底可以有多长!#¥%&*":.<>。?/();7,BUG6,BUG5,BUG4,BUG2,BUG1 -- 测试获取产品 1 2 3 类型 opened 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 4 5 6 类型 空 开始日期 上月 结束日期 下月 的bug @10,13,14,17,18 +- 查询产品1 3下 且不排除bug的bug @BUG9,bug8,缺陷!()(){}|+=%^&*$#测试bug名称到底可以有多长!#¥%&*":.<>。?/();7,BUG3,BUG2,BUG1 -- 测试获取产品 4 5 6 类型 空 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 4 5 6 类型 resolved 开始日期 上月 结束日期 下月 的bug @10,13,14,17,18 +- 查询产品1 3下 且排除bug2的bug @BUG9,bug8,缺陷!()(){}|+=%^&*$#测试bug名称到底可以有多长!#¥%&*":.<>。?/();7,BUG3,BUG1 -- 测试获取产品 4 5 6 类型 resolved 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 4 5 6 类型 opened 开始日期 上月 结束日期 下月 的bug @10,13,14,17,18 +- 查询产品1 3下 且排除bug3 8的bug @BUG9,缺陷!()(){}|+=%^&*$#测试bug名称到底可以有多长!#¥%&*":.<>。?/();7,BUG2,BUG1 -- 测试获取产品 4 5 6 类型 opened 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 7 8 9 类型 空 开始日期 上月 结束日期 下月 的bug @21,22,25,26 +- 查询产品1下 且不排除bug的bug @BUG3,BUG2,BUG1 -- 测试获取产品 7 8 9 类型 空 开始日期 上周 结束日期 下周 的bug @25,26 +- 查询产品1下 且排除bug2的bug @BUG3,BUG1 -- 测试获取产品 7 8 9 类型 resolved 开始日期 上月 结束日期 下月 的bug @21,22,25,26 +- 查询产品1下 且排除bug3 8的bug @BUG2,BUG1 -- 测试获取产品 7 8 9 类型 resolved 开始日期 上周 结束日期 下周 的bug @25,26 - -- 测试获取产品 7 8 9 类型 opened 开始日期 上月 结束日期 下月 的bug @21,22,25,26 - -- 测试获取产品 7 8 9 类型 opened 开始日期 上周 结束日期 下周 的bug @25,26 - -- 测试获取产品 空 类型 空 开始日期 上月 结束日期 下月 的bug @0 -- 测试获取产品 空 类型 空 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 空 类型 resolved 开始日期 上月 结束日期 下月 的bug @0 -- 测试获取产品 空 类型 resolved 开始日期 上周 结束日期 下周 的bug @0 -- 测试获取产品 空 类型 opened 开始日期 上月 结束日期 下月 的bug @0 -- 测试获取产品 空 类型 opened 开始日期 上周 结束日期 下周 的bug @0 +- 查询不存在的产品1000001下 且不排除bug的bug @0 +- 查询不存在的产品1000001下 且排除bug2的bug @0 +- 查询不存在的产品1000001下 且排除bug3 8的bug @0 */ diff --git a/module/bug/zen.php b/module/bug/zen.php index 4fb37b1baf..d73f63c385 100644 --- a/module/bug/zen.php +++ b/module/bug/zen.php @@ -1241,7 +1241,7 @@ class bugZen extends bug if($bug->assignedTo && !isset($assignedToList[$bug->assignedTo]) && $bug->assignedTo != 'closed') { $assignedTo = $this->user->getById($bug->assignedTo); - $assignedToList[$bug->assignedTo] = $assignedTo->realname; + $assignedToList[$bug->assignedTo] = isset($assignedTo->realname) ? $assignedTo->realname : $bug->assignedTo; } if($bug->status == 'closed') $assignedToList['closed'] = 'Closed'; diff --git a/module/build/model.php b/module/build/model.php index 0db88c17a4..bdfce7dbf1 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -74,7 +74,7 @@ class buildModel extends model * @access public * @return array */ - public function getProjectBuilds(int $projectID = 0, string $type = 'all', string $param = '', string $orderBy = 't1.date_desc,t1.id_desc', object $pager = null): array + public function getProjectBuilds(int $projectID = 0, string $type = 'all', string $param = '', string $orderBy = 't1.date_desc,t1.id_desc', ?object $pager = null): array { $shadows = $this->dao->select('shadow')->from(TABLE_RELEASE)->where("FIND_IN_SET({$projectID}, project)")->fetchPairs('shadow', 'shadow'); $builds = $this->dao->select('t1.*, t2.name as productName') @@ -129,7 +129,7 @@ class buildModel extends model * @access public * @return array */ - public function getProjectBuildsBySearch(int $projectID, int $queryID, string $orderBy = 't1.date_desc,t1.id_desc', object $pager = null): array + public function getProjectBuildsBySearch(int $projectID, int $queryID, string $orderBy = 't1.date_desc,t1.id_desc', ?object $pager = null): array { /* If there are saved query conditions, reset the session. */ if((int)$queryID) @@ -170,7 +170,7 @@ class buildModel extends model * @access public * @return array */ - public function getExecutionBuilds(int $executionID, string $type = '', string $param = '', string $orderBy = 't1.date_desc,t1.id_desc', object $pager = null): array + public function getExecutionBuilds(int $executionID, string $type = '', string $param = '', string $orderBy = 't1.date_desc,t1.id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getBuilds(); @@ -198,7 +198,7 @@ class buildModel extends model * @access public * @return object[] */ - public function getExecutionBuildsBySearch(int $executionID, int $queryID, object $pager = null): array + public function getExecutionBuildsBySearch(int $executionID, int $queryID, ?object $pager = null): array { /* If there are saved query conditions, reset the session. */ if($queryID) @@ -896,7 +896,7 @@ class buildModel extends model * @access public * @return array */ - public function getBugList(string $bugIdList, string $orderBy = '', object $pager = null): array + public function getBugList(string $bugIdList, string $orderBy = '', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_BUG) ->where('id')->in($bugIdList) @@ -916,7 +916,7 @@ class buildModel extends model * @access public * @return array */ - public function getStoryList(string $storyIdList, int $branch = 0, string $orderBy = '', object $pager = null): array + public function getStoryList(string $storyIdList, int $branch = 0, string $orderBy = '', ?object $pager = null): array { $stories = $this->dao->select("*, IF(`pri` = 0, {$this->config->maxPriValue}, `pri`) as priOrder")->from(TABLE_STORY) ->where('id')->in($storyIdList) diff --git a/module/caselib/model.php b/module/caselib/model.php index 52cfa33db2..d1c0d0e8fd 100644 --- a/module/caselib/model.php +++ b/module/caselib/model.php @@ -152,7 +152,7 @@ class caselibModel extends model * @access public * @return array */ - public function getList(string $type = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $type = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_TESTSUITE) ->where('product')->eq(0) @@ -174,7 +174,7 @@ class caselibModel extends model * @access public * @return array */ - public function getPairs(string $type = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function getPairs(string $type = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('id,name')->from(TABLE_TESTSUITE) ->where('product')->eq(0) @@ -227,7 +227,7 @@ class caselibModel extends model * @access public * @return array */ - public function getLibCases(int $libID, string $browseType, int $queryID = 0, int $moduleID = 0, string $sort = 'id_desc', object $pager = null, string $from = 'qa'): array + public function getLibCases(int $libID, string $browseType, int $queryID = 0, int $moduleID = 0, string $sort = 'id_desc', ?object $pager = null, string $from = 'qa'): array { $browseType = $browseType == 'bymodule' && $this->session->libBrowseType && $this->session->libBrowseType != 'bysearch' ? $this->session->libBrowseType : $browseType; diff --git a/module/cne/model.php b/module/cne/model.php index b3290746ac..ae4857bd15 100644 --- a/module/cne/model.php +++ b/module/cne/model.php @@ -47,7 +47,7 @@ class cneModel extends model * @access public * @return bool */ - public function updateConfig(object $instance, object $settings = null): bool + public function updateConfig(object $instance, ?object $settings = null): bool { $apiParams = array(); $apiParams['cluster'] = ''; @@ -1136,4 +1136,26 @@ class cneModel extends model $apiUrl = "/api/cne/system/update"; return $this->apiPost($apiUrl, $apiParams, $this->config->CNE->api->headers); } + + /** + * 获取备份的详细信息。 + * Get backup detail. + * + * @param object $instance + * @param string $backupName + * @access public + * @return object|false + */ + public function backupDetail(object $instance, string $backupName): object|false + { + if(empty($instance->k8name) || empty($instance->spaceData)) return false; + + $apiUrl = "/api/cne/app/backup/detail"; + $apiParams = array('name' => $instance->k8name, 'namespace' => $instance->spaceData->k8space, 'backup_name' => $backupName); + + $result = $this->apiGet($apiUrl, $apiParams, $this->config->CNE->api->headers); + if(empty($result) || $result->code != 200 || empty($result->data)) return false; + + return $result->data; + } } diff --git a/module/cne/test/lib/cne.unittest.class.php b/module/cne/test/lib/cne.unittest.class.php index 5383eeb126..9c4d5ac997 100755 --- a/module/cne/test/lib/cne.unittest.class.php +++ b/module/cne/test/lib/cne.unittest.class.php @@ -382,4 +382,27 @@ class cneTest { return $this->objectModel->tryAllocate($resources); } + + /** + * Test backupDetail method. + * + * @param object $instance + * @param int $count + * @access public + * @return object|bool|string + */ + public function backupDetailTest(object $instance, int $count): object|bool|string + { + $name = ''; + if($count > 0) + { + $backupList = $this->objectModel->getBackupList($instance); + if(empty($backupList->data)) return false; + if(!empty($backupList->data[$count - 1]->name)) $name = $backupList->data[$count - 1]->name; + } + $result = $this->objectModel->backupDetail($instance, $name); + if(!$result) return $result; + if(!empty($result->message)) return $result->message; + return $result->backup_details; + } } diff --git a/module/cne/test/model/backupdetail.php b/module/cne/test/model/backupdetail.php new file mode 100755 index 0000000000..d94eb4bfd3 --- /dev/null +++ b/module/cne/test/model/backupdetail.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +backupDetail(); +timeout=0 +cid=1 + +- 空的数据 @0 +- 错误的空间 @0 +- 备份的数据库 + - 第0条的db_type属性 @mysql + - 第0条的status属性 @completed +- 备份的数据 + - 第0条的volume属性 @data + - 第0条的status属性 @completed + +*/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/lib/cne.unittest.class.php'; + +$cneModel = new cneTest(); + +$instance = new stdClass(); +r($cneModel->backupDetailTest($instance, 0)) && p() && e('0'); // 空的数据 + +$instance->spaceData = new stdClass(); +$instance->spaceData->k8space = ''; +r($cneModel->backupDetailTest($instance, 0)) && p() && e('0'); // 错误的空间 + +$instance->spaceData->k8space = 'quickon-system'; +$instance->k8name = 'zentaopaas'; + +r($cneModel->backupDetailTest($instance, 1)->db) && p('0:db_type,status') && e('mysql,completed'); // 备份的数据库 +r($cneModel->backupDetailTest($instance, 2)->volume) && p('0:volume,status') && e('data,completed'); // 备份的数据 diff --git a/module/cne/test/model/certinfo.php b/module/cne/test/model/certinfo.php index a75c953876..c7b29c3f2d 100755 --- a/module/cne/test/model/certinfo.php +++ b/module/cne/test/model/certinfo.php @@ -25,4 +25,4 @@ $certName = 'fail-name'; r($cneModel->certInfoTest($certName)) && p() && e('0'); // 证书名称错误 $certName = 'tls-haogs-cn'; -r($cneModel->certInfoTest($certName)) && p('sans:0') && e('*.devops.corp.cc'); // 证书名称正确 +r($cneModel->certInfoTest($certName)) && p('sans:0') && e('devops.corp.cc'); // 证书名称正确 diff --git a/module/common/model.php b/module/common/model.php index ec6015c06b..9c5b32191a 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -347,7 +347,7 @@ class commonModel extends model */ public function setApproval() { - $this->config->openedApproval = (in_array($this->config->edition, array('biz', 'max', 'ipd'))) && ($this->config->vision == 'rnd'); + $this->config->openedApproval = in_array($this->config->edition, array('biz', 'max', 'ipd')) && $this->config->vision != 'lite'; } /** @@ -1303,7 +1303,7 @@ eof; * @access public * @return bool */ - public static function hasPriv(string $module, string $method, mixed $object = null, string $vars = '') + public static function hasPriv(string $module, string $method, $object = null, string $vars = '') { /* If the user is doing a tutorial, have all privileges. */ if(commonModel::isTutorialMode()) return true; @@ -1347,7 +1347,7 @@ eof; * @access public * @return bool */ - public static function getUserPriv(string $module, string $method, mixed $object = null, string $vars = ''): bool + public static function getUserPriv(string $module, string $method, $object = null, string $vars = ''): bool { global $app,$config; $module = strtolower($module); @@ -1846,7 +1846,7 @@ eof; * @access public * @return bool */ - public static function canBeChanged(string $module, mixed $object = null): bool + public static function canBeChanged(string $module, $object = null): bool { if(defined('RUN_MODE') && RUN_MODE == 'api') return true; @@ -1980,7 +1980,7 @@ eof; * @access public * @return string|array|bool */ - public static function http(string $url, string|array|object|null $data = null, array $options = array(), array $headers = array(), string $dataType = 'data', string $method = 'POST', int $timeout = 30, bool $httpCode = false, bool $log = true): string|array|bool + public static function http(string $url, mixed $data = null, array $options = array(), array $headers = array(), string $dataType = 'data', string $method = 'POST', int $timeout = 30, bool $httpCode = false, bool $log = true): string|array|bool { global $lang, $app; @@ -2469,7 +2469,7 @@ eof; * @access public * @return void */ - public static function buildActionItem(string $module, string $method, string $params, object|null $object = null, array $attrs = array()): array + public static function buildActionItem(string $module, string $method, string $params, ?object $object = null, array $attrs = array()): array { if(!commonModel::hasPriv($module, $method, $object)) return array(); @@ -3819,7 +3819,7 @@ eof; * @access public * @return mixed */ - public static function printCommentIcon(string $commentFormLink, object $object = null) + public static function printCommentIcon(string $commentFormLink, ?object $object = null) { global $lang; diff --git a/module/common/test/model/setapproval.php b/module/common/test/model/setapproval.php index 9621cae7ed..6c28d2fc4c 100755 --- a/module/common/test/model/setapproval.php +++ b/module/common/test/model/setapproval.php @@ -14,7 +14,8 @@ cid=1 - 查看企业版是否开启了审批流程 @1 - 查看旗舰版是否开启了审批流程 @1 - 查看IPD版本是否开启了审批流程 @1 -- 查看OR界面下的IPD版本是否开启了审批流程 @0 +- 查看OR界面下的IPD版本是否开启了审批流程 @1 +- 查看运营界面下的IPD版本是否开启了审批流程 @0 */ @@ -38,4 +39,9 @@ r($config->openedApproval) && p('') && e('1'); // 查看IPD版本是否开启了 $config->vision = 'or'; $config->edition = 'ipd'; $tester->loadModel('common')->setApproval(); -r($config->openedApproval) && p('') && e('0'); // 查看OR界面下的IPD版本是否开启了审批流程 +r($config->openedApproval) && p('') && e('1'); // 查看OR界面下的IPD版本是否开启了审批流程 + +$config->vision = 'lite'; +$config->edition = 'ipd'; +$tester->loadModel('common')->setApproval(); +r($config->openedApproval) && p('') && e('0'); // 查看运营界面下的IPD版本是否开启了审批流程 diff --git a/module/company/model.php b/module/company/model.php index 9121d1ec0e..0362d53510 100644 --- a/module/company/model.php +++ b/module/company/model.php @@ -51,7 +51,7 @@ class companyModel extends model * @access public * @return array */ - public function getUsers(string $browseType = 'inside', string $type = '', string|int $queryID = 0, int $deptID = 0, string $sort = '', object $pager = null): array + public function getUsers(string $browseType = 'inside', string $type = '', string|int $queryID = 0, int $deptID = 0, string $sort = '', ?object $pager = null): array { if($type == 'bydept') { diff --git a/module/compile/model.php b/module/compile/model.php index 80c1c72a6f..8d9f078ab2 100644 --- a/module/compile/model.php +++ b/module/compile/model.php @@ -54,7 +54,7 @@ class compileModel extends model * @access public * @return array */ - public function getList(int $repoID, int $jobID, string $browseType = '', int $queryID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(int $repoID, int $jobID, string $browseType = '', int $queryID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $compileQuery = ''; if($browseType == 'bySearch') diff --git a/module/custom/test/model/getformfields.php b/module/custom/test/model/getformfields.php index bb89122436..7b8b15395d 100755 --- a/module/custom/test/model/getformfields.php +++ b/module/custom/test/model/getformfields.php @@ -10,7 +10,7 @@ su('admin'); /** title=测试 customModel->getFormFields(); -timeout=1 +timeout=0 cid=1 - 测试moduleName值为product,method为空 @0 diff --git a/module/datatable/control.php b/module/datatable/control.php index a0d30c76c1..b28de93029 100644 --- a/module/datatable/control.php +++ b/module/datatable/control.php @@ -211,6 +211,12 @@ class datatable extends control if(!$execution->hasProduct) unset($cols['branch']); } + if($module == 'project' && $method == 'execution') + { + $project = $this->datatable->fetchByID($this->session->project, 'project'); + if(!empty($project->isTpl)) unset($cols['deliverable']); + } + if($extra == 'unsetStory' && isset($cols['story'])) unset($cols['story']); if($this->config->edition == 'ipd' && $module == 'product' && $method == 'browse' && $extra == 'story') unset($cols['roadmap']); diff --git a/module/datatable/test/model/getsetting.php b/module/datatable/test/model/getsetting.php index d3e29bd81e..68ec5c02f3 100755 --- a/module/datatable/test/model/getsetting.php +++ b/module/datatable/test/model/getsetting.php @@ -40,9 +40,17 @@ cid=1 */ -global $lang; -$lang->SRCommon = '研发需求'; -$lang->URCommon = '用户需求'; +global $lang, $app, $config; +$lang->SRCommon = '研发需求'; +$lang->URCommon = '用户需求'; +$config->edition = 'open'; +$app::$loadedLangs = array(); + +include($app->getModuleRoot() . '/story/control.php'); +$app->control = new story(); +$app->loadLang('custom'); +$app->control->loadModel('task'); +$app->control->loadModel('story'); $datatable = new datatableTest(); r($datatable->getSettingTest('product', 'browse')) && p('id:title;id:width;title:title;title:width') && e('ID,80,研发需求名称,0.44'); //获取产品模块browse方法自定义列 diff --git a/module/dataview/js/querybase.js b/module/dataview/js/querybase.js index 8a34875eeb..89f8f6a885 100644 --- a/module/dataview/js/querybase.js +++ b/module/dataview/js/querybase.js @@ -34,7 +34,7 @@ function query(callback) { $('.query').addClass('disabled'); $('#querying').removeClass('hidden'); var sql = $('#sql').val(); - sql = btoa(sql); + sql = latin1ToBase64(sql); $.post(createLink('dataview', 'ajaxQuery'), {sql: sql, driver: DataStorage.driver, filters: filters, recPerPage: DataStorage.recPerPage, pageID: DataStorage.pageID}, function(resp) { resp = JSON.parse(resp); diff --git a/module/dept/model.php b/module/dept/model.php index efa0ba2baf..7d39627ec8 100644 --- a/module/dept/model.php +++ b/module/dept/model.php @@ -335,7 +335,7 @@ class deptModel extends model * @access public * @return array */ - public function getUsers(string $browseType = 'inside', array $depts = array(), string $orderBy = 'id', object $pager = null): array + public function getUsers(string $browseType = 'inside', array $depts = array(), string $orderBy = 'id', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_USER) ->where('deleted')->eq(0) diff --git a/module/design/model.php b/module/design/model.php index 049227a0f0..6a9dd0c33d 100755 --- a/module/design/model.php +++ b/module/design/model.php @@ -91,7 +91,7 @@ class designModel extends model * @access public * @return bool|array */ - public function update(int $designID = 0, object $design = null): bool|array + public function update(int $designID = 0, ?object $design = null): bool|array { $oldDesign = $this->getByID($designID); if(!$oldDesign) return false; @@ -135,7 +135,7 @@ class designModel extends model * @access public * @return array|bool */ - public function assign(int $designID = 0, object $design = null): array|bool + public function assign(int $designID = 0, ?object $design = null): array|bool { $oldDesign = $this->getByID($designID); if(!$oldDesign) return false; @@ -302,7 +302,7 @@ class designModel extends model * @access public * @return object */ - public function getAffectedScope(object $design = null): object + public function getAffectedScope(?object $design = null): object { if(!isset($design->id)) return $design; @@ -329,7 +329,7 @@ class designModel extends model * @access public * @return object[] */ - public function getList(int|array $projectID = 0, int|array $productID = 0, string $type = 'all', int $param = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(int|array $projectID = 0, int|array $productID = 0, string $type = 'all', int $param = 0, string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getDesigns(); @@ -370,7 +370,7 @@ class designModel extends model * @access public * @return object|bool */ - public function getCommit(int $designID = 0, object $pager = null): object|bool + public function getCommit(int $designID = 0, ?object $pager = null): object|bool { $design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch(); if(!$design) return false; @@ -401,7 +401,7 @@ class designModel extends model * @access public * @return object[] */ - public function getBySearch(int $projectID = 0, int $productID = 0, int $queryID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getBySearch(int $projectID = 0, int $productID = 0, int $queryID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { if($queryID) { diff --git a/module/doc/control.php b/module/doc/control.php index f8b04dedd0..632c91b71d 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -368,6 +368,11 @@ class doc extends control { $this->app->loadLang('api'); + /* 项目模板下setMenu会修改common语言项,所以执行文档要先执行setAclForCreateLib。 */ + if($type != 'project') $this->docZen->setAclForCreateLib($type); + $this->doc->setMenuByType($type, (int)$objectID, (int)$libID); + if($type == 'project') $this->docZen->setAclForCreateLib($type); + if(!empty($_POST)) { $lib = $this->docZen->buildLibForCreateLib(); @@ -386,10 +391,10 @@ class doc extends control } $objects = array(); - if($type == 'project' && $this->app->tab == 'doc') + if($type == 'project') { - $this->view->executionPairs = $this->execution->getPairs($objectID, 'all', 'multiple,leaf,noprefix'); - $this->view->project = $this->project->getById($objectID); + $this->view->project = $this->project->getById($objectID); + if($this->app->tab == 'doc') $this->view->executionPairs = $this->execution->getPairs($objectID, 'all', 'multiple,leaf,noprefix'); } if($type == 'execution') @@ -397,6 +402,7 @@ class doc extends control $objects = $this->execution->getPairs(0, 'all', 'multiple,leaf,noprefix,withobject'); $execution = $this->execution->getByID($objectID); if($execution->type == 'stage') $this->lang->doc->execution = str_replace($this->lang->executionCommon, $this->lang->project->stage, $this->lang->doc->execution); + $this->view->execution = $this->doc->fetchByID($objectID, 'execution'); } if($type == 'custom' || $type == 'mine' || $type == 'doctemplate') @@ -406,8 +412,6 @@ class doc extends control $this->view->spaceID = !empty($lib->parent) ? $lib->parent : $objectID; } - $this->docZen->setAclForCreateLib($type); - $this->view->groups = $this->loadModel('group')->getPairs(); $this->view->users = $this->user->getPairs('nocode|noclosed'); $this->view->objects = $objects; @@ -456,6 +460,12 @@ class doc extends control { if(!common::hasPriv('doc', 'editSpace') && !common::hasPriv('doc', 'editLib')) return; $lib = $this->doc->getLibByID($libID); + + /* 项目模板下setMenu会修改common语言项,所以执行文档要先执行setAclForCreateLib。 */ + if($lib->type != 'project') $this->docZen->setAclForEditLib($lib); + $this->doc->setMenuByType($lib->type, (int)zget($lib, $lib->type, 0), (int)$libID); + if($lib->type == 'project') $this->docZen->setAclForEditLib($lib); + if(!empty($_POST)) { $this->lang->doc->name = $this->lang->nameAB; @@ -499,8 +509,6 @@ class doc extends control $this->view->object = $execution; } - $this->docZen->setAclForEditLib($lib); - $this->view->lib = $lib; $this->view->groups = $this->loadModel('group')->getPairs(); $this->view->users = $this->user->getPairs('noletter|noclosed', $lib->users); @@ -2208,6 +2216,7 @@ class doc extends control $this->doc->setMenuByType($type, $spaceID, $libID); $objectKey = $type . 'ID'; $this->view->$objectKey = $spaceID; + $this->view->$type = $this->doc->fetchByID($spaceID, $type); } if($type == 'mine') $menuType = 'my'; diff --git a/module/doc/model.php b/module/doc/model.php index f098864fac..797d7d9453 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -373,7 +373,7 @@ class docModel extends model * @access public * @return bool|int */ - public function createApiLib(object $formData = null): bool|int + public function createApiLib(?object $formData = null): bool|int { $this->app->loadLang('api'); @@ -411,7 +411,7 @@ class docModel extends model * @access public * @return array|false */ - public function updateApiLib(int $id, object $formData = null): array|bool + public function updateApiLib(int $id, ?object $formData = null): array|bool { $oldLib = $this->getLibByID($id); @@ -495,7 +495,7 @@ class docModel extends model * @access public * @return array */ - public function getDocsByBrowseType(string $browseType, int $queryID, int $moduleID, string $sort, object $pager = null) + public function getDocsByBrowseType(string $browseType, int $queryID, int $moduleID, string $sort, ?object $pager = null) { if($browseType == 'all') return $this->getDocs(0, 0, $browseType, $sort, $pager); @@ -558,7 +558,7 @@ class docModel extends model * @access public * @return array */ - public function getMyDocListBySearch(int $queryID, array $hasPrivDocIdList, array $allLibIDList, string $sort, object $pager = null): array + public function getMyDocListBySearch(int $queryID, array $hasPrivDocIdList, array $allLibIDList, string $sort, ?object $pager = null): array { if($queryID) { @@ -664,7 +664,7 @@ class docModel extends model * @access public * @return array */ - public function getDocTemplateList(int $libID = 0, string $type = 'all', string $orderBy = 'id_desc', object $pager = null, string $searchName = ''): array + public function getDocTemplateList(int $libID = 0, string $type = 'all', string $orderBy = 'id_desc', ?object $pager = null, string $searchName = ''): array { return $this->dao->select('*')->from(TABLE_DOC) ->where('templateType')->ne('') @@ -725,7 +725,7 @@ class docModel extends model * @access public * @return array */ - public function getDocs(int $libID, int $moduleID, string $browseType, string $orderBy, object $pager = null): array + public function getDocs(int $libID, int $moduleID, string $browseType, string $orderBy, ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getDocs(); @@ -915,7 +915,7 @@ class docModel extends model * @access public * @return array */ - public function getMineList(string $type, string $browseType, int $queryID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getMineList(string $type, string $browseType, int $queryID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $query = ''; if($browseType == 'bysearch') @@ -978,7 +978,7 @@ class docModel extends model * @access public * @return array */ - public function getMySpaceDocs(string $type, string $browseType, string $query = '', string $orderBy = 'id_desc', object $pager = null, string $appendDocs = '', string $filterDocs = ''): 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('all', 'view', 'collect', 'createdby', 'editedby'))) return array(); @@ -2421,7 +2421,7 @@ class docModel extends model * @access public * @return array */ - public function getLibFiles(string $type, int $objectID, string $browseType = '', int $param = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getLibFiles(string $type, int $objectID, string $browseType = '', int $param = 0, string $orderBy = 'id_desc', ?object $pager = null): array { if(!in_array($type, array('execution', 'project', 'product'))) return array(); @@ -3064,7 +3064,7 @@ class docModel extends model * @access public * @return array */ - public function getDocsBySearch(string $type, int $objectID, int $libID, int $queryID, string $orderBy = 'id_desc', object $pager = null): array + public function getDocsBySearch(string $type, int $objectID, int $libID, int $queryID, string $orderBy = 'id_desc', ?object $pager = null): array { $query = $this->buildQuery($type, $queryID); $libs = $this->getLibsByObject($type, $objectID, $libID); @@ -3311,7 +3311,7 @@ class docModel extends model * @access public * @return object */ - public function buildLibItem(int $libID, object $lib, string $type, int $moduleID = 0, int $objectID = 0, string $browseType = '', int $docID = 0, object|null|bool $release = null): object + public function buildLibItem(int $libID, object $lib, string $type, int $moduleID = 0, int $objectID = 0, string $browseType = '', int $docID = 0, mixed $release = null): object { $releaseModule = array(); if($release && $release->lib == $lib->id) @@ -3597,7 +3597,7 @@ class docModel extends model * @access public * @return array */ - public function getDynamic(object $pager = null): array + public function getDynamic(?object $pager = null): array { $allLibs = $this->getLibs('hasApi'); $hasPrivDocIdList = $this->getPrivDocs(array(), 0, 'all'); diff --git a/module/doc/test/model/getdynamic.php b/module/doc/test/model/getdynamic.php index 91ff0e90cd..0a96297300 100755 --- a/module/doc/test/model/getdynamic.php +++ b/module/doc/test/model/getdynamic.php @@ -27,9 +27,9 @@ $recPerPages = array(5, 10, 20); $pagerIds = array(1, 2); $docTester = new docTest(); -r($docTester->getDynamicTest($recPerPages[0], $pagerIds[0])) && p() && e('31;30;29;28;27;'); // 获取每页5条,第1页动态数据 -r($docTester->getDynamicTest($recPerPages[0], $pagerIds[1])) && p() && e('26;25;24;23;22;'); // 获取每页5条,第2页动态数据 -r($docTester->getDynamicTest($recPerPages[1], $pagerIds[0])) && p() && e('31;30;29;28;27;26;25;24;23;22;'); // 获取每页10条,第1页动态数据 -r($docTester->getDynamicTest($recPerPages[1], $pagerIds[1])) && p() && e('21;20;19;50;18;49;17;48;16;47;'); // 获取每页10条,第2页动态数据 -r($docTester->getDynamicTest($recPerPages[2], $pagerIds[0])) && p() && e('31;30;29;28;27;26;25;24;23;22;21;20;19;50;18;49;17;48;16;47;'); // 获取每页20条,第1页动态数据 -r($docTester->getDynamicTest($recPerPages[2], $pagerIds[1])) && p() && e('15;46;14;45;13;44;12;43;11;42;10;41;9;40;8;39;7;38;6;37;'); // 获取每页20条,第2页动态数据 +r($docTester->getDynamicTest($recPerPages[0], $pagerIds[0])) && p() && e('27;28;29;30;31'); // 获取每页5条,第1页动态数据 +r($docTester->getDynamicTest($recPerPages[0], $pagerIds[1])) && p() && e('22;23;24;25;26'); // 获取每页5条,第2页动态数据 +r($docTester->getDynamicTest($recPerPages[1], $pagerIds[0])) && p() && e('22;23;24;25;26;27;28;29;30;31'); // 获取每页10条,第1页动态数据 +r($docTester->getDynamicTest($recPerPages[1], $pagerIds[1])) && p() && e('16;17;18;19;20;21;47;48;49;50'); // 获取每页10条,第2页动态数据 +r($docTester->getDynamicTest($recPerPages[2], $pagerIds[0])) && p() && e('16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;47;48;49;50'); // 获取每页20条,第1页动态数据 +r($docTester->getDynamicTest($recPerPages[2], $pagerIds[1])) && p() && e('6;7;8;9;10;11;12;13;14;15;37;38;39;40;41;42;43;44;45;46'); // 获取每页20条,第2页动态数据 diff --git a/module/doc/test/model/getstatisticinfo.php b/module/doc/test/model/getstatisticinfo.php index 655ef3cdf0..71efd03a95 100755 --- a/module/doc/test/model/getstatisticinfo.php +++ b/module/doc/test/model/getstatisticinfo.php @@ -13,7 +13,7 @@ cid=1 - 属性myDocs @50 - 获取登录用户为admin时,用户浏览跟收藏的文档数 - 第myDoc条的docViews属性 @0 - - 第myDoc条的docCollects属性 @0 + - 第myDoc条的docCollects属性 @100 - 获取登录用户为user1时,文档总数、今日编辑文档数、用户编辑过的文档数、用户创建的文档数 - 属性totalDocs @50 - 属性todayEditedDocs @0 @@ -38,8 +38,8 @@ $user1Info = $docTester->getStatisticInfoTest('user1'); /* Admin statistic information. */ r($adminInfo) && p('totalDocs,todayEditedDocs,myEditedDocs,myDocs') && e('50,0,10,50'); // 获取登录用户为admin时,文档总数、今日编辑文档数、用户编辑过的文档数、用户创建的文档数 -r($adminInfo) && p('myDoc:docViews,docCollects') && e('0,0'); // 获取登录用户为admin时,用户浏览跟收藏的文档数 +r($adminInfo) && p('myDoc:docViews,docCollects') && e('0,100'); // 获取登录用户为admin时,用户浏览跟收藏的文档数 /* User1 statistic information.*/ r($user1Info) && p('totalDocs,todayEditedDocs,myEditedDocs,myDocs') && e('50,0,10,0'); // 获取登录用户为user1时,文档总数、今日编辑文档数、用户编辑过的文档数、用户创建的文档数 -r($user1Info) && p('myDoc:docViews,docCollects') && e('~~,~~'); // 获取登录用户为user1时,用户浏览跟收藏的文档数 +r($user1Info) && p('myDoc:docViews,docCollects') && e('~~,~~'); // 获取登录用户为user1时,用户浏览跟收藏的文档数 diff --git a/module/doc/ui/app.html.php b/module/doc/ui/app.html.php index f1468b4d91..4f7f0639d4 100644 --- a/module/doc/ui/app.html.php +++ b/module/doc/ui/app.html.php @@ -25,26 +25,27 @@ if($type === 'project') * 定义文档界面上的权限。 * Define the privs of doc app. */ -$hasCustomSpace = $type == 'mine' || $type == 'custom'; +$hasCustomSpace = $type == 'mine' || $type == 'custom'; +$projectTemplate = ($type === 'project' && !empty($project->isTpl)) || ($type == 'execution' && !empty($execution->isTpl)); $privs = array(); -$privs['create'] = hasPriv('doc', 'create'); -$privs['edit'] = hasPriv('doc', 'edit'); -$privs['delete'] = hasPriv('doc', 'delete'); +$privs['create'] = hasPriv('doc', 'create') && !$projectTemplate; +$privs['edit'] = hasPriv('doc', 'edit') && !$projectTemplate; +$privs['delete'] = hasPriv('doc', 'delete') && !$projectTemplate; $privs['view'] = hasPriv('doc', 'view'); $privs['effort'] = $this->config->edition != 'open' && hasPriv('effort', 'createForObject'); -$privs['exportDoc'] = $this->config->edition != 'open' && hasPriv('doc', $type . '2export'); +$privs['exportDoc'] = $this->config->edition != 'open' && hasPriv('doc', $type . '2export') && !$projectTemplate; $privs['exportApi'] = $this->config->edition != 'open' && hasPriv('api', 'export'); -$privs['moveDoc'] = hasPriv('doc', 'moveDoc'); +$privs['moveDoc'] = hasPriv('doc', 'moveDoc') && !$projectTemplate; $privs['collect'] = hasPriv('doc', 'collect'); $privs['createLib'] = hasPriv('doc', 'createLib'); $privs['editLib'] = hasPriv('doc', 'editLib'); -$privs['moveLib'] = hasPriv('doc', 'moveLib'); +$privs['moveLib'] = hasPriv('doc', 'moveLib') && !$projectTemplate; $privs['deleteLib'] = hasPriv('doc', 'deleteLib'); $privs['sortDocLib'] = hasPriv('doc', 'sortDocLib'); -$privs['uploadFile'] = hasPriv('doc', 'create'); +$privs['uploadFile'] = hasPriv('doc', 'create') && !$projectTemplate; $privs['editFile'] = hasPriv('file', 'edit'); $privs['deleteFile'] = hasPriv('doc', 'deleteFile'); -$privs['exportFiles'] = hasPriv('doc', 'exportFiles'); +$privs['exportFiles'] = hasPriv('doc', 'exportFiles') && !$projectTemplate; $privs['createSpace'] = $hasCustomSpace && hasPriv('doc', 'createSpace'); $privs['deleteSpace'] = $hasCustomSpace && hasPriv('doc', 'deleteSpace'); $privs['editSpace'] = $hasCustomSpace && hasPriv('doc', 'editSpace'); diff --git a/module/doc/ui/createlib.html.php b/module/doc/ui/createlib.html.php index dcadcd160f..121cb7b93c 100644 --- a/module/doc/ui/createlib.html.php +++ b/module/doc/ui/createlib.html.php @@ -26,6 +26,7 @@ $renderObjectBox = function(string $type) use ($lang, $objects, $objectID) return formRow( setClass('objectBox'), formGroup( + set::id('object'), set::width('5/6'), set::label($lang->doc->{$type}), set::name($type), diff --git a/module/entry/model.php b/module/entry/model.php index 5f761351f8..3de72e7e43 100644 --- a/module/entry/model.php +++ b/module/entry/model.php @@ -60,7 +60,7 @@ class entryModel extends model * @access public * @return array */ - public function getList(string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $orderBy = 'id_desc', ?object $pager = null): array { if(strpos($orderBy, 'desc_') !== false) $orderBy = str_replace('desc_', '`desc`_', $orderBy); return $this->dao->select('*')->from(TABLE_ENTRY)->where('deleted')->eq('0')->orderBy($orderBy)->page($pager)->fetchAll('id'); @@ -76,7 +76,7 @@ class entryModel extends model * @access public * @return array */ - public function getLogs(int $id, string $orderBy = 'date_desc', object $pager = null): array + public function getLogs(int $id, string $orderBy = 'date_desc', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_LOG) ->where('objectType')->eq('entry') diff --git a/module/execution/control.php b/module/execution/control.php index 94741ab8f1..605e0003de 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -2738,7 +2738,7 @@ class execution extends control $executionGroups = $this->dao->select('*')->from(TABLE_EXECUTION) /* 按照项目分组,获取有权限访问的执行列表。*/ ->where('deleted')->eq('0') ->andWhere('multiple')->eq('1') - ->andWhere('type')->in('sprint,stage,kanban') + ->andWhere('type')->in(!empty($execution->isTpl) ? 'sprint,stage' : 'sprint,stage,kanban') ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->sprints)->fi() ->beginIF(!empty($execution->isTpl))->andWhere('isTpl')->eq('1')->fi() ->andWhere('project')->in(array_keys($projects)) diff --git a/module/execution/js/testtask.ui.js b/module/execution/js/testtask.ui.js index 4cee107c08..dbeac70817 100644 --- a/module/execution/js/testtask.ui.js +++ b/module/execution/js/testtask.ui.js @@ -114,6 +114,10 @@ window.onRenderCell = function(result, {row, col}) { result.push({outer: false, style: {alignItems: 'center', justifyContent: 'start'}}) } + if(col.name == 'status' && result) + { + result[0] = {html: `` + row.data.status + ""}; + } return result; } diff --git a/module/execution/model.php b/module/execution/model.php index a619021167..50f8ac725f 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -153,7 +153,6 @@ class executionModel extends model unset($this->lang->execution->menu->burn); unset($this->lang->execution->menu->kanban); - unset($this->lang->execution->menu->view); unset($this->lang->execution->menu->story); unset($this->lang->execution->menu->qa); unset($this->lang->execution->menu->devops); @@ -162,6 +161,22 @@ class executionModel extends model unset($this->lang->execution->menu->effort); unset($this->lang->execution->menu->more); + if(!empty($this->lang->execution->menu->view['subMenu']->gantt)) + { + $this->lang->execution->menu->gantt = $this->lang->execution->menu->view['subMenu']->gantt; + + $taskOrder = 0; + foreach($this->lang->execution->menuOrder as $order => $menu) if($menu == 'task') $taskOrder = $order; + $this->lang->execution->menuOrder[$taskOrder + 1] = 'gantt'; + + if(!empty($this->lang->project->menuOrder)) + { + $taskOrder = 0; + foreach($this->lang->project->menuOrder as $order => $menu) if($menu == 'task') $taskOrder = $order; + $this->lang->project->menuOrder[$taskOrder + 1] = 'gantt'; + } + } + if(!empty($this->lang->execution->menu->other['dropMenu']->pssp)) { $this->lang->execution->menu->pssp = $this->lang->execution->menu->other['dropMenu']->pssp; @@ -181,6 +196,7 @@ class executionModel extends model } } + unset($this->lang->execution->menu->view); unset($this->lang->execution->menu->other); if(isset($this->lang->execution->menu->settings['subMenu']->products)) unset($this->lang->execution->menu->settings['subMenu']->products); // 模板下隐藏产品 if(isset($this->lang->execution->menu->settings['subMenu']->whitelist)) unset($this->lang->execution->menu->settings['subMenu']->whitelist); // 模板下隐藏白名单 @@ -1035,7 +1051,7 @@ class executionModel extends model * @access public * @return bool */ - public function checkWorkload(string $type = '', float $percent = 0, object $oldExecution = null): bool + public function checkWorkload(string $type = '', float $percent = 0, ?object $oldExecution = null): bool { /* Check whether the workload is positive. */ if(!preg_match("/^[0-9]+(.[0-9]{1,3})?$/", (string)$percent)) @@ -1214,7 +1230,7 @@ class executionModel extends model * @access public * @return array */ - public function getList(int $projectID = 0, string $type = 'all',string $status = 'all', int $limit = 0, int $productID = 0, int $branch = 0, object|null $pager = null, bool $withChildren = true) + public function getList(int $projectID = 0, string $type = 'all',string $status = 'all', int $limit = 0, int $productID = 0, int $branch = 0, ?object $pager = null, bool $withChildren = true) { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getExecutionStats($type); @@ -1230,8 +1246,9 @@ class executionModel extends model ->beginIF($type == 'all')->andWhere('t2.type')->in('sprint,stage,kanban')->fi() ->beginIF($type != 'all')->andWhere('t2.type')->eq($type)->fi() ->beginIF($status == 'undone')->andWhere('t2.status')->notIN('done,closed')->fi() + ->beginIF($status == 'delayed')->andWhere('t2.end')->gt('1970-1-1')->andWhere('t2.end')->lt(date(DT_DATE1))->andWhere('t2.status')->notin('done,closed,suspended')->fi() ->beginIF($branch)->andWhere('t1.branch')->eq($branch)->fi() - ->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->in($status)->fi() + ->beginIF($status != 'all' && $status != 'undone' && $status != 'delayed')->andWhere('t2.status')->in($status)->fi() ->beginIF(!$this->app->user->admin and isset($this->app->user->view))->andWhere('t2.id')->in($this->app->user->view->sprints)->fi() ->beginIF(!$withChildren)->andWhere('grade')->eq(1)->fi() ->orderBy('order_desc') @@ -1247,7 +1264,8 @@ class executionModel extends model ->beginIF($type == 'all')->andWhere('type')->in('sprint,stage,kanban')->fi() ->beginIF($type != 'all')->andWhere('type')->eq($type)->fi() ->beginIF($status == 'undone')->andWhere('status')->notIN('done,closed')->fi() - ->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->in($status)->fi() + ->beginIF($status == 'delayed')->andWhere('end')->gt('1970-1-1')->andWhere('end')->lt(date(DT_DATE1))->andWhere('status')->notin('done,closed,suspended')->fi() + ->beginIF($status != 'all' && $status != 'undone' && $status != 'delayed')->andWhere('status')->in($status)->fi() ->beginIF($projectID)->andWhere('project')->eq($projectID)->fi() ->beginIF(!$this->app->user->admin and isset($this->app->user->view))->andWhere('id')->in($this->app->user->view->sprints)->fi() ->beginIF(!$withChildren)->andWhere('grade')->eq(1)->fi() @@ -1384,7 +1402,7 @@ class executionModel extends model * @access public * @return array */ - public function getStatData(int $projectID = 0, string $browseType = 'undone', int $productID = 0, int $branch = 0, bool $withTasks = false, string|int $param = '', string $orderBy = 'id_asc', object|null $pager = null): array + public function getStatData(int $projectID = 0, string $browseType = 'undone', int $productID = 0, int $branch = 0, bool $withTasks = false, string|int $param = '', string $orderBy = 'id_asc', ?object $pager = null): array { if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getExecutionStats($browseType); @@ -1485,7 +1503,7 @@ class executionModel extends model * @access public * @return array */ - public function fetchExecutionList(int $projectID = 0, string $browseType = 'undone', int $productID = 0, int $param = 0, string $orderBy = 'id_asc', object|null $pager = null): array + public function fetchExecutionList(int $projectID = 0, string $browseType = 'undone', int $productID = 0, int $param = 0, string $orderBy = 'id_asc', ?object $pager = null): array { /* Construct the query SQL at search executions. */ $executionQuery = $browseType == 'bySearch' ? $this->getExecutionQuery($param) : ''; @@ -1957,7 +1975,7 @@ class executionModel extends model * @access public * @return array */ - public function getTasks(int $productID, int|array $executionID, array $executions, string $browseType, int $queryID, int $moduleID, string $sort, object $pager = null): array + public function getTasks(int $productID, int|array $executionID, array $executions, string $browseType, int $queryID, int $moduleID, string $sort, ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTasks(); @@ -2072,7 +2090,7 @@ class executionModel extends model /* Story changed or not. */ $task->storyVersion = zget($storyVersionPairs, $task->id, $task->storyVersion); $task->needConfirm = false; - if(!empty($task->storyStatus) && $task->storyStatus == 'active' && $task->latestStoryVersion > $task->storyVersion) + if(!empty($task->storyStatus) && $task->storyStatus == 'active' && !in_array($task->status, array('cancel', 'closed')) && $task->latestStoryVersion > $task->storyVersion) { $task->needConfirm = true; $task->status = 'changed'; @@ -2263,7 +2281,7 @@ class executionModel extends model * @access public * @return void */ - public function buildStorySearchForm(array $products, array $branchGroups, array $modules, int $queryID, string $actionURL, string $type = 'executionStory', object $execution = null): void + public function buildStorySearchForm(array $products, array $branchGroups, array $modules, int $queryID, string $actionURL, string $type = 'executionStory', ?object $execution = null): void { $this->loadModel('productplan'); $this->app->loadLang('branch'); @@ -3747,7 +3765,7 @@ class executionModel extends model * @access public * @return array */ - public function getSearchTasks(string $condition, string $orderBy, object $pager = null, string $queryKey = 'task'): array + public function getSearchTasks(string $condition, string $orderBy, ?object $pager = null, string $queryKey = 'task'): array { /* 按指派人搜索的时候,可以搜索到参与的多人任务。 */ if(strpos($condition, '`assignedTo`') !== false) @@ -4193,7 +4211,7 @@ class executionModel extends model * @access public * @return array */ - public function getKanbanTasks(int $executionID, string $orderBy = 'status_asc, id_desc', array $excludeTasks = array(), object|null $pager = null): array + public function getKanbanTasks(int $executionID, string $orderBy = 'status_asc, id_desc', array $excludeTasks = array(), ?object $pager = null): array { $excludeTasks = array_filter($excludeTasks); $tasks = $this->dao->select('t1.*, t2.id AS storyID, t2.title AS storyTitle, t2.version AS latestStoryVersion, t2.status AS storyStatus, t3.realname AS assignedToRealName') @@ -4997,7 +5015,7 @@ class executionModel extends model } $task->needConfirm = false; - if(!empty($task->storyStatus) && $task->storyStatus == 'active' && $task->latestStoryVersion > $task->storyVersion) + if(!empty($task->storyStatus) && $task->storyStatus == 'active' && !in_array($task->status, array('closed', 'cancel')) && $task->latestStoryVersion > $task->storyVersion) { $task->needConfirm = true; $task->rawStatus = $task->status; diff --git a/module/execution/tao.php b/module/execution/tao.php index 071f91c29d..d8b5cf6c9a 100644 --- a/module/execution/tao.php +++ b/module/execution/tao.php @@ -421,7 +421,7 @@ class executionTao extends executionModel * @access public * @return object[] */ - public function getSearchBugs(array $productIdList, int $executionID, string $sql = '1=1', string $orderBy = 'id_desc', object|null $pager = null): array + public function getSearchBugs(array $productIdList, int $executionID, string $sql = '1=1', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_BUG) ->where($sql) diff --git a/module/execution/test/lib/activateinlite.ui.class.php b/module/execution/test/lib/activateinlite.ui.class.php new file mode 100644 index 0000000000..2884ce3c37 --- /dev/null +++ b/module/execution/test/lib/activateinlite.ui.class.php @@ -0,0 +1,96 @@ +initForm('execution', 'kanban', array('execution' => $executionId), 'appIframe-project'); + $form->wait(1); + $form->dom->kanbanSettingInLite->click(); + $form->wait(1); + $this->loadPage(); + $form->wait(1); + $form->dom->btn($this->lang->execution->activate)->click(); + $form->wait(1); + $this->loadPage(); + $form->wait(1); + if(isset($end)) $form->dom->end->datePicker($end); + $form->dom->activateSubmitInLite->click(); + $form->wait(1); + } + + /** + * 激活看板。 + * Activate execution. + * + * @param string $end + * @param string $executionId + * @access public + * @return bool + */ + public function activate($end, $executionId) + { + $this->inputFields($end, $executionId); + $form = $this->loadPage(); + $form->wait(1); + + if(is_object($form->dom->activateSubmitInLite)) return $this->failed('激活看板失败'); + $viewForm = $this->initForm('execution', 'view', array('execution' => $executionId), 'appIframe-project'); + $viewForm->wait(1); + if($viewForm->dom->plannedEnd->getText() != $end) return $this->failed('计划完成时间错误'); + return $this->success('激活看板成功'); + } + + /** + * 激活看板时计划完成日期小于计划开始日期。 + * Activate execution with end less than begin. + * + * @param string $end + * @param string $executionId + * @access public + * @return bool + */ + public function activateWithLessEnd($end, $executionId) + { + $this->switchVision('lite', 5); + $this->inputFields($end, $executionId); + $form = $this->loadPage(); + $form->wait(1); + $info = sprintf($this->lang->execution->errorLesserPlan, $end, date('Y-m-d')); + if($form->dom->endTip->getText() == $info) return $this->success('激活看板表单页提示信息正确'); + return $this->failed('激活看板表单页提示信息不正确'); + } + + /** + * 激活看板时计划完成日期大于项目计划完成日期。 + * Activate execution with end greater than begin. + * + * @param string $end + * @param string $executionId + * @access public + * @return bool + */ + public function activateWithGreaterEnd($end, $executionId) + { + $this->inputFields($end, $executionId); + $form = $this->loadPage(); + $form->wait(1); + $info = sprintf($this->lang->execution->errorGreaterParent, ''); + $text = $form->dom->endTip->getText(); + /* 获取页面返回信息中除日期外的内容 */ + preg_match_all('/(\d{4}-\d{2}-\d{2})/', $text, $matches); ~ + $date = $matches[0][0]; ~ + $params = str_replace($date, '', $text); ~ + $params = trim($params); + if($params == $info) return $this->success('激活看板表单页提示信息正确'); + return $this->failed('激活看板表单页提示信息不正确'); + } +} diff --git a/module/execution/test/lib/batchedit.ui.class.php b/module/execution/test/lib/batchedit.ui.class.php index 738dee58ac..ddbb05295b 100755 --- a/module/execution/test/lib/batchedit.ui.class.php +++ b/module/execution/test/lib/batchedit.ui.class.php @@ -13,8 +13,11 @@ class batchEditTester extends tester public function inputFields($execution) { $form = $this->initForm('execution', 'all', '', 'appIframe-execution'); + $form->wait(3); $form->dom->firstCheckbox->click(); + $form->wait(1); $form->dom->btn($this->lang->edit)->click(); + $form->wait(1); $batchEditForm = $this->loadPage('execution', 'batchEdit'); $batchEditForm->wait(1); @@ -41,6 +44,7 @@ class batchEditTester extends tester { $this->inputFields($execution); $form = $this->loadPage(); + $form->wait(1); $text = $form->dom->alertModal('text'); if(!$execution['name']) @@ -84,6 +88,7 @@ class batchEditTester extends tester { $id = $this->inputFields($execution); $form = $this->loadPage(); + $form->wait(1); $beginTipDom = "begin[{$id}]Tip"; $endTipDom = "end[{$id}]Tip"; @@ -137,6 +142,7 @@ class batchEditTester extends tester { $this->inputFields($execution); $form = $this->loadPage(); + $form->wait(1); if($form->dom->firstName->getText() != $execution['name']) return $this->failed('批量编辑后执行名称错误'); if($form->dom->firstBegin->getText() != $execution['begin']) return $this->failed('批量编辑后执行开始日期错误'); if($form->dom->firstEnd->getText() != $execution['end']) return $this->failed('批量编辑后执行结束日期错误'); diff --git a/module/execution/test/lib/bug.ui.class.php b/module/execution/test/lib/bug.ui.class.php index bbb0bd5ae0..1987191847 100644 --- a/module/execution/test/lib/bug.ui.class.php +++ b/module/execution/test/lib/bug.ui.class.php @@ -14,7 +14,7 @@ class bugTester extends tester public function checkTab($tab, $expectNum) { $form = $this->initForm('execution', 'bug', array('execution' => '2'), 'appIframe-execution'); - $form->wait(1); + $form->wait(3); $form->dom->$tab->click(); $form->wait(1); if($form->dom->num->getText() == $expectNum) return $this->success($tab . '下显示条数正确'); @@ -32,7 +32,9 @@ class bugTester extends tester public function assignTo($user) { $form = $this->initForm('execution', 'bug', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $form->dom->firstAssignedTo->click(); + $form->wait(1); $form->dom->assignedTo->picker($user); $form->dom->submitBtn->click(); $form->wait(1); @@ -52,7 +54,9 @@ class bugTester extends tester public function batchAssignTo() { $form = $this->initForm('execution', 'bug', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $form->dom->firstCheckbox->click(); + $form->wait(1); $form->dom->batchAssignBtn->click(); $form->wait(1); $form->dom->assignToAdmin->click(); @@ -75,7 +79,9 @@ class bugTester extends tester public function switchProduct($product, $expectNum) { $form = $this->initForm('execution', 'bug', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $form->dom->productNav->click(); + $form->wait(1); $form->dom->$product->click(); $form->wait(1); diff --git a/module/execution/test/lib/closeinlite.ui.class.php b/module/execution/test/lib/closeinlite.ui.class.php new file mode 100644 index 0000000000..2e07cb768e --- /dev/null +++ b/module/execution/test/lib/closeinlite.ui.class.php @@ -0,0 +1,94 @@ +initForm('execution', 'kanban', array('execution' => $executionId), 'appIframe-project'); + $form->wait(1); + $form->dom->kanbanSettingInLite->click(); + $form->wait(1); + $form = $this->loadPage(); + $form->wait(1); + $form->dom->btn($this->lang->execution->close)->click(); + $form->wait(1); + $form = $this->loadPage(); + $form->wait(1); + if(isset($realEnd)) $form->dom->realEnd->datePicker($realEnd); + $form->wait(1); + $form->dom->closeSubmitInLite->click(); + $form->wait(1); + } + + /** + * 正常关闭执行。 + * Close execution. + * + * @param string $realEnd + * @param string $executionId + * @access public + * @return bool + */ + public function close($realEnd, $executionId) + { + $this->inputFields($realEnd, $executionId); + $form = $this->initForm('execution', 'view', array('execution' => $executionId), 'appIframe-project'); + $form->wait(1); + if($form->dom->status->getText() != $this->lang->execution->statusList->closed) return $this->failed('执行状态错误'); + if($form->dom->realEndView->getText() != $realEnd) return $this->failed('执行实际完成日期错误'); + return $this->success('关闭执行成功'); + } + + /** + * 实际完成日期大于当前日期。 + * The real end date is greater than the current date. + * + * @param string $realEnd + * @param string $executionId + * @access public + * @return bool + */ + public function closeWithGreaterDate($realEnd, $executionId) + { + $this->switchVision('lite', 5); + $this->inputFields($realEnd, $executionId); + $form = $this->loadPage(); + $field = $form->dom->realEndField->getText(); + $text = $form->dom->realEndTip->getText(); + $info = sprintf($this->lang->error->le, $field, date('Y-m-d')); + if($text == $info) return $this->success('关闭执行表单页提示信息正确'); + return $this->failed('关闭执行表单页提示信息不正确'); + } + + /** + * 实际完成日期小于实际开始日期。 + * The real end date is less than the real start date. + * + * @param string $realEnd + * @param string $executionId + * @access public + * @return bool + */ + public function closeWithLessDate($realEnd, $executionId) + { + $this->inputFields($realEnd, $executionId); + $form = $this->loadPage(); + $form->wait(1); + $field = $form->dom->realEndField->getText(); + $text = $form->dom->realEndTip->getText(); + $viewForm = $this->initForm('execution', 'view', array('execution' => $executionId), 'appIframe-project'); + $viewForm->wait(1); + $realBegan = $viewForm->dom->realBeganView->getText(); + $info = sprintf($this->lang->execution->ge, $field, $realBegan); + if($text == $info) return $this->success('关闭执行表单页提示信息正确'); + return $this->failed('关闭执行表单页提示信息不正确'); + } +} diff --git a/module/execution/test/lib/createinlite.ui.class.php b/module/execution/test/lib/createinlite.ui.class.php index 5b71fddd02..cbd20e1dbb 100755 --- a/module/execution/test/lib/createinlite.ui.class.php +++ b/module/execution/test/lib/createinlite.ui.class.php @@ -88,12 +88,12 @@ class createExecutionTester extends tester */ public function create($execution, $module = 'execution') { - $this->switchVision('lite'); + $this->switchVision('lite', 5); $this->inputFields($execution); /* 创建成功会跳转至看板列表全部标签下,从url中获取status字段内容 */ $form = $this->loadPage(); - $form->wait(1); + $form->wait(3); $url = explode('status=', $this->response('url')); /* 根据url中是否包含status,判断是否创建成功 */ if(!isset($url[1])) @@ -114,7 +114,6 @@ class createExecutionTester extends tester */ public function createWithEmptyName($execution, $field) { - $this->switchVision('lite'); $this->inputFields($execution); $form = $this->loadPage(); $text = $form->dom->{$field . 'Tip'}->getText(); @@ -136,7 +135,6 @@ class createExecutionTester extends tester */ public function createWithRepeatName($execution, $field) { - $this->switchVision('lite'); $this->inputFields($execution); if($this->checkRepeatInfo($field)) return $this->success('创建看板表单页提示信息正确'); return $this->failed('创建看板表单页提示信息不正确'); @@ -153,7 +151,6 @@ class createExecutionTester extends tester */ public function createWithDateError($execution, $dateType = 'end') { - $this->switchVision('lite'); $this->inputFields($execution); if($this->checkDateInfo($dateType)) return $this->success('创建看板表单页提示信息正确'); return $this->failed('创建看板表单页提示信息不正确'); diff --git a/module/execution/test/lib/delete.ui.class.php b/module/execution/test/lib/delete.ui.class.php new file mode 100644 index 0000000000..308309a972 --- /dev/null +++ b/module/execution/test/lib/delete.ui.class.php @@ -0,0 +1,29 @@ +initForm('execution', 'view', array('execution' => '2'), 'appIframe-execution'); + $viewForm->wait(5); + $executionName = $viewForm->dom->executionName->getText(); + $viewForm->dom->deleteBtn->click(); + $viewForm->wait(1); + $viewForm->dom->alertModal(); + $viewForm->wait(1); + + $form = $this->initForm('execution', 'all', '', 'appIframe-execution'); + $form->wait(1); + $form->dom->search(array(",=,{$executionName}")); + $form->wait(1); + if(is_object($form->dom->tips) && $form->dom->tips->getText() == $this->lang->execution->noExecutions) return $this->success('删除执行成功'); + return $this->failed('删除执行失败'); + } +} diff --git a/module/execution/test/lib/editexecution.ui.class.php b/module/execution/test/lib/editexecution.ui.class.php index d24baf67fe..d781aeff00 100644 --- a/module/execution/test/lib/editexecution.ui.class.php +++ b/module/execution/test/lib/editexecution.ui.class.php @@ -11,21 +11,101 @@ class editExecutionTester extends tester */ public function editFields($execution) { - $form = $this->initForm('execution', 'view', array('execution' => '2'), 'appIframe-execution'); + $form = $this->initForm('execution', 'view', array('execution' => $execution['id']), 'appIframe-execution'); + $form->wait(3); + $form->dom->editBtn->click(); $form->wait(1); - $form->dom->edit->click(); - if(isset($execution['project'])) $form->dom->project->picker($execution['project']); $form = $this->loadPage(); $form->wait(1); - if(isset($execution['name'])) $form->dom->name->setValue($execution['name']); - if(isset($execution['begin'])) $form->dom->begin->datePicker($execution['begin']); - if(isset($execution['end'])) $form->dom->end->datePicker($execution['end']); + if(isset($execution['name'])) $form->dom->name->setValue($execution['name']); + if(isset($execution['begin'])) $form->dom->begin->datePicker($execution['begin']); + if(isset($execution['end'])) $form->dom->end->datePicker($execution['end']); if(isset($execution['products'])) $form->dom->products->picker($execution['products']); $form->dom->submit->click(); $form->wait(1); return $form; } + /** + * 执行名称已存在时获取提示信息。 + * Get error info of repeat name. + * + * @param string $type sprint|stage|kanban + * @access public + * @return object + */ + public function checkRepeatInfo($type = 'sprint') + { + $form = $this->loadPage(); + $form->wait(1); + if(!is_object($form->dom->nameTip)) return $this->failed('执行名称重复没有提示信息'); + $text = $form->dom->nameTip->getText(); + if($type == 'kanban') + { + $info = sprintf($this->lang->error->repeat, $form->dom->nameLabel->getText(), $form->dom->name->getValue()); + } + else + { + $info = sprintf($this->lang->error->repeat, $form->dom->nameLabel->getText(), $form->dom->name->getValue()); + } + if($text != $info) return $this->failed('编辑执行表单页提示信息不正确'); + return $this->success('编辑执行表单页提示信息正确'); + } + + /** + * 计划起止日期错误时获取提示信息。 + * Get error info of begin and end date. + * + * @param string $dateType begin|end + * @access public + * @return object + */ + public function checkDateInfo($dateType = 'end') + { + $form = $this->loadPage(); + $form->wait(1); + + if($dateType == 'begin') + { + if(!is_object($form->dom->beginTip)) return $thid->failed('开始日期错误没有提示信息'); + $text = $form->dom->beginTip->getText(); + $info = sprintf($this->lang->execution->errorCommonBegin, ''); + } + else + { + if(!is_object($form->dom->endTip)) return $thid->failed('完成日期错误没有提示信息'); + $text = $form->dom->endTip->getText(); + $info = sprintf($this->lang->execution->errorCommonEnd, ''); + } + + /* 获取页面返回信息中除日期外的内容 */ + preg_match_all('/(\d{4}-\d{2}-\d{2})/', $text, $matches); + $date = $matches[0]; + $params = str_replace($date, '', $text); + $params = trim($params); + + if($params != $info) return $this->failed('编辑执行表单页提示信息不正确'); + return $this->success('编辑执行表单页提示信息正确'); + } + + /** + * 关联产品必填时获取提示信息。 + * Get error info of manage products. + * + * @access public + * @return object + */ + public function checkManageProductsInfo() + { + $form = $this->loadPage(); + $form->wait(1); + $form->dom->waitElement($form->dom->xpath['productsTip'], 10); + $text = $form->dom->productsTip->getText(); + $info = $this->lang->project->errorNoProducts; + if($text != $info) return $this->failed('编辑执行表单页提示信息不正确'); + return $this->success('编辑执行表单页提示信息正确'); + } + /** * 编辑执行。 * Edit the execution . @@ -37,13 +117,60 @@ class editExecutionTester extends tester public function edit($execution) { $form = $this->editFields($execution); - /* 根据编辑弹窗中的保存按钮是否存在,判断是否编辑成功 */ - if($form->dom->submit === true) return $this->failed("编辑执行失败"); + if($this->checkFormTips('execution')) return $this->success('编辑执行表单页提示信息正确'); /* 查看相关内容是否正确 */ $viewPage = $this->loadPage('execution', 'view'); - if(isset($execution['name']) && ($viewPage->dom->executionName->getText() != $execution['name'])) return $this->failed('编辑后执行名称错误'); - if(isset($execution['begin']) && ($viewPage->dom->plannedBegin->getText() != $execution['begin'])) return $this->failed('编辑后计划开始时间错误'); - if(isset($execution['end']) && ($viewPage->dom->plannedEnd->getText() != $execution['end'])) return $this->failed('编辑后计划完成时间错误'); + $viewPage->wait(1); + if(isset($execution['name']) && ($viewPage->dom->executionName->getText() != $execution['name'])) return $this->failed('编辑后执行名称错误'); + if(isset($execution['begin']) && ($viewPage->dom->plannedBegin->getText() != $execution['begin'])) return $this->failed('编辑后计划开始时间错误'); + if(isset($execution['end']) && ($viewPage->dom->plannedEnd->getText() != $execution['end'])) return $this->failed('编辑后计划完成时间错误'); + if(isset($execution['status']) && ($viewPage->dom->status->getText() != $execution['status'])) return $this->failed('编辑后状态错误'); + if(isset($execution['product']) && ($viewPage->dom->linckedProducta->getText() != $execution['products'])) return $this->failed('编辑后产品错误'); return $this->success('编辑执行成功'); } + + /** + * 执行名称已存在编辑执行。 + * Edit execution with repeat name. + * + * @param array $execution + * @param string $type sprint|stage|kanban + * @access public + * @return object + */ + public function editWithRepeatName($execution, $type = 'sprint') + { + $this->editFields($execution); + return $this->checkRepeatInfo($type); + } + + /** + * 执行起止日期错误编辑执行。 + * Edit execution with date error. + * + * @param array $execution + * @param string $dateType begin|end + * @access public + * @return object + */ + public function editWithDateError($execution, $dateType = 'end') + { + $this->editFields($execution); + return $this->checkDateInfo($dateType); + } + + /** + * 执行关联产品必填,关联产品为空时编辑执行。 + * Edit execution with no manage products. + * + * @param array $execution + * @access public + * @return object + */ + public function editWithNoProducts($execution) + { + $this->editFields($execution); + return $this->checkManageProductsInfo(); + } + } diff --git a/module/execution/test/lib/editinlite.ui.class.php b/module/execution/test/lib/editinlite.ui.class.php new file mode 100755 index 0000000000..31e73869e9 --- /dev/null +++ b/module/execution/test/lib/editinlite.ui.class.php @@ -0,0 +1,151 @@ +initForm('execution', 'kanban', array('kanbanID' => '2'), 'appIframe-project'); + $form->wait(1); + $form->dom->kanbanSettingInLite->click(); + $form->wait(); + $form = $this->loadPage(); + $form->wait(1); + $form->dom->btn($this->lang->execution->setKanban)->click(); + $form->wait(1); + if(isset($execution['name'])) $form->dom->name->setValue($execution['name']); + if(isset($execution['begin'])) $form->dom->begin->datePicker($execution['begin']); + if(isset($execution['end'])) $form->dom->end->datePicker($execution['end']); + $form->dom->editSubmitInLite->click(); + $form->wait(1); + } + + /** + * 看板名称已存在时获取提示信息。 + * Get error info of repeat name. + * + * @access public + * @return bool + */ + public function checkRepeatInfo() + { + $form = $this->loadPage(); + $form->wait(1); + if(!is_object($form->dom->nameTip)) return $this->failed('看板名称重复没有提示信息'); + $text = $form->dom->nameTip->getText(); + $info = sprintf($this->lang->error->repeat, $this->lang->kanban->name, $form->dom->name->getValue()); + if($text == $info) return $this->success('编辑看板表单页提示信息正确'); + return $this->failed('编辑看板表单页提示信息不正确'); + } + + /** + * 计划起止日期错误时获取提示信息。 + * Get error info of begin and end date. + * + * @param string $dateType begin|end + * @access public + * @return bool + */ + public function checkDateInfo($dateType = 'end') + { + $form = $this->loadPage(); + $form->wait(1); + if($dateType == 'begin') + { + $text = $form->dom->beginTip->getText(); + if($this->config->default->lang == 'zh-cn') $info = '看板开始日期应大于等于项目的开始日期:。'; + if($this->config->default->lang == 'en') $info = 'The start date of Kanban should be ≥ the start date of Project : .'; + } + else + { + $text = $form->dom->endTip->getText(); + if($this->config->default->lang == 'zh-cn') $info = '看板截止日期应小于等于项目的截止日期:。'; + if($this->config->default->lang == 'en') $info = 'The deadline of Kanban should be ≤ the deadline of Project : .'; + } + + /* 获取页面返回信息中除日期外的内容 */ + preg_match_all('/(\d{4}-\d{2}-\d{2})/', $text, $matches); + $date = $matches[0]; + $params = str_replace($date, '', $text); + $params = trim($params); + + return $params == $info; + } + + /** + * 编辑看板。 + * Edit kanban. + * + * @param array $execution + * @access public + * @return object + */ + public function edit($execution) + { + $this->switchVision('lite', 5); + $this->inputFields($execution); + if($this->checkFormTips('execution')) return $this->success('编辑看板表单页提示信息正确'); + + /* 访问view方法,方便获取信息 */ + $form = $this->initForm('execution', 'view', array('kanbanID' => '2' ), 'appIframe-project'); + if(isset($execution['name']) && $form->dom->executionName->getText() != $execution['name']) return $this->failed('编辑看板名称失败'); + if(isset($execution['begin']) && $form->dom->plannedBeginInLite->getText() != $execution['begin']) return $this->failed('编辑预计开始日期失败'); + if(isset($execution['end']) && $form->dom->plannedEndInLite->getText() != $execution['end']) return $this->failed('编辑预计结束日期失败'); + return $this->success('编辑看板成功'); + } + + /** + * 看板名称为空编辑执行。 + * Edit kanban with no name. + * + * @param array $execution + * @access public + * @return object + */ + public function editWithEmptyName($execution) + { + $this->inputFields($execution); + $form = $this->loadPage(); + $form->wait(1); + $text = $form->dom->nameTip->getText(); + $info = sprintf($this->lang->error->notempty, $this->lang->kanban->name); + if($text == $info) return $this->success('编辑看板表单页提示信息正确'); + return $this->failed('编辑看板表单页提示信息不正确'); + } + + /** + * 看板名称已存在编辑执行。 + * Edit kanban with repeat name. + * + * @param array $execution + * @access public + * @return object + */ + public function editWithRepeatName($execution) + { + $this->inputFields($execution); + return $this->checkRepeatInfo(); + } + + /** + * 看板起止日期错误编辑看板。 + * Edit kanban with date error. + * + * @param array $execution + * @param string $dateType begin|end + * @access public + * @return object + */ + public function editWithDateError($execution, $dateType = 'end') + { + $this->inputFields($execution); + if($this->checkDateInfo($dateType)) return $this->success('编辑看板表单页提示信息正确'); + return $this->failed('编辑看板表单页提示信息不正确'); + } +} diff --git a/module/execution/test/lib/executionkanban.ui.class.php b/module/execution/test/lib/executionkanban.ui.class.php index 2ae972fac3..80e6dba86c 100644 --- a/module/execution/test/lib/executionkanban.ui.class.php +++ b/module/execution/test/lib/executionkanban.ui.class.php @@ -13,7 +13,7 @@ class executionkanbanTester extends tester public function checkNums($nums) { $form = $this->initForm('execution', 'executionkanban', '', 'appIframe-execution'); - $form->wait(1); + $form->wait(3); if($form->dom->wait->getText() != $nums[0]) return $this->failed('未开始的执行列统计错误'); if($form->dom->doing->getText(2) != $nums[1]) return $this->failed('进行中的执行列统计错误'); if($form->dom->suspend->getText(3) != $nums[2]) return $this->failed('已挂起的执行列统计错误'); diff --git a/module/execution/test/lib/importbug.ui.class.php b/module/execution/test/lib/importbug.ui.class.php index 0648fce922..7cc026d72c 100644 --- a/module/execution/test/lib/importbug.ui.class.php +++ b/module/execution/test/lib/importbug.ui.class.php @@ -14,11 +14,14 @@ class importBugTester extends tester public function importBug($executionId, $expectNum) { $form = $this->initForm('execution', 'task', array('execution' => $executionId), 'appIframe-execution'); + $form->wait(3); $form->dom->btn($this->lang->import)->click(); + $form->wait(1); $form->dom->btn($this->lang->execution->importBug)->click(); + $form->wait(1); $importForm = $this->loadPage('execution', 'importBug'); - $importForm->wait(1); + $importForm->wait(3); if($importForm->dom->num === false) { if ($expectNum == '0') return $this->success('可导入的Bug数目正确'); diff --git a/module/execution/test/lib/kanbaninlite.ui.class.php b/module/execution/test/lib/kanbaninlite.ui.class.php index 6ac70103e7..49241d4c2a 100644 --- a/module/execution/test/lib/kanbaninlite.ui.class.php +++ b/module/execution/test/lib/kanbaninlite.ui.class.php @@ -15,7 +15,7 @@ class kanbanTester extends tester */ public function checkKanban($col, $num, $groupId = '', $lane = '1') { - $this->switchVision('lite'); + $this->switchVision('lite', 5); $form = $this->initForm('execution', 'kanban', array('kanbanID' => '2'), 'appIframe-project'); $form->wait(1); diff --git a/module/execution/test/lib/putoffinlite.ui.class.php b/module/execution/test/lib/putoffinlite.ui.class.php new file mode 100644 index 0000000000..666d8d7dfd --- /dev/null +++ b/module/execution/test/lib/putoffinlite.ui.class.php @@ -0,0 +1,118 @@ +initForm('execution', 'kanban', array('kanbanID' => $executionId ), 'appIframe-project'); + $form->wait(1); + $form->dom->kanbanSettingInLite->click(); + $form->wait(1); + $form->dom->btn($this->lang->execution->putoff)->click(); + if(isset($execution['begin'])) $form->dom->begin->datePicker($execution['begin']); + if(isset($execution['end'])) $form->dom->end->datePicker($execution['end']); + if(isset($execution['days'])) $form->dom->days->setValue($execution['days']); + $form->dom->putoffSubmitInLite->click(); + $form->wait(1); + } + + /** + * 延期执行。 + * Putoff execution. + * + * @param array $execution + * @param string $executionId + * @access public + * @return bool + */ + public function putoff($execution, $executionId) + { + $this->switchVision('lite', 5); + $this->inputFields($execution, $executionId); + $form = $this->loadPage(); + $form->wait(1); + if(is_object($form->dom->putoffSubmitInLite)) return $this->failed('延期失败'); + + $form = $this->initForm('execution', 'view', array('kanbanID' => $executionId ), 'appIframe-project'); + if(isset($execution['begin']) && $form->dom->plannedBeginInLite->getText() != $execution['begin']) return $this->failed('计划开始时间错误'); + if(isset($execution['end']) && $form->dom->plannedEndInLite->getText() != $execution['end']) return $this->failed('计划完成时间错误'); + return $this->success('延期执行成功'); + } + + /** + * 延期执行的计划起止日期不正确。 + * Putoff execution with wrong date. + * + * @param array $execution + * @param string $executionId + * @param string $dateType begin|end + * @access public + * @return bool + */ + public function putoffWithWrongDate($execution, $executionId, $dateType = 'end') + { + $this->inputFields($execution, $executionId); + $form = $this->loadPage(); + $form->wait(1); + + if(!is_object($form->dom->putoffSubmitInLite)) return $this->failed('错误的延期成功'); + + if($dateType == 'end' && $execution['end'] != '') + { + $text = $form->dom->endTip->getText(); + if($this->config->default->lang == 'zh-cn') $info = '看板截止日期应小于等于项目的截止日期:。'; + if($this->config->default->lang == 'en') $info = 'The deadline of Kanban should be ≤ the deadline of Project : .'; + } + if($dateType == 'begin') + { + $text = $form->dom->beginTip->getText(); + if($this->config->default->lang == 'zh-cn') $info = '看板开始日期应大于等于项目的开始日期:。'; + if($this->config->default->lang == 'en') $info = 'The start date of Kanban should be ≥ the start date of Project : .'; + } + /* 计划结束日期为空时,错误提示中没有日期 */ + if($dateType == 'end' && $execution['end'] == '') + { + $info = sprintf($this->lang->error->notempty, $this->lang->execution->end); + $params = $form->dom->endTip->getText(); + } + else + { + /* 获取页面返回信息中除日期外的内容 */ + preg_match_all('/(\d{4}-\d{2}-\d{2})/', $text, $matches); ~ + $date = $matches[0][0]; ~ + $params = str_replace($date, '', $text); ~ + $params = trim($params); + } + + if($params == $info) return $this->success('延期执行表单页提示信息正确'); + return $this->failed('延期执行表单页提示信息不正确'); + } + + /** + * 延期执行的可用工日不正确。 + * Putoff execution with wrong days. + * + * @param array $execution + * @param string $executionId + * @access public + * @return bool + */ + public function putoffWithWrongDays($execution, $executionId) + { + $this->inputFields($execution, $executionId); + $form = $this->loadPage(); + $form->wait(1); + if(!is_object($form->dom->putoffSubmitInLite)) return $this->failed('错误的延期成功'); + if($form->dom->daysTip->getText() == $this->lang->project->copyProject->daysTips) return $this->success('延期执行表单页提示信息正确'); + return $this->failed('延期执行表单页提示信息不正确'); + } +} diff --git a/module/execution/test/lib/startinlite.ui.class.php b/module/execution/test/lib/startinlite.ui.class.php index d754a22d0c..62cbd9d7f7 100644 --- a/module/execution/test/lib/startinlite.ui.class.php +++ b/module/execution/test/lib/startinlite.ui.class.php @@ -36,7 +36,6 @@ class startExecutionTester extends tester */ public function start($realBegan, $kanbanId) { - $this->switchVision('lite'); $this->inputFields($realBegan, $kanbanId); $form = $this->initForm('execution', 'view', array('kanbanID' => $kanbanId ), 'appIframe-project'); if($form->dom->status->getText() != $this->lang->execution->statusList->doing) return $this->failed('看板状态错误'); @@ -55,7 +54,7 @@ class startExecutionTester extends tester */ public function startWithGreaterDate($realBegan, $kanbanId) { - $this->switchVision('lite'); + $this->switchVision('lite', 5); $this->inputFields($realBegan, $kanbanId); $form = $this->loadPage(); $field = $form->dom->realBegan->getValue(); diff --git a/module/execution/test/lib/story.ui.class.php b/module/execution/test/lib/story.ui.class.php index b1f88ba822..4b80fb5b35 100755 --- a/module/execution/test/lib/story.ui.class.php +++ b/module/execution/test/lib/story.ui.class.php @@ -14,6 +14,7 @@ class storyTester extends tester public function checkTab($tab, $expectNum) { $form = $this->initForm('execution', 'story', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $form->dom->$tab->click(); $form->wait(1); if($form->dom->num->getText() == $expectNum) return $this->success($tab . '下显示条数正确'); @@ -30,8 +31,10 @@ class storyTester extends tester public function unlinkStory() { $form = $this->initForm('execution', 'story', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $name = $form->dom->firstName->getText(); $form->dom->firstUnlinkBtn->click(); + $form->wait(1); $form->dom->alertModal(); $form->wait(1); @@ -51,8 +54,10 @@ class storyTester extends tester public function batchUnlinkStory() { $form = $this->initForm('execution', 'story', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $name = $form->dom->firstName->getText(); $form->dom->firstCheckbox->click(); + $form->wait(1); $form->dom->btn($this->lang->execution->unlinkStory)->click(); $form->wait(1); $form->dom->alertModal(); @@ -76,6 +81,7 @@ class storyTester extends tester public function batchEditPhase($status, $phase) { $form = $this->initForm('execution', 'story', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $storyStatus = $this->lang->story->statusList->$status; $storyPhase = $this->lang->story->stageList->$phase; diff --git a/module/execution/test/lib/storyestimate.ui.class.php b/module/execution/test/lib/storyestimate.ui.class.php index a9f2138717..9b8d415e62 100644 --- a/module/execution/test/lib/storyestimate.ui.class.php +++ b/module/execution/test/lib/storyestimate.ui.class.php @@ -13,15 +13,19 @@ class StoryEstimateTester extends tester public function inputForm($estimate) { $form = $this->initForm('execution', 'story', array('execution' => '2'), 'appIframe-execution'); + $form->wait(3); $form->dom->xpath['firstEstimateBtn'] = "//a[@title = '{$this->lang->execution->storyEstimate}']"; $form->dom->firstEstimateBtn->click(); + $form->wait(1); if(is_object($form->dom->reestimate)) $form->dom->reestimate->click(); + $form->wait(1); if(isset($estimate[0])) $form->dom->estimateA->setValue($estimate[0]); if(isset($estimate[1])) $form->dom->estimateB->setValue($estimate[1]); if(isset($estimate[2])) $form->dom->estimateC->setValue($estimate[2]); $form->wait(1); $form->dom->saveBtn->click(); + $form->wait(1); } /** @@ -86,6 +90,7 @@ class StoryEstimateTester extends tester public function noTeamInfo() { $form = $this->initForm('execution', 'story', array('execution' => '3'), 'appIframe-execution'); + $form->wait(3); $form->dom->xpath['firstEstimateBtn'] = "//a[@title = '{$this->lang->execution->storyEstimate}']"; $form->dom->firstEstimateBtn->click(); diff --git a/module/execution/test/lib/suspendinlite.ui.class.php b/module/execution/test/lib/suspendinlite.ui.class.php new file mode 100644 index 0000000000..d2b2e62fd4 --- /dev/null +++ b/module/execution/test/lib/suspendinlite.ui.class.php @@ -0,0 +1,29 @@ +switchVision('lite', 5); + $form = $this->initForm('execution', 'kanban', array('execution' => $executionId ), 'appIframe-project'); + $form->wait(1); + $form->dom->kanbanSettingInLite->click(); + $form->wait(1); + $form->dom->btn($this->lang->execution->suspend)->click(); + $form->dom->suspendSubmitInLite->click(); + $form->wait(3); + + /* 调用view方法,方便获取数据 */ + $viewForm = $this->initForm('execution', 'view', array('execution' => $executionId ), 'appIframe-project'); + if($viewForm->dom->status->getText() != $this->lang->execution->statusList->suspended) return $this->failed('看板状态错误'); + return $this->success('挂起看板成功'); + } +} diff --git a/module/execution/test/lib/taskinlite.ui.class.php b/module/execution/test/lib/taskinlite.ui.class.php new file mode 100755 index 0000000000..2b624525ce --- /dev/null +++ b/module/execution/test/lib/taskinlite.ui.class.php @@ -0,0 +1,79 @@ +switchVision('lite', 5); + $form = $this->initForm('execution', 'task', array('execution' => '2'), 'appIframe-project'); + $form->wait(1); + $params = array('allTab', 'unclosedTab', 'myTab', 'involvedTab', 'assignedByMeTab', 'changedByMeTab'); + if(!in_array($tab, $params)) $form->dom->MoreTab->click(); + $form->wait(1); + $form->dom->$tab->click(); + $form->wait(1); + if($form->dom->numInLite->getText() == $expectNum) return $this->success($tab . '下显示条数正确'); + return $this->failed($tab . '下显示条数不正确'); + } + + /** + * 批量编辑状态 + * Batch edit status + * + * @param string $status closed|cancel + * @access public + * @return object + */ + public function batchEditStatus($status) + { + $form = $this->initForm('execution', 'task', array('execution' => '2'), 'appIframe-project'); + $form->wait(1); + $name = $form->dom->firstName->getText(); + $btn = $status . 'Btn'; + $form->dom->firstCheckbox->click(); + $form->dom->statusBtn->click(); + $form->wait(1); + $form->dom->$btn->click(); + $form->wait(1); + if(is_object($form->dom->modal)) $form->dom->alertModal(); + $form->wait(1); + $form->dom->search(array("{$this->lang->task->name},=,{$name}")); + $form->wait(1); + $statusAfter = $form->dom->firstStatus->getText(); + if($this->lang->task->statusList->$status == $statusAfter) return $this->success("批量修改状态为{$status}成功"); + return $this->failed("批量修改状态为{$status}失败"); + } + + /** + * 批量指派 + * Batch assign + * + * @access public + * @return object + */ + public function batchAssign() + { + $form = $this->initForm('execution', 'task', array('execution' => '2'), 'appIframe-project'); + $form->wait(1); + $name = $form->dom->firstName->getText(); + $form->dom->firstCheckbox->click(); + $form->dom->assignedToBtn->click(); + $form->wait(1); + $form->dom->users->click(); + $form->wait(1); + $form->dom->search(array("{$this->lang->task->name},=,{$name}")); + $form->wait(1); + $assignedToAfter = $form->dom->firstAssignedTo->getText(); + if($assignedToAfter == 'admin') return $this->success('批量指派成功'); + return $this->failed('批量指派失败'); + } +} diff --git a/module/execution/test/lib/taskkanban.ui.class.php b/module/execution/test/lib/taskkanban.ui.class.php index ea18c7492e..5bbdfebcb3 100644 --- a/module/execution/test/lib/taskkanban.ui.class.php +++ b/module/execution/test/lib/taskkanban.ui.class.php @@ -6,14 +6,15 @@ class taskkanbanTester extends tester * 检查看板数据。 * Check kanban. * - * @param string $col * @param string $num * @param string $nameId * @param string $groupId + * @param string $lane 页面上显示的第几个泳道 + * @param string $col 泳道中的第几个列 * @access public * @return object */ - public function checkKanban($col, $num, $nameId = '', $groupId = '') + public function checkKanban($lane, $col, $num, $nameId = '', $groupId = '') { $form = $this->initForm('execution', 'taskkanban', array('execution' => '2'), 'appIframe-execution'); @@ -30,12 +31,13 @@ class taskkanbanTester extends tester { $form->dom->xpath['kanbanGroup'] = "(//menu/menu/li)[{$groupId}]"; $form->dom->groupPicker->click(); + $form->wait(1); $form->dom->kanbanGroup->click(); $form->wait(1); } /* 检查对应泳道下的卡片数量 */ - $form->dom->xpath['col'] = "//div[@z-col='{$col}']//div[@class='card']"; + $form->dom->xpath['col'] = "//div[@class='kanban-body']/div[{$lane}]/div[2]/div[{$col}]//div[@class='card']"; if(count($form->dom->getElementList($form->dom->xpath['col'])->element) != $num) return $this->failed("数据错误"); return $this->success("数据正确"); } diff --git a/module/execution/test/ui/activateexecution.php b/module/execution/test/ui/activateexecution.php index 73fcb2ed07..92f41698b8 100644 --- a/module/execution/test/ui/activateexecution.php +++ b/module/execution/test/ui/activateexecution.php @@ -2,9 +2,27 @@ id->range('1-100'); +$project->project->range('0, 1{2}'); +$project->model->range('kanban, []{2}'); +$project->type->range('project, kanban{2}'); +$project->auth->range('[]'); +$project->storyType->range('[]'); +$project->parent->range('0, 1{2}'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`'); +$project->grade->range('1'); +$project->name->range('项目, 挂起的看板, 已关闭的看板'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->openedBy->range('user1'); +$project->acl->range('open'); +$project->status->range('doing, suspended, closed'); +$project->vision->range('lite'); +$project->gen(3); + +$tester = new activateExecutionTester(); +$tester->login(); + +$end = array(date('Y-m-d', strtotime('+1 days')), '', date('Y-m-d', strtotime('-10 months')), date('Y-m-d', strtotime('+10 months'))); + +r($tester->activateWithLessEnd($end[1], '2')) && p('status,message') && e('SUCCESS,激活看板表单页提示信息正确'); //计划完成日期为空,激活失败 +r($tester->activateWithLessEnd($end[2], '3')) && p('status,message') && e('SUCCESS,激活看板表单页提示信息正确'); //计划完成日期小于计划开始日期,激活失败 +r($tester->activateWithGreaterEnd($end[3], '2')) && p('status,message') && e('SUCCESS,激活看板表单页提示信息正确'); //计划完成日期大于项目的计划完成日期,激活失败 +r($tester->activate($end[0], '2')) && p('status,message') && e('SUCCESS,激活看板成功'); //成功激活挂起的看板 +r($tester->activate($end[0], '3')) && p('status,message') && e('SUCCESS,激活看板成功'); //成功激活已关闭的看板 +$tester->closeBrowser(); diff --git a/module/execution/test/ui/allexecution.php b/module/execution/test/ui/allexecution.php index daa8f8f3fd..03388f0947 100755 --- a/module/execution/test/ui/allexecution.php +++ b/module/execution/test/ui/allexecution.php @@ -6,6 +6,41 @@ title=批量编辑执行状态 timeout=0 cid=1 + +- 执行tester模块的checkTab方法,参数是'all', '6'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @all标签下显示条数正确 +- 执行tester模块的checkTab方法,参数是'undone', '5'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @undone标签下显示条数正确 +- 执行tester模块的checkTab方法,参数是'wait', '3'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @wait标签下显示条数正确 +- 执行tester模块的checkTab方法,参数是'doing', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @doing标签下显示条数正确 +- 执行tester模块的checkTab方法,参数是'suspended', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @suspended标签下显示条数正确 +- 执行tester模块的checkTab方法,参数是'delayed', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @delayed标签下显示条数正确 +- 执行tester模块的checkTab方法,参数是'closed', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @closed标签下显示条数正确 +- 执行tester模块的changeStatus方法,参数是'wait'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量操作执行状态为wait成功 +- 执行tester模块的changeStatus方法,参数是'doing'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量操作执行状态为doing成功 +- 执行tester模块的changeStatus方法,参数是'suspended'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量操作执行状态为suspended成功 +- 执行tester模块的changeStatus方法,参数是'closed'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量操作执行状态为closed成功 + */ chdir(__DIR__); diff --git a/module/execution/test/ui/batchedit.php b/module/execution/test/ui/batchedit.php index b0ce2a0492..8e169b04a6 100755 --- a/module/execution/test/ui/batchedit.php +++ b/module/execution/test/ui/batchedit.php @@ -2,10 +2,37 @@ gen(3); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-3, 1-3'); $projectProduct->product->range('1{3}, 2{3}'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(6); $user = zenData('user'); diff --git a/module/execution/test/ui/build.php b/module/execution/test/ui/build.php index a03b15888c..86a366feac 100644 --- a/module/execution/test/ui/build.php +++ b/module/execution/test/ui/build.php @@ -2,10 +2,22 @@ gen(3); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1{2}, 2{2}'); $projectProduct->product->range('1, 2'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(4); $build = zenData('build'); diff --git a/module/execution/test/ui/closeexecution.php b/module/execution/test/ui/closeexecution.php index 1fea318e86..54137c333e 100644 --- a/module/execution/test/ui/closeexecution.php +++ b/module/execution/test/ui/closeexecution.php @@ -2,9 +2,21 @@ gen(1, false); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-5'); $projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(2); zenData('task')->gen(0); diff --git a/module/execution/test/ui/closeinlite.php b/module/execution/test/ui/closeinlite.php new file mode 100644 index 0000000000..8c6027dc4e --- /dev/null +++ b/module/execution/test/ui/closeinlite.php @@ -0,0 +1,83 @@ +#!/usr/bin/env php +id->range('1'); +$product->name->range('产品1'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(1); + +$project = zenData('project'); +$project->id->range('1-5'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('extend'); +$project->storytype->range('[]'); +$project->path->range('`,1,`'); +$project->grade->range('1'); +$project->name->range('项目1'); +$project->hasProduct->range('1'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->status->range('doing'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(1); + +$execution = zenData('project'); +$execution->id->range('2'); +$execution->project->range('1'); +$execution->type->range('kanban'); +$execution->parent->range('1'); +$execution->path->range('`,1,2,`'); +$execution->grade->range('1'); +$execution->name->range('测试关闭看板'); +$execution->hasProduct->range('1'); +$execution->begin->range('(-5D)-(-4D):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('(+M)-(+2M):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->realBegan->range('(-3D)-(-2D):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->status->range('doing'); +$execution->vision->range('lite'); +$execution->gen(1, false); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-5'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(2); + +zenData('task')->gen(0); + +$tester = new closeExecutionTester(); +$tester->login(); + +$realEnd = array(date('Y-m-d', strtotime('+20 days')), date('Y-m-d'), date('Y-m-d', strtotime('-4 days'))); + +r($tester->closeWithGreaterDate($realEnd[0], '2')) && p('status,message') && e('SUCCESS,关闭执行表单页提示信息正确'); +r($tester->closeWithLessDate($realEnd[2], '2')) && p('status,message') && e('SUCCESS,关闭执行表单页提示信息正确'); +r($tester->close($realEnd[1], '2')) && p('status,message') && e('SUCCESS,关闭执行成功'); +$tester->closeBrowser(); diff --git a/module/execution/test/ui/createexecution.php b/module/execution/test/ui/createexecution.php index d1a1ccda31..97340e599d 100755 --- a/module/execution/test/ui/createexecution.php +++ b/module/execution/test/ui/createexecution.php @@ -6,14 +6,49 @@ title=创建执行 timeout=0 cid=1 - */ + +- 创建执行成功 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行成功 +- 创建看板成功 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行成功 +- 执行名称为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 计划开始时间为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 计划结束时间为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 不同项目下同名执行,创建成功 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行成功 +- 执行名称重复,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 看板名称重复,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 创建阶段关联产品为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 执行的计划开始时间早于项目的计划开始时间,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 +- 执行的计划结束时间晚于项目的计划结束时间,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建执行表单页提示信息正确 + +*/ chdir(__DIR__); include '../lib/createexecution.ui.class.php'; $project = zenData('project'); $project->id->range('1-100'); -$project->project->range('0, 1'); +$project->project->range('0'); $project->model->range('scrum, waterfall, kanban'); $project->type->range('project'); $project->auth->range('extend'); diff --git a/module/execution/test/ui/createinlite.php b/module/execution/test/ui/createinlite.php index e8dad6efb9..cf09e003ab 100755 --- a/module/execution/test/ui/createinlite.php +++ b/module/execution/test/ui/createinlite.php @@ -6,6 +6,38 @@ title=运营界面创建看板 timeout=0 cid=1 + +- 创建看板成功 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板成功 +- 看板名称为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 看板代号为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 计划开始时间为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 计划结束时间为空,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 不同项目下同名看板、代号,创建成功 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板成功 +- 看板名称重复,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 看板代号重复,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 看板的计划开始时间早于项目的计划开始时间,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 +- 看板的计划结束时间晚于项目的计划结束时间,创建失败 + - 最终测试状态 @SUCCESS + - 测试结果 @创建看板表单页提示信息正确 + */ chdir(__DIR__); @@ -42,6 +74,8 @@ $product->gen(2); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-3'); $projectProduct->product->range('1, 2'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(2); $tester = new createExecutionTester(); diff --git a/module/execution/test/ui/delete.php b/module/execution/test/ui/delete.php new file mode 100644 index 0000000000..114c0c5b85 --- /dev/null +++ b/module/execution/test/ui/delete.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +id->range('1-100'); +$project->project->range('0, 1{2}'); +$project->model->range('scrum, []{2}'); +$project->type->range('project, sprint{2}'); +$project->auth->range('extend, []{2}'); +$project->storyType->range('story, []{2}'); +$project->parent->range('0, 1{2}'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`'); +$project->grade->range('1'); +$project->name->range('项目, 执行1, 执行2'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->openedBy->range('user1'); +$project->acl->range('open'); +$project->status->range('wait'); +$project->gen(3); + +$tester = new deleteExecutionTester(); +$tester->login(); + +r($tester->delete()) && p('status,message') && e('SUCCESS,删除执行成功'); +$tester->closeBrowser(); diff --git a/module/execution/test/ui/dynamic.php b/module/execution/test/ui/dynamic.php index 68ef16d8d5..6e12110a2c 100644 --- a/module/execution/test/ui/dynamic.php +++ b/module/execution/test/ui/dynamic.php @@ -2,10 +2,19 @@ acl->range('open'); $project->status->range('doing'); $project->gen(3); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1, 2'); -$projectproduct->product->range('1'); -$projectproduct->gen(2); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1, 2'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(2); $team = zenData('team'); $team->root->range('1{3}, 2{3}, 3{3}'); diff --git a/module/execution/test/ui/editexecution.php b/module/execution/test/ui/editexecution.php index 883fd00ba3..2b7ee07b36 100755 --- a/module/execution/test/ui/editexecution.php +++ b/module/execution/test/ui/editexecution.php @@ -6,41 +6,178 @@ title=编辑执行 timeout=0 cid=1 + +- 编辑执行成功 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行成功 +- 编辑看板成功 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行成功 +- 执行名称为空,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 计划开始时间为空,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 计划结束时间为空,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 不同项目下同名执行,编辑成功 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行成功 +- 执行名称重复,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 看板名称重复,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 执行的计划开始时间早于项目的计划开始时间,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 执行的计划结束时间晚于项目的计划结束时间,编辑失败 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行表单页提示信息正确 +- 编辑执行产品成功 + - 最终测试状态 @SUCCESS + - 测试结果 @编辑执行成功 + */ chdir(__DIR__); include '../lib/editexecution.ui.class.php'; $project = zenData('project'); -$project->id->range('1-100'); -$project->project->range('0, 1'); -$project->model->range('scrum, []'); -$project->type->range('project, sprint'); -$project->auth->range('extend, []'); -$project->storyType->range('story, []'); -$project->parent->range('0, 1'); -$project->path->range('`,1,`, `,1,2,`'); +$project->id->range('1-10'); +$project->project->range('0'); +$project->model->range('scrum, waterfall, kanban'); +$project->type->range('project'); +$project->auth->range('extend'); +$project->storyType->range('story'); +$project->parent->range('0'); +$project->path->range('`,1,`, `,2,`, `,3,`'); $project->grade->range('1'); -$project->name->range('敏捷项目, 执行'); -$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); -$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->name->range('敏捷项目, 瀑布项目, 看板项目'); +$project->begin->range('(-6M)-(-5M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+5M)-(+6M):1D')->type('timestamp')->format('YY/MM/DD'); $project->openedBy->range('user1'); $project->acl->range('open'); -$project->status->range('doing'); -$project->gen(2); +$project->status->range('wait'); +$project->gen(3); + +$execution = zenData('project'); +$execution->id->range('20-100'); +$execution->project->range('1{2}, 2{2}, 3{2}'); +$execution->model->range('[]'); +$execution->type->range('sprint{2}, stage{2}, kanban{2}'); +$execution->auth->range('[]'); +$execution->storyType->range('[]'); +$execution->parent->range('1{2}, 2{2}, 3{2}'); +$execution->path->range('`,1,20,`, `,1,21,`, `,2,22,`, `,2,23,`, `,3,24,`, `,3,25,`'); +$execution->grade->range('1'); +$execution->name->range('执行1, 执行2, 阶段1, 阶段2, 看板1, 看板2'); +$execution->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->openedBy->range('user1'); +$execution->acl->range('open'); +$execution->status->range('wait'); +$execution->gen(6, false); + +$product = zenData('product'); +$product->id->range('1-100'); +$product->name->range('产品1, 产品2'); +$product->type->range('normal'); +$product->gen(2); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-3, 20-25'); +$projectProduct->product->range('1{9}, 2{3}'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(12); $tester = new editExecutionTester(); $tester->login(); $execution = array( '0' => array( - 'name' => '编辑测试执行1', - 'project' => '敏捷项目', - 'begin' => date('Y-m-d', strtotime('+1 days')), - 'end' => date('Y-m-d', strtotime('+3 days')), - 'products' => '', + 'id' => '20', + 'name' => '测试执行1', + 'begin' => date('Y-m-d', strtotime('+1 days')), + 'end' => date('Y-m-d', strtotime('+3 days')), ), + '1' => array( + 'id' => '24', + 'name' => '测试看板1', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '2' => array( + 'id' => '20', + 'name' => '', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '3' => array( + 'id' => '20', + 'name' => '测试执行2', + 'begin' => '', + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '4' => array( + 'id' => '20', + 'name' => '测试执行3', + 'begin' => date('Y-m-d'), + 'end' => '', + ), + '5' => array( + 'id' => '24', + 'name' => '执行2', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '6' => array( + 'id' => '20', + 'name' => '执行2', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '7' => array( + 'id' => '24', + 'name' => '看板2', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '8' => array( + 'id' => '20', + 'name' => '测试执行4', + 'begin' => date('Y-m-d', strtotime('-2 years')), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '9' => array( + 'id' => '20', + 'name' => '测试执行5', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 years')), + ), + '10' => array( + 'id' => '20', + 'name' => '测试执行6', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + 'products' => '产品2', + ) + ); -r($tester->edit($execution['0'])) && p('status,message') && e('SUCCESS,编辑执行成功'); //编辑执行成功 +r($tester->edit($execution['0'])) && p('status,message') && e('SUCCESS,编辑执行成功'); //编辑执行成功 +r($tester->edit($execution['1'], 'kanban')) && p('status,message') && e('SUCCESS,编辑执行成功'); //编辑看板成功 +r($tester->edit($execution['2'])) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //执行名称为空,编辑失败 +r($tester->edit($execution['3'])) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //计划开始时间为空,编辑失败 +r($tester->edit($execution['4'])) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //计划结束时间为空,编辑失败 +r($tester->edit($execution['5'], 'kanban')) && p('status,message') && e('SUCCESS,编辑执行成功'); //不同项目下同名执行,编辑成功 +r($tester->editWithRepeatName($execution['6'])) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //执行名称重复,编辑失败 +r($tester->editWithRepeatName($execution['7'], 'kanban')) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //看板名称重复,编辑失败 +r($tester->editWithDateError($execution['8'], 'begin')) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //执行的计划开始时间早于项目的计划开始时间,编辑失败 +r($tester->editWithDateError($execution['9'], 'end')) && p('status,message') && e('SUCCESS,编辑执行表单页提示信息正确'); //执行的计划结束时间晚于项目的计划结束时间,编辑失败 +r($tester->edit($execution['10'])) && p('status,message') && e('SUCCESS,编辑执行成功'); //编辑执行产品成功 $tester->closeBrowser(); diff --git a/module/execution/test/ui/editinlite.php b/module/execution/test/ui/editinlite.php new file mode 100755 index 0000000000..f71e5a622b --- /dev/null +++ b/module/execution/test/ui/editinlite.php @@ -0,0 +1,121 @@ +#!/usr/bin/env php +id->range('1-100'); +$project->project->range('0, 1{2}'); +$project->model->range('kanban, []{2}'); +$project->type->range('project, kanban{2}'); +$project->auth->range('[]'); +$project->storyType->range('[]'); +$project->parent->range('0, 1{2}'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`'); +$project->grade->range('1'); +$project->name->range('项目, 看板1, 看板2'); +$project->hasProduct->range('0'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->openedBy->range('user1'); +$project->acl->range('open'); +$project->status->range('wait'); +$project->vision->range('lite'); +$project->gen(3); + +$product = zenData('product'); +$product->id->range('1-100'); +$product->name->range('项目'); +$product->shadow->range('1'); +$product->bind->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(1); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-3'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(3); + +$tester = new editExecutionTester(); +$tester->login(); + +$execution = array( + '0' => array( + 'name' => '编辑看板1', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '1' => array( + 'name' => '', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '2' => array( + 'name' => '编辑看板2', + 'begin' => '', + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '3' => array( + 'name' => '编辑看板3', + 'begin' => date('Y-m-d'), + 'end' => '', + ), + '4' => array( + 'name' => '看板2', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '5' => array( + 'name' => '编辑看板5', + 'begin' => date('Y-m-d', strtotime('-2 years')), + 'end' => date('Y-m-d', strtotime('+2 days')), + ), + '6' => array( + 'name' => '测试看板9', + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+2 years')), + ), +); + +r($tester->edit($execution['0'])) && p('status,message') && e('SUCCESS,编辑看板成功'); //编辑看板成功 +r($tester->editWithEmptyName($execution['1'])) && p('status,message') && e('SUCCESS,编辑看板表单页提示信息正确'); //看板名称为空,编辑失败 +r($tester->edit($execution['2'])) && p('status,message') && e('SUCCESS,编辑看板表单页提示信息正确'); //计划开始时间为空,编辑失败 +r($tester->edit($execution['3'])) && p('status,message') && e('SUCCESS,编辑看板表单页提示信息正确'); //计划结束时间为空,编辑失败 +r($tester->editWithRepeatName($execution['4'])) && p('status,message') && e('SUCCESS,编辑看板表单页提示信息正确'); //看板名称重复,编辑失败 +r($tester->editWithDateError($execution['5'], 'begin')) && p('status,message') && e('SUCCESS,编辑看板表单页提示信息正确'); //看板的计划开始时间早于项目的计划开始时间,编辑失败 +r($tester->editWithDateError($execution['6'], 'end')) && p('status,message') && e('SUCCESS,编辑看板表单页提示信息正确'); //看板的计划结束时间晚于项目的计划结束时间,编辑失败 +$tester->closeBrowser(); diff --git a/module/execution/test/ui/executionkanban.php b/module/execution/test/ui/executionkanban.php index dd41b39b42..359922b63a 100644 --- a/module/execution/test/ui/executionkanban.php +++ b/module/execution/test/ui/executionkanban.php @@ -2,10 +2,16 @@ acl->range('open'); $project->status->range('doing'); $project->gen(2); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1, 2'); -$projectproduct->product->range('1'); -$projectproduct->gen(2); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1, 2'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(2); $story = zenData('story'); $story->id->range('1-100'); diff --git a/module/execution/test/ui/importbug.php b/module/execution/test/ui/importbug.php index 60ef6fab3d..b5e7aff7d3 100644 --- a/module/execution/test/ui/importbug.php +++ b/module/execution/test/ui/importbug.php @@ -2,10 +2,25 @@ gen(5); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-3'); $projectProduct->product->range('1{2}, 2{3}'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(5); $bug = zenData('bug'); diff --git a/module/execution/test/ui/importtask.php b/module/execution/test/ui/importtask.php index 4aecd13e77..eb317d254f 100644 --- a/module/execution/test/ui/importtask.php +++ b/module/execution/test/ui/importtask.php @@ -2,10 +2,34 @@ gen(1); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-3'); $projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(3); $kanbanregion = zenData('kanbanregion'); diff --git a/module/execution/test/ui/linkstory.php b/module/execution/test/ui/linkstory.php index 6cbd86ace2..af3e0f9747 100755 --- a/module/execution/test/ui/linkstory.php +++ b/module/execution/test/ui/linkstory.php @@ -2,10 +2,19 @@ gen(3); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-2'); $projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(2); $story = zenData('story'); diff --git a/module/execution/test/ui/managemembers.php b/module/execution/test/ui/managemembers.php index c95af9fe6e..f5f6e8e894 100644 --- a/module/execution/test/ui/managemembers.php +++ b/module/execution/test/ui/managemembers.php @@ -2,10 +2,28 @@ acl->range('open'); $execution->status->range('wait'); $execution->gen(5, false); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1{3}, 2, 3{2}, 4{2}, 5-9, 9'); -$projectproduct->product->range('1-3, 5, 1, 2, 1, 2, 1{2}, 5, 1{2}, 2'); -$projectproduct->gen(14); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1{3}, 2, 3{2}, 4{2}, 5-9, 9'); +$projectProduct->product->range('1-3, 5, 1, 2, 1, 2, 1{2}, 5, 1{2}, 2'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(14); $tester = new manageProductsTester(); $tester->login(); diff --git a/module/execution/test/ui/page/all.php b/module/execution/test/ui/page/all.php index fb828cca47..1ae8f0506c 100755 --- a/module/execution/test/ui/page/all.php +++ b/module/execution/test/ui/page/all.php @@ -19,6 +19,8 @@ class allPage extends page 'suspendedTab' => "//*[@id='featureBar']/menu/li[5]/a", 'delayedTab' => "//*[@id='featureBar']/menu/li[6]/a", 'closedTab' => "//*[@id='featureBar']/menu/li[7]/a", + /* 搜索不到执行数据的提示信息 */ + 'tips' => "//*[@id='table-execution-all']/div/div/div", /* 批量编辑状态 */ 'statusBtn' => "//*[@id='table-execution-all']/div[3]/nav[1]/button", 'wait' => "//*[@data-page='execution-all']/div[2]/menu/menu/li[1]/a", diff --git a/module/execution/test/ui/page/kanban.php b/module/execution/test/ui/page/kanban.php index 3e03847628..d350e000be 100755 --- a/module/execution/test/ui/page/kanban.php +++ b/module/execution/test/ui/page/kanban.php @@ -8,8 +8,19 @@ class kanbanPage extends page 'settings' => "//*[@id='navbar']//a[@data-id='settings']/span", 'groupPickerInLite' => "//*[@id='actionBar']/button[1]", 'kanbanSettingInLite' => "//*[@id='actionBar']/button[2]/span", + /* 编辑看板弹窗中的提交按钮 */ + 'editSubmitInLite' => "//form[contains(@id,'zin_execution_edit')]/div[last()]/button", /* 开始看板弹窗中的提交按钮 */ 'startSubmitInLite' => "//*[@data-name='realBegan']/..//button", + /* 延期看板弹窗中的提交按钮 */ + 'putoffSubmitInLite' => "//form[contains(@id,'zin_execution_putoff')]//button", + /* 挂起看板弹窗中的提交按钮 */ + 'suspendSubmitInLite' => "//form[contains(@id,'zin_execution_suspend')]//button", + /* 关闭看板弹窗中的元素 */ + 'realEndField' => "//div[@data-name='realEnd']/label/span", + 'closeSubmitInLite' => "//form[contains(@id,'zin_execution_close')]//button", + /* 激活看板弹窗中的提交按钮 */ + 'activateSubmitInLite' => "//form[contains(@id,'zin_execution_activate')]//button", ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); } diff --git a/module/execution/test/ui/page/task.php b/module/execution/test/ui/page/task.php index dde579c380..c0a487f4be 100755 --- a/module/execution/test/ui/page/task.php +++ b/module/execution/test/ui/page/task.php @@ -22,16 +22,17 @@ class taskPage extends page 'cancelTab' => "//*[@id='status']/menu/menu/li[7]/a", 'delayedTab' => "//*[@id='status']/menu/menu/li[8]/a", 'num' => "//*[@id='tasks']/div[3]/div[2]/strong[1]", + 'numInLite' => "//*[@id='table-execution-task']/div[3]/div[2]/strong[1]", /* 列表 */ - 'firstCheckbox' => "//*[@id='tasks']/div[2]/div[1]/div/div[1]/div/div", - 'firstName' => "//*[@id='tasks']/div[2]/div[1]/div/div[2]/div/a", - 'firstStatus' => "//*[@id='tasks']/div[2]/div[2]/div/div[2]/div/div/span", - 'firstAssignedTo' => "//*[@id='tasks']/div[2]/div[2]/div/div[3]/div/a/span", - 'statusBtn' => "//*[@id='tasks']/div[3]/nav[1]/nav/button[2]", + 'firstCheckbox' => "(//div[@data-type='checkID' and @data-col='id'])[2]//label", + 'firstName' => "(//div[@data-col='name' and @data-type='nestedTitle'])[2]//a", + 'firstStatus' => "//div[@class='dtable-block dtable-body'][.//div[@data-type='checkID' and @data-col='id']]/div[2]//div[@data-type='status']//span", + 'firstAssignedTo' => "//div[@class='dtable-block dtable-body'][.//div[@data-type='checkID' and @data-col='id']]/div[2]//div[@data-type='assign']//span", + 'statusBtn' => "(//div[@class='dtable-footer']//span[@class='caret-up'])[1]", 'closedBtn' => "(//div[@class='item-title'])[1]", 'cancelBtn' => "(//div[@class='item-title'])[2]", - 'assignedToBtn' => "//*[@id='tasks']/div[3]/nav[1]/button[2]", - 'users' => "//*[@data-page='execution-task']/div[2]/menu/menu//div[@class='item-title' and text()='admin']", + 'assignedToBtn' => "(//div[@class='dtable-footer']//span[@class='caret-up'])[3]", + 'users' => "//div[@class='item-title' and text()='admin']", 'modal' => "//div[contains(@id,'modal')]", ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); diff --git a/module/execution/test/ui/page/view.php b/module/execution/test/ui/page/view.php index 4d42165964..1b5d3ba566 100755 --- a/module/execution/test/ui/page/view.php +++ b/module/execution/test/ui/page/view.php @@ -18,7 +18,8 @@ class viewPage extends page 'plannedEnd' => "//*[@id='mainContent']/div[2]/div[1]/div/table[3]/tbody/tr/td/div/div[2]/span[2]", 'realBeganView' => "//*[@id='mainContent']/div[2]/div[1]/div/table[3]/tbody/tr/td/div/div[3]/span[2]", 'realEndView' => "//*[@id='mainContent']/div[2]/div[1]/div/table[3]/tbody/tr/td/div/div[4]/span[2]", - 'edit' => "//*[@id='mainContent']/div[3]/div/a[last()-1]", + 'editBtn' => "//*[@id='mainContent']/div[3]/div/a[last()-1]", + 'deleteBtn' => "//*[@id='mainContent']/div[3]/div/a[last()]", 'linckedProducta' => "//*[@id='mainContent']/div[2]/div[1]/div/table[1]/tbody/tr[1]/td[1]", 'linckedProductb' => "//*[@id='mainContent']/div[2]/div[1]/div/table[1]/tbody/tr[2]/td[1]", 'productsNev' => "//*[@data-id='products']", @@ -33,6 +34,7 @@ class viewPage extends page 'createDoclib' => "//*[@id='mainContent']/div[2]/div[1]/div/table[5]/tbody/tr/td/div/div[3]/a/span", 'doclibModal' => "//*[@class='modal-dialog']", /* 编辑执行弹窗中元素 */ + 'nameLabel' => "//*[@name='name']/..//span", 'products' => "//*[@name='products[0]']", 'productsTip' => "//*[@id='products[0]Tip']", 'submit' => "//*[@type='submit']/span", @@ -48,6 +50,9 @@ class viewPage extends page 'putoffSubmit' => "//*[@class='modal-actions']/../div[3]/div/div/form/div[4]/div/button", /* 激活执行弹窗中的元素 */ 'activateSubmit' => "//*[@class='modal-actions']/../div[3]/div/div/form/div[3]/div/button", + /* 运营管理界面下元素 */ + 'plannedBeginInLite' => "//*[@id='mainContent']/div[2]/div[1]/div/table[2]/tbody/tr/td/div/div[1]/span[2]", + 'plannedEndInLite' => "//*[@id='mainContent']/div[2]/div[1]/div/table[2]/tbody/tr/td/div/div[2]/span[2]", ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); } diff --git a/module/execution/test/ui/putoffexecution.php b/module/execution/test/ui/putoffexecution.php index 2b03871f48..370c67cf89 100644 --- a/module/execution/test/ui/putoffexecution.php +++ b/module/execution/test/ui/putoffexecution.php @@ -2,10 +2,43 @@ id->range('1-100'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('[]'); +$project->storyType->range('[]'); +$project->parent->range('0'); +$project->path->range('`,1,`'); +$project->grade->range('1'); +$project->name->range('项目'); +$project->hasProduct->range('0'); +$project->begin->range('(-6M)-(-5M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+5M)-(+6M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->openedBy->range('user1'); +$project->acl->range('open'); +$project->status->range('doing'); +$project->vision->range('lite'); +$project->gen(1); + +$execution = zenData('project'); +$execution->id->range('2, 3'); +$execution->project->range('1{2}'); +$execution->model->range('[]{2}'); +$execution->type->range('kanban{2}'); +$execution->auth->range('[]'); +$execution->storyType->range('[]'); +$execution->parent->range('1{2}'); +$execution->path->range('`,1,2,`, `,1,3,`'); +$execution->grade->range('1'); +$execution->name->range('看板1, 看板2'); +$execution->hasProduct->range('0'); +$execution->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$execution->openedBy->range('user1'); +$execution->acl->range('open'); +$execution->status->range('wait, doing'); +$execution->vision->range('lite'); +$execution->gen(2, false); + +$product = zenData('product'); +$product->id->range('1-100'); +$product->name->range('项目'); +$product->shadow->range('1'); +$product->bind->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(1); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-3'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(3); + +$tester = new putoffexecutionTester(); +$tester->login(); + +$execution = array( + '0' => array( + 'days' => '10', + ), + '1' => array( + 'begin' => date('Y-m-d', strtotime('-1 days')), + 'end' => date('Y-m-d', strtotime('+1 days')), + 'days' => '10', + ), + '2' => array( + 'begin' => '', + 'end' => date('Y-m-d'), + 'days' => '10', + ), + '3' =>array( + 'begin' => date('Y-m-d'), + 'end' => '', + 'days' => '10', + ), + '4' => array( + 'begin' => date('Y-m-d', strtotime('-10 months')), + 'end' => date('Y-m-d'), + 'days' => '10', + ), + '5' => array( + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d', strtotime('+10 months')), + 'days' => '10', + ), + '6' => array( + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d'), + 'days' => '', + ), + '7' => array( + 'begin' => date('Y-m-d'), + 'end' => date('Y-m-d'), + 'days' => 'aaa', + ), +); + +r($tester->putoff($execution['0'], '2')) && p('status,message') && e('SUCCESS,延期执行成功'); //未开始的执行,修改可用工作日,保存成功 +r($tester->putoff($execution['0'], '3')) && p('status,message') && e('SUCCESS,延期执行成功'); //进行中的执行,修改可用工作日,保存成功 +r($tester->putoff($execution['1'], '2')) && p('status,message') && e('SUCCESS,延期执行成功'); //未开始的执行,延期弹窗中修改正确的起止日期后点击保存 +r($tester->putoff($execution['1'], '3')) && p('status,message') && e('SUCCESS,延期执行成功'); //进行中的执行,延期弹窗中修改正确的起止日期后点击保存 +r($tester->putoffWithWrongDate($execution['3'], '3', 'end')) && p('status,message') && e('SUCCESS,延期执行表单页提示信息正确'); //计划结束日期为空,可用工日不为空 +r($tester->putoffWithWrongDate($execution['2'], '2', 'begin')) && p('status,message') && e('SUCCESS,延期执行表单页提示信息正确'); //计划开始日期为空 +r($tester->putoffWithWrongDate($execution['4'], '3', 'begin')) && p('status,message') && e('SUCCESS,延期执行表单页提示信息正确'); //计划开始日期小于项目计划开始日期 +r($tester->putoffWithWrongDate($execution['5'], '2', 'end')) && p('status,message') && e('SUCCESS,延期执行表单页提示信息正确'); //计划结束日期大于项目计划完成日期 +r($tester->putoffWithWrongDays($execution['6'], '2')) && p('status,message') && e('SUCCESS,延期执行表单页提示信息正确'); //可用工日为空 +r($tester->putoffWithWrongDays($execution['7'], '2')) && p('status,message') && e('SUCCESS,延期执行表单页提示信息正确'); //可用工日为非数字 +$tester->closeBrowser(); diff --git a/module/execution/test/ui/startexecution.php b/module/execution/test/ui/startexecution.php index 860e00634d..a555db57c6 100644 --- a/module/execution/test/ui/startexecution.php +++ b/module/execution/test/ui/startexecution.php @@ -2,9 +2,18 @@ type->range('project, kanban{2}'); $project->auth->range('[]'); $project->storyType->range('[]'); $project->parent->range('0, 1{2}'); -$project->path->range('`,1,`, `,1,2,`'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`'); $project->grade->range('1'); $project->name->range('项目, 看板1, 看板2'); $project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); diff --git a/module/execution/test/ui/story.php b/module/execution/test/ui/story.php index df98eccc6a..ef7ca78e88 100755 --- a/module/execution/test/ui/story.php +++ b/module/execution/test/ui/story.php @@ -5,6 +5,47 @@ title=执行下需求列表操作检查 timeout=0 cid=1 + +- 检查全部标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @allTab下显示条数正确 +- 检查未关闭标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @unclosedTab下显示条数正确 +- 检查草稿标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @draftTab下显示条数正确 +- 检查评审中标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @reviewingTab下显示条数正确 +- 移除需求 + - 最终测试状态 @SUCCESS + - 测试结果 @需求移除成功 +- 批量移除需求 + - 最终测试状态 @SUCCESS + - 测试结果 @需求批量移除成功 +- 编辑草稿状态的需求的阶段为测试中 + - 最终测试状态 @SUCCESS + - 测试结果 @批量编辑draft阶段成功 +- 编辑评审中状态的需求的阶段为未开始 + - 最终测试状态 @SUCCESS + - 测试结果 @批量编辑reviewing阶段成功 +- 编辑激活状态的需求的阶段为已验收 + - 最终测试状态 @SUCCESS + - 测试结果 @批量编辑active阶段成功 +- 编辑变更中状态的需求的阶段为已计划 + - 最终测试状态 @SUCCESS + - 测试结果 @批量编辑changing阶段成功 +- 编辑已关闭状态的需求的阶段为验收失败 + - 最终测试状态 @SUCCESS + - 测试结果 @批量编辑closed阶段成功 +- 单个指派 + - 最终测试状态 @SUCCESS + - 测试结果 @指派成功 +- 批量指派 + - 最终测试状态 @SUCCESS + - 测试结果 @批量指派成功 + */ chdir(__DIR__); @@ -35,6 +76,8 @@ $project->gen(5); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-5'); $projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(5); $story = zenData('story'); diff --git a/module/execution/test/ui/storyestimate.php b/module/execution/test/ui/storyestimate.php index 0329c0f3a3..bb8473e422 100755 --- a/module/execution/test/ui/storyestimate.php +++ b/module/execution/test/ui/storyestimate.php @@ -2,10 +2,28 @@ gen(5); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1-5'); $projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(5); $story = zenData('story'); diff --git a/module/execution/test/ui/storykanban.php b/module/execution/test/ui/storykanban.php index 71addf9c12..61db48ac79 100644 --- a/module/execution/test/ui/storykanban.php +++ b/module/execution/test/ui/storykanban.php @@ -5,6 +5,29 @@ title=需求看板 timeout=0 cid=1 + +- 执行tester模块的check方法,参数是'projected', '2'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @projected列数据正确 +- 执行tester模块的check方法,参数是'developing', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @developing列数据正确 +- 执行tester模块的check方法,参数是'developed', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @developed列数据正确 +- 执行tester模块的check方法,参数是'testing', '2'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @testing列数据正确 +- 执行tester模块的check方法,参数是'tested', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @tested列数据正确 +- 执行tester模块的check方法,参数是'accepted', '2'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @accepted列数据正确 +- 执行tester模块的check方法,参数是'released', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @released列数据正确 + */ chdir(__DIR__); @@ -34,10 +57,12 @@ $project->acl->range('open'); $project->status->range('doing'); $project->gen(2); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1, 2'); -$projectproduct->product->range('1'); -$projectproduct->gen(2); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1, 2'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(2); $story = zenData('story'); $story->id->range('1-100'); diff --git a/module/execution/test/ui/suspendexecution.php b/module/execution/test/ui/suspendexecution.php index 07da70dbf1..29c8f8257a 100644 --- a/module/execution/test/ui/suspendexecution.php +++ b/module/execution/test/ui/suspendexecution.php @@ -2,9 +2,18 @@ id->range('1-100'); +$project->project->range('0, 1{2}'); +$project->model->range('kanban, []{2}'); +$project->type->range('project, kanban{2}'); +$project->auth->range('[]'); +$project->storyType->range('[]{2}'); +$project->parent->range('0, 1{2}'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`'); +$project->grade->range('1'); +$project->name->range('项目, 未开始的看板, 已关闭的看板'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->openedBy->range('user1'); +$project->acl->range('open'); +$project->status->range('doing, wait, doing'); +$project->vision->range('lite'); +$project->gen(3); + +$tester = new suspendExecutionTester(); +$tester->login(); + +r($tester->suspend('2')) && p('status,message') && e('SUCCESS,挂起看板成功'); //挂起未开始的看板 +r($tester->suspend('3')) && p('status,message') && e('SUCCESS,挂起看板成功'); //挂起进行中的看板 +$tester->closeBrowser(); diff --git a/module/execution/test/ui/taskexecution.php b/module/execution/test/ui/taskexecution.php index cb07664a16..756ca24449 100755 --- a/module/execution/test/ui/taskexecution.php +++ b/module/execution/test/ui/taskexecution.php @@ -5,6 +5,59 @@ title=执行下的任务列表页面 timeout=0 cid=1 + +- 检查全部标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @allTab下显示条数正确 +- 检查未关闭标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @unclosedTab下显示条数正确 +- 检查指派给我标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @assignedtomeTab下显示条数正确 +- 检查由我参与标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @myInvolvedTab下显示条数正确 +- 检查由我指派标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @assignedByMeTab下显示条数正确 +- 检查研发需求变更标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @needConfirmTab下显示条数正确 +- 检查未开始标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @waitingTab下显示条数正确 +- 检查进行中标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @doingTab下显示条数正确 +- 检查未完成标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @undoneTab下显示条数正确 +- 检查我完成标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @finushedByMeTab下显示条数正确 +- 检查已完成标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @doneTab下显示条数正确 +- 检查已关闭标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @closedTab下显示条数正确 +- 检查已取消标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @cancelTab下显示条数正确 +- 检查已延期标签下显示条数 + - 最终测试状态 @SUCCESS + - 测试结果 @delayedTab下显示条数正确 +- 执行tester模块的batchEditStatus方法,参数是'closed'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量修改状态为closed成功 +- 执行tester模块的batchEditStatus方法,参数是'cancel'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量修改状态为cancel成功 +- 执行tester模块的batchAssign方法▫ + - 最终测试状态 @SUCCESS + - 测试结果 @批量指派成功 + */ chdir(__DIR__); @@ -37,6 +90,8 @@ $project->gen(2); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1, 2'); $projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(2); $story = zenData('story'); diff --git a/module/execution/test/ui/taskinlite.php b/module/execution/test/ui/taskinlite.php new file mode 100755 index 0000000000..8a947b79e0 --- /dev/null +++ b/module/execution/test/ui/taskinlite.php @@ -0,0 +1,193 @@ +#!/usr/bin/env php +id->range('1-3'); +$user->account->range('admin, user1, user2'); +$user->password->range($config->uitest->defaultPassword)->format('md5'); +$user->realname->range('admin, USER1, USER2'); +$user->gen(3); + +$product = zenData('product'); +$product->id->range('1'); +$product->name->range('产品1'); +$product->shadow->range('1'); +$product->vision->range('lite'); +$product->gen(1); + +$project = zenData('project'); +$project->id->range('1, 2'); +$project->project->range('0, 1'); +$project->model->range('kanban, []'); +$project->type->range('project, kanban'); +$project->auth->range('[]'); +$project->parent->range('0, 1'); +$project->path->range('`,1,`, `,1,2,`'); +$project->name->range('项目1, 项目1看板1'); +$project->vision->range('lite'); +$project->gen(2); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1, 2'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(2); + +$story = zenData('story'); +$story->id->range('1'); +$story->vision->range('lite'); +$story->path->range('`,1,`'); +$story->product->range('1'); +$story->title->range('产品1目标1版本2'); +$story->type->range('story'); +$story->status->range('active'); +$story->version->range('2'); +$story->gen(1); + +$storySpec = zenData('storyspec'); +$storySpec->story->range('1'); +$storySpec->version->range('1,2'); +$storySpec->title->range('产品1目标1版本1, 产品1目标1版本2'); +$storySpec->gen(2); + +$projectStory = zenData('projectstory'); +$projectStory->project->range('1, 2'); +$projectStory->product->range('1'); +$projectStory->story->range('1'); +$projectStory->version->range('1'); +$projectStory->gen(2); + +$team = zenData('team'); +$team->id->range('1-100'); +$team->root->range('1, 2'); +$team->type->range('project, execution'); +$team->account->range('admin, user1, user2'); +$team->gen(6); + +$task = zenData('task'); +$task->id->range('1-100'); +$task->project->range('1'); +$task->execution->range('2'); +$task->story->range('1, 0{99}'); +$task->storyVersion->range('1'); +$task->name->range('1-100'); +$task->type->range('devel'); +$task->deadline->range(' (-5D)-(-4D):1D, []{11}')->type('timestamp')->format('YY/MM/DD'); +$task->status->range('wait{3}, doing{3}, done{2}, cancel, closed{3}'); +$task->openedBy->range('admin{6}, user1{6}'); +$task->assignedTo->range('[]{3}, user1{4}, admin{2}, closed{3}'); +$task->finishedBy->range('[]{6}, admin, user1, [], admin, user1{2}'); +$task->canceledBy->range('[]{8}, admin, []{3}'); +$task->closedBy->range('[]{9}, admin{2}, user1'); +$task->deleted->range('0{11}, 1'); +$task->vision->range('lite'); +$task->gen(12); + +$taskSpec = zenData('taskspec'); +$taskSpec->task->range('1-100'); +$taskSpec->version->range('0'); +$taskSpec->name->range('1-100'); +$taskSpec->gen(12); + +zenData('taskteam')->gen(0); + +$action = zenData('action'); +$action->id->range('1,2'); +$action->objectType->range('task'); +$action->objectID->range('4, 5'); +$action->project->range('1'); +$action->execution->range('2'); +$action->actor->range('admin, user1'); +$action->action->range('assigned'); +$action->extra->range('user1'); +$action->gen(2); + +$tester = new taskExecutionTester(); +$tester->login(); + +/* 检查标签下显示条数 */ +r($tester->checkTab('allTab', '11')) && p('status,message') && e('SUCCESS,allTab下显示条数正确'); //检查全部标签下显示条数 +r($tester->checkTab('unclosedTab', '9')) && p('status,message') && e('SUCCESS,unclosedTab下显示条数正确'); //检查未关闭标签下显示条数 +r($tester->checkTab('assignedtomeTab', '2')) && p('status,message') && e('SUCCESS,assignedtomeTab下显示条数正确'); //检查指派给我标签下显示条数 +r($tester->checkTab('myInvolvedTab', '4')) && p('status,message') && e('SUCCESS,myInvolvedTab下显示条数正确'); //检查由我参与标签下显示条数 +r($tester->checkTab('assignedByMeTab', '1')) && p('status,message') && e('SUCCESS,assignedByMeTab下显示条数正确'); //检查由我指派标签下显示条数 +r($tester->checkTab('needConfirmTab', '1')) && p('status,message') && e('SUCCESS,needConfirmTab下显示条数正确'); //检查研发需求变更标签下显示条数 +r($tester->checkTab('waitingTab', '3')) && p('status,message') && e('SUCCESS,waitingTab下显示条数正确'); //检查未开始标签下显示条数 +r($tester->checkTab('doingTab', '3')) && p('status,message') && e('SUCCESS,doingTab下显示条数正确'); //检查进行中标签下显示条数 +r($tester->checkTab('undoneTab', '7')) && p('status,message') && e('SUCCESS,undoneTab下显示条数正确'); //检查未完成标签下显示条数 +r($tester->checkTab('finushedByMeTab', '2')) && p('status,message') && e('SUCCESS,finushedByMeTab下显示条数正确'); //检查我完成标签下显示条数 +r($tester->checkTab('doneTab', '2')) && p('status,message') && e('SUCCESS,doneTab下显示条数正确'); //检查已完成标签下显示条数 +r($tester->checkTab('closedTab', '2')) && p('status,message') && e('SUCCESS,closedTab下显示条数正确'); //检查已关闭标签下显示条数 +r($tester->checkTab('cancelTab', '1')) && p('status,message') && e('SUCCESS,cancelTab下显示条数正确'); //检查已取消标签下显示条数 +r($tester->checkTab('delayedTab', '1')) && p('status,message') && e('SUCCESS,delayedTab下显示条数正确'); //检查已延期标签下显示条数 +/* 批量修改状态 */ +r($tester->batchEditStatus('closed')) && p('status,message') && e('SUCCESS,批量修改状态为closed成功'); +r($tester->batchEditStatus('cancel')) && p('status,message') && e('SUCCESS,批量修改状态为cancel成功'); +/* 批量指派 */ +r($tester->batchAssign()) && p('status,message') && e('SUCCESS,批量指派成功'); +$tester->closeBrowser(); diff --git a/module/execution/test/ui/taskkanban.php b/module/execution/test/ui/taskkanban.php index b212237355..fe2a061f79 100755 --- a/module/execution/test/ui/taskkanban.php +++ b/module/execution/test/ui/taskkanban.php @@ -2,9 +2,20 @@ acl->range('open'); $project->status->range('doing'); $project->gen(2); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1, 2'); -$projectproduct->product->range('1'); -$projectproduct->gen(2); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1, 2'); +$projectProduct->product->range('1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(2); $story = zenData('story'); $story->id->range('1-100'); @@ -99,10 +112,7 @@ $bug->gen(8); $tester = new taskkanbanTester(); $tester->login(); -r($tester->checkKanban('1', 1)) && p('status,message') && e('SUCCESS,数据正确'); -r($tester->checkKanban('4', 4)) && p('status,message') && e('SUCCESS,数据正确'); -r($tester->checkKanban('10', 1)) && p('status,message') && e('SUCCESS,数据正确'); -r($tester->checkKanban('20', 0)) && p('status,message') && e('SUCCESS,数据正确'); -r($tester->checkKanban('30', 1)) && p('status,message') && e('SUCCESS,数据正确'); -r($tester->checkKanban('1', 1, '4', '3')) && p('status,message') && e('SUCCESS,数据正确'); +r($tester->checkKanban('1', '1', '2', '3', '1')) && p('status,message') && e('SUCCESS,数据正确'); +r($tester->checkKanban('1', '4', '4', '4', '5')) && p('status,message') && e('SUCCESS,数据正确'); +r($tester->checkKanban('1', '1', '1', '4', '3')) && p('status,message') && e('SUCCESS,数据正确'); $tester->closeBrowser(); diff --git a/module/execution/test/ui/testcase.php b/module/execution/test/ui/testcase.php index e7e9551ec3..af1438964d 100755 --- a/module/execution/test/ui/testcase.php +++ b/module/execution/test/ui/testcase.php @@ -2,10 +2,22 @@ gen(3); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1{2}, 2{2}'); $projectProduct->product->range('1, 2'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(4); $case = zenData('case'); diff --git a/module/execution/test/ui/testtask.php b/module/execution/test/ui/testtask.php index 703cccc348..1a332aee63 100644 --- a/module/execution/test/ui/testtask.php +++ b/module/execution/test/ui/testtask.php @@ -2,10 +2,22 @@ gen(3); $projectProduct = zenData('projectproduct'); $projectProduct->project->range('1{2}, 2{2}, 3{2}'); $projectProduct->product->range('1, 2'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); $projectProduct->gen(6); $build = zenData('build'); diff --git a/module/execution/test/ui/tree.php b/module/execution/test/ui/tree.php index df5c49367e..2d71a70c87 100644 --- a/module/execution/test/ui/tree.php +++ b/module/execution/test/ui/tree.php @@ -5,6 +5,35 @@ title=树状图 timeout=0 cid=1 + +- 执行tester模块的checkTreeData方法,参数是'firstLevel', '4'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'secondLevelA', '7'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'secondLevelB', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'thirdLevelB', '2'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'fourthLevelB', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'firstLevel', '2', true▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'secondLevelA', '1')▫▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkTreeData方法,参数是'thirdLevelB', '1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @数据正确 +- 执行tester模块的checkDetail方法▫ + - 最终测试状态 @SUCCESS + - 测试结果 @详情数据正确 + */ chdir(__DIR__); @@ -34,10 +63,12 @@ $project->acl->range('open'); $project->status->range('doing'); $project->gen(2); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('1{2}, 2{2}'); -$projectproduct->product->range('1, 2'); -$projectproduct->gen(4); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1{2}, 2{2}'); +$projectProduct->product->range('1, 2'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(4); $story = zenData('story'); $story->id->range('1-100'); diff --git a/module/execution/test/ui/view.php b/module/execution/test/ui/view.php index b25c843111..e99f3484e6 100644 --- a/module/execution/test/ui/view.php +++ b/module/execution/test/ui/view.php @@ -5,6 +5,20 @@ title=概况页面 timeout=0 cid=1 + +- 执行tester模块的checkBasic方法,参数是$basic▫ + - 最终测试状态 @SUCCESS + - 测试结果 @执行基础信息正确 +- 执行tester模块的checkProduct方法,参数是'产品1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @产品信息正确 +- 执行tester模块的checkMember方法,参数是'admin', 'USER1'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @团队成员信息正确 +- 执行tester模块的checkDoclib方法,参数是'执行库1', '执行库2'▫ + - 最终测试状态 @SUCCESS + - 测试结果 @文档库信息正确 + */ chdir(__DIR__); @@ -32,10 +46,12 @@ $project->acl->range('open'); $project->status->range('doing'); $project->gen(3); -$projectproduct = zenData('projectproduct'); -$projectproduct->project->range('2{2}, 3'); -$projectproduct->product->range('1, 2, 1'); -$projectproduct->gen(3); +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('2{2}, 3'); +$projectProduct->product->range('1, 2, 1'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range('0'); +$projectProduct->gen(3); $user = zenData('user'); $user->id->range('1-100'); diff --git a/module/execution/zen.php b/module/execution/zen.php index cbd9d1e9fa..883895f044 100644 --- a/module/execution/zen.php +++ b/module/execution/zen.php @@ -1725,7 +1725,7 @@ class executionZen extends execution * @param object[]|object $execution * @return array */ - protected function setUserMoreLink(array|object $execution = null): array + protected function setUserMoreLink(mixed $execution = null): array { $appendPo = $appendPm = $appendQd = $appendRd = array(); if(is_array($execution)) diff --git a/module/file/control.php b/module/file/control.php index e3359d633d..b449879bd3 100755 --- a/module/file/control.php +++ b/module/file/control.php @@ -341,7 +341,7 @@ class file extends control * @access public * @return void */ - public function printFiles(array $files, string $fieldset, object|null $object = null, string $method = 'view', bool $showDelete = true, bool $showEdit = true) + public function printFiles(array $files, string $fieldset, ?object $object = null, string $method = 'view', bool $showDelete = true, bool $showEdit = true) { $this->view->files = $files; $this->view->fieldset = $fieldset; @@ -576,8 +576,10 @@ class file extends control echo json_encode(array('result' => 'success', 'data' => array('id' => $file->id, 'title' => $file->title, 'extension' => $file->extension, 'size' => $file->realPath, 'gid' => $file->gid, 'addedBy' => $file->addedBy, 'addedDate' => $file->addedDate, 'objectType' => $file->objectType, 'objectID' => $file->objectID))); return; } + $fileID = $file->id; - return $this->fetch('file', 'read', "fileID=$fileID&stream=$stream"); + if($stream) return $this->fetch('file', 'read', "fileID=$fileID&stream=$stream"); + return $this->fetch('file', 'download', "fileID=$fileID"); } http_response_code(404); $this->sendError(404, '404 Not found'); @@ -586,7 +588,6 @@ class file extends control if(!empty($title)) $title = urldecode(base64_decode($title)); $file = $this->file->query($objectType, $objectID, $title, $extra); if(empty($file)) return $this->send(array('result' => 'fail', 'message' => $this->lang->file->fileNotFound, 'load' => helper::createLink('my', 'index'), 'closeModal' => true)); - $fileID = $file->id; if($this->viewType === 'json') { @@ -594,7 +595,9 @@ class file extends control return; } - return $this->fetch('file', 'read', "fileID=$fileID&stream=$stream"); + $fileID = $file->id; + if($stream) return $this->fetch('file', 'read', "fileID=$fileID&stream=$stream"); + return $this->fetch('file', 'download', "fileID=$fileID"); } /** diff --git a/module/file/js/uploadimages.ui.js b/module/file/js/uploadimages.ui.js index 0b001568f9..cd02005d34 100644 --- a/module/file/js/uploadimages.ui.js +++ b/module/file/js/uploadimages.ui.js @@ -19,7 +19,10 @@ const uploadChunk = (url, chunk, headers) => { method: 'POST', body: chunk, headers, - }).then(response => response.json()).then(json => {if(json.result == 'fail') return Promise.reject(json);}) + }).then(response => response.json()).then(json => { + if(json.result == 'fail') return Promise.reject(json); + return new Promise(resolve => setTimeout(() => resolve(json), 100)); // 增加延迟,给后端处理session的时间 + }); } function uploadFileByChunk(url, file, chunkSize = 1024 * 1024, onProgress = null) @@ -55,6 +58,50 @@ function uploadFileByChunk(url, file, chunkSize = 1024 * 1024, onProgress = null }); }; +/** + * 控制并发上传数量 + * @param {File[]} files + * @param {string} uploadUrl + * @param {number} chunkSize + * @param {number} maxConcurrency + */ +const uploadFilesWithConcurrency = async (files, uploadUrl, chunkSize, maxConcurrency = 2) => { + const results = []; + const inProgress = new Set(); + + const uploadFile = async (file, fileIndex) => { + return new Promise((resolve, reject) => { + uploadFileByChunk(uploadUrl, file, chunkSize, function(progress) { + }).then(() => { + resolve({ file, fileIndex, success: true }); + }).catch(error => { + reject({ file, fileIndex, error }); + }); + }); + }; + + const processQueue = async () => { + for (let i = 0; i < files.length; i++) { + if (inProgress.size >= maxConcurrency) { + await Promise.race(inProgress); + } + + const file = files[i]; + const uploadPromise = uploadFile(file, i).finally(() => { + inProgress.delete(uploadPromise); + }); + + inProgress.add(uploadPromise); + results.push(uploadPromise); + } + + await Promise.all(results); + }; + + await processQueue(); + return results; +}; + window.uploadImages = function(selector, options, $uploadBtn) { const $fileBox = $(selector); @@ -84,50 +131,56 @@ window.uploadImages = function(selector, options, $uploadBtn) }; render(); - for(const file of files) - { - uploadFileByChunk(options.uploadUrl, file, options.chunkSize, function(progress) - { - progressMap.set(file, progress); - render(); - $uploadBtn.find('.as-progress').text(' ' + Math.round((uploadedCount + progress) / files.length * 100) + '%' ); - }).then(() => - { - uploadedCount++; - if(uploadedCount === files.length) - { - const modalID = $uploadBtn.closest('.modal').attr('id'); - zui.Modal.hide('#' + modalID); - const $form = $('body').find('form.form-batch[data-zui-batchform]'); - const $modal = $form.closest('.modal') - if($modal.length > 0) + /* 串行上传文件 */ + const uploadFilesSequentially = async (fileIndex = 0) => { + if (fileIndex >= files.length) { + const modalID = $uploadBtn.closest('.modal').attr('id'); + zui.Modal.hide('#' + modalID); + + const $form = $('body').find('form.form-batch[data-zui-batchform]'); + const $modal = $form.closest('.modal') + if($modal.length > 0) + { + $.ajax( { - $.ajax( + url: options.locateUrl, + headers:{'X-Zui-Modal': true}, + dataType: 'json', + success: function(data) { - url: options.locateUrl, - headers:{'X-Zui-Modal': true}, - dataType: 'json', - success: function(data) + $modal.find('[data-zui-ajaxform]').zui('ajaxform').destroy(); + $modal.find('[data-zui-batchform]').zui('batchForm').destroy(); + setTimeout(function() { - $modal.find('[data-zui-ajaxform]').zui('ajaxform').destroy(); - $modal.find('[data-zui-batchform]').zui('batchForm').destroy(); - setTimeout(function() - { - loadModal(data.load, $modal.attr('id')); - }, 500); - } - }); - return; - } - loadPage(options.locateUrl); + loadModal(data.load, $modal.attr('id')); + }, 500); + } + }); + return; } - }).catch(error => - { + loadPage(options.locateUrl); + return; + } + + const file = files[fileIndex]; + try { + await uploadFileByChunk(options.uploadUrl, file, options.chunkSize, function(progress) + { + progressMap.set(file, progress); + render(); + $uploadBtn.find('.as-progress').text(' ' + Math.round((uploadedCount + progress) / files.length * 100) + '%' ); + }); + + uploadedCount++; + uploadFilesSequentially(fileIndex + 1); + } catch (error) { $uploadBtn.removeAttr('disabled'); $uploadBtn.find('.as-progress').text(''); fileBox.render({disabled: false}); if(typeof(error.message) != 'undefined') zui.Modal.alert(error.message); - }); - } + } + }; + + uploadFilesSequentially(); }; diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 540fcf7ef1..dca03f4b66 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -45,7 +45,7 @@ class gitlabModel extends model * @access public * @return array */ - public function getList(string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $orderBy = 'id_desc', ?object $pager = null): array { $gitlabList = $this->loadModel('pipeline')->getList('gitlab', $orderBy, $pager); @@ -271,7 +271,7 @@ class gitlabModel extends model * @access public * @return array */ - public function getCommits(object $repo, string $entry, object $pager = null, string $begin = '', string $end = '', object|null $query = null): array + public function getCommits(object $repo, string $entry, ?object $pager = null, string $begin = '', string $end = '', ?object $query = null): array { $scm = $this->app->loadClass('scm'); $scm->setEngine($repo); @@ -619,7 +619,7 @@ class gitlabModel extends model * @access public * @return array */ - public function apiGetProjectsPager(int $gitlabID, string $keyword = '', string $orderBy = 'id_desc', object $pager = null): array + public function apiGetProjectsPager(int $gitlabID, string $keyword = '', string $orderBy = 'id_desc', ?object $pager = null): array { $apiRoot = $this->getApiRoot($gitlabID); if(!$apiRoot) return array('pager' => null, 'projects' => array()); @@ -1434,7 +1434,7 @@ class gitlabModel extends model * @access public * @return object|array|null */ - public function apiGetTags(int $gitlabID, int $projectID, string $orderBy = '', string $keyword = '', object $pager = null): object|array|null + public function apiGetTags(int $gitlabID, int $projectID, string $orderBy = '', string $keyword = '', ?object $pager = null): object|array|null { $apiRoot = $this->getApiRoot($gitlabID); @@ -2294,7 +2294,7 @@ class gitlabModel extends model * @access public * @return bool */ - public function checkUserAccess(int $gitlabID, int $projectID = 0, object $project = null, array $groupIDList = array(), string $maxRole = 'maintainer'): bool + public function checkUserAccess(int $gitlabID, int $projectID = 0, ?object $project = null, array $groupIDList = array(), string $maxRole = 'maintainer'): bool { if($this->app->user->admin) return true; diff --git a/module/gitlab/zen.php b/module/gitlab/zen.php index 23ff7aa479..d1f728d602 100644 --- a/module/gitlab/zen.php +++ b/module/gitlab/zen.php @@ -336,7 +336,7 @@ class gitlabZen extends gitlab * @access protected * @return object */ - protected function issueToZentaoObject(object $issue, int $gitlabID, object $changes = null): object + protected function issueToZentaoObject(object $issue, int $gitlabID, ?object $changes = null): object { if(!isset($this->config->gitlab->maps->{$issue->objectType})) return null; diff --git a/module/group/lang/de.php b/module/group/lang/de.php index 37bc9e5bd6..ba98f7b53c 100644 --- a/module/group/lang/de.php +++ b/module/group/lang/de.php @@ -245,11 +245,11 @@ $lang->group->package->createProduct = 'Create Product'; $lang->group->package->importProduct = 'Import Product'; $lang->group->package->productWhitelist = 'Product Whitelist'; $lang->group->package->branch = 'Branch'; -$lang->group->package->browseStory = 'Browse Story'; -$lang->group->package->manageStory = 'Manage Story'; -$lang->group->package->importStory = 'Import Story'; -$lang->group->package->deleteStory = 'Delete Story'; -$lang->group->package->reviewStory = 'Review Story'; +$lang->group->package->browseStory = 'Browse ' . $lang->SRCommon; +$lang->group->package->manageStory = 'Manage ' . $lang->SRCommon; +$lang->group->package->importStory = 'Import ' . $lang->SRCommon; +$lang->group->package->deleteStory = 'Delete ' . $lang->SRCommon; +$lang->group->package->reviewStory = 'Review ' . $lang->SRCommon; $lang->group->package->deleteProduct = 'Delete Product'; $lang->group->package->browseEpic = 'Browse Epic'; $lang->group->package->manageEpic = 'Manage Epic'; @@ -270,8 +270,8 @@ $lang->group->package->importRelease = 'Import Release'; $lang->group->package->deleteRelease = 'Delete Release'; $lang->group->package->releaseNotify = 'Release Notify'; $lang->group->package->projectPlan = 'Project Plan'; -$lang->group->package->manageProjectStory = 'Manage Project Story'; -$lang->group->package->importProjectStory = 'Import Project Story'; +$lang->group->package->manageProjectStory = 'Manage Project ' . $lang->SRCommon; +$lang->group->package->importProjectStory = 'Import Project ' . $lang->SRCommon; $lang->group->package->browseProject = 'Browse Project'; $lang->group->package->manageProject = 'Manage Project'; $lang->group->package->importProject = 'Import Project'; @@ -293,7 +293,7 @@ $lang->group->package->kanban = 'Kanban'; $lang->group->package->groupView = 'Group View'; $lang->group->package->burndown = 'Burndown'; $lang->group->package->cfd = 'Cfd'; -$lang->group->package->manageExecutionStory = 'Manage Execution Story'; +$lang->group->package->manageExecutionStory = 'Manage Execution ' . $lang->SRCommon; $lang->group->package->manageExecutionEffort = 'Manage Execution Effort'; $lang->group->package->manageBuild = 'Manage Build'; $lang->group->package->deleteBuild = 'Delete Build'; @@ -529,9 +529,9 @@ $lang->group->package->gantt = 'Gantt'; $lang->group->package->projectRelation = 'Project Relation'; $lang->group->package->executionRelation = 'Execution Relation'; $lang->group->package->browseBuild = 'Browse Build'; -$lang->group->package->browseExecutionStory = 'Browse Execution Story'; +$lang->group->package->browseExecutionStory = 'Browse Execution ' . $lang->SRCommon; $lang->group->package->manageCard = 'Manage Card'; -$lang->group->package->browseProjectStory = 'Browse Project Story'; +$lang->group->package->browseProjectStory = 'Browse Project ' . $lang->SRCommon; $lang->group->package->chckAuditPlan = 'Chck Audit Plan'; $lang->group->package->reviewAssess = 'Review Assess'; $lang->group->package->reviewAudit = 'Review Audit'; diff --git a/module/group/lang/en.php b/module/group/lang/en.php index aef6d18974..1ea6365ad8 100644 --- a/module/group/lang/en.php +++ b/module/group/lang/en.php @@ -245,11 +245,11 @@ $lang->group->package->createProduct = 'Create Product'; $lang->group->package->importProduct = 'Import Product'; $lang->group->package->productWhitelist = 'Product Whitelist'; $lang->group->package->branch = 'Branch'; -$lang->group->package->browseStory = 'Browse Story'; -$lang->group->package->manageStory = 'Manage Story'; -$lang->group->package->importStory = 'Import Story'; -$lang->group->package->deleteStory = 'Delete Story'; -$lang->group->package->reviewStory = 'Review Story'; +$lang->group->package->browseStory = 'Browse ' . $lang->SRCommon; +$lang->group->package->manageStory = 'Manage ' . $lang->SRCommon; +$lang->group->package->importStory = 'Import ' . $lang->SRCommon; +$lang->group->package->deleteStory = 'Delete ' . $lang->SRCommon; +$lang->group->package->reviewStory = 'Review ' . $lang->SRCommon; $lang->group->package->deleteProduct = 'Delete Product'; $lang->group->package->browseEpic = 'Browse Epic'; $lang->group->package->manageEpic = 'Manage Epic'; @@ -270,8 +270,8 @@ $lang->group->package->importRelease = 'Import Release'; $lang->group->package->deleteRelease = 'Delete Release'; $lang->group->package->releaseNotify = 'Release Notify'; $lang->group->package->projectPlan = 'Project Plan'; -$lang->group->package->manageProjectStory = 'Manage Project Story'; -$lang->group->package->importProjectStory = 'Import Project Story'; +$lang->group->package->manageProjectStory = 'Manage Project ' . $lang->SRCommon; +$lang->group->package->importProjectStory = 'Import Project ' . $lang->SRCommon; $lang->group->package->browseProject = 'Browse Project'; $lang->group->package->manageProject = 'Manage Project'; $lang->group->package->importProject = 'Import Project'; @@ -293,7 +293,7 @@ $lang->group->package->kanban = 'Kanban'; $lang->group->package->groupView = 'Group View'; $lang->group->package->burndown = 'Burndown'; $lang->group->package->cfd = 'Cfd'; -$lang->group->package->manageExecutionStory = 'Manage Execution Story'; +$lang->group->package->manageExecutionStory = 'Manage Execution ' . $lang->SRCommon; $lang->group->package->manageExecutionEffort = 'Manage Execution Effort'; $lang->group->package->manageBuild = 'Manage Build'; $lang->group->package->deleteBuild = 'Delete Build'; @@ -529,9 +529,9 @@ $lang->group->package->gantt = 'Gantt'; $lang->group->package->projectRelation = 'Project Relation'; $lang->group->package->executionRelation = 'Execution Relation'; $lang->group->package->browseBuild = 'Browse Build'; -$lang->group->package->browseExecutionStory = 'Browse Execution Story'; +$lang->group->package->browseExecutionStory = 'Browse Execution ' . $lang->SRCommon; $lang->group->package->manageCard = 'Manage Card'; -$lang->group->package->browseProjectStory = 'Browse Project Story'; +$lang->group->package->browseProjectStory = 'Browse Project ' . $lang->SRCommon; $lang->group->package->chckAuditPlan = 'Chck Audit Plan'; $lang->group->package->reviewAssess = 'Review Assess'; $lang->group->package->reviewAudit = 'Review Audit'; diff --git a/module/group/lang/fr.php b/module/group/lang/fr.php index b6720d1467..f69bba2585 100644 --- a/module/group/lang/fr.php +++ b/module/group/lang/fr.php @@ -245,11 +245,11 @@ $lang->group->package->createProduct = 'Create Product'; $lang->group->package->importProduct = 'Import Product'; $lang->group->package->productWhitelist = 'Product Whitelist'; $lang->group->package->branch = 'Branch'; -$lang->group->package->browseStory = 'Browse Story'; -$lang->group->package->manageStory = 'Manage Story'; -$lang->group->package->importStory = 'Import Story'; -$lang->group->package->deleteStory = 'Delete Story'; -$lang->group->package->reviewStory = 'Review Story'; +$lang->group->package->browseStory = 'Browse ' . $lang->SRCommon; +$lang->group->package->manageStory = 'Manage ' . $lang->SRCommon; +$lang->group->package->importStory = 'Import ' . $lang->SRCommon; +$lang->group->package->deleteStory = 'Delete ' . $lang->SRCommon; +$lang->group->package->reviewStory = 'Review ' . $lang->SRCommon; $lang->group->package->deleteProduct = 'Delete Product'; $lang->group->package->browseEpic = 'Browse Epic'; $lang->group->package->manageEpic = 'Manage Epic'; @@ -270,8 +270,8 @@ $lang->group->package->importRelease = 'Import Release'; $lang->group->package->deleteRelease = 'Delete Release'; $lang->group->package->releaseNotify = 'Release Notify'; $lang->group->package->projectPlan = 'Project Plan'; -$lang->group->package->manageProjectStory = 'Manage Project Story'; -$lang->group->package->importProjectStory = 'Import Project Story'; +$lang->group->package->manageProjectStory = 'Manage Project ' . $lang->SRCommon; +$lang->group->package->importProjectStory = 'Import Project ' . $lang->SRCommon; $lang->group->package->browseProject = 'Browse Project'; $lang->group->package->manageProject = 'Manage Project'; $lang->group->package->importProject = 'Import Project'; @@ -293,7 +293,7 @@ $lang->group->package->kanban = 'Kanban'; $lang->group->package->groupView = 'Group View'; $lang->group->package->burndown = 'Burndown'; $lang->group->package->cfd = 'Cfd'; -$lang->group->package->manageExecutionStory = 'Manage Execution Story'; +$lang->group->package->manageExecutionStory = 'Manage Execution ' . $lang->SRCommon; $lang->group->package->manageExecutionEffort = 'Manage Execution Effort'; $lang->group->package->manageBuild = 'Manage Build'; $lang->group->package->deleteBuild = 'Delete Build'; @@ -529,9 +529,9 @@ $lang->group->package->gantt = 'Gantt'; $lang->group->package->projectRelation = 'Project Relation'; $lang->group->package->executionRelation = 'Execution Relation'; $lang->group->package->browseBuild = 'Browse Build'; -$lang->group->package->browseExecutionStory = 'Browse Execution Story'; +$lang->group->package->browseExecutionStory = 'Browse Execution ' . $lang->SRCommon; $lang->group->package->manageCard = 'Manage Card'; -$lang->group->package->browseProjectStory = 'Browse Project Story'; +$lang->group->package->browseProjectStory = 'Browse Project ' . $lang->SRCommon; $lang->group->package->chckAuditPlan = 'Chck Audit Plan'; $lang->group->package->reviewAssess = 'Review Assess'; $lang->group->package->reviewAudit = 'Review Audit'; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 44dfcb7225..5b5e631feb 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -1152,6 +1152,7 @@ $lang->resource->testcase->batchConfirmStoryChange = 'batchConfirmStoryChange'; $lang->resource->testcase->importToLib = 'importToLib'; $lang->resource->testcase->automation = 'automation'; +$lang->resource->testcase->browseScene = 'browseScene'; $lang->resource->testcase->createScene = 'createScene'; $lang->resource->testcase->editScene = 'editScene'; $lang->resource->testcase->deleteScene = 'deleteScene'; @@ -1195,14 +1196,15 @@ $lang->testcase->methodOrder[140] = 'importToLib'; $lang->testcase->methodOrder[145] = 'automation'; $lang->testcase->methodOrder[150] = 'showScript'; -$lang->testcase->methodOrder[155] = 'createScene'; -$lang->testcase->methodOrder[160] = 'editScene'; -$lang->testcase->methodOrder[165] = 'deleteScene'; -$lang->testcase->methodOrder[170] = 'changeScene'; -$lang->testcase->methodOrder[175] = 'batchChangeScene'; -$lang->testcase->methodOrder[180] = 'updateOrder'; -$lang->testcase->methodOrder[185] = 'importXmind'; -$lang->testcase->methodOrder[190] = 'exportXmind'; +$lang->testcase->methodOrder[155] = 'browseScene'; +$lang->testcase->methodOrder[160] = 'createScene'; +$lang->testcase->methodOrder[165] = 'editScene'; +$lang->testcase->methodOrder[170] = 'deleteScene'; +$lang->testcase->methodOrder[175] = 'changeScene'; +$lang->testcase->methodOrder[180] = 'batchChangeScene'; +$lang->testcase->methodOrder[185] = 'updateOrder'; +$lang->testcase->methodOrder[190] = 'importXmind'; +$lang->testcase->methodOrder[195] = 'exportXmind'; /* Test task. */ $lang->resource->testtask = new stdclass(); diff --git a/module/group/lang/zh-cn.php b/module/group/lang/zh-cn.php index 086ceb632e..f4e8ef31e9 100644 --- a/module/group/lang/zh-cn.php +++ b/module/group/lang/zh-cn.php @@ -245,11 +245,11 @@ $lang->group->package->createProduct = '创建维护产品'; $lang->group->package->importProduct = '导入导出产品'; $lang->group->package->productWhitelist = '白名单管理'; $lang->group->package->branch = '分支管理'; -$lang->group->package->browseStory = '浏览研发需求'; -$lang->group->package->manageStory = '创建维护研发需求'; -$lang->group->package->importStory = '导入导出研发需求'; -$lang->group->package->deleteStory = '删除研发需求'; -$lang->group->package->reviewStory = '评审研发需求'; +$lang->group->package->browseStory = '浏览' . $lang->SRCommon; +$lang->group->package->manageStory = '创建维护' . $lang->SRCommon; +$lang->group->package->importStory = '导入导出' . $lang->SRCommon; +$lang->group->package->deleteStory = '删除' . $lang->SRCommon; +$lang->group->package->reviewStory = '评审' . $lang->SRCommon; $lang->group->package->deleteProduct = '删除产品'; $lang->group->package->browseEpic = '浏览业务需求'; $lang->group->package->manageEpic = '创建维护业务需求'; @@ -270,8 +270,8 @@ $lang->group->package->importRelease = '导入导出发布'; $lang->group->package->deleteRelease = '删除发布'; $lang->group->package->releaseNotify = '发布通知'; $lang->group->package->projectPlan = '项目计划'; -$lang->group->package->manageProjectStory = '维护项目需求'; -$lang->group->package->importProjectStory = '导入导出项目需求'; +$lang->group->package->manageProjectStory = '维护项目' . $lang->SRCommon; +$lang->group->package->importProjectStory = '导入导出项目' . $lang->SRCommon; $lang->group->package->browseProject = '浏览项目'; $lang->group->package->manageProject = '创建维护项目'; $lang->group->package->importProject = '导入导出项目'; @@ -293,7 +293,7 @@ $lang->group->package->kanban = '看板'; $lang->group->package->groupView = '分组视图'; $lang->group->package->burndown = '燃尽图'; $lang->group->package->cfd = '累积流图'; -$lang->group->package->manageExecutionStory = '维护执行研发需求'; +$lang->group->package->manageExecutionStory = '维护执行'. $lang->SRCommon; $lang->group->package->manageExecutionEffort = '维护执行日志'; $lang->group->package->manageBuild = '创建维护构建'; $lang->group->package->deleteBuild = '删除构建'; @@ -529,9 +529,9 @@ $lang->group->package->gantt = '阶段甘特图'; $lang->group->package->projectRelation = '维护任务关系'; $lang->group->package->executionRelation = '维护任务关系'; $lang->group->package->browseBuild = '浏览构建'; -$lang->group->package->browseExecutionStory = '浏览执行研发需求'; +$lang->group->package->browseExecutionStory = '浏览执行' . $lang->SRCommon; $lang->group->package->manageCard = '维护卡片'; -$lang->group->package->browseProjectStory = '浏览项目需求'; +$lang->group->package->browseProjectStory = '浏览项目' . $lang->SRCommon; $lang->group->package->chckAuditPlan = '检查质量保证计划'; $lang->group->package->reviewAssess = '评审基线评审'; $lang->group->package->reviewAudit = '审计基线评审'; diff --git a/module/group/packagemanager.php b/module/group/packagemanager.php index 6bd26a987d..ffeb38df48 100644 --- a/module/group/packagemanager.php +++ b/module/group/packagemanager.php @@ -1074,9 +1074,13 @@ $config->group->package->projectTemplate = new stdclass(); $config->group->package->projectTemplate->order = 5; $config->group->package->projectTemplate->subset = 'projectTemplate'; $config->group->package->projectTemplate->privs = array(); -$config->group->package->projectTemplate->privs['project-template'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index')); -$config->group->package->projectTemplate->privs['project-createTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('project-index', 'project-template')); -$config->group->package->projectTemplate->privs['project-deleteTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('project-index', 'project-template')); +$config->group->package->projectTemplate->privs['project-template'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index')); +$config->group->package->projectTemplate->privs['project-createTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('project-index', 'project-template')); +$config->group->package->projectTemplate->privs['project-editTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('project-index', 'project-template')); +$config->group->package->projectTemplate->privs['project-publishTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('project-index', 'project-template')); +$config->group->package->projectTemplate->privs['project-disableTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('project-index', 'project-template')); +$config->group->package->projectTemplate->privs['project-templatePriv'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('project-index', 'project-template')); +$config->group->package->projectTemplate->privs['project-deleteTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('project-index', 'project-template')); $config->group->package->browseExecution = new stdclass(); $config->group->package->browseExecution->order = 5; @@ -1877,7 +1881,7 @@ $config->group->package->browseCase = new stdclass(); $config->group->package->browseCase->order = 10; $config->group->package->browseCase->subset = 'testcase'; $config->group->package->browseCase->privs = array(); -$config->group->package->browseCase->privs['testcase-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('testcase-groupCase', 'testcase-view', 'testcase-zeroCase')); +$config->group->package->browseCase->privs['testcase-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('testcase-browseScene', 'testcase-groupCase', 'testcase-view', 'testcase-zeroCase')); $config->group->package->browseCase->privs['testcase-groupCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array()); $config->group->package->browseCase->privs['testcase-zeroCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array()); $config->group->package->browseCase->privs['testcase-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array()); @@ -2638,7 +2642,7 @@ $config->group->package->workflow->privs['workflow-ui'] = array(' $config->group->package->workflow->privs['workflow-release'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 60, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflow->privs['workflow-deactivate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 65, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflow->privs['workflow-activate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 70, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); -$config->group->package->workflow->privs['workflow-setApproval'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 75, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); +$config->group->package->workflow->privs['workflow-setApproval'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 75, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflow->privs['workflow-setFulltextSearch'] = array('edition' => 'max,ipd', 'vision' => 'rnd,lite', 'order' => 80, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflow->privs['workflow-setJS'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 85, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflow->privs['workflow-setCSS'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 90, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); @@ -3178,17 +3182,17 @@ $config->group->package->approvalflow = new stdclass(); $config->group->package->approvalflow->order = 10; $config->group->package->approvalflow->subset = 'featureconfig'; $config->group->package->approvalflow->privs = array(); -$config->group->package->approvalflow->privs['approval-progress'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('approvalflow-browse'), 'recommend' => array()); -$config->group->package->approvalflow->privs['approvalflow-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('approvalflow-role'), 'recommend' => array()); -$config->group->package->approvalflow->privs['approvalflow-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-delete', 'approvalflow-design', 'approvalflow-edit', 'approvalflow-view')); -$config->group->package->approvalflow->privs['approvalflow-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-delete', 'approvalflow-design', 'approvalflow-view')); -$config->group->package->approvalflow->privs['approvalflow-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('approvalflow-browse'), 'recommend' => array()); -$config->group->package->approvalflow->privs['approvalflow-design'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-delete', 'approvalflow-edit', 'approvalflow-view')); -$config->group->package->approvalflow->privs['approvalflow-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-design', 'approvalflow-edit', 'approvalflow-view')); -$config->group->package->approvalflow->privs['approvalflow-role'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array()); -$config->group->package->approvalflow->privs['approvalflow-createRole'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-deleteRole', 'approvalflow-editRole')); -$config->group->package->approvalflow->privs['approvalflow-editRole'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-createRole', 'approvalflow-deleteRole')); -$config->group->package->approvalflow->privs['approvalflow-deleteRole'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-createRole', 'approvalflow-editRole')); +$config->group->package->approvalflow->privs['approval-progress'] = array('edition' => 'max,ipd', 'vision' => 'rnd,or', 'order' => 10, 'depend' => array('approvalflow-browse'), 'recommend' => array()); +$config->group->package->approvalflow->privs['approvalflow-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 4, 'depend' => array('approvalflow-role'), 'recommend' => array()); +$config->group->package->approvalflow->privs['approvalflow-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd,or', 'order' => 6, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-delete', 'approvalflow-design', 'approvalflow-edit', 'approvalflow-view')); +$config->group->package->approvalflow->privs['approvalflow-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd,or', 'order' => 7, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-delete', 'approvalflow-design', 'approvalflow-view')); +$config->group->package->approvalflow->privs['approvalflow-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 5, 'depend' => array('approvalflow-browse'), 'recommend' => array()); +$config->group->package->approvalflow->privs['approvalflow-design'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 8, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-delete', 'approvalflow-edit', 'approvalflow-view')); +$config->group->package->approvalflow->privs['approvalflow-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd,or', 'order' => 9, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-design', 'approvalflow-edit', 'approvalflow-view')); +$config->group->package->approvalflow->privs['approvalflow-role'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 0, 'depend' => array(), 'recommend' => array()); +$config->group->package->approvalflow->privs['approvalflow-createRole'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 1, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-deleteRole', 'approvalflow-editRole')); +$config->group->package->approvalflow->privs['approvalflow-editRole'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 2, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-createRole', 'approvalflow-deleteRole')); +$config->group->package->approvalflow->privs['approvalflow-deleteRole'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 3, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-createRole', 'approvalflow-editRole')); $config->group->package->meetingroom = new stdclass(); $config->group->package->meetingroom->order = 30; @@ -3742,11 +3746,12 @@ $config->group->package->scene = new stdclass(); $config->group->package->scene->order = 5; $config->group->package->scene->subset = 'testcase'; $config->group->package->scene->privs = array(); -$config->group->package->scene->privs['testcase-createScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-editScene')); -$config->group->package->scene->privs['testcase-editScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-createScene')); -$config->group->package->scene->privs['testcase-deleteScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('testcase-browse'), 'recommend' => array()); -$config->group->package->scene->privs['testcase-changeScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-createScene', 'testcase-editScene')); -$config->group->package->scene->privs['testcase-batchChangeScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-changeScene', 'testcase-createScene', 'testcase-editScene')); +$config->group->package->scene->privs['testcase-browseScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-createScene', 'testcase-editScene')); +$config->group->package->scene->privs['testcase-createScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('testcase-browse', 'testcase-browseScene'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-editScene')); +$config->group->package->scene->privs['testcase-editScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('testcase-browse', 'testcase-browseScene'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-createScene')); +$config->group->package->scene->privs['testcase-deleteScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('testcase-browse', 'testcase-browseScene'), 'recommend' => array()); +$config->group->package->scene->privs['testcase-changeScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('testcase-browse', 'testcase-browseScene'), 'recommend' => array('testcase-batchChangeScene', 'testcase-createScene', 'testcase-editScene')); +$config->group->package->scene->privs['testcase-batchChangeScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('testcase-browse', 'testcase-browseScene'), 'recommend' => array('testcase-changeScene', 'testcase-createScene', 'testcase-editScene')); $config->group->package->executionTree = new stdclass(); $config->group->package->executionTree->order = 20; diff --git a/module/host/model.php b/module/host/model.php index 74f12bf7ce..4fbc075163 100644 --- a/module/host/model.php +++ b/module/host/model.php @@ -23,7 +23,7 @@ class hostModel extends model * @access public * @return array */ - public function getList(string $browseType = 'all', int $param = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $browseType = 'all', int $param = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $browseType = strtolower($browseType); diff --git a/module/instance/model.php b/module/instance/model.php index 19f3034501..6d9b2166a3 100644 --- a/module/instance/model.php +++ b/module/instance/model.php @@ -112,7 +112,7 @@ class instanceModel extends model * @access public * @return array */ - public function getList(object $pager = null, string $pinned = '', string $searchParam = '', string $status = 'all', bool $alertMark = true) + public function getList(?object $pager = null, string $pinned = '', string $searchParam = '', string $status = 'all', bool $alertMark = true) { $instances = $this->dao->select('instance.*')->from(TABLE_INSTANCE)->alias('instance') ->leftJoin(TABLE_SPACE)->alias('space')->on('space.id=instance.space') @@ -583,7 +583,7 @@ class instanceModel extends model * @access public * @return false|object Failure: return false, Success: return instance */ - public function install(object $app, object $dbInfo, object $customData, int $spaceID = null, array $settings = array()) + public function install(object $app, object $dbInfo, object $customData, ?int $spaceID = null, array $settings = array()) { $this->loadModel('space'); if(!isset($this->app->user->account)) diff --git a/module/instance/test/model/autobackup.php b/module/instance/test/model/autobackup.php index 5f1bab4aea..cc822a58a7 100644 --- a/module/instance/test/model/autobackup.php +++ b/module/instance/test/model/autobackup.php @@ -2,8 +2,11 @@ gen(5); +$cron = zenData('cron'); +$cron->command->range('1-5')->prefix('moduleName=instance&methodName=cronBackup&instanceID='); +$cron->gen(2); +zenData('instance')->loadYaml('instance')->gen(2); +zenData('space')->loadYaml('space')->gen(1); zenData('user')->gen(5); /** @@ -12,16 +15,21 @@ title=instanceModel->autoBackup(); timeout=0 cid=1 -- 计算 id=1的实例执行备份 是否成功 @0 -- 计算 id=2的实例执行备份 是否成功 @0 -- 计算 id=3的实例执行备份 是否成功 @0 -- 计算 id=4的实例执行备份 是否成功 @0 -- 计算 id=5的实例执行备份 是否成功 @0 - */ +- 执行instance模块的autoBackup方法,参数是$instance, $user @1 +- 执行instance模块的autoBackup方法,参数是$instance, $user @1 +- 执行instance模块的autoBackup方法,参数是$instance, $user @1 +- 执行instance模块的autoBackup方法,参数是$instance, $user @1 +- 执行instance模块的autoBackup方法,参数是$instance, $user @1 -global $tester; +*/ + +global $tester, $config; $tester->loadModel('instance'); +$config->CNE->api->host = 'http://devops.corp.cc:32380'; +$config->CNE->api->token = 'R09p3H5mU1JCg60NGPX94RVbGq31JVkF'; +$config->CNE->app->domain = 'devops.corp.cc'; +$config->CNE->api->headers[] = "{$config->CNE->api->auth}: {$config->CNE->api->token}"; su('admin'); $user = new stdClass(); @@ -32,12 +40,3 @@ r(!$tester->instance->autoBackup($instance, $user)) && p(0) && e(0); $instance = $tester->instance->getByID(2); r(!$tester->instance->autoBackup($instance, $user)) && p(0) && e(0); - -$instance = $tester->instance->getByID(3); -r(!$tester->instance->autoBackup($instance, $user)) && p(0) && e(0); - -$instance = $tester->instance->getByID(4); -r(!$tester->instance->autoBackup($instance, $user)) && p(0) && e(0); - -$instance = $tester->instance->getByID(5); -r(!$tester->instance->autoBackup($instance, $user)) && p(0) && e(0); \ No newline at end of file diff --git a/module/instance/test/model/cleanbackup.php b/module/instance/test/model/cleanbackup.php index 6efe8ff772..b3d1187bc6 100644 --- a/module/instance/test/model/cleanbackup.php +++ b/module/instance/test/model/cleanbackup.php @@ -3,7 +3,8 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); -zenData('instance')->gen(5); +zenData('instance')->loadYaml('instance')->gen(5); +zenData('space')->loadYaml('space')->gen(5); /** diff --git a/module/instance/test/model/updatememorysize.php b/module/instance/test/model/updatememorysize.php index 3a6572b4ae..05038ae49c 100755 --- a/module/instance/test/model/updatememorysize.php +++ b/module/instance/test/model/updatememorysize.php @@ -3,8 +3,8 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); -zenData('instance')->gen(5); -zenData('space')->gen(5); +zenData('instance')->loadYaml('instance')->gen(5); +zenData('space')->loadYaml('space')->gen(5); /** @@ -21,6 +21,7 @@ global $tester; $tester->loadModel('instance'); $instance = $tester->instance->getByID(1); +$instance->oldValue = 0; r($tester->instance->updateMemorySize($instance, 1024)) && p('') && e('0'); // 编辑应用的内存,查看返回结果 -r(dao::getError()) && p('0') && e('调整内存失败'); // 调整内存失败,查看错误信息: \ No newline at end of file +r(dao::getError()) && p('0') && e('调整内存失败'); // 调整内存失败,查看错误信息: diff --git a/module/instance/test/yaml/instance.yaml b/module/instance/test/yaml/instance.yaml new file mode 100644 index 0000000000..23a155a376 --- /dev/null +++ b/module/instance/test/yaml/instance.yaml @@ -0,0 +1,65 @@ +--- +title: instance +author: Yanyi Cao +version: "1.0" +fields: + - field: id + range: '1-5' + - field: space + range: '`1`' + - field: solution + range: '`1`,0' + - field: name + range: '`GitLab`,`Subversion`' + - field: appID + range: '`42`,`156`' + - field: appName + range: '`GitLab`,`Subversion`' + - field: appVersion + range: '`15.3.4`,`1.14.2`' + - field: chart + range: '`gitlab`,`subversion`' + - field: logo + range: '`//img.qucheng.com/app/g/gitlab-icon.svg`,`//img.qucheng.com/app/s/svn-icon.png`' + - field: version + range: '`2023.10.901`,`2023.12.1201`' + - field: desc + range: '`GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。`,`Apache® + Subversion® 服务,集成了SVNAdmin Web管理服务,可以通过浏览器创建仓库、配置用户权限。`' + - field: introduction + range: '`GitLab 一款基于Git的一体化软件开发平台。`,`应用广泛的版本控制系统`' + - field: source + range: '`cloud`' + - field: channel + range: '`test`' + - field: k8name + range: '`gitfox-20241129104044`,`subversion-20250526160528`' + - field: status + range: '`running`' + - field: pinned + range: "0" + - field: domain + range: '`jflc.dops.corp.cc`,`rheu.dops.corp.cc`' + - field: smtpSnippetName + range: "" + - field: ldapSnippetName + range: "" + - field: ldapSettings + range: "" + - field: dbSettings + range: '`{"ingress":{"enabled":true,"host":"jflc.dops.corp.cc"},"global":{"ingress":{"enabled":true,"host":"jflc.dops.corp.cc"}},"ci":{"enabled":true},"mysql":{"enabled":false,"auth":{"user":"user_1","password":"1gZBA25nTS4X","host":"zentaopaas-mysql.quickon-system.svc","port":3306,"database":"db_1","dbservice":{"name":"zentaopaas-mysql","namespace":"quickon-system"}}}}`,`{"ingress":{"enabled":true,"host":"rheu.dops.corp.cc"},"global":{"ingress":{"enabled":true,"host":"rheu.dops.corp.cc"}}}`' + - field: autoBackup + range: "0" + - field: backupKeepDays + range: '`1`' + - field: autoRestore + range: "0" + - field: env + range: "" + - field: createdBy + range: '`qadmin`' + - field: createdAt + range: '`2023-12-26 13:31:15`,`2024-01-02 09:32:46`' + - field: deleted + range: "0" +... diff --git a/module/instance/test/yaml/solution.yaml b/module/instance/test/yaml/solution.yaml new file mode 100644 index 0000000000..767540b710 --- /dev/null +++ b/module/instance/test/yaml/solution.yaml @@ -0,0 +1,42 @@ +--- +title: solution +author: Yanyi Cao +version: "1.0" +fields: + - field: id + range: '`1`' + - field: name + range: '`禅道 DevOps 解决方案`' + - field: appID + range: '`1`' + - field: appName + range: '`devops`' + - field: appVersion + range: '`1.1.0`' + - field: version + range: '`2023.10.901`' + - field: chart + range: '`devops`' + - field: cover + range: '`https://img.qucheng.com/app/d/devops-bg.png`' + - field: desc + range: '`禅道 DevOps 解决方案是一套软件全生命周期管理、跟踪、集成、发布解决方案。包含禅道项目管理工具、代码仓库、集成工具等。用户可以跟踪软件项目进度,管理代码的集成与发布。`' + - field: introduction + range: '`覆盖从立项到发布,端到端的软件开发全流程跟踪。全面集成 Jenkins、Gitlab 等工具。`' + - field: source + range: '`cloud`' + - field: channel + range: '`test`' + - field: components + range: '`{"git":{"id":42,"name":"gitlab","alias":"GitLab","chart":"gitlab","app_version":"15.3.4","version":"2023.10.901","logo":"https:\/\/img.qucheng.com\/app\/g\/gitlab-icon.svg","status":"installing"},"ci":{"id":40,"name":"jenkins","alias":"Jenkins","chart":"jenkins","app_version":"2.401.3","version":"2023.10.901","logo":"https:\/\/img.qucheng.com\/app\/j\/jenkins-icon.svg","status":"waiting"}}`' + - field: status + range: '`timeout`' + - field: deleted + range: "0" + - field: createdBy + range: '`qadmin`' + - field: createdAt + range: '`2023-12-26 13:31:11`' + - field: updatedDate + range: '`2023-12-26 13:41:21`' +... diff --git a/module/instance/test/yaml/space.yaml b/module/instance/test/yaml/space.yaml new file mode 100644 index 0000000000..1770be3af7 --- /dev/null +++ b/module/instance/test/yaml/space.yaml @@ -0,0 +1,22 @@ +--- +title: space +author: Yanyi Cao +version: "1.0" +fields: + - field: id + range: '`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`' + - field: name + range: '`默认空间`' + - field: k8space + range: '`quickon-app`' + - field: owner + range: '`qadmin`' + - field: default + range: '`1`' + - field: createdAt + range: '`2023-12-26 13:31:15`,`2023-12-26 13:31:22`,`2023-12-26 13:31:26`,`2023-12-26 + 13:31:30`,`2023-12-26 13:31:34`,`2023-12-26 13:31:38`,`2023-12-26 13:31:42`,`2023-12-26 + 13:31:46`,`2023-12-26 13:31:50`,`2023-12-26 13:31:54`,`2023-12-26 13:31:58`' + - field: deleted + range: "0" +... diff --git a/module/kanban/model.php b/module/kanban/model.php index 4b60b5bff3..b4f3349efb 100755 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -104,7 +104,7 @@ class kanbanModel extends model * @access public * @return int */ - public function createRegion(object $kanban, object $fromRegion = null, int $copyRegionID = 0, string $from = 'kanban', string $param = '') + public function createRegion(object $kanban, ?object $fromRegion = null, int $copyRegionID = 0, string $from = 'kanban', string $param = '') { $account = $this->app->user->account; $order = 1; @@ -355,7 +355,7 @@ class kanbanModel extends model * @access public * @return int|false */ - public function createColumn(int $regionID, object $column = null, string $from = 'kanban', string $mode = 'new'): int|false + public function createColumn(int $regionID, ?object $column = null, string $from = 'kanban', string $mode = 'new'): int|false { if($mode == 'new') { @@ -1865,7 +1865,7 @@ class kanbanModel extends model * @access public * @return array */ - public function getSpaceList(string $browseType, object $pager = null): array + public function getSpaceList(string $browseType, ?object $pager = null): array { $account = $this->app->user->account; $spaceIdList = $this->getCanViewObjects('kanbanspace', $browseType); @@ -2155,7 +2155,7 @@ class kanbanModel extends model * @access public * @return int|bool */ - public function createLane(int $kanbanID, int $regionID, object $lane = null, string $mode = 'new'): int|bool + public function createLane(int $kanbanID, int $regionID, ?object $lane = null, string $mode = 'new'): int|bool { $laneType = isset($_POST['laneType']) ? $_POST['laneType'] : 'common'; if($laneType == 'common') @@ -3665,7 +3665,7 @@ class kanbanModel extends model * @access public * @return array */ - public function getCards2Import(int $kanbanID = 0, int $excludedID = 0, object $pager = null): array + public function getCards2Import(int $kanbanID = 0, int $excludedID = 0, ?object $pager = null): array { $kanbanIdList = $this->getCanViewObjects(); diff --git a/module/mail/model.php b/module/mail/model.php index 70fa02e558..b6cc4c772f 100644 --- a/module/mail/model.php +++ b/module/mail/model.php @@ -482,7 +482,7 @@ class mailModel extends model * @access public * @return array */ - public function getQueue(string $status = 'all', string $orderBy = 'id_desc', object|null $pager = null, bool $mergeByUser = true): array + public function getQueue(string $status = 'all', string $orderBy = 'id_desc', ?object $pager = null, bool $mergeByUser = true): array { $mails = $this->dao->select('*')->from(TABLE_NOTIFY) ->where('objectType')->eq('mail') diff --git a/module/metric/control.php b/module/metric/control.php index 315711dbb5..79f43ee51a 100755 --- a/module/metric/control.php +++ b/module/metric/control.php @@ -170,10 +170,12 @@ class metric extends control */ public function updateMetricLib() { - // 保存当前的错误报告级别和显示错误的设置 + /* 保存当前的错误报告级别和显示错误的设置。*/ + /* Save the current error reporting level and display error settings. */ $originalDebug = $this->config->debug; - // 开启调试模式 + /* 开启调试模式。*/ + /* Enable debug mode. */ $this->config->debug = 2; $this->metric->saveLogs('----------------------------------'); @@ -184,7 +186,8 @@ class metric extends control $classifiedCalcGroup = $this->metric->classifyCalc($calcList); $this->metricZen->calculateMetric($classifiedCalcGroup); - // 恢复之前的调试状态 + /* 恢复之前的调试状态。*/ + /* Restore the previous debug state. */ $this->config->debug = $originalDebug; if(dao::isError()) @@ -197,10 +200,12 @@ class metric extends control public function updateDashboardMetricLib() { - // 保存当前的错误报告级别和显示错误的设置 + /* 保存当前的错误报告级别和显示错误的设置。*/ + /* Save the current error reporting level and display error settings. */ $originalDebug = $this->config->debug; - // 开启调试模式 + /* 开启调试模式。*/ + /* Enable debug mode. */ $this->config->debug = 2; $this->metric->saveLogs('-------------------------------------------'); @@ -213,7 +218,8 @@ class metric extends control $classifiedCalcGroup = $this->metric->classifyCalc($calcList); $this->metricZen->calculateMetric($classifiedCalcGroup); - // 恢复之前的调试状态 + /* 恢复之前的调试状态。*/ + /* Restore the previous debug state. */ $this->config->debug = $originalDebug; if(dao::isError()) diff --git a/module/metric/test/yaml/metriclib_deduplication.yaml b/module/metric/test/yaml/metriclib_deduplication.yaml index e3bbb3436a..09be753f42 100644 --- a/module/metric/test/yaml/metriclib_deduplication.yaml +++ b/module/metric/test/yaml/metriclib_deduplication.yaml @@ -12,7 +12,7 @@ fields: - field: system range: 1{20},0{20} - field: product - range: "[]{20},1,3,5,7,9,1,3,5,7,9,1,3,5,7,9,1,3,5,7,9" + range: "0{20},1,3,5,7,9,1,3,5,7,9,1,3,5,7,9,1,3,5,7,9" - field: year range: "[]{10},2012-2016{2},[]{10},2021{10}" - field: month diff --git a/module/metric/test/yaml/metriclib_system_product.yaml b/module/metric/test/yaml/metriclib_system_product.yaml index edc9089589..a68c7b9805 100644 --- a/module/metric/test/yaml/metriclib_system_product.yaml +++ b/module/metric/test/yaml/metriclib_system_product.yaml @@ -12,7 +12,7 @@ fields: - field: system range: 1{40},0{40} - field: product - range: "[]{40},1{10},2{10},3{10},4{10}" + range: "0{40},1{10},2{10},3{10},4{10}" - field: year range: "[]{10},2021{10},2022{10},2023{10},[]{10},2021{10},2022{10},2023{10}" - field: month diff --git a/module/metric/zen.php b/module/metric/zen.php index 63977d75da..f504ab5706 100644 --- a/module/metric/zen.php +++ b/module/metric/zen.php @@ -11,6 +11,8 @@ declare(strict_types=1); */ class metricZen extends metric { + private $validObjects; + /** * 构建创建度量的数据。 * Build metric data for create. @@ -213,6 +215,40 @@ class metricZen extends metric return number_format((float)$time, 5, '.', '0'); } + /** + * 获取有效的对象。 + * Get valid objects. + * + * @access private + * @return array + */ + private function getValidObjects() + { + if($this->validObjects !== null) return $this->validObjects; + + /* 保证逻辑集中,这里直接使用sql查询获取数据,保证查询性能。*/ + /* To ensure logical concentration, here we directly use sql to get data to ensure query performance. */ + $productList = $this->dao->select('id')->from(TABLE_PRODUCT) + ->where('deleted')->eq(0) + ->andWhere('status')->ne('closed') + ->andWhere('shadow')->eq(0) + ->fetchPairs('id'); + + $projectList = $this->dao->select('id')->from(TABLE_PROJECT) + ->where('deleted')->eq(0) + ->andWhere('status')->notIN('closed,done') + ->andWhere('type')->eq('project') + ->fetchPairs('id'); + + $executionList = $this->dao->select('id')->from(TABLE_EXECUTION) + ->where('deleted')->eq(0) + ->andWhere('status')->notIN('closed,done') + ->andWhere('type')->in('sprint,stage,kanban') + ->fetchPairs('id'); + + $this->validObjects = array('product' => $productList, 'project' => $projectList, 'execution' => $executionList); + } + /** * 计算度量数据。 * Calculate metric data. @@ -225,23 +261,35 @@ class metricZen extends metric { set_time_limit(0); $calcBeginTime = $this->startTime(); + foreach($classifiedCalcGroup as $calcGroup) { try { + /* 开始计算度量数据。*/ + /* Start calculating metric data. */ $beginTime = $this->startTime(); + $statement = $this->prepareDataset($calcGroup); - $sql = $statement ? $statement->get() : ''; $this->calcMetric($statement, $calcGroup->calcList); + $recordWithCode = $this->prepareMetricRecord($calcGroup->calcList); + $calcTime = $this->endTime($beginTime); + /* 开始插入度量数据。*/ + /* Start inserting metric data. */ $beginTime = $this->startTime(); + $this->metric->insertMetricLib($recordWithCode); + $executeTime = $this->endTime($beginTime); + /* 记录度量数据计算和插入的时间以及sql语句。*/ + /* Record the time of metric data calculation and insertion and sql statement. */ $total = 0; $codes = ''; + $sql = $statement ? $statement->get() : ''; foreach($recordWithCode as $code => $records) { $count = count($records); @@ -260,9 +308,13 @@ class metricZen extends metric } } + /* 记录度量数据计算的总时间。*/ + /* Record the total time of metric data calculation. */ $executeTime = $this->endTime($calcBeginTime); $this->metric->saveLogs("Calculate all consumed time: {$executeTime} seconds"); + /* 开始去重。*/ + /* Start deduplication. */ $beginTime = $this->startTime(); $metrics = $this->metric->getExecutableMetric(); foreach($metrics as $code) @@ -272,7 +324,13 @@ class metricZen extends metric $executeTime = $this->endTime($deduplicationBeginTime); $this->metric->saveLogs("Deduplication consumed time: {$executeTime} seconds, the code: $code"); } + + /* 重建主键。*/ + /* Rebuild the primary key. */ $this->metric->rebuildPrimaryKey(); + + /* 记录去重的时间。*/ + /* Record the time of deduplication. */ $executeTime = $this->endTime($beginTime); $this->metric->saveLogs("Deduplicate all consumed time: {$executeTime} seconds"); } @@ -287,30 +345,44 @@ class metricZen extends metric */ protected function prepareMetricRecord($calcList) { + /* 获取今天和昨天的日期。*/ + /* Get the date of today and yesterday. */ $yesterday = date('j', strtotime('-1 day', strtotime('today'))); $today = date('j'); $options = array('year' => date('Y'), 'month' => date('n'), 'week' => substr(date('oW'), -2), 'day' => "$today,$yesterday"); - $now = helper::now(); - $dateValues = $this->metric->parseDateStr($now); - + /* 获取未关闭的对象id。*/ + /* Get the id of the unclosed objects. */ + $this->getValidObjects(); + $validObjects = $this->validObjects; $records = array(); foreach($calcList as $code => $calc) { $metric = $this->metric->getByCode($code); + /* 如果度量项是复用的,则计算复用的度量数据。*/ + /* If the metric is reused, calculate the reused metric data. */ if($calc->reuse) $this->prepareReuseMetricResult($calc, $options); + + /* 判断是否统计关闭时的对象的度量数据。*/ + $endWithClosing = preg_match('/_when_closing$/', $code); + $results = $calc->getResult($options); $records[$code] = array(); if(is_array($results)) { + $scope = $metric->scope; foreach($results as $record) { $record = (object)$record; if(!is_numeric($record->value) || empty($record->value)) continue; + /* 如果度量项是产品、项目、执行且不统计关闭时的对象的度量数据,则过滤掉已关闭的数据。*/ + /* If the metric is product, project, execution, filter out the closed data. */ + if(!$endWithClosing && isset($validObjects[$scope]) && !isset($validObjects[$scope][$record->$scope])) continue; + $record->metricID = $calc->id; $record->metricCode = $code; - $record->date = $now; + $record->date = helper::now(); $record->system = $metric->scope == 'system' ? 1 : 0; $records[$code][] = $record; diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php index 7466c8ccaa..b57c4ea0dc 100644 --- a/module/misc/lang/de.php +++ b/module/misc/lang/de.php @@ -114,6 +114,7 @@ $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.3'] = '2025-07-03'; $lang->misc->releaseDate['21.7.2'] = '2025-06-27'; $lang->misc->releaseDate['21.7.1'] = '2025-05-30'; $lang->misc->releaseDate['21.7'] = '2025-05-16'; diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index 9309a66a50..70ac743588 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -78,6 +78,7 @@ $lang->misc->expiredCountTips = 'There are System->Metric Library" page.'; $lang->misc->noticeRepair = "
If you are not Administrator, contact your ZenTao Administrator to repair tables.
If you are the Administrator, login your ZenTao host and create a file named %s.
@@ -114,6 +115,7 @@ $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.3'] = '2025-07-03'; $lang->misc->releaseDate['21.7.2'] = '2025-06-27'; $lang->misc->releaseDate['21.7.1'] = '2025-05-30'; $lang->misc->releaseDate['21.7'] = '2025-05-16'; diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php index 6ce7065b2c..b830c35489 100644 --- a/module/misc/lang/fr.php +++ b/module/misc/lang/fr.php @@ -114,6 +114,7 @@ $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.3'] = '2025-07-03'; $lang->misc->releaseDate['21.7.2'] = '2025-06-27'; $lang->misc->releaseDate['21.7.1'] = '2025-05-30'; $lang->misc->releaseDate['21.7'] = '2025-05-16'; diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index ef3abe928e..287385a900 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -78,6 +78,7 @@ $lang->misc->expiredCountTips = '系统中有普通用户请联系管理员进行修复
管理员请登录禅道所在的服务器,创建%s文件。
@@ -114,6 +115,7 @@ $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.3'] = '2025-07-03'; $lang->misc->releaseDate['21.7.2'] = '2025-06-27'; $lang->misc->releaseDate['21.7.1'] = '2025-05-30'; $lang->misc->releaseDate['21.7'] = '2025-05-16'; @@ -250,6 +252,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.7.3'][] = array('title' => 'zentaopms21.7.3zentaobiz12.2max7.2ipd4.2', 'desc' => ''); $lang->misc->feature->all['21.7.2'][] = array('title' => '文档功能优化;项目模板功能发布。', 'desc' => ''); $lang->misc->feature->all['21.7.1'][] = array('title' => '文档编辑器增加顶部工具栏;单项目流程管理配置;优化需求;增加交付物管理功能。', 'desc' => ''); $lang->misc->feature->all['21.7'][] = array('title' => '瀑布、融合瀑布支持批量维护父子阶段;支持建立跨执行任务依赖关系;IPD项目支持批量维护父子阶段,修复bug。', 'desc' => ''); diff --git a/module/misc/model.php b/module/misc/model.php index 98b65c0c12..ed61b378ab 100644 --- a/module/misc/model.php +++ b/module/misc/model.php @@ -84,6 +84,28 @@ class miscModel extends model return $remind; } + /** + * 获取更新度量库表索引的通知。 + * Get the notification information about updating metriclib table index. + * + * @access public + * @return string + */ + public function getMetriclibRemind(): string + { + if(!$this->app->user->admin) return ''; + if($this->config->edition == 'open') return ''; + + $remind = ''; + if(empty($this->config->global->metriclibShowed)) + { + $remind .= '

' . $this->lang->misc->metriclibTips . '

'; + $remind .= "

" . html::a(helper::createLink('admin', 'metriclib'), $this->lang->misc->view, '', "id='metriclibButton' class='btn primary wide' data-app='admin'", false) . '

'; + $this->loadModel('setting')->setItem("{$this->app->user->account}.common.global.metriclibShowed", 1); + } + return $remind; + } + /** * 检查一键安装包的安全性。 * Check one click package. diff --git a/module/misc/test/model/getmetriclibremind.php b/module/misc/test/model/getmetriclibremind.php new file mode 100755 index 0000000000..e037d201d4 --- /dev/null +++ b/module/misc/test/model/getmetriclibremind.php @@ -0,0 +1,46 @@ +#!/usr/bin/env php +gen(1); +zenData('user')->gen(2); +zenData('config')->gen(0); + +su('user1'); + +/** + +title=测试 miscModel->getMetriclibRemind(); +timeout=0 +cid=1 + +- 非管理员用户返回空字符串。 @0 +- 管理员用户开源版返回空字符串。 @0 +- 管理员用户企业版返回正常内容。 @1 +- 管理员用户企业版返回正常内容后数据库中记录已显示过。 @1 +- 管理员用户企业版返回正常内容一次后第二次返回空字符串。 @0 + +*/ + +global $tester, $config; +$config->edition = 'open'; + +$misc = $tester->loadModel('misc'); +$remind = "

新增更新度量库索引功能,更新索引后可大幅度提升相关度量项的查询速度"; + +r($misc->getMetriclibRemind()) && p() && e(0); //非管理员用户返回空字符串。 + +su('admin'); + +r($misc->getMetriclibRemind()) && p() && e(0); //管理员用户开源版返回空字符串。 + +$config->edition = 'biz'; +r(mb_substr($misc->getMetriclibRemind(), 0, 36) == $remind) && p() && e(1); //管理员用户企业版返回正常内容。 + +$showed = $tester->loadModel('setting')->getItem('owner=admin&module=common§ion=global&key=metriclibShowed'); + +r($showed) && p() && e(1); //管理员用户企业版返回正常内容后数据库中记录已显示过。 + +$config->global->metriclibShowed = $showed; + +r($misc->getMetriclibRemind()) && p() && e(0); //管理员用户企业版返回正常内容一次后第二次返回空字符串。 diff --git a/module/misc/test/model/getpluginremind.php b/module/misc/test/model/getpluginremind.php index 973677807f..4d208f36b6 100755 --- a/module/misc/test/model/getpluginremind.php +++ b/module/misc/test/model/getpluginremind.php @@ -8,11 +8,23 @@ title=测试 miscModel->getPluginRemind(); timeout=0 cid=1 +- 调用方法返回值 @0 +- 调用方法返回值 @0 +- 调用方法返回值 @0 +- 调用方法返回值 @0 - 调用方法返回值 @0 */ + +zenData('extension')->gen(10); + global $tester; $tester->loadModel('misc'); +/* 由于没办法上传过期授权文件,这个单测无法实际测试。 */ +r($tester->misc->getPluginRemind()) && p() && e('0'); //调用方法返回值 +r($tester->misc->getPluginRemind()) && p() && e('0'); //调用方法返回值 +r($tester->misc->getPluginRemind()) && p() && e('0'); //调用方法返回值 +r($tester->misc->getPluginRemind()) && p() && e('0'); //调用方法返回值 r($tester->misc->getPluginRemind()) && p() && e('0'); //调用方法返回值 ?> diff --git a/module/mr/model.php b/module/mr/model.php index 2691a57696..87f60da667 100644 --- a/module/mr/model.php +++ b/module/mr/model.php @@ -35,7 +35,7 @@ class mrModel extends model * @access public * @return array */ - public function getList(string $mode = 'all', string $param = 'all', string $orderBy = 'id_desc', array $filterProjects = array(), int $repoID = 0, int $objectID = 0, object $pager = null): array + public function getList(string $mode = 'all', string $param = 'all', string $orderBy = 'id_desc', array $filterProjects = array(), int $repoID = 0, int $objectID = 0, ?object $pager = null): array { $filterProjectSql = ''; if(!$this->app->user->admin && !empty($filterProjects)) @@ -964,7 +964,7 @@ class mrModel extends model * @access public * @return array */ - public function getLinkList(int $MRID, string $type, string $orderBy = 'id_desc', object $pager = null): array + public function getLinkList(int $MRID, string $type, string $orderBy = 'id_desc', ?object $pager = null): array { if(!isset($this->config->objectTables[$type])) return array(); diff --git a/module/my/js/audit.ui.js b/module/my/js/audit.ui.js index 616e367066..86e960dabf 100644 --- a/module/my/js/audit.ui.js +++ b/module/my/js/audit.ui.js @@ -16,6 +16,12 @@ window.onRenderCell = function(result, {row, col}) link = oaReviewLink.replace('{module}', row.data.module); delete result[0].props.items[0]['data-toggle']; } + else if(['mr', 'pullreq'].includes(row.data.module)) + { + link = $.createLink(row.data.module, 'view', 'id=' + row.data.id); + result[0].props.items[0]['disabled'] = viewPrivs[row.data.module]; + delete result[0].props.items[0]['data-toggle']; + } else { if(!noFlowAuditModules.includes(row.data.module) && row.data.module != 'charter') link = flowReviewLink; diff --git a/module/my/lang/de.php b/module/my/lang/de.php index efdb3bb03e..dae4943c6b 100644 --- a/module/my/lang/de.php +++ b/module/my/lang/de.php @@ -165,6 +165,7 @@ $lang->my->featureBar['audit']['story'] = $lang->SRCommon; $lang->my->featureBar['audit']['requirement'] = $lang->URCommon; $lang->my->featureBar['audit']['epic'] = $lang->ERCommon; $lang->my->featureBar['audit']['testcase'] = 'Test case'; +$lang->my->featureBar['audit']['mr'] = 'Merge request'; if(in_array($config->edition, array('max', 'ipd')) and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->featureBar['audit']['project'] = $lang->projectCommon; if($config->edition != 'open') $lang->my->featureBar['audit']['feedback'] = 'Feedback'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->featureBar['audit']['oa'] = 'OA'; diff --git a/module/my/lang/en.php b/module/my/lang/en.php index efdb3bb03e..dae4943c6b 100644 --- a/module/my/lang/en.php +++ b/module/my/lang/en.php @@ -165,6 +165,7 @@ $lang->my->featureBar['audit']['story'] = $lang->SRCommon; $lang->my->featureBar['audit']['requirement'] = $lang->URCommon; $lang->my->featureBar['audit']['epic'] = $lang->ERCommon; $lang->my->featureBar['audit']['testcase'] = 'Test case'; +$lang->my->featureBar['audit']['mr'] = 'Merge request'; if(in_array($config->edition, array('max', 'ipd')) and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->featureBar['audit']['project'] = $lang->projectCommon; if($config->edition != 'open') $lang->my->featureBar['audit']['feedback'] = 'Feedback'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->featureBar['audit']['oa'] = 'OA'; diff --git a/module/my/lang/fr.php b/module/my/lang/fr.php index efdb3bb03e..dae4943c6b 100644 --- a/module/my/lang/fr.php +++ b/module/my/lang/fr.php @@ -165,6 +165,7 @@ $lang->my->featureBar['audit']['story'] = $lang->SRCommon; $lang->my->featureBar['audit']['requirement'] = $lang->URCommon; $lang->my->featureBar['audit']['epic'] = $lang->ERCommon; $lang->my->featureBar['audit']['testcase'] = 'Test case'; +$lang->my->featureBar['audit']['mr'] = 'Merge request'; if(in_array($config->edition, array('max', 'ipd')) and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->featureBar['audit']['project'] = $lang->projectCommon; if($config->edition != 'open') $lang->my->featureBar['audit']['feedback'] = 'Feedback'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->featureBar['audit']['oa'] = 'OA'; diff --git a/module/my/lang/zh-cn.php b/module/my/lang/zh-cn.php index e25b7ef4f1..d416a78baa 100644 --- a/module/my/lang/zh-cn.php +++ b/module/my/lang/zh-cn.php @@ -165,6 +165,7 @@ $lang->my->featureBar['audit']['story'] = $lang->SRCommon; $lang->my->featureBar['audit']['requirement'] = $lang->URCommon; $lang->my->featureBar['audit']['epic'] = $lang->ERCommon; $lang->my->featureBar['audit']['testcase'] = '用例'; +$lang->my->featureBar['audit']['mr'] = '合并请求'; if(in_array($config->edition, array('max', 'ipd')) and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->featureBar['audit']['project'] = $lang->projectCommon; if($config->edition != 'open') $lang->my->featureBar['audit']['feedback'] = '反馈'; if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->featureBar['audit']['oa'] = '办公'; diff --git a/module/my/model.php b/module/my/model.php index b611071e6a..59eb4c82f1 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -262,7 +262,7 @@ class myModel extends model * @access public * @return array */ - public function getAssignedByMe(string $account, object $pager = null, string $orderBy = 'id_desc', string $objectType = ''): array + public function getAssignedByMe(string $account, ?object $pager = null, string $orderBy = 'id_desc', string $objectType = ''): array { $module = $objectType == 'requirement' ? 'story' : $objectType; $objectIdList = $this->dao->select('objectID')->from(TABLE_ACTION) @@ -315,7 +315,7 @@ class myModel extends model * @access private * @return array */ - private function getTaskAssignedByMe(object $pager = null, string $orderBy = 'id_desc', array $objectIdList = array()): array + private function getTaskAssignedByMe(?object $pager = null, string $orderBy = 'id_desc', array $objectIdList = array()): array { // 处理优先级排序 if(strpos($orderBy, 'pri_') !== false) $orderBy = str_replace('pri_', 'priOrder_', $orderBy); @@ -391,7 +391,7 @@ class myModel extends model * @access public * @return array */ - public function getTestcasesBySearch(int $queryID, string $type, string $orderBy, object $pager = null): array + public function getTestcasesBySearch(int $queryID, string $type, string $orderBy, ?object $pager = null): array { $queryName = $type == 'contribute' ? 'contributeTestcaseQuery' : 'workTestcaseQuery'; $queryForm = $type == 'openedbyme' ? 'contributeTestcaseForm' : 'workTestcaseForm'; @@ -494,7 +494,7 @@ class myModel extends model * @access public * @return array */ - public function getTasksBySearch(string $account, int $limit = 0, object $pager = null, string $orderBy = 'id_desc', int $queryID = 0): array + public function getTasksBySearch(string $account, int $limit = 0, ?object $pager = null, string $orderBy = 'id_desc', int $queryID = 0): array { $moduleName = $this->app->rawMethod == 'work' ? 'workTask' : 'contributeTask'; $queryName = $moduleName . 'Query'; @@ -619,7 +619,7 @@ class myModel extends model * @access public * @return array */ - public function getRisksBySearch(int $queryID, string $type, string $orderBy, object $pager = null): array + public function getRisksBySearch(int $queryID, string $type, string $orderBy, ?object $pager = null): array { $queryName = $type == 'contribute' ? 'contributeRiskQuery' : 'workRiskQuery'; if($queryID && $queryID != 'myQueryID') @@ -715,7 +715,7 @@ class myModel extends model * @access public * @return array */ - public function getStoriesBySearch(int $queryID, string $type, string $orderBy, object $pager = null): array + public function getStoriesBySearch(int $queryID, string $type, string $orderBy, ?object $pager = null): array { $queryName = $type == 'contribute' ? 'contributeStoryQuery' : 'workStoryQuery'; $queryForm = $type == 'contribute' ? 'contributeStoryForm' : 'workStoryForm'; @@ -865,7 +865,7 @@ class myModel extends model * @access public * @return array */ - public function getEpicsBySearch(int $queryID, string $type, string $orderBy, object $pager = null): array + public function getEpicsBySearch(int $queryID, string $type, string $orderBy, ?object $pager = null): array { $queryName = $type == 'contribute' ? 'contributeEpicQuery' : 'workEpicQuery'; $queryForm = $type == 'contribute' ? 'contributeEpicForm' : 'workEpicForm'; @@ -907,7 +907,7 @@ class myModel extends model * @access public * @return array */ - public function getRequirementsBySearch(int $queryID, string $type, string $orderBy, object $pager = null): array + public function getRequirementsBySearch(int $queryID, string $type, string $orderBy, ?object $pager = null): array { $queryName = $type == 'contribute' ? 'contributeRequirementQuery' : 'workRequirementQuery'; $queryForm = $type == 'contribute' ? 'contributeRequirementForm' : 'workRequirementForm'; @@ -956,6 +956,7 @@ class myModel extends model if($this->config->vision != 'or' && $this->getReviewingApprovals('id_desc', true)) $typeList[] = 'project'; if($this->getReviewingFeedbacks('id_desc', true)) $typeList[] = 'feedback'; if($this->config->vision != 'or' && $this->getReviewingOA('status', true)) $typeList[] = 'oa'; + if($this->config->vision != 'or' && $this->getReviewingMRs('id_desc')) $typeList[] = 'mr'; $typeList = array_merge($typeList, $this->getReviewingFlows('all', 'id_desc', true)); $flows = $this->config->edition == 'open' ? array() : $this->dao->select('module,name')->from(TABLE_WORKFLOW)->where('module')->in($typeList)->andWhere('buildin')->eq(0)->fetchPairs('module', 'name'); @@ -980,7 +981,7 @@ class myModel extends model * @access public * @return array */ - public function getReviewingList(string $browseType, string $orderBy = 'time_desc', object $pager = null): array + public function getReviewingList(string $browseType, string $orderBy = 'time_desc', ?object $pager = null): array { $vision = $this->config->vision; $reviewList = array(); @@ -991,6 +992,7 @@ class myModel extends model if($vision != 'or' && ($browseType == 'all' || $browseType == 'testcase') && common::hasPriv('testcase', 'review')) $reviewList = array_merge($reviewList, $this->getReviewingCases()); if($vision != 'or' && ($browseType == 'all' || $browseType == 'project')) $reviewList = array_merge($reviewList, $this->getReviewingApprovals()); if($vision != 'or' && ($browseType == 'all' || $browseType == 'oa')) $reviewList = array_merge($reviewList, $this->getReviewingOA()); + if($vision != 'or' && ($browseType == 'all' || $browseType == 'mr')) $reviewList = array_merge($reviewList, $this->getReviewingMRs()); if($browseType == 'all' || !in_array($browseType, $this->config->my->noFlowAuditModules)) $reviewList = array_merge($reviewList, $this->getReviewingFlows($browseType)); if(($browseType == 'all' || $browseType == 'feedback') && common::hasPriv('feedback', 'review')) $reviewList = array_merge($reviewList, $this->getReviewingFeedbacks()); if(empty($reviewList)) return array(); @@ -1151,6 +1153,25 @@ class myModel extends model return array_values($cases); } + /** + * 获取待评审的MR。 + * Get reviewing mrs. + * + * @param string $orderBy + * @access public + * @return array + */ + public function getReviewingMRs(string $orderBy = 'id_desc'): array + { + return $this->dao->select("`id`, `title`, IF(`isFlow`='1', 'pullreq', 'mr') AS type, `createdDate` AS time, `approvalStatus` AS status, 0 AS product, 0 AS project")->from(TABLE_MR) + ->where('deleted')->eq('0') + ->andWhere('approvalStatus')->notIn(array('approved', 'rejected')) + ->andWhere('status')->ne('closed') + ->andWhere('assignee')->eq($this->app->user->account) + ->orderBy($orderBy) + ->fetchAll('id'); + } + /** * 获取待评审的审批。 * Get reviewing approvals. @@ -1349,7 +1370,7 @@ class myModel extends model * @access public * @return array */ - public function getReviewedList(string $browseType, string $orderBy = 'time_desc', object $pager = null): array + public function getReviewedList(string $browseType, string $orderBy = 'time_desc', ?object $pager = null): array { $field = $orderBy; $direction = 'asc'; @@ -1377,7 +1398,6 @@ class myModel extends model ->andWhere('vision')->eq($this->config->vision) ->andWhere($condition) ->groupBy('objectType,objectID') - ->page($pager) ->fetchPairs(); $objectTypeList = array(); @@ -1411,8 +1431,16 @@ class myModel extends model } $reviewedList = $this->buildReviewedList($objectGroup, $actions, $flows); - if($pager) $pager->setRecTotal(count($reviewedList)); - return $reviewedList; + if(!is_null($pager)) + { + $pager->setRecTotal(count($reviewedList)); + $pager->setPageTotal(); + $pager->setPageID($pager->pageID); + $reviewedList = array_chunk($reviewedList, (int)$pager->recPerPage); + $reviewedList = !empty($reviewedList[$pager->pageID - 1]) ? $reviewedList[$pager->pageID - 1] : array(); + } + + return !empty($reviewedList) ? $reviewedList : array(); } /** diff --git a/module/my/tao.php b/module/my/tao.php index 8161a1aaa2..ea78598d66 100644 --- a/module/my/tao.php +++ b/module/my/tao.php @@ -23,7 +23,7 @@ class myTao extends myModel * @access protected * @return array */ - protected function getProductRelatedAssignedByMe(array $objectIdList, string $objectType, string $module, string $orderBy, object $pager = null): array + protected function getProductRelatedAssignedByMe(array $objectIdList, string $objectType, string $module, string $orderBy, ?object $pager = null): array { $nameField = $objectType == 'bug' ? 'productName' : 'productTitle'; $orderBy = strpos($orderBy, 'priOrder') !== false || strpos($orderBy, 'severityOrder') !== false || strpos($orderBy, $nameField) !== false ? $orderBy : "t1.{$orderBy}"; @@ -63,7 +63,7 @@ class myTao extends myModel * @access protected * @return array */ - protected function fetchTasksBySearch(string $query, string $moduleName, string $account, array $taskIdList, string $orderBy, int $limit, object $pager = null): array + protected function fetchTasksBySearch(string $query, string $moduleName, string $account, array $taskIdList, string $orderBy, int $limit, ?object $pager = null): array { $query = preg_replace('/`(\w+)`/', 't1.`$1`', $query); $query = str_replace('t1.`project`', 't2.`project`', $query); @@ -133,7 +133,7 @@ class myTao extends myModel * @access protected * @return array */ - protected function fetchStoriesBySearch(string $myStoryQuery, string $type, string $orderBy, object $pager = null, array $storiesAssignedByMe = array()): array + protected function fetchStoriesBySearch(string $myStoryQuery, string $type, string $orderBy, ?object $pager = null, array $storiesAssignedByMe = array()): array { if($type == 'contribute') { @@ -188,7 +188,7 @@ class myTao extends myModel * @access protected * @return array */ - protected function fetchEpicsBySearch(string $myEpicQuery, string $type, string $orderBy, object $pager = null, array $epicIDList = array()): array + protected function fetchEpicsBySearch(string $myEpicQuery, string $type, string $orderBy, ?object $pager = null, array $epicIDList = array()): array { if($type == 'contribute') { @@ -245,7 +245,7 @@ class myTao extends myModel * @access protected * @return array */ - protected function fetchRequirementsBySearch(string $myRequirementQuery, string $type, string $orderBy, object $pager = null, array $requirementIDList = array()): array + protected function fetchRequirementsBySearch(string $myRequirementQuery, string $type, string $orderBy, ?object $pager = null, array $requirementIDList = array()): array { if($type == 'contribute') { diff --git a/module/my/test/lib/my.unittest.class.php b/module/my/test/lib/my.unittest.class.php index 9d63e70d98..1b90a66a47 100644 --- a/module/my/test/lib/my.unittest.class.php +++ b/module/my/test/lib/my.unittest.class.php @@ -6,6 +6,7 @@ class myTest { global $tester; $this->objectModel = $tester->loadModel('my'); + $tester->dao->delete()->from(TABLE_ACTIONRECENT)->exec(); } /** @@ -440,6 +441,25 @@ class myTest return !empty($return) ? implode(',', array_column($return, 'id')) : 'empty'; } + /** + * 测试获取审批中的合并请求。 + * Test get reviewing mrs. + * + * @param string $account + * @param string $orderBy + * @param bool $checkExist + * @access public + * @return string|array + */ + public function getReviewingMRsTest(string $account, string $orderBy): string|array + { + su($account); + $result = $this->objectModel->getReviewingMRs($orderBy); + if(dao::isError()) return dao::getError(); + + return $result; + } + /** * 测试获取审批中的用例。 * Test get reviewing cases. diff --git a/module/my/test/model/getactions.php b/module/my/test/model/getactions.php index 0fd9c7ac73..f7c3c8515e 100755 --- a/module/my/test/model/getactions.php +++ b/module/my/test/model/getactions.php @@ -37,8 +37,8 @@ $app->loadLang('action'); $my = new myTest(); $actions = $my->getActionsTest(); -r($actions) && p('0') && e('96'); // 正常查询action -r($actions) && p('1') && e('64'); // 正常查询action -r($actions) && p('2') && e('32'); // 正常查询action -r($actions) && p('3') && e('95'); // 正常查询action -r($actions) && p('4') && e('63'); // 正常查询action +r($actions) && p('0') && e('93'); // 正常查询action +r($actions) && p('1') && e('62'); // 正常查询action +r($actions) && p('2') && e('31'); // 正常查询action +r($actions) && p('3') && e('92'); // 正常查询action +r($actions) && p('4') && e('61'); // 正常查询action diff --git a/module/my/test/model/getreviewedlist.php b/module/my/test/model/getreviewedlist.php index 295c361ead..68d730d084 100755 --- a/module/my/test/model/getreviewedlist.php +++ b/module/my/test/model/getreviewedlist.php @@ -8,6 +8,7 @@ zenData('action')->loadYaml('action_getreviewedlist')->gen('10'); zenData('story')->gen('10'); zenData('case')->gen('10'); zenData('user')->gen('10'); +zenData('product')->gen('10'); su('admin'); @@ -25,14 +26,17 @@ cid=1 - 测试获取排序 browse createdbyme id_asc 的审批列表。 @1,2,3,4 +- 测试获取排序 browse createdbyme 默认排序 的审批列表。 @4,3,2,1 + */ $my = new myTest(); $browseType = array('all', 'createdbyme'); -$orderBy = array('id_desc', 'id_asc'); +$orderBy = array('id_desc', 'id_asc', 'time_desc'); r($my->getReviewedListTest($browseType[0], $orderBy[0])) && p() && e('10,9'); // 测试获取排序 browse all id_desc 的审批列表。 r($my->getReviewedListTest($browseType[0], $orderBy[1])) && p() && e('9,10'); // 测试获取排序 browse all id_asc 的审批列表。 r($my->getReviewedListTest($browseType[1], $orderBy[0])) && p() && e('4,3,2,1'); // 测试获取排序 browse createdbyme id_desc 的审批列表。 -r($my->getReviewedListTest($browseType[1], $orderBy[1])) && p() && e('1,2,3,4'); // 测试获取排序 browse createdbyme id_asc 的审批列表。 \ No newline at end of file +r($my->getReviewedListTest($browseType[1], $orderBy[1])) && p() && e('1,2,3,4'); // 测试获取排序 browse createdbyme id_asc 的审批列表。 +r($my->getReviewedListTest($browseType[1], $orderBy[2])) && p() && e('4,3,2,1'); // 测试获取排序 browse createdbyme 默认排序 的审批列表。 diff --git a/module/my/test/model/getreviewingapprovals.php b/module/my/test/model/getreviewingapprovals.php index 11b1f8bc7c..9f47eb69c1 100755 --- a/module/my/test/model/getreviewingapprovals.php +++ b/module/my/test/model/getreviewingapprovals.php @@ -18,6 +18,7 @@ cid=1 - 测试获取排序 id_desc 的审批是否存在。 @empty - 测试获取排序 id_asc 的审批id。 @empty - 测试获取排序 id_asc 的审批是否存在。 @empty +- 测试获取排序 id_asc 的审批是否存在。 @empty */ @@ -29,4 +30,5 @@ $checkExist = array(false, true); r($my->getReviewingApprovalsTest($orderBy[0], $checkExist[0])) && p() && e('empty'); // 测试获取排序 id_desc 的审批id。 r($my->getReviewingApprovalsTest($orderBy[0], $checkExist[1])) && p() && e('empty'); // 测试获取排序 id_desc 的审批是否存在。 r($my->getReviewingApprovalsTest($orderBy[1], $checkExist[0])) && p() && e('empty'); // 测试获取排序 id_asc 的审批id。 -r($my->getReviewingApprovalsTest($orderBy[1], $checkExist[1])) && p() && e('empty'); // 测试获取排序 id_asc 的审批是否存在。 \ No newline at end of file +r($my->getReviewingApprovalsTest($orderBy[1], $checkExist[1])) && p() && e('empty'); // 测试获取排序 id_asc 的审批是否存在。 +r($my->getReviewingApprovalsTest($orderBy[1], $checkExist[1])) && p() && e('empty'); // 测试获取排序 id_asc 的审批是否存在。 diff --git a/module/my/test/model/getreviewingcases.php b/module/my/test/model/getreviewingcases.php index 07614a36ce..e909ce6dfe 100755 --- a/module/my/test/model/getreviewingcases.php +++ b/module/my/test/model/getreviewingcases.php @@ -5,6 +5,7 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/my.unittest.class.php'; zenData('case')->gen('20'); +zenData('product')->gen('20'); zenData('user')->gen('2'); /** diff --git a/module/my/test/model/getreviewinglist.php b/module/my/test/model/getreviewinglist.php index 3659c03685..1ed5c47d12 100755 --- a/module/my/test/model/getreviewinglist.php +++ b/module/my/test/model/getreviewinglist.php @@ -11,6 +11,7 @@ zenData('demand')->loadYaml('demand_reviewing')->gen('20'); zenData('demandreview')->gen('20'); zenData('user')->gen('10'); zenData('action')->gen('0'); +zenData('mr')->gen('1'); /** @@ -18,14 +19,10 @@ title=测试 myModel->getReviewingList(); timeout=0 cid=1 -- 测试获取用户 admin 类型 all 排序 id_desc 不分页 的待评审类型。 @testcase,17;testcase,13;story,10;testcase,9;story,8;story,6;testcase,5;story,4;story,2;testcase,1; - -- 测试获取用户 admin 类型 all 排序 id_asc 不分页 的待评审类型。 @testcase,1;story,2;story,4;testcase,5;story,6;story,8;testcase,9;story,10;testcase,13;testcase,17; - +- 测试获取用户 admin 类型 all 排序 id_desc 不分页 的待评审类型。 @testcase,17;testcase,13;story,10;testcase,9;story,8;story,6;testcase,5;story,4;story,2;testcase,1;mr,1; +- 测试获取用户 admin 类型 all 排序 id_asc 不分页 的待评审类型。 @testcase,1;mr,1;story,2;story,4;testcase,5;story,6;story,8;testcase,9;story,10;testcase,13;testcase,17; - 测试获取用户 admin 类型 all 排序 id_desc 获取前两个 的待评审类型。 @testcase,17;testcase,13; - -- 测试获取用户 admin 类型 all 排序 id_asc 获取前两个 的待评审类型。 @testcase,1;story,2; - +- 测试获取用户 admin 类型 all 排序 id_asc 获取前两个 的待评审类型。 @testcase,1;mr,1; - 测试获取用户 admin 类型 createdbyme 排序 id_desc 不分页 的待评审类型。 @0 - 测试获取用户 admin 类型 createdbyme 排序 id_asc 不分页 的待评审类型。 @0 - 测试获取用户 admin 类型 createdbyme 排序 id_desc 获取前两个 的待评审类型。 @0 @@ -33,7 +30,7 @@ cid=1 */ -global $teser, $config, $app; +global $tester, $config, $app; $app->rawModule = 'my'; $app->rawMethod = 'getReviewingList'; $config->edition = 'open'; @@ -50,10 +47,10 @@ $browseType = array('all', 'createdbyme'); $orderBy = array('id_desc', 'id_asc'); $pageList = array(null, $pager); -r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[0], $pageList[0])) && p() && e('testcase,17;testcase,13;story,10;testcase,9;story,8;story,6;testcase,5;story,4;story,2;testcase,1;'); // 测试获取用户 admin 类型 all 排序 id_desc 不分页 的待评审类型。 -r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[1], $pageList[0])) && p() && e('testcase,1;story,2;story,4;testcase,5;story,6;story,8;testcase,9;story,10;testcase,13;testcase,17;'); // 测试获取用户 admin 类型 all 排序 id_asc 不分页 的待评审类型。 +r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[0], $pageList[0])) && p() && e('testcase,17;testcase,13;story,10;testcase,9;story,8;story,6;testcase,5;story,4;story,2;testcase,1;mr,1;'); // 测试获取用户 admin 类型 all 排序 id_desc 不分页 的待评审类型。 +r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[1], $pageList[0])) && p() && e('testcase,1;mr,1;story,2;story,4;testcase,5;story,6;story,8;testcase,9;story,10;testcase,13;testcase,17;'); // 测试获取用户 admin 类型 all 排序 id_asc 不分页 的待评审类型。 r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[0], $pageList[1])) && p() && e('testcase,17;testcase,13;'); // 测试获取用户 admin 类型 all 排序 id_desc 获取前两个 的待评审类型。 -r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[1], $pageList[1])) && p() && e('testcase,1;story,2;'); // 测试获取用户 admin 类型 all 排序 id_asc 获取前两个 的待评审类型。 +r($my->getReviewingListTest($account[0], $browseType[0], $orderBy[1], $pageList[1])) && p() && e('testcase,1;mr,1;'); // 测试获取用户 admin 类型 all 排序 id_asc 获取前两个 的待评审类型。 r($my->getReviewingListTest($account[0], $browseType[1], $orderBy[0], $pageList[0])) && p() && e('0'); // 测试获取用户 admin 类型 createdbyme 排序 id_desc 不分页 的待评审类型。 r($my->getReviewingListTest($account[0], $browseType[1], $orderBy[1], $pageList[0])) && p() && e('0'); // 测试获取用户 admin 类型 createdbyme 排序 id_asc 不分页 的待评审类型。 r($my->getReviewingListTest($account[0], $browseType[1], $orderBy[0], $pageList[1])) && p() && e('0'); // 测试获取用户 admin 类型 createdbyme 排序 id_desc 获取前两个 的待评审类型。 diff --git a/module/my/test/model/getreviewingmrs.php b/module/my/test/model/getreviewingmrs.php new file mode 100755 index 0000000000..75d882cb1b --- /dev/null +++ b/module/my/test/model/getreviewingmrs.php @@ -0,0 +1,32 @@ +#!/usr/bin/env php +loadYaml('mrreview')->gen('10'); +zenData('user')->gen('5'); + +/** + +title=测试 myModel->getReviewingStories(); +timeout=0 +cid=1 + +- 测试获取用户 account 排序 id_desc 的合并请求。 + - 第0条的title属性 @Test MR9 + - 第0条的id属性 @9 +- 测试获取用户 account 排序 id_asc 的合并请求。 + - 第0条的title属性 @Test MR3 + - 第0条的id属性 @3 +- 测试获取没有审批用户的数据。 @0 +*/ + +$account = array('admin', 'user1'); +$orderBy = array('id_desc', 'id_asc'); +$checkExist = array(false, true); + +$my = new myTest(); +r($my->getReviewingMRsTest($account[0], $orderBy[0])) && p('9:title,id') && e('Test MR9,9'); // 测试获取用户 account 排序 id_desc 的合并请求。 +r($my->getReviewingMRsTest($account[0], $orderBy[1])) && p('3:title,id') && e('Test MR3,3'); // 测试获取用户 account 排序 id_asc 的合并请求。 +r($my->getReviewingMRsTest($account[1], $orderBy[0])) && p() && e('0'); // 测试获取没有审批用户的数据。 diff --git a/module/my/test/model/getreviewingtypelist.php b/module/my/test/model/getreviewingtypelist.php index ef800aaa1e..b4250eb632 100755 --- a/module/my/test/model/getreviewingtypelist.php +++ b/module/my/test/model/getreviewingtypelist.php @@ -10,6 +10,13 @@ zenData('case')->gen('20'); zenData('demand')->loadYaml('demand_reviewing')->gen('20'); zenData('demandreview')->gen('20'); zenData('user')->gen('10'); +zenData('userview')->gen('0'); +zenData('product')->gen('0'); +zenData('testcase')->gen('0'); +zenData('mr')->gen('0'); +zenData('requirement')->gen('0'); +zenData('workflow')->gen('0'); +zenData('action')->gen('0'); /** @@ -18,14 +25,10 @@ timeout=0 cid=1 - 测试获取用户 admin 的待评审类型。 @all,story,requirement,testcase - -- 测试获取用户 user1 的待评审类型。 @all,testcase - -- 测试获取用户 user2 的待评审类型。 @all,testcase - -- 测试获取用户 user3 的待评审类型。 @all,testcase - -- 测试获取用户 user4 的待评审类型。 @all,testcase +- 测试获取用户 user1 的待评审类型。 @all +- 测试获取用户 user2 的待评审类型。 @all +- 测试获取用户 user3 的待评审类型。 @all +- 测试获取用户 user4 的待评审类型。 @all */ @@ -34,10 +37,11 @@ $config->edition = 'open'; $my = new myTest(); +su('admin'); $account = array('admin', 'user1', 'user2', 'user3', 'user4'); r($my->getReviewingTypeListTest($account[0])) && p() && e('all,story,requirement,testcase'); // 测试获取用户 admin 的待评审类型。 -r($my->getReviewingTypeListTest($account[1])) && p() && e('all,testcase'); // 测试获取用户 user1 的待评审类型。 -r($my->getReviewingTypeListTest($account[2])) && p() && e('all,testcase'); // 测试获取用户 user2 的待评审类型。 -r($my->getReviewingTypeListTest($account[3])) && p() && e('all,testcase'); // 测试获取用户 user3 的待评审类型。 -r($my->getReviewingTypeListTest($account[4])) && p() && e('all,testcase'); // 测试获取用户 user4 的待评审类型。 +r($my->getReviewingTypeListTest($account[1])) && p() && e('all'); // 测试获取用户 user1 的待评审类型。 +r($my->getReviewingTypeListTest($account[2])) && p() && e('all'); // 测试获取用户 user2 的待评审类型。 +r($my->getReviewingTypeListTest($account[3])) && p() && e('all'); // 测试获取用户 user3 的待评审类型。 +r($my->getReviewingTypeListTest($account[4])) && p() && e('all'); // 测试获取用户 user4 的待评审类型。 diff --git a/module/my/test/yaml/mrreview.yaml b/module/my/test/yaml/mrreview.yaml new file mode 100644 index 0000000000..1d35d87eb8 --- /dev/null +++ b/module/my/test/yaml/mrreview.yaml @@ -0,0 +1,40 @@ +title: zt_mr +author: Yang LI +version: "1.0" +fields: + - field: id + range: 1-10 + - field: hostID + range: 1 + - field: sourceProject + range: 42 + - field: sourceBranch + prefix: "branch-" + range: 1-10 + - field: targetProject + range: 42 + - field: targetBranch + range: master + - field: mriid + range: 1-10 + - field: title + prefix: "Test MR" + range: 1-10 + - field: status + range: opened,closed + - field: mergeStatus + range: can_be_merged + - field: approvalStatus + range: approved,rejected,[] + - field: repoID + range: 1 + - field: jobID + range: 0 + - field: compileID + range: 0 + - field: createdBy + range: admin + - field: assignee + range: admin,user1 + - field: deleted + range: 0 diff --git a/module/my/ui/audit.html.php b/module/my/ui/audit.html.php index fe472e84da..34f8674b14 100644 --- a/module/my/ui/audit.html.php +++ b/module/my/ui/audit.html.php @@ -28,9 +28,14 @@ foreach(array_keys($lang->my->featureBar['audit']) as $type) $viewPrivs[$type] = $viewPriv; } } -$reviewPrivs['review'] = hasPriv('review', 'access'); -$viewPrivs['review'] = hasPriv('review', 'view'); -$viewPrivs['task'] = hasPriv('task', 'view'); +$reviewPrivs['review'] = hasPriv('review', 'access'); +$reviewPrivs['mr'] = hasPriv('mr', 'view'); +$reviewPrivs['pullreq'] = hasPriv('pullreq', 'view'); + +$viewPrivs['review'] = hasPriv('review', 'view'); +$viewPrivs['task'] = hasPriv('task', 'view'); +$viewPrivs['mr'] = hasPriv('mr', 'view'); +$viewPrivs['pullreq'] = hasPriv('pullreq', 'view'); jsVar('reviewLink', createLink('{module}', 'review', 'id={id}')); jsVar('flowReviewLink', createLink('{module}', 'approvalreview', 'id={id}')); @@ -103,6 +108,12 @@ foreach($reviewList as $review) if(isset($flows[$review->type]) && $rawMethod != 'audit') $statusList = $lang->approval->statusList; } + if($type == 'mr') + { + $this->app->loadLang('mr'); + $statusList = $lang->mr->approvalStatusList; + } + $review->type = $typeName; $review->status = zget($statusList, $review->status, ''); diff --git a/module/personnel/model.php b/module/personnel/model.php index f82c7c7790..d3057d32bb 100644 --- a/module/personnel/model.php +++ b/module/personnel/model.php @@ -529,7 +529,7 @@ class personnelModel extends model * @access public * @return array */ - public function getWhitelist(int $objectID = 0, string $objectType = '', string $orderBy = 'id_desc', object $pager = null): array + public function getWhitelist(int $objectID = 0, string $objectType = '', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t1.id,t1.account,t2.realname,t2.dept,t2.role,t2.phone,t2.qq,t2.weixin,t2.email')->from(TABLE_ACL)->alias('t1') ->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account') @@ -823,7 +823,7 @@ class personnelModel extends model * @access public * @return string */ - public function createMemberLink(object $dept = null, int $programID = 0): string + public function createMemberLink(?object $dept = null, int $programID = 0): string { return helper::createLink('personnel', 'accessible', "program={$programID}&deptID={$dept->id}"); } diff --git a/module/personnel/ui/addwhitelist.html.php b/module/personnel/ui/addwhitelist.html.php index a4652c7f16..301a75c726 100644 --- a/module/personnel/ui/addwhitelist.html.php +++ b/module/personnel/ui/addwhitelist.html.php @@ -28,6 +28,7 @@ foreach(array_keys($appendUsers) as $account) $userItems = array(); foreach($members as $member) { + unset($member->id); if(!empty($member->isAppend)) continue; $userItems[] = array('value' => $member->account, 'text' => $member->realname); @@ -49,6 +50,7 @@ formBatchPanel set::onRenderRow(jsRaw('renderRowData')), set::data($members), set::headingClass('justify-start'), + set::maxRows(count($members) + 5), on::change('[name^=account]', 'changeUsers'), on::click('.form-batch-row-actions button', 'changeUsers'), to::heading diff --git a/module/pivot/tao.php b/module/pivot/tao.php index 50dbd58720..5173385469 100644 --- a/module/pivot/tao.php +++ b/module/pivot/tao.php @@ -11,7 +11,7 @@ class pivotTao extends pivotModel * @access public * @return object|bool */ - protected function fetchPivot(int $id, string|null $version = null): object|bool + protected function fetchPivot(int $id, ?string $version = null): object|bool { $pivot = $this->dao->select('*')->from(TABLE_PIVOT)->where('id')->eq($id)->andWhere('deleted')->eq('0')->fetch(); if(!$pivot) return false; diff --git a/module/pivot/zen.php b/module/pivot/zen.php index a57be88353..56c027a39c 100644 --- a/module/pivot/zen.php +++ b/module/pivot/zen.php @@ -192,7 +192,7 @@ class pivotZen extends pivot * @access public * @return void */ - public function show(int $groupID, int $pivotID, string $mark = '', string|null $version = null): void + public function show(int $groupID, int $pivotID, string $mark = '', ?string $version = null): void { $this->pivot->checkAccess($pivotID, 'preview'); diff --git a/module/product/control.php b/module/product/control.php index 083e0d8ee9..d2ce4f6684 100755 --- a/module/product/control.php +++ b/module/product/control.php @@ -839,7 +839,11 @@ class product extends control $rawModule = $this->app->rawModule; if($browseType == 'bysearch' && isset($_SESSION[$rawModule . 'TrackQuery'])) { - if($rawModule == 'product') $this->session->set('storyQuery', $_SESSION[$rawModule . 'TrackQuery']); + if($rawModule == 'product') + { + $queryVar = in_array($storyType, array('requirement', 'epic')) ? "{$storyType}Query" : 'storyQuery'; + $this->session->set($queryVar, $_SESSION[$rawModule . 'TrackQuery']); + } if($rawModule == 'projectstory') $this->session->set('projectstoryQuery', $_SESSION[$rawModule . 'TrackQuery']); } diff --git a/module/product/model.php b/module/product/model.php index fc65cee63c..c0403ae487 100755 --- a/module/product/model.php +++ b/module/product/model.php @@ -651,7 +651,7 @@ class productModel extends model * @access public * @return array */ - public function getStories(int|array $productID, string $branch, string $browseType, int $queryID, int $moduleID, string $type = 'story', string $sort = 'id_desc', object|null$pager = null): array + public function getStories(int|array $productID, string $branch, string $browseType, int $queryID, int $moduleID, string $type = 'story', string $sort = 'id_desc', ?object $pager = null): array { if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getStories(); @@ -909,7 +909,7 @@ class productModel extends model * @access public * @return array */ - public function getProjectListByProduct(int $productID, string $browseType = 'all', string $branch = '0', bool $involved = false, string $orderBy = 'order_desc', object|null $pager = null): array + public function getProjectListByProduct(int $productID, string $browseType = 'all', string $branch = '0', bool $involved = false, string $orderBy = 'order_desc', ?object $pager = null): array { $branch = $branch ? $branch : '0'; if(!$involved) $projectList = $this->productTao->fetchAllProductProjects($productID, $browseType, $branch, $orderBy, $pager); @@ -939,7 +939,7 @@ class productModel extends model * @access public * @return int[] */ - public function getProjectStatsByProduct(int $productID, string $browseType = 'all', string $branch = '0', bool $involved = false, string $orderBy = 'order_desc', object|null $pager = null): array + public function getProjectStatsByProduct(int $productID, string $browseType = 'all', string $branch = '0', bool $involved = false, string $orderBy = 'order_desc', ?object $pager = null): array { $projects = $this->getProjectListByProduct($productID, $browseType, $branch, $involved, $orderBy, $pager); if(empty($projects)) return array(); @@ -1103,7 +1103,7 @@ class productModel extends model * @access public * @return array */ - public function getStats(array $productIdList, string $orderBy = 'order_asc', object|null $pager = null, string $storyType = 'story', int $programID = 0): array + public function getStats(array $productIdList, string $orderBy = 'order_asc', ?object $pager = null, string $storyType = 'story', int $programID = 0): array { /* Call the getProductStats method of the tutorial module if you are in tutorial mode.*/ if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getProductStats(); @@ -1673,7 +1673,7 @@ class productModel extends model * @access public * @return array */ - public function getStatsProducts(array $productIdList, bool $appendProgram, string $orderBy, object|null $pager = null): array + public function getStatsProducts(array $productIdList, bool $appendProgram, string $orderBy, ?object $pager = null): array { if($orderBy == 'program_asc') { diff --git a/module/product/tao.php b/module/product/tao.php index 24560bb5a3..850778fc90 100644 --- a/module/product/tao.php +++ b/module/product/tao.php @@ -82,7 +82,7 @@ class productTao extends productModel * @access protected * @return array */ - protected function fetchAllProductProjects(int $productID, string $browseType = 'all', string $branch = 'all', string $orderBy = 'order_desc', object|null $pager = null): array + protected function fetchAllProductProjects(int $productID, string $browseType = 'all', string $branch = 'all', string $orderBy = 'order_desc', ?object $pager = null): array { return $this->dao->select('DISTINCT t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') @@ -110,7 +110,7 @@ class productTao extends productModel * @access protected * @return array */ - protected function fetchInvolvedProductProjects(int $productID, string $browseType = 'all', string $branch = 'all', string $orderBy = 'order_desc', object|null $pager = null): array + protected function fetchInvolvedProductProjects(int $productID, string $browseType = 'all', string $branch = 'all', string $orderBy = 'order_desc', ?object $pager = null): array { return $this->dao->select('DISTINCT t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') diff --git a/module/product/test/lib/editproduct.ui.class.php b/module/product/test/lib/editproduct.ui.class.php index 02121740e0..60182e37d0 100644 --- a/module/product/test/lib/editproduct.ui.class.php +++ b/module/product/test/lib/editproduct.ui.class.php @@ -15,7 +15,7 @@ class editProductTester extends tester $form->dom->editBtn->click(); if(isset($product->name)) $form->dom->name->setValue($product->name); $form->dom->btn($this->lang->save)->click(); - $form->wait(1); + $form->wait(2); if($this->response('method') != 'view') { if($this->checkFormTips('product')) return $this->success('编辑产品表单提示信息正确'); diff --git a/module/product/test/ui/checkkanbandata.php b/module/product/test/ui/checkkanbandata.php index 49c0d9045e..02f8bc0b04 100755 --- a/module/product/test/ui/checkkanbandata.php +++ b/module/product/test/ui/checkkanbandata.php @@ -74,7 +74,7 @@ $release->gen(5); $tester = new kanbanTester(); $tester->login(); -r($tester->checkKanbanData('plan', '3')) && p('message,status') && e('未过期计划数正确,SUCCESS');//检查未过期计划数 +r($tester->checkKanbanData('plan', '4')) && p('message,status') && e('未过期计划数正确,SUCCESS');//检查未过期计划数 r($tester->checkKanbanData('project', '2')) && p('message,status') && e('进行中的项目数正确,SUCCESS');//检查进行中的项目数 r($tester->checkKanbanData('execution', '1')) && p('message,status') && e('进行中的执行数正确,SUCCESS');//检查进行中的执行数 r($tester->checkKanbanData('release', '4')) && p('message,status') && e('正常发布数正确,SUCCESS');//检查正常发布数 diff --git a/module/product/zen.php b/module/product/zen.php index 053c69dfb4..f45330a4e7 100644 --- a/module/product/zen.php +++ b/module/product/zen.php @@ -412,7 +412,7 @@ class productZen extends product * @access protected * @return array */ - protected function getExportData(int $programID, string $browseType, string $orderBy, int $param = 0, object|null $pager = null): array + protected function getExportData(int $programID, string $browseType, string $orderBy, int $param = 0, ?object $pager = null): array { $users = $this->user->getPairs('noletter'); $products = strtolower($browseType) == 'bysearch' ? $this->product->getListBySearch((int)$param) : $this->product->getList($programID, $browseType); @@ -532,7 +532,7 @@ class productZen extends product $unauthPrograms = $this->getUnauthProgramsOfProducts($products, $authPrograms); /* Get product lines by programs.*/ - $programIdList = array_merge(array_keys($authPrograms), array_keys($unauthPrograms)); + $programIdList = array_merge(array(0 => ''), array_keys($authPrograms), array_keys($unauthPrograms)); list(, $lines) = $this->getProductLines($programIdList); } @@ -916,7 +916,7 @@ class productZen extends product * @access protected * @return array */ - public function getStories(int $projectID, int $productID, string $branchID = '', int $moduleID = 0, int $param = 0, string $storyType = 'all', string $browseType = 'allstory', string $orderBy = 'id_desc', object $pager = null): array + public function getStories(int $projectID, int $productID, string $branchID = '', int $moduleID = 0, int $param = 0, string $storyType = 'all', string $browseType = 'allstory', string $orderBy = 'id_desc', ?object $pager = null): array { /* Append id for second sort. */ $sort = common::appendOrder($orderBy); @@ -956,7 +956,7 @@ class productZen extends product * @access public * @return array */ - public function getStoriesByStoryType(int $productID, string $branch = '', string $storyType = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function getStoriesByStoryType(int $productID, string $branch = '', string $storyType = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { /* Append id for second sort. */ $sort = common::appendOrder($orderBy); @@ -1549,7 +1549,8 @@ class productZen extends product if($storyType == 'requirement' || $storyType == 'story') unset($listFields['requirement']); if($storyType == 'story') unset($listFields['story']); - $showFields = !isset($this->config->product->trackFields->{$storyType}) ? array_keys($listFields) : explode(',', $this->config->product->trackFields->{$storyType}); + $showFields = $this->loadModel(('setting'))->getItem("owner={$this->app->user->account}&module=product§ion=trackFields&key={$storyType}"); + $showFields = empty($showFields) ? array_keys($listFields) : explode(',', $showFields); return array('list' => $listFields, 'show' => array_merge(array($storyType), $showFields)); } diff --git a/module/productplan/model.php b/module/productplan/model.php index 9b4f0f84bc..cd98b7b891 100644 --- a/module/productplan/model.php +++ b/module/productplan/model.php @@ -102,7 +102,7 @@ class productplanModel extends model * @access public * @return array */ - public function getList(int $productID = 0, string $branch = '', string $browseType = 'undone', object|null $pager = null, string $orderBy = 'begin_desc', string $param = '', int $queryID = 0): array + public function getList(int $productID = 0, string $branch = '', string $browseType = 'undone', ?object $pager = null, string $orderBy = 'begin_desc', string $param = '', int $queryID = 0): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getPlans(); @@ -623,7 +623,7 @@ class productplanModel extends model * @access public * @return object */ - public function buildPlanByStatus(string $status, string $closedReason = '', object $plan = null): object + public function buildPlanByStatus(string $status, string $closedReason = '', ?object $plan = null): object { $now = helper::now(); diff --git a/module/productplan/tao.php b/module/productplan/tao.php index d48f785fc1..919412b93b 100644 --- a/module/productplan/tao.php +++ b/module/productplan/tao.php @@ -24,7 +24,7 @@ class productplanTao extends productplanModel * @access protected * @return array */ - protected function getPlanList(array $productIdList, string $branch = '', string $browseType = '', string $param = '', string $orderBy = '', object $pager = null): array + protected function getPlanList(array $productIdList, string $branch = '', string $browseType = '', string $param = '', string $orderBy = '', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_PRODUCTPLAN) ->where('deleted')->eq(0) @@ -48,7 +48,7 @@ class productplanTao extends productplanModel * @access protected * @return array */ - protected function getPlanProjects(array $planIdList, int|null $productID = null): array + protected function getPlanProjects(array $planIdList, ?int $productID = null): array { if(empty($planIdList)) return []; diff --git a/module/productplan/ui/linkstory.html.php b/module/productplan/ui/linkstory.html.php index 11d02b377d..60e80bd84d 100644 --- a/module/productplan/ui/linkstory.html.php +++ b/module/productplan/ui/linkstory.html.php @@ -58,7 +58,7 @@ dtable 'zui-on-click' => 'handleLinkObjectClick($target)' )) )), - set::footer(array('checkbox', 'toolbar', array('html' => html::a(inlink('view', "planID=$plan->id&type=story&orderBy=$orderBy"), $lang->goback, '', "class='btn size-sm'")), 'flex', 'pager')), + set::footer(array('checkbox', 'toolbar', array('html' => html::a(inlink('view', "planID=$plan->id&type=story"), $lang->goback, '', "class='btn size-sm'")), 'flex', 'pager')), set::footPager(usePager()) ); diff --git a/module/program/model.php b/module/program/model.php index edd464042a..5dff361da0 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -189,7 +189,7 @@ class programModel extends model * @access public * @return array */ - public function getList(string $status = 'all', string $orderBy = 'id_asc', string $type = '', array $topIdList = array(), object $pager = null): array + public function getList(string $status = 'all', string $orderBy = 'id_asc', string $type = '', array $topIdList = array(), ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getPrograms(); @@ -245,7 +245,7 @@ class programModel extends model * @access public * @return array */ - public function getListBySearch(string $orderBy = 'id_asc', int $queryID = 0, bool $hasProject = false, object|null $pager = null): array + public function getListBySearch(string $orderBy = 'id_asc', int $queryID = 0, bool $hasProject = false, ?object $pager = null): array { if($this->session->programQuery == false) $this->session->set('programQuery', ' 1 = 1'); if($queryID) @@ -500,7 +500,7 @@ class programModel extends model * @access public * @return object[] */ - public function getProjectList(int $programID = 0, string $browseType = 'all', int $queryID = 0, string $orderBy = 'id_desc', string $programTitle = '', bool $queryAll = false, object $pager = null): array + public function getProjectList(int $programID = 0, string $browseType = 'all', int $queryID = 0, string $orderBy = 'id_desc', string $programTitle = '', bool $queryAll = false, ?object $pager = null): array { $path = ''; if($programID) $path = $this->getByID($programID)->path; @@ -574,7 +574,7 @@ class programModel extends model * @access public * @return array */ - public function getStakeholders(int $programID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getStakeholders(int $programID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t2.account,t2.realname,t2.role,t2.qq,t2.mobile,t2.phone,t2.weixin,t2.email,t1.id,t1.type,t1.from,t1.key')->from(TABLE_STAKEHOLDER)->alias('t1') ->leftJoin(TABLE_USER)->alias('t2')->on('t1.user=t2.account') @@ -1127,7 +1127,7 @@ class programModel extends model * @access public * @return array */ - public function getProjectStats(int $programID = 0, string $browseType = 'undone', int $queryID = 0, string $orderBy = 'id_desc', string $programTitle = '', bool $queryAll = false, object|null $pager = null): array + public function getProjectStats(int $programID = 0, string $browseType = 'undone', int $queryID = 0, string $orderBy = 'id_desc', string $programTitle = '', bool $queryAll = false, ?object $pager = null): array { if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getProjectStats($browseType); diff --git a/module/program/zen.php b/module/program/zen.php index bbd484805f..9d75b17226 100644 --- a/module/program/zen.php +++ b/module/program/zen.php @@ -115,7 +115,7 @@ class programZen extends program * @access protected * @return array */ - protected function getProgramsByType(string $status, string $orderBy, int $param = 0, object|null $pager = null): array + protected function getProgramsByType(string $status, string $orderBy, int $param = 0, ?object $pager = null): array { $status = strtolower($status); $this->view->summary = ''; diff --git a/module/programplan/model.php b/module/programplan/model.php index 8c1d22bfb6..63c9f7dc94 100755 --- a/module/programplan/model.php +++ b/module/programplan/model.php @@ -507,7 +507,7 @@ class programplanModel extends model * @access public * @return bool */ - public function update(int $planID = 0, int $projectID = 0, object|null $plan = null): bool + public function update(int $planID = 0, int $projectID = 0, ?object $plan = null): bool { if(empty($plan)) return false; @@ -882,7 +882,7 @@ class programplanModel extends model * @access public * @return array */ - public function getGanttTasks(int $projectID, array $planIdList, string $browseType, int $queryID, object $pager = null) + public function getGanttTasks(int $projectID, array $planIdList, string $browseType, int $queryID, ?object $pager = null) { $tasks = array(); if($browseType == 'bysearch') @@ -945,7 +945,7 @@ class programplanModel extends model /* Story changed or not. */ $task->storyVersion = zget($storyVersionPairs, $task->id, $task->storyVersion); $task->needConfirm = false; - if(!empty($task->storyStatus) && $task->storyStatus == 'active' && $task->latestStoryVersion > $task->storyVersion) + if(!empty($task->storyStatus) && $task->storyStatus == 'active' && !in_array($task->status, array('cancel', 'closed')) && $task->latestStoryVersion > $task->storyVersion) { $task->needConfirm = true; $task->status = 'changed'; diff --git a/module/programplan/tao.php b/module/programplan/tao.php index 2fa7189ebc..37a69f87f7 100644 --- a/module/programplan/tao.php +++ b/module/programplan/tao.php @@ -875,7 +875,7 @@ class programplanTao extends programplanModel * @access protected * @return array */ - protected function getTaskDateLimit(object $task, object|null $execution = null, object|null $parent = null): array + protected function getTaskDateLimit(object $task, ?object $execution = null, ?object $parent = null): array { $estStart = helper::isZeroDate($task->estStarted) ? '' : $task->estStarted; $estEnd = helper::isZeroDate($task->deadline) ? '' : $task->deadline; diff --git a/module/programplan/ui/edit.html.php b/module/programplan/ui/edit.html.php index aef5381878..0feb463d57 100644 --- a/module/programplan/ui/edit.html.php +++ b/module/programplan/ui/edit.html.php @@ -103,7 +103,16 @@ formPanel set::items($typeList), set::value($plan->attribute), set::required(true) - ) : zget($typeList, $plan->attribute), + ) : div + ( + zget($typeList, $plan->attribute), + input + ( + set::type('hidden'), + set::name('attribute'), + set::value($plan->attribute) + ) + ) ) ), formGroup diff --git a/module/programplan/zen.php b/module/programplan/zen.php index d4572c0bb6..169c9ede7e 100644 --- a/module/programplan/zen.php +++ b/module/programplan/zen.php @@ -208,7 +208,7 @@ class programplanZen extends programplan * @access protected * @return object|false */ - protected function prepareEditPlan(int $planID, int $projectID, object $plan, object|null $parentStage = null): object|false + protected function prepareEditPlan(int $planID, int $projectID, object $plan, ?object $parentStage = null): object|false { if($plan->end < $plan->begin) dao::$errors['end'] = $this->lang->programplan->error->planFinishSmall; diff --git a/module/project/js/testtask.ui.js b/module/project/js/testtask.ui.js index ec04a4e373..2b0c73611d 100644 --- a/module/project/js/testtask.ui.js +++ b/module/project/js/testtask.ui.js @@ -65,6 +65,10 @@ window.onRenderCell = function(result, {row, col}) { result.push({outer: false, style: {alignItems: 'center', justifyContent: 'start'}}) } + if(col.name == 'status' && result) + { + result[0] = {html: `` + row.data.status + ""}; + } return result; } diff --git a/module/project/model.php b/module/project/model.php index aba9b20e91..ab66ee6335 100755 --- a/module/project/model.php +++ b/module/project/model.php @@ -189,6 +189,9 @@ class projectModel extends model $action = strtolower($action); + if($action == 'publishtemplate') return $project->status == 'wait' || $project->status == 'closed'; + if($action == 'disabletemplate') return $project->status == 'doing'; + if($action == 'close') return $project->status != 'closed'; if($action == 'group') return $project->model != 'kanban'; if($action == 'start') return $project->status == 'wait' || $project->status == 'suspended'; @@ -221,7 +224,7 @@ class projectModel extends model } /* 项目模板不校验访问权限。 */ - $isTpl = $this->dao->select('isTpl')->from(TABLE_PROJECT)->where('id')->eq($projectID)->andWhere('id')->in($this->app->user->view->projects)->fetch('isTpl'); + $isTpl = $this->dao->select('isTpl')->from(TABLE_PROJECT)->where('id')->eq($projectID)->fetch('isTpl'); if(empty($isTpl) && !isset($projects[$projectID])) { if($projectID && strpos(",{$this->app->user->view->projects},", ",{$projectID},") === false && !empty($projects)) @@ -333,7 +336,7 @@ class projectModel extends model * @access public * @return array */ - public function getList(string $status = 'undone', string $orderBy = 'order_desc', bool $involved = false, object|null $pager = null): array + public function getList(string $status = 'undone', string $orderBy = 'order_desc', bool $involved = false, ?object $pager = null): array { /* Get project list by status. */ $projects = $this->projectTao->fetchProjectList($status, $orderBy, $involved, $pager); @@ -1434,18 +1437,41 @@ class projectModel extends model * Update product stage by project. * * @param int $projectID - * @param string $stageBy * @param object $postProductData * @access public * @return bool */ - public function updateProductStage(int $projectID, string $stageBy, object $postProductData): bool + public function updateProductStage(int $projectID, ?object $postProductData = null): bool { - /* 如果项目的阶段为由按产品创建,则更新此项目下每个产品。*/ - if($stageBy == 'project') return true; + if(empty($postProductData)) return false; - $executions = $this->loadModel('execution')->getPairs($projectID); - foreach(array_keys($executions) as $executionID) $this->execution->updateProducts($executionID, $postProductData); // 更新项目下所有产品的阶段。 + $stageParis = $this->loadModel('execution')->getPairs($projectID); + $stageProducts = $this->dao->select('project, product')->from(TABLE_PROJECTPRODUCT) + ->where('project')->in(array_keys($stageParis)) + ->fetchPairs('project', 'product'); + + $products = zget($postProductData, 'products', array()); + $branches = zget($postProductData, 'branch', array(0)); + $plans = zget($postProductData, 'plans', array()); + + $productBranches = array(); + foreach($products as $i => $productID) $productBranches[$productID] = zget($branches, $i, array(0)); + + foreach($stageProducts as $stageID => $productID) + { + foreach($productBranches[$productID] as $branchID) + { + $data = new stdclass(); + $data->project = (int)$stageID; + $data->product = (int)$productID; + $data->branch = (int)$branchID; + $data->plan = isset($plans[$productID]) ? implode(',', $plans[$productID]) : ''; + $data->plan = trim($data->plan, ','); + $data->plan = empty($data->plan) ? 0 : ",$data->plan,"; + + $this->dao->replace(TABLE_PROJECTPRODUCT)->data($data)->exec(); + } + } return !dao::isError(); } @@ -1460,7 +1486,7 @@ class projectModel extends model * @access public * @return array|false */ - public function update(object $project, object $oldProject, object $postProductData = null): array|false + public function update(object $project, object $oldProject, ?object $postProductData = null): array|false { /* 通过主键查老项目信息, 处理父节点和图片字段。*/ /* Fetch old project's info and dispose parent and file info. */ @@ -1489,7 +1515,7 @@ class projectModel extends model $this->updatePlans($projectID, (array)$this->post->plans); // 更新关联的计划列表。 if($oldProject->hasProduct > 0) $this->updateProducts($projectID, (array)$this->post->products, $postProductData); // 更新关联的产品列表。 $this->updateTeamMembers($project, $oldProject, zget($_POST, 'teamMembers', array())); // 更新关联的用户信息。 - if(!empty((array)$postProductData) && in_array($oldProject->model, array('waterfall', 'waterfallplus'))) $this->updateProductStage($projectID, (string)$oldProject->stageBy, $postProductData); // 更新关联的所有产品的阶段。 + if($oldProject->stageBy == 'product' && in_array($oldProject->model, array('waterfall', 'waterfallplus'))) $this->updateProductStage($projectID, $postProductData); // 更新多套阶段 $this->file->updateObjectID((string)$this->post->uid, $projectID, 'project'); // 通过uid更新文件id。 diff --git a/module/project/test/lib/activeprojectlite.ui.class.php b/module/project/test/lib/activeprojectlite.ui.class.php new file mode 100644 index 0000000000..a0cd21ce7e --- /dev/null +++ b/module/project/test/lib/activeprojectlite.ui.class.php @@ -0,0 +1,43 @@ +loadPage('project', 'browse'); + $this->switchVision('lite'); + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $featureBar = (array)$this->lang->project->featureBar; + $featureBar['browse'] = (array)$featureBar['browse']; + $form->dom->btn($featureBar['browse']['more'])->click(); + $form->dom->closed->click(); + $form->wait(1); + $form->dom->activeBtn->click(); + $form->wait(1); + + $title = $form->dom->title->getText(); + $form->dom->activeProject->click(); + $form->wait(1); + + /* 点击进行中标签进入进行中列表,搜索激活的项目*/ + $featureBar = (array)$this->lang->project->featureBar; + $featureBar['browse'] = (array)$featureBar['browse']; + $form->dom->btn($featureBar['browse']['doing'])->click(); + $form->wait(1); + $form->dom->search(array("{$this->lang->project->name},=,{$title}")); + $form->wait(1); + + $featureBar['index'] = (array)$featureBar['index']; + if($featureBar['index']['doing'] != $form->dom->browseStatus->getText()) return $this->failed('激活项目失败'); + + return $this->success('激活项目成功'); + } + +} diff --git a/module/project/test/lib/batcheditproject.ui.class.php b/module/project/test/lib/batcheditproject.ui.class.php index 0ed97c4781..17850c5071 100644 --- a/module/project/test/lib/batcheditproject.ui.class.php +++ b/module/project/test/lib/batcheditproject.ui.class.php @@ -3,72 +3,84 @@ include dirname(__FILE__, 5) . '/test/lib/ui.php'; class batchEditProjectTester extends tester { /** - * Batch edit a project. - * - * @param array $project - * @access public - * @return object - */ - public function batchEditProject(array $project) - { - $form = $this->initForm('project', 'browse', '', 'appIframe-project'); - $form->dom->selectBtn->click(); - $form->dom->batchEditBtn->click(); - $firstID = $form->dom->id_static_0->getText(); //获取第一行的项目id - $beginInput = "begin[{$firstID}]"; - $endInput = "end[{$firstID}]"; - if(isset($project['name'])) $form->dom->name_0->setValue($project['name']); - if(isset($project['begin'])) $form->dom->$beginInput->datePicker($project['begin']); - if(isset($project['end'])) $form->dom->$endInput->datePicker($project['end']); - - $form->wait(1); - $form->dom->btn($this->lang->save)->click(); - $form->wait(1); - - return $this->checkBatchEdit($form, $firstID, $project); - } - - /** - * Check the result after batch edit the project. - * 批量编辑项目后检查结果。 + * 批量编辑项目时检查页面输入。 + * Check the page input when batch edit the project. * * @param array $project * @access public * @return object */ - public function checkBatchEdit(object $form, string $firstID, array $project) + public function checkInput($project = array()) { - if($this->response('method') != 'browse') - { - $firstBeginTip = "begin[{$firstID}]Tip"; - $firstEndTip = "end[{$firstID}]Tip"; - $firstNameTip = "name[{$firstID}]Tip"; - if($form->dom->$firstNameTip) + $form = $this->initForm('project', 'browse', array(), 'appIframe-project'); + $form->dom->selectAllBtn->click(); + $form->dom->batchEditBtn->click(); + $firstID = $form->dom->id_static_0->getText(); //获取第一行的ID + $firstBegin = "begin[{$firstID}]"; + $firstEnd = "end[{$firstID}]"; + $firstAcl = "acl[{$firstID}]"; + if(isset($project['name'])) $form->dom->name_0->setValue($project['name']); + if(isset($project['begin'])) $form->dom->$firstBegin->datePicker($project['begin']); + if(isset($project['end'])) $form->dom->$firstEnd->datePicker($project['end']); + if(isset($project['acl'])) $form->dom->$firstAcl->picker($project['acl']); + + $form->dom->btn($this->lang->save)->click(); + $form->wait(2); + return $this->checkResult($project, $firstID); + } + + /** + * 批量编辑项目后结果检查。 + * Check the result after batch edit the project. + * + * @param array $project + * @access public + * @return object + */ + public function checkResult($project = array(), $firstID) + { + /* 检查批量编辑页面提示信息 */ + $batchEditPage = $this->loadPage('project', 'batchEdit'); + $existName = '敏捷项目2'; + if($this->response('method') != 'view') + { $firstNameTipDom = "name[{$firstID}]Tip"; //第一行的名称提示信息 + /* 检查项目名称不能为空 */ + if($project['name'] == '') { - //检查项目名称不能为空 - $nameTipText = $form->dom->$firstNameTip->getText(); + $nameTipText = $batchEditPage->dom->$firstNameTipDom->getText(); $nameTip = sprintf($this->lang->error->notempty, $this->lang->project->name); - return ($nameTipText == $nameTip) ? $this->success('批量编辑项目表单页提示信息正确') : $this->failed('批量编辑项目表单页提示信息不正确'); + return ($nameTipText == $nameTip) ? $this->success('项目名称必填提示信息正确') : $this->failed('项目名称必填提示信息不正确'); } - if($form->dom->$firstBeginTip) + /* 检查项目名称唯一 */ + if($project['name'] == $existName) { - //检查计划开始不能为空 - $beginTipText = $form->dom->$firstBeginTip->getText(); - $beginTip = sprintf($this->lang->error->notempty, $this->lang->project->begin); - return ($beginTipText == $beginTip) ? $this->success('批量编辑项目表单页提示信息正确') : $this->failed('批量编辑项目表单页提示信息不正确'); + $nameTipText = $batchEditPage->dom->alertModal('text'); + $nameTip = 'ID' . $firstID . sprintf($this->lang->error->repeat, $this->lang->project->name, $existName); + return ($nameTipText == $nameTip) ? $this->success('项目名称唯一提示信息正确') : $this->failed('项目名称唯一提示信息不正确'); } - if($form->dom->$firstEndTip) + /* 检查计划完成日期不能大于计划开始日期 */ + if($project['begin'] > $project['end']) { - //检查计划完成不能为空 - $endTipText = $form->dom->$firstEndTip->getText(); - $endTip = sprintf($this->lang->project->copyProject->endTips,''); - return ($endTipText == $endTip) ? $this->success('批量编辑项目表单页提示信息正确') : $this->failed('批量编辑项目表单页提示信息不正确'); + $endTipText = $batchEditPage->dom->alertModal('text'); + $endTip = 'ID' . $firstID . sprintf($this->lang->error->gt, $this->lang->project->end, $project['begin']); + return ($endTipText == $endTip) ? $this->success('计划完成校验提示信息正确') : $this->failed('计划完成校验提示信息不正确'); } } + /* 跳转到项目列表页面,按照项目名称进行搜索 */ $browsePage = $this->loadPage('project', 'browse'); - $browsePage->wait(1); - if($browsePage->dom->projectName->getText() != $project['name']) return $this->failed('名称错误'); - return $this->success(); + $browsePage->dom->search($searchList = array("项目名称,包含,{$project['name']}")); + $browsePage->wait(2); + $browsePage->dom->projectName->click(); + $browsePage->wait(2); + /* 进入项目概况页面 */ + $browsePage->dom->settings->click(); + $viewPage = $this->loadPage('project', 'view'); + $viewPage->wait(2); + + /* 断言检查字段信息是否正确 */ + if($viewPage->dom->projectName->getText() != $project['name']) return $this->failed('名称错误'); + if($viewPage->dom->acl->getText() != $this->lang->project->shortAclList->open) return $this->failed('权限错误'); + return $this->success('批量编辑项目成功'); } } diff --git a/module/project/test/lib/browsetablite.ui.class.php b/module/project/test/lib/browsetablite.ui.class.php new file mode 100755 index 0000000000..6d4ad17d9f --- /dev/null +++ b/module/project/test/lib/browsetablite.ui.class.php @@ -0,0 +1,38 @@ +loadPage('project', 'browse'); + $this->switchVision('lite'); + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $form->wait(2); + $status = [ + 'all' => '全部', + 'undone' => '未完成', + 'wait' => '未开始', + 'doing' => '进行中', + 'suspended' => '已挂起', + 'delayed' => '已延期', + 'closed' => '已关闭', + ]; + $tabs = array('all', 'undone', 'wait', 'doing'); + if(!in_array($tab, $tabs)) $form->dom->moreTab->click(); + $form->wait(2); + $form->dom->$tab->click(); + $form->wait(2); + /*添加断言,判断标签下条数是否符合预期*/ + if($tab == 'delayed' && $form->dom->delayedNum->getText() == $expectNum) return $this->success($status[$tab] . '标签下条数显示正确'); + if($tab != 'delayed' && $form->dom->num->getText() == $expectNum) return $this->success($status[$tab] . '标签下条数显示正确'); + return $this->failed($status[$tab] . '标签下条数显示不正确'); + } +} diff --git a/module/project/test/lib/closeprojectlite.ui.class.php b/module/project/test/lib/closeprojectlite.ui.class.php new file mode 100755 index 0000000000..1441168495 --- /dev/null +++ b/module/project/test/lib/closeprojectlite.ui.class.php @@ -0,0 +1,39 @@ +loadPage('project', 'browse'); + $this->switchVision('lite'); + $this->page->wait(3); + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $form->wait(5); + $featureBar = (array)$this->lang->project->featureBar; + $featureBar['browse'] = (array)$featureBar['browse']; + $form->dom->btn($featureBar['browse']['doing'])->click(); + $form->wait(2); + $form->dom->closeBtn->click(); + $title = $form->dom->title->getText(); + $form->wait(2); + + $form->dom->closeProject->click(); + $form->wait(2); + + /* 点击已关闭标签进入已关闭列表,搜索关闭的项目*/ + $form->dom->search(array("{$this->lang->project->name},=,{$title}")); + $form->wait(4); + + $featureBar['index'] = (array)$featureBar['index']; + if($featureBar['index']['closed'] != $form->dom->browseStatus->getText()) return $this->failed('关闭项目失败'); + + return $this->success('关闭项目成功'); + } +} diff --git a/module/project/test/lib/createwaterfall.ui.class.php b/module/project/test/lib/createwaterfall.ui.class.php index d068a7f6fa..f8a8dd5165 100644 --- a/module/project/test/lib/createwaterfall.ui.class.php +++ b/module/project/test/lib/createwaterfall.ui.class.php @@ -15,9 +15,9 @@ class createWaterfallTester extends tester if(isset($waterfall['name'])) $form->dom->name->setValue($waterfall['name']); if(isset($waterfall['end'])) $form->dom->end->datePicker($waterfall['end']); if(isset($waterfall['PM'])) $form->dom->PM->picker($waterfall['PM']); - $form->wait(1); + $form->wait(2); $form->dom->btn($this->lang->save)->click(); - $form->wait(1); + $form->wait(5); return $this->response(); } @@ -57,9 +57,10 @@ class createWaterfallTester extends tester /* 跳转到项目设置页面,点击设置菜单。 */ $programplanPage = $this->loadPage('programplan', 'create'); + $programplanPage->wait(4); $programplanPage->dom->settings->click(); - - $viewPage = $this->loadPage('project', 'view'); + $viewPage = $this->loadPage('project', 'view'); + $viewPage->wait(4); $categoryLang = (array)$this->lang->project->projectTypeList; if($viewPage->dom->projectName->getText() != $waterfall['name']) return $this->failed('名称错误'); if($viewPage->dom->category->getText() != $categoryLang[$waterfall['type']]) return $this->failed('类型错误'); @@ -76,6 +77,6 @@ class createWaterfallTester extends tester if(isset($waterfall['end']) && $viewPage->dom->waterfallNoProductEnd->getText() != $waterfall['end']) return $this->failed('计划完成日期错误'); } - return $this->success(); + return $this->success('创建瀑布项目成功'); } } diff --git a/module/project/test/lib/editprojectlite.ui.class.php b/module/project/test/lib/editprojectlite.ui.class.php new file mode 100644 index 0000000000..053c988046 --- /dev/null +++ b/module/project/test/lib/editprojectlite.ui.class.php @@ -0,0 +1,91 @@ +loadPage('project', 'browse'); + $this->switchVision('lite'); + $form = $this->initForm('project', 'edit', array('projecID' => 1), 'appIframe-project'); + if(isset($project['name'])) $form->dom->name->setValue($project['name']); + if(isset($project['begin'])) $form->dom->begin->datePicker($project['begin']); + if(isset($project['end'])) $form->dom->end->datePicker($project['end']); + if(isset($project['PM'])) $form->dom->PM->picker($project['PM']); + + $form->dom->btn($this->lang->save)->click(); + $form->wait(2); + return $this->checkResult($project); + } + + /** + * 编辑项目后结果检查。 + * Check the result after editing the project. + * + * @param array $project + * @access public + * @return object + */ + public function checkResult($project = array()) + { + /* 检查编辑页面提示信息 */ + $form = $this->loadPage('project', 'edit'); + if($this->response('method') != 'view') + { + /* 检查项目名称不能为空 */ + if($form->dom->nameTip && $project['name'] == '') + { + $nameTipText = $form->dom->nameTip->getText(); + $nameTip = sprintf($this->lang->error->notempty, $this->lang->project->name); + return ($nameTipText == $nameTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + /* 检查项目名称唯一 */ + if($form->dom->nameTip && $project['name'] != '') + { + $existName = '运营界面项目2'; + $nameTipText = $form->dom->nameTip->getText(); + $nameTip = sprintf($this->lang->error->unique, $this->lang->project->name, $existName); + return ($nameTipText == $nameTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + if($form->dom->endTip) + { + /* 检查结束日期不能为空 */ + if($project['end'] == '') + { + $endTipText = $form->dom->endTip->getText(); + $endTip = sprintf($this->lang->copyProject->endTip, ''); + return ($endTipText == $endTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + /* 检查结束日期不能小于开始日期 */ + if($project['begin'] > $project['end']) + { + $endTipText = $form->dom->endTip->getText(); + $endTip = sprintf($this->lang->error->gt, $this->lang->project->end, $project['begin']); + return ($endTipText == $endTip) ? $this->success('编辑项目表单页提示信息正确') : $this->failed('编辑项目表单页提示信息不正确'); + } + } + } + + /* 跳转到项目列表页面,按照项目名称进行搜索 */ + $browsePage = $this->initForm('project', 'browse'); + $browsePage->dom->search($searchList = array("项目名称,包含,{$project['name']}")); + $browsePage->wait(2); + $browsePage->dom->projectNameLite->click(); + /* 进入项目概况页面 */ + $browsePage->dom->settings->click(); + $viewPage = $this->loadPage('project', 'view'); + $viewPage->wait(2); + + /* 断言检查字段信息是否正确 */ + if($viewPage->dom->projectNameLite->getText() != $project['name']) return $this->failed('名称错误'); + if($viewPage->dom->aclLite->getText() != $this->lang->project->shortAclList->open) return $this->failed('权限错误'); + return $this->success('编辑项目成功'); + } +} diff --git a/module/project/test/lib/execution.ui.class.php b/module/project/test/lib/execution.ui.class.php new file mode 100644 index 0000000000..5d5d984bcb --- /dev/null +++ b/module/project/test/lib/execution.ui.class.php @@ -0,0 +1,33 @@ +initForm('project', 'execution', '', 'appIframe-project'); + $status = [ + 'all' => '全部', + 'undone' => '未完成', + 'wait' => '未开始', + 'doing' => '进行中', + 'suspended' => '已挂起', + 'delayed' => '已延期', + 'closed' => '已关闭', + ]; + $tabDom = $tab.'Tab'; + $form->dom->$tabDom->click(); + $form->wait(2); + + /*添加断言,判断标签下条数是否符合预期*/ + if($form->dom->numDom->getText() == $expectNum) return $this->success($status[$tab] . '标签下条数显示正确'); + return $this->failed($status[$tab] . '标签下条数显示不正确'); + } +} diff --git a/module/project/test/lib/executionforlite.ui.class.php b/module/project/test/lib/executionforlite.ui.class.php new file mode 100644 index 0000000000..9c3e62625a --- /dev/null +++ b/module/project/test/lib/executionforlite.ui.class.php @@ -0,0 +1,35 @@ +switchVision('lite'); + $form = $this->initForm('project', 'execution', '', 'appIframe-project'); + $status = [ + 'all' => '全部', + 'undone' => '未完成', + 'wait' => '未开始', + 'doing' => '进行中', + 'suspended' => '已挂起', + 'delayed' => '已延期', + 'closed' => '已关闭', + ]; + $tabDom = $tab.'Tab'; + $form->dom->$tabDom->click(); + $form->wait(5); + + /*添加断言,判断标签下条数是否符合预期*/ + $num = $form->dom->getElement("//*[@id='featureBar']/menu/li[$sort]/a/span[2]")->element->getText(); + if($num == $expectNum) return $this->success($status[$tab] . '标签下条数显示正确'); + return $this->failed($status[$tab] . '标签下条数显示不正确'); + } +} diff --git a/module/project/test/lib/managemembersforlite.ui.class.php b/module/project/test/lib/managemembersforlite.ui.class.php index 038828ee4f..562bc54df7 100644 --- a/module/project/test/lib/managemembersforlite.ui.class.php +++ b/module/project/test/lib/managemembersforlite.ui.class.php @@ -13,6 +13,7 @@ class manageMembersForLiteTester extends tester { $this->switchVision('lite'); $form = $this->initForm('project', 'manageMembers', array('projectID' => '1'), 'appIframe-project'); + $form->wait(2); if(isset($members['account'])) $form->dom->account->picker($members['account']); if(isset($members['role'])) $form->dom->role1->setValue($members['role']); $form->wait(2); diff --git a/module/project/test/lib/project.unittest.class.php b/module/project/test/lib/project.unittest.class.php index d0d6255ade..db38dc2e83 100644 --- a/module/project/test/lib/project.unittest.class.php +++ b/module/project/test/lib/project.unittest.class.php @@ -705,4 +705,35 @@ class Project return $this->project->getDisabledProducts($project, $linkedProducts); } + + /** + * 更新项目下的所有产品的阶段。 + * Update product stage by project. + * + * @param int $projectID + * @param object $postProductData + * @access public + * @return bool + */ + public function updateProductStageTest(int $projectID, object $postProductData): array + { + $this->project->updateProductStage($projectID, $postProductData); + $linkInfo = $this->project->dao->select('*')->from(TABLE_PROJECTPRODUCT)->fetchAll(); + + $result = array(); + foreach($linkInfo as $data) + { + if(!isset($result[$data->project])) $result[$data->project] = array(); + if(!isset($result[$data->project]['product'])) $result[$data->project]['product'] = array(); + if(!isset($result[$data->project]['branch'])) $result[$data->project]['branch'] = array(); + if(!isset($result[$data->project]['plan'])) $result[$data->project]['plan'] = array(); + $result[$data->project]['product'][$data->product] = $data->product; + $result[$data->project]['branch'][$data->branch] = $data->branch; + if(!empty(trim($data->plan, ','))) + { + foreach(explode(',', $data->plan) as $planID) $result[$data->project]['plan'][$planID] = $planID; + } + } + return $result; + } } diff --git a/module/project/test/lib/projectzen.unittest.class.php b/module/project/test/lib/projectzen.unittest.class.php new file mode 100644 index 0000000000..63ae11b241 --- /dev/null +++ b/module/project/test/lib/projectzen.unittest.class.php @@ -0,0 +1,78 @@ +tester = $tester; + $tester->app->setModuleName('project'); + $tester->loadModel('project'); + + $this->projectZenTest = initReference('project'); + } + + /** + * 构建POST数据。 + * Build POST data. + * + * @param int $testData + * @access public + * @return array + */ + public function buildPostData($testData) + { + $origData = array( + 'storyType' => array('story'), + 'parent' => 0, + 'charter' => '', + 'model' => 'scrum', + 'hasProduct' => 1, + 'workflowGroup' => 2, + 'budget' => '', + 'multiple' => 'on', + 'name' => 'name1', + 'PM' => '', + 'begin' => '2025-07-07', + 'end' => '', + 'days' => '', + 'productName' => '', + 'products' => array(''), + 'branch' => array(array('')), + 'plans' => array(array('')), + 'desc' => '', + 'budgetUnit' => 'CNY', + 'linkType' => 'plan', + 'deliverable' => array('new_0' => array('name' => '', 'doc' => '', 'fileID' => '')), + 'acl' => 'open', + 'whitelist' => array(''), + 'contactList' => '', + 'auth' => 'extend', + 'taskDateLimit' => 'auto' + ); + + return array_merge($origData, $testData); + } + + /** + * 测试prepareCreateExtras方法。 + * Test prepareCreateExtras method. + * + * @param int $testData + * @param int $expect + * @access public + * @return array|bool + */ + public function prepareCreateExtrasTest($testData, $expect) + { + $_POST = $this->buildPostData($testData); + $postData = form::data($this->tester->config->project->form->create); + $method = $this->projectZenTest->getMethod('prepareCreateExtras'); + $method->setAccessible(true); + + $result = $method->invokeArgs($this->projectZenTest->newInstance(), [$postData, $expect]); + if(dao::isError()) return dao::getError(); + return $result; + } +} diff --git a/module/project/test/lib/startprojectforlite.ui.class.php b/module/project/test/lib/startprojectforlite.ui.class.php new file mode 100644 index 0000000000..9855981627 --- /dev/null +++ b/module/project/test/lib/startprojectforlite.ui.class.php @@ -0,0 +1,36 @@ +switchVision('lite'); + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $featureBar = (array)$this->lang->project->featureBar; + $featureBar['browse'] = (array)$featureBar['browse']; + $form->dom->btn($featureBar['browse']['wait'])->click(); + $title = $form->dom->projectName->getText(); + $form->dom->startBtn->click(); + $form->wait(1); + /*点击启动*/ + $form->dom->startProject->click(); + $form->wait(1); + + /*重新进入项目列表,按照项目名称搜索项目*/ + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $browsePage = $this->loadPage('project', 'browse'); + $form->dom->search(array("项目名称,=,{$title}")); + $form->wait(1); + //搜索的项目状态为进行中,说明启动成功 + $featureBar['index'] = (array)$featureBar['index']; + if($form->dom->browseStatus->getText() != $featureBar['index']['doing']) return $this->fail('启动运营项目失败'); + return $this->success('启动运营项目成功'); + } +} diff --git a/module/project/test/lib/suspendprojectforlite.ui.class.php b/module/project/test/lib/suspendprojectforlite.ui.class.php new file mode 100644 index 0000000000..166e79f6cf --- /dev/null +++ b/module/project/test/lib/suspendprojectforlite.ui.class.php @@ -0,0 +1,37 @@ +switchVision('lite'); + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $featureBar = (array)$this->lang->project->featureBar; + $featureBar['browse'] = (array)$featureBar['browse']; + $form->dom->btn($featureBar['browse']['wait'])->click(); + $title = $form->dom->projectName->getText(); + $form->dom->moreBtn->click(); + $form->dom->suspendBtn->click(); + $form->wait(1); + + $form->dom->suspendProject->click(); + $form->wait(1); + + /*重新进入项目列表,按照项目名称搜索项目*/ + $form = $this->initForm('project', 'browse', '', 'appIframe-project'); + $browsePage = $this->loadPage('project', 'browse'); + $form->dom->search(array("项目名称,=,{$title}")); + $form->wait(1); + //搜索的项目状态为挂起,说明挂起成功 + $featureBar['index'] = (array)$featureBar['index']; + if($form->dom->browseStatus->getText() != $featureBar['index']['suspended']) return $this->fail('挂起运营项目失败'); + return $this->success('挂起运营项目成功'); + } +} diff --git a/module/project/test/lib/teamforlite.ui.class.php b/module/project/test/lib/teamforlite.ui.class.php new file mode 100644 index 0000000000..89e48a1e6b --- /dev/null +++ b/module/project/test/lib/teamforlite.ui.class.php @@ -0,0 +1,24 @@ +switchVision('lite'); + $form = $this->initForm('project', 'team', array('projectID' => '1'), 'appIframe-project'); + $browseFirAccount1 = $form->dom->browseFirAccount->getText(); + $form->dom->unlinkBtn->click(); + $form->dom->confirmBtn->click(); + $form->wait(2); + + //添加断言,判断是否移除团队成员成功 + if($form->dom->browseFirAccount->getText() == $browseFirAccount1) return $this->failed('项目团队成员移除失败'); + return $this->success('项目团队成员移除成功'); + } +} diff --git a/module/project/test/model/checkaccess.php b/module/project/test/model/checkaccess.php index 6ee1d38747..5f298c1aff 100755 --- a/module/project/test/model/checkaccess.php +++ b/module/project/test/model/checkaccess.php @@ -28,4 +28,4 @@ r($tester->project->checkAccess($idList[0], $projects)) && p() && e('10'); //不 r($tester->project->checkAccess($idList[1], $projects)) && p() && e('11'); //传入存在ID的值 r($tester->project->checkAccess($idList[0], $projects)) && p() && e('11'); //不传入ID,读取session信息 r($tester->project->checkAccess($idList[2], $projects)) && p() && e('14'); //传入正确的ID -r($tester->project->checkAccess($idList[3], $projects)) && p() && e('0'); //传入不存在的ID +r($tester->project->checkAccess($idList[3], $projects)) && p() && e('0'); //传入不存在的ID \ No newline at end of file diff --git a/module/project/test/model/checkcanchangemodel.php b/module/project/test/model/checkcanchangemodel.php index ffcab0fd36..78a4e99d1e 100755 --- a/module/project/test/model/checkcanchangemodel.php +++ b/module/project/test/model/checkcanchangemodel.php @@ -12,6 +12,14 @@ zenData('build')->gen(0); zenData('release')->gen(0); zenData('testtask')->gen(0); zenData('design')->gen(0); +zenData('review')->gen(0); +zenData('researchplan')->gen(0); +zenData('issue')->gen(0); +zenData('risk')->gen(0); +zenData('opportunity')->gen(0); +zenData('auditplan')->gen(0); +zenData('gapanalysis')->gen(0); +zenData('meeting')->gen(0); /** diff --git a/module/project/test/model/updateproductstage.php b/module/project/test/model/updateproductstage.php new file mode 100755 index 0000000000..d23119327b --- /dev/null +++ b/module/project/test/model/updateproductstage.php @@ -0,0 +1,78 @@ +#!/usr/bin/env php +updateProductStage(); +timeout=0 +cid=1 + +- 检查阶段一关联产品一第product条的1属性 @1 +- 检查阶段一关联分支第branch条的0属性 @0 +- 检查阶段一关联计划第plan条的1属性 @1 +- 检查阶段二关联产品二第product条的2属性 @2 +- 检查阶段二关联分支 + - 第branch条的0属性 @0 + - 第branch条的1属性 @1 + - 第branch条的2属性 @2 +- 检查阶段二关联计划第plan条的2属性 @2 +- 检查阶段三关联产品三第product条的3属性 @3 +- 检查阶段三关联分支 + - 第branch条的0属性 @0 + - 第branch条的3属性 @3 + - 第branch条的4属性 @4 +- 检查阶段三关联计划第plan条的3属性 @3 +- 检查阶段四关联产品四第product条的4属性 @4 +- 检查阶段四关联分支 + - 第branch条的0属性 @0 + - 第branch条的5属性 @5 +- 检查阶段四关联计划第plan条的4属性 @4 + +*/ + +zenData('projectproduct')->gen(0); + +$project = zenData('project'); +$project->id->range('1-5'); +$project->project->range('0,1{4}'); +$project->model->range("waterfall,[]{4}"); +$project->type->range('project,stage{4}'); +$project->parent->range('0,1{4}'); +$project->path->range('`,1,`,`,1,2,`,`,1,3,`,`,1,4,`,`,1,5,`'); +$project->grade->range('1,2{4}'); +$project->name->range('瀑布项目,阶段一,阶段二,阶段三,阶段四,阶段五'); +$project->code->range('waterfall,stage1,stage2,stage3,stage4,stage5'); +$project->hasProduct->range(1); +$project->status->range('wait'); +$project->stageBy->range('product'); +$project->linkType->range('plan'); +$project->gen(5); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('2,3,4,5'); +$projectProduct->product->range('1,2,3,4'); +$projectProduct->branch->range('0'); +$projectProduct->plan->range(''); +$projectProduct->gen(4); + +$postData = new stdClass(); +$postData->products = array(1, 2, 3, 4); +$postData->branch = array(array(0), array(1, 2), array(3, 4), array(5)); +$postData->plans = array(1 => array(1), 2 => array(2), 3 => array(3), 4 => array(4)); + +$projectTester = new Project(); +r($projectTester->updateProductStageTest(1, $postData)[2]) && p('product:1') && e('1'); //检查阶段一关联产品一 +r($projectTester->updateProductStageTest(1, $postData)[2]) && p('branch:0') && e('0'); //检查阶段一关联分支 +r($projectTester->updateProductStageTest(1, $postData)[2]) && p('plan:1') && e('1'); //检查阶段一关联计划 +r($projectTester->updateProductStageTest(1, $postData)[3]) && p('product:2') && e('2'); //检查阶段二关联产品二 +r($projectTester->updateProductStageTest(1, $postData)[3]) && p('branch:0,1,2') && e('0,1,2'); //检查阶段二关联分支 +r($projectTester->updateProductStageTest(1, $postData)[3]) && p('plan:2') && e('2'); //检查阶段二关联计划 +r($projectTester->updateProductStageTest(1, $postData)[4]) && p('product:3') && e('3'); //检查阶段三关联产品三 +r($projectTester->updateProductStageTest(1, $postData)[4]) && p('branch:0,3,4') && e('0,3,4'); //检查阶段三关联分支 +r($projectTester->updateProductStageTest(1, $postData)[4]) && p('plan:3') && e('3'); //检查阶段三关联计划 +r($projectTester->updateProductStageTest(1, $postData)[5]) && p('product:4') && e('4'); //检查阶段四关联产品四 +r($projectTester->updateProductStageTest(1, $postData)[5]) && p('branch:0,5') && e('0,5'); //检查阶段四关联分支 +r($projectTester->updateProductStageTest(1, $postData)[5]) && p('plan:4') && e('4'); //检查阶段四关联计划 diff --git a/module/project/test/ui/activeprojectlite.php b/module/project/test/ui/activeprojectlite.php new file mode 100755 index 0000000000..668c630c7a --- /dev/null +++ b/module/project/test/ui/activeprojectlite.php @@ -0,0 +1,53 @@ +#!/usr/bin/env php +id->range('1-4'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('[]'); +$project->grade->range('1'); +$project->path->range('`,1,`, `,2,`, `,3,`, `,4,`'); +$project->name->range('运营界面项目1, 运营界面项目2, 运营界面项目3, 运营界面项目4'); +$project->hasProduct->range('0'); +$project->begin->range('(-3w)-(-2w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+5w)-(+6w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->status->range('wait{1}, doing{1}, suspended{1}, closed{1}'); +$project->vision->range('lite'); +$project->gen(4); + +$product = zenData('product'); +$product->id->range('1-4'); +$product->name->range('影子产品1, 影子产品2, 影子产品3, 影子产品4'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(4); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-4'); +$projectProduct->product->range('1-4'); +$projectProduct->gen(4); + +$tester = new activeProjectLiteTester(); +$tester->login(); + +$project = array(); + +r($tester->activeProject($project)) && p('message') && e('激活项目成功'); //激活项目 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/batcheditproject.php b/module/project/test/ui/batcheditproject.php old mode 100755 new mode 100644 index 6ea3fe542b..2ce64bcb1a --- a/module/project/test/ui/batcheditproject.php +++ b/module/project/test/ui/batcheditproject.php @@ -3,39 +3,72 @@ /** -title=批量编辑项目测试 +title=批量编辑项目 timeout=0 -cid=73 +cid=23 -- 校验项目名称不能为空 - - 测试结果 @批量编辑项目表单页提示信息正确 +- 批量编辑项目缺少项目名称 + - 测试结果 @项目名称必填提示信息正确 - 最终测试状态 @SUCCESS -- 校验计划开始不能为空 - - 测试结果 @批量编辑项目表单页提示信息正确 +- 批量编辑项目计划完成时间小于计划开始时间 + - 测试结果 @计划完成校验提示信息正确 - 最终测试状态 @SUCCESS -- 校验计划完成不能为空 - - 测试结果 @批量编辑项目表单页提示信息正确 +- 批量编辑项目名称为已有名称 + - 测试结果 @项目名称唯一提示信息正确 + - 最终测试状态 @SUCCESS +- 批量编辑项目名称 + - 测试结果 @批量编辑项目成功 - 最终测试状态 @SUCCESS -- 批量编辑项目最终测试状态 @SUCCESS */ chdir(__DIR__); include '../lib/batcheditproject.ui.class.php'; -zendata('project')->loadYaml('execution', false, 2)->gen(10); +$project = zenData('project'); +$project->id->range('1-2'); +$project->project->range('0'); +$project->model->range('scrum'); +$project->type->range('project'); +$project->auth->range('extend'); +$project->storyType->range('story'); +$project->path->range('`,1,`'); +$project->grade->range('1'); +$project->name->range('敏捷项目1, 敏捷项目2'); +$project->hasProduct->range('1'); +$project->status->range('doing'); +$project->begin->range('(-2w)-(-1w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2w)-(+3w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->vision->range('rnd'); +$project->gen(2); + +$product = zenData('product'); +$product->id->range('1-2'); +$product->name->range('产品1, 产品2'); +$product->shadow->range('0'); +$product->type->range('normal'); +$product->status->range('normal'); +$product->vision->range('rnd'); +$product->gen(2); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-2'); +$projectProduct->product->range('1{1}, 2{1}'); +$projectProduct->gen(2); + $tester = new batchEditProjectTester(); $tester->login(); $project = array( - array('name' => ''), - array('name' => '敏捷项目1', 'begin' => '', 'end' => '2022-01-31'), - array('name' => '敏捷项目1', 'begin' => '2020-11-01', 'end' => ''), - array('name' => '编辑敏捷项目1', 'begin' => '2020-11-02', 'end' => '2022-01-31'), + array('name' => '', 'begin' => date('Y-m-d', strtotime('-30 days')), 'end' => date('Y-m-d', strtotime('+30 days'))), + array('name' => '敏捷项目1', 'begin' => date('Y-m-d'), 'end' => date('Y-m-d', strtotime('-1 day'))), + array('name' => '敏捷项目2', 'begin' => date('Y-m-d', strtotime('-1 month')), 'end' => date('Y-m-d', strtotime('+1 month'))), + array('name' => '敏捷项目a'.time(), 'begin' => date('Y-m-d', strtotime('-30 days')), 'end' => date('Y-m-d', strtotime('+30 days')), 'acl' => '公开'), ); -r($tester->batchEditProject($project['0'])) && p('message,status') && e('批量编辑项目表单页提示信息正确, SUCCESS'); //校验项目名称不能为空 -r($tester->batchEditProject($project['1'])) && p('message,status') && e('批量编辑项目表单页提示信息正确, SUCCESS'); //校验计划开始不能为空 -r($tester->batchEditProject($project['2'])) && p('message,status') && e('批量编辑项目表单页提示信息正确, SUCCESS'); //校验计划完成不能为空 -r($tester->batchEditProject($project['3'])) && p('status') && e('SUCCESS'); //批量编辑项目 +r($tester->checkInput($project['0'])) && p('message,status') && e('项目名称必填提示信息正确,SUCCESS'); // 批量编辑项目缺少项目名称 +r($tester->checkInput($project['1'])) && p('message,status') && e('计划完成校验提示信息正确,SUCCESS'); // 批量编辑项目计划完成时间小于计划开始时间 +r($tester->checkInput($project['2'])) && p('message,status') && e('项目名称唯一提示信息正确,SUCCESS'); // 批量编辑项目名称为已有名称 +r($tester->checkInput($project['3'])) && p('message,status') && e('批量编辑项目成功,SUCCESS'); // 批量编辑项目名称 $tester->closeBrowser(); diff --git a/module/project/test/ui/browsetablite.php b/module/project/test/ui/browsetablite.php new file mode 100755 index 0000000000..7cebaf9944 --- /dev/null +++ b/module/project/test/ui/browsetablite.php @@ -0,0 +1,77 @@ +#!/usr/bin/env php +id->range('1-9'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('[]'); +$project->grade->range('1'); +$project->path->range('`,1,`, `,2,`, `,3,`, `,4,`, `,5,`, `,6,`, `,7,`, `,8,`, `,9,`'); +$project->name->range('运营界面项目1, 运营界面项目2, 运营界面项目3, 运营界面项目4, 运营界面项目5, 运营界面项目6, 运营界面项目7, 运营界面项目8, 运营界面项目9'); +$project->hasProduct->range('0'); +$project->begin->range('(-3w)-(-2w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+5w)-(+6w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->status->range('wait{3}, doing{2}, suspended{2}, closed{2}'); +$project->vision->range('lite'); +$project->gen(9); + +$product = zenData('product'); +$product->id->range('1-9'); +$product->name->range('影子产品1, 影子产品2, 影子产品3, 影子产品4, 影子产品5, 影子产品6, 影子产品7, 影子产品8, 影子产品9'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(9); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-9'); +$projectProduct->product->range('1-9'); +$projectProduct->gen(9); + +$tester = new browseTabLiteTester(); +$tester->login(); + +r($tester->checkBrowseTab('all', '9')) && p('message,status') && e('全部标签下条数显示正确,SUCCESS'); // 检查全部标签数量 +r($tester->checkBrowseTab('undone', '5')) && p('message,status') && e('未完成标签下条数显示正确,SUCCESS'); // 检查未完成标签数量 +r($tester->checkBrowseTab('wait', '3')) && p('message,status') && e('未开始标签下条数显示正确,SUCCESS'); // 检查未开始标签数量 +r($tester->checkBrowseTab('doing', '2')) && p('message,status') && e('进行中标签下条数显示正确,SUCCESS'); // 检查进行中标签数量 +r($tester->checkBrowseTab('suspended', '2')) && p('message,status') && e('已挂起标签下条数显示正确,SUCCESS'); // 检查已挂起标签数量 +r($tester->checkBrowseTab('delayed', '0')) && p('message,status') && e('已延期标签下条数显示正确,SUCCESS'); // 检查已延期标签数量 +r($tester->checkBrowseTab('closed', '2')) && p('message,status') && e('已关闭标签下条数显示正确,SUCCESS'); // 检查已关闭标签数量 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/closeprojectlite.php b/module/project/test/ui/closeprojectlite.php new file mode 100755 index 0000000000..e078d2731e --- /dev/null +++ b/module/project/test/ui/closeprojectlite.php @@ -0,0 +1,53 @@ +#!/usr/bin/env php +id->range('1-7'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('[]'); +$project->grade->range('1'); +$project->path->range('`,1,`, `,2,`, `,3,`, `,4,`, `,5,`, `,6,`, `,6,`, `,7,`'); +$project->name->range('运营界面项目1, 运营界面项目2, 运营界面项目3, 运营界面项目4, 运营界面项目5, 运营界面项目6, 运营界面项目7'); +$project->hasProduct->range('0'); +$project->begin->range('(-3w)-(-2w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+5w)-(+6w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->status->range('wait{1}, doing{4}, suspended{1}, closed{1}'); +$project->vision->range('lite'); +$project->gen(7); + +$product = zenData('product'); +$product->id->range('1-7'); +$product->name->range('影子产品1, 影子产品2, 影子产品3, 影子产品4, 影子产品5, 影子产品6, 影子产品7'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(7); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-7'); +$projectProduct->product->range('1-7'); +$projectProduct->gen(7); + +$tester = new closeProjectLiteTester(); +$tester->login(); + +$project = array(); + +r($tester->closeProject($project)) && p('message') && e('关闭项目成功'); //关闭项目 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/createwaterfall.php b/module/project/test/ui/createwaterfall.php index 170c32371a..81a1fedc54 100755 --- a/module/project/test/ui/createwaterfall.php +++ b/module/project/test/ui/createwaterfall.php @@ -9,17 +9,19 @@ cid=73 - 校验项目名称不能为空 - 测试结果 @创建瀑布项目表单页提示信息正确 - - 最终测试状态 @SUCCESS + - 最终测试状态 @ SUCCESS - 校验计划完成时间不能为空 - 测试结果 @创建瀑布项目表单页提示信息正确 - - 最终测试状态 @SUCCESS + - 最终测试状态 @ SUCCESS +- 校验项目名称不能重复 + - 测试结果 @创建瀑布项目表单页提示信息正确 + - 最终测试状态 @ SUCCESS - 创建长期瀑布项目最终测试状态 @SUCCESS -- 校验项目名称不能重复测试结果 @创建瀑布项目表单页提示信息正确 - 创建指定计划完成的瀑布项目最终测试状态 @SUCCESS - 创建指定计划完成的项目型瀑布项目最终测试状态 @SUCCESS - 创建瀑布项目后的跳转 - 属性module @programplan - - 属性method @create + - 属性method @ create */ chdir(__DIR__); @@ -34,8 +36,8 @@ $tester->login(); $waterfall = array( array('name' => '', 'longTime' => 'longTime', 'PM' => 'admin'), array('name' => '瀑布项目h01', 'end' => ''), + array('name' => '瀑布项目2', 'type' => 1, 'longTime' => 'longTime'), array('parent' => '项目集1', 'name' => '瀑布项目h01', 'type' => 1, 'longTime' => 'longTime'), - array('name' => '瀑布项目h01', 'type' => 1, 'longTime' => 'longTime'), array('name' => '瀑布项目h02', 'type' => 1, 'end' => date('Y-m-d', strtotime('+30 days')), 'PM' => 'admin'), array('name' => '项目型瀑布项目h01', 'type' => 0, 'end' => date('Y-m-d', strtotime('+30 days')), 'PM' => 'admin'), array('name' => '瀑布项目h03', 'end' => date('Y-m-d', strtotime('+30 days')), 'PM' => 'admin'), @@ -43,8 +45,8 @@ $waterfall = array( r($tester->createDefault($waterfall['0'])) && p('message,status') && e('创建瀑布项目表单页提示信息正确, SUCCESS'); // 校验项目名称不能为空 r($tester->createDefault($waterfall['1'])) && p('message,status') && e('创建瀑布项目表单页提示信息正确, SUCCESS'); // 校验计划完成时间不能为空 -r($tester->createDefault($waterfall['2'])) && p('status') && e('SUCCESS'); // 创建长期瀑布项目 -r($tester->createDefault($waterfall['3'])) && p('message') && e('创建瀑布项目表单页提示信息正确'); // 校验项目名称不能重复 +r($tester->createDefault($waterfall['2'])) && p('message,status') && e('创建瀑布项目表单页提示信息正确, SUCCESS'); // 校验项目名称不能重复 +r($tester->createDefault($waterfall['3'])) && p('status') && e('SUCCESS'); // 创建长期瀑布项目 r($tester->createDefault($waterfall['4'])) && p('status') && e('SUCCESS'); // 创建指定计划完成的瀑布项目 r($tester->createDefault($waterfall['5'])) && p('status') && e('SUCCESS'); // 创建指定计划完成的项目型瀑布项目 r($tester->checkLocating($waterfall['6'])) && p('module,method') && e('programplan, create'); // 创建瀑布项目后的跳转 diff --git a/module/project/test/ui/editprojectlite.php b/module/project/test/ui/editprojectlite.php new file mode 100644 index 0000000000..48b46a951e --- /dev/null +++ b/module/project/test/ui/editprojectlite.php @@ -0,0 +1,72 @@ +#!/usr/bin/env php +id->range('1-2'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('extend'); +$project->path->range('`,1,`'); +$project->grade->range('1'); +$project->name->range('运营界面项目1, 运营界面项目2'); +$project->hasProduct->range('0'); +$project->status->range('wait'); +$project->begin->range('(-72w)-(-71w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+72w)-(+73w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(2); + +$product = zenData('product'); +$product->id->range('1-2'); +$product->name->range('影子产品1, 影子产品2'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->vision->range('lite'); +$product->gen(2); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-2'); +$projectProduct->product->range('1{1}, 2{1}'); +$projectProduct->gen(2); + +$tester = new editProjectLiteTester(); +$tester->login(); + +$project = array( + array('name' => '', 'end' => date('Y-m-d', strtotime('+30 days'))), + array('name' => '运营界面项目'.time(), 'begin' => date('Y-m-d'), 'end' => date('Y-m-d', strtotime('-1 day'))), + array('name' => '运营界面项目2', 'end' => date('Y-m-d', strtotime('+1 month'))), + array('name' => '运营界面项目a'.time(), 'end' => date('Y-m-d', strtotime('+1 month')), 'PM' => 'admin'), +); + +r($tester->checkInput($project['0'])) && p('message,status') && e('编辑项目表单页提示信息正确,SUCCESS'); // 编辑项目缺少项目名称 +r($tester->checkInput($project['1'])) && p('message,status') && e('编辑项目表单页提示信息正确,SUCCESS'); // 编辑项目计划完成时间小于计划开始时间 +r($tester->checkInput($project['2'])) && p('message,status') && e('编辑项目表单页提示信息正确,SUCCESS'); // 编辑项目名称为已有名称 +r($tester->checkInput($project['3'])) && p('message,status') && e('编辑项目成功,SUCCESS'); // 编辑项目名称 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/execution.php b/module/project/test/ui/execution.php new file mode 100644 index 0000000000..2768774e45 --- /dev/null +++ b/module/project/test/ui/execution.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +id->range('1-16'); +$project->project->range('0, 1{15}'); +$project->model->range('scrum, []{15}'); +$project->type->range('project, sprint{15}'); +$project->auth->range('[]'); +$project->storytype->range('[]'); +$project->parent->range('0, 1{15}'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`, `,1,4,`, `,1,5,`, `,1,6,`, `,1,7,`, `,1,8,`, `,1,9,`, `,1,10,`, `,1,11,`, `,1,12,`, `,1,13,`, `,1,14,`, `,1,15,`'); +$project->grade->range('1'); +$project->name->range('敏捷项目1, 迭代1, 迭代2, 迭代3, 迭代4, 迭代5, 迭代6, 迭代7, 迭代8, 迭代9, 迭代10, 迭代11, 迭代12, 迭代13, 迭代14, 迭代15'); +$project->hasProduct->range('0'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(-1M)-(+2M):5D')->type('timestamp')->format('YY/MM/DD'); +$project->status->range('wait{8}, doing{4}, suspended{3}, closed{1}'); +$project->acl->range('open'); +$project->vision->range('rnd'); +$project->gen(16); + +$product = zenData('product'); +$product->id->range('1'); +$product->program->range('0'); +$product->name->range('产品1'); +$product->shadow->range('1'); +$product->bind->range('1'); +$product->type->range('normal'); +$product->gen(1); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-16'); +$projectProduct->product->range('1'); +$projectProduct->gen(16); + +$tester = new executionTester(); +$tester->login(); + +r($tester->checkTab('all', '15')) && p('message,status') && e('全部标签下条数显示正确,SUCCESS'); // 检查全部标签数量 +r($tester->checkTab('undone', '14')) && p('message,status') && e('未完成标签下条数显示正确,SUCCESS'); // 检查未完成标签数量 +r($tester->checkTab('wait', '7')) && p('message,status') && e('未开始标签下条数显示正确,SUCCESS'); // 检查未开始标签数量 +r($tester->checkTab('doing', '4')) && p('message,status') && e('进行中标签下条数显示正确,SUCCESS'); // 检查进行中标签数量 +r($tester->checkTab('suspended', '3')) && p('message,status') && e('已挂起标签下条数显示正确,SUCCESS'); // 检查已挂起标签数量 +r($tester->checkTab('delayed', '5')) && p('message,status') && e('已延期标签下条数显示正确,SUCCESS'); // 检查已延期标签数量 +r($tester->checkTab('closed', '1')) && p('message,status') && e('已关闭标签下条数显示正确,SUCCESS'); // 检查已关闭标签数量 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/executionforlite.php b/module/project/test/ui/executionforlite.php new file mode 100644 index 0000000000..3fc81b80b6 --- /dev/null +++ b/module/project/test/ui/executionforlite.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +id->range('1-16'); +$project->project->range('0, 1{15}'); +$project->model->range('kanban, []{15}'); +$project->type->range('project, kanban{15}'); +$project->auth->range('[]'); +$project->storytype->range('[]'); +$project->parent->range('0, 1{15}'); +$project->path->range('`,1,`, `,1,2,`, `,1,3,`, `,1,4,`, `,1,5,`, `,1,6,`, `,1,7,`, `,1,8,`, `,1,9,`, `,1,10,`, `,1,11,`, `,1,12,`, `,1,13,`, `,1,14,`, `,1,15,`'); +$project->grade->range('1'); +$project->name->range('运营项目1, 看板1, 看板2, 看板3, 看板4, 看板5, 看板6, 看板7, 看板8, 看板9, 看板10, 看板11, 看板12, 看板13, 看板14, 看板15'); +$project->hasProduct->range('0'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(-1M)-(+2M):5D')->type('timestamp')->format('YY/MM/DD'); +$project->status->range('wait{8}, doing{4}, suspended{3}, closed{1}'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(16); + +$product = zenData('product'); +$product->id->range('1'); +$product->program->range('0'); +$product->name->range('运营项目1'); +$product->shadow->range('1'); +$product->bind->range('1'); +$product->type->range('normal'); +$product->gen(1); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1-16'); +$projectProduct->product->range('1'); +$projectProduct->gen(16); + +$tester = new executionForLiteTester(); +$tester->login(); + +r($tester->checkTab('1', 'all', '15')) && p('message,status') && e('全部标签下条数显示正确,SUCCESS'); // 检查全部标签数量 +r($tester->checkTab('2', 'undone', '14')) && p('message,status') && e('未完成标签下条数显示正确,SUCCESS'); // 检查未完成标签数量 +r($tester->checkTab('3', 'wait', '7')) && p('message,status') && e('未开始标签下条数显示正确,SUCCESS'); // 检查未开始标签数量 +r($tester->checkTab('4', 'doing', '4')) && p('message,status') && e('进行中标签下条数显示正确,SUCCESS'); // 检查进行中标签数量 +r($tester->checkTab('5', 'suspended', '3')) && p('message,status') && e('已挂起标签下条数显示正确,SUCCESS'); // 检查已挂起标签数量 +r($tester->checkTab('6', 'delayed', '5')) && p('message,status') && e('已延期标签下条数显示正确,SUCCESS'); // 检查已延期标签数量 +r($tester->checkTab('7', 'closed', '1')) && p('message,status') && e('已关闭标签下条数显示正确,SUCCESS'); // 检查已关闭标签数量 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/page/batchedit.php b/module/project/test/ui/page/batchedit.php new file mode 100755 index 0000000000..06094c96e3 --- /dev/null +++ b/module/project/test/ui/page/batchedit.php @@ -0,0 +1,13 @@ + "//*[@id='navbar']/menu/li[14]/a/span", + 'alertModal' => "//*[@class='modal modal-async load-indicator modal-alert modal-trans show in']/div/div/div[2]", + ); + $this->dom->xpath = array_merge($this->dom->xpath, $xpath); + } +} diff --git a/module/project/test/ui/page/browse.php b/module/project/test/ui/page/browse.php index 445b67ae84..2b2f74235b 100644 --- a/module/project/test/ui/page/browse.php +++ b/module/project/test/ui/page/browse.php @@ -55,6 +55,9 @@ class browsePage extends page 'kanbanName' => "//*[@id='mainContent']/div[2]/div/div/div[2]/div[1]/div/div[2]/div/a", /*运营界面项目列表*/ 'projectNameLite' => "//*[@id='table-project-browse']/div[2]/div[1]/div/div[2]/div/a", + /*批量编辑项目*/ + 'selectAllBtn' => "//*[@id='table-project-browse']/div[3]/div[1]/div", + 'batchEditBtn' => "//*[@id='table-project-browse']/div[3]/nav[1]/nav/button/span", ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); } diff --git a/module/project/test/ui/page/execution.php b/module/project/test/ui/page/execution.php index 65e575b7a7..c67b9ff6c3 100644 --- a/module/project/test/ui/page/execution.php +++ b/module/project/test/ui/page/execution.php @@ -16,6 +16,17 @@ class executionPage extends page 'addSprint' => "//*[@id='actionBar']/a[2]/span", 'sprintName' => "//*[@id='table-project-execution']/div[2]/div[1]/div/div[2]/div/a", 'planEnd' => "//*[@id='table-project-execution']/div[2]/div[2]/div/div[6]/div", + /* 运营界面元素 */ + 'allTab' => "//*[@id='featureBar']/menu/li[1]/a/span[1]", + 'undoneTab' => "//*[@id='featureBar']/menu/li[2]/a/span[1]", + 'waitTab' => "//*[@id='featureBar']/menu/li[3]/a/span[1]", + 'doingTab' => "//*[@id='featureBar']/menu/li[4]/a/span[1]", + 'suspendedTab' => "//*[@id='featureBar']/menu/li[5]/a/span[1]", + 'delayedTab' => "//*[@id='featureBar']/menu/li[6]/a/span[1]", + 'closedTab' => "//*[@id='featureBar']/menu/li[7]/a/span[1]", + 'num' => "//*[@id='featureBar']/menu/li[1]/a/span[2]", + /* 研发界面元素 */ + 'numDom' => "//*[@id='table-project-execution']/div[3]/div[2]/strong[1]", ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); } diff --git a/module/project/test/ui/page/managemembers.php b/module/project/test/ui/page/managemembers.php index caa7d70411..149e7729dc 100644 --- a/module/project/test/ui/page/managemembers.php +++ b/module/project/test/ui/page/managemembers.php @@ -5,7 +5,7 @@ class manageMembersPage extends page { parent::__construct($webdriver); $xpath = array( - 'account' => "//*[@id='account1']/div/span[1]", + 'account' => "//*[@id='account1']/div/input", 'firstDeleteBtn' => "//*[@id='teamForm']/table/tbody/tr[1]/td[6]/div/button[2]/i", /* 运营界面 */ 'saveBtn' => "//*[@id='teamForm']/div/div/button[1]", diff --git a/module/project/test/ui/startprojectforlite.php b/module/project/test/ui/startprojectforlite.php new file mode 100755 index 0000000000..93fe5d78b7 --- /dev/null +++ b/module/project/test/ui/startprojectforlite.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +id->range('1'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->parent->range('0'); +$project->auth->range('extend'); +$project->grade->range('1'); +$project->hasProduct->range('0'); +$project->name->range('运营项目1'); +$project->path->range('`,1,`'); +$project->vision->range('lite'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->gen(1); + +$tester = new startProjectForLiteTester(); +$tester->login(); + +r($tester->startProject()) && p('message,status') && e('启动运营项目成功,SUCCESS'); //启动运营项目 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/suspendprojectforlite.php b/module/project/test/ui/suspendprojectforlite.php new file mode 100755 index 0000000000..75e63d3c28 --- /dev/null +++ b/module/project/test/ui/suspendprojectforlite.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +id->range('1'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->parent->range('0'); +$project->auth->range('extend'); +$project->grade->range('1'); +$project->hasProduct->range('0'); +$project->name->range('运营项目1'); +$project->path->range('`,1,`'); +$project->vision->range('lite'); +$project->begin->range('(-2M)-(-M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+2M)-(+3M):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->gen(1); + +$tester = new suspendProjectForLiteTester(); +$tester->login(); + +r($tester->suspendProject()) && p('message,status') && e('挂起运营项目成功,SUCCESS'); //挂起运营项目 + +$tester->closeBrowser(); diff --git a/module/project/test/ui/teamforlite.php b/module/project/test/ui/teamforlite.php new file mode 100755 index 0000000000..8731971ff6 --- /dev/null +++ b/module/project/test/ui/teamforlite.php @@ -0,0 +1,55 @@ +#!/usr/bin/env php +id->range('1'); +$project->project->range('0'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->auth->range('extend'); +$project->storytype->range(''); +$project->path->range('`,1,`'); +$project->grade->range('1'); +$project->name->range('运营项目1'); +$project->hasProduct->range('1'); +$project->status->range('wait'); +$project->begin->range('(-72w)-(-71w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->end->range('(+72w)-(+73w):1D')->type('timestamp')->format('YY/MM/DD'); +$project->acl->range('open'); +$project->gen(1); + +$user = zenData('user'); +$user->id->range('1-5'); +$user->dept->range('1'); +$user->account->range('admin, user1, user2, user3, user4'); +$user->realname->range('admin, 用户1, 用户2, 用户3, 用户4'); +$user->password->range($config->uitest->defaultPassword)->format('md5'); +$user->gen(5); + +$team = zenData('team'); +$team->id->range('1-3'); +$team->root->range('1'); +$team->type->range('project'); +$team->account->range('admin, user1, user2, user3, user4'); +$team->days->range('7'); +$team->hours->range('4'); +$team->gen(3); + +$tester = new teamTesterForLite(); +$tester->login(); + +r($tester->removeMembers()) && p('message') && e('项目团队成员移除成功'); //移除项目已有的团队成员 +$tester->closeBrowser(); diff --git a/module/project/test/zen/preparecreateextras.php b/module/project/test/zen/preparecreateextras.php new file mode 100755 index 0000000000..4c1a11ee68 --- /dev/null +++ b/module/project/test/zen/preparecreateextras.php @@ -0,0 +1,34 @@ +#!/usr/bin/env php +gen(10); + +/** + +title=测试 projectZen::prepareCreateExtras(); +timeout=0 +cid=1 + +- 执行project模块的prepareCreateExtrasTest方法,参数是$testData, 0 属性end @『计划完成』不能为空。 +- 执行project模块的prepareCreateExtrasTest方法,参数是$testData, 0 属性days @可用工作日不能超过『-5』天 +- 执行project模块的prepareCreateExtrasTest方法,参数是$testData, 0 属性end @2025-07-17 +- 执行project模块的prepareCreateExtrasTest方法,参数是$testData, 1 属性type @project +- 执行project模块的prepareCreateExtrasTest方法,参数是$testData, 0 属性acl @privately +*/ + +global $tester; +$project = new projectZenTest(); + +$testData = array(); + +$testData['name'] = 'test0707'; +r($project->prepareCreateExtrasTest($testData, 0)) && p('end') && e('『计划完成』不能为空。'); +$testData['end'] = '2025-07-01'; +r($project->prepareCreateExtrasTest($testData, 0)) && p('days') && e('可用工作日不能超过『-5』天'); +$testData['end'] = '2025-07-17'; +r($project->prepareCreateExtrasTest($testData, 0)) && p('end') && e('2025-07-17'); +r($project->prepareCreateExtrasTest($testData, 1)) && p('type') && e('project'); +$testData['acl'] = 'private'; +r($project->prepareCreateExtrasTest($testData, 0)) && p('acl') && e('private'); diff --git a/module/project/ui/common.field.php b/module/project/ui/common.field.php index 0850f765ae..69ebd09d5e 100644 --- a/module/project/ui/common.field.php +++ b/module/project/ui/common.field.php @@ -9,7 +9,7 @@ $fields = defineFieldList('project'); $model = data('model'); $hasCode = !empty($config->setCode); $currency = data('parentProgram') ? data('parentProgram.budgetUnit') : $config->project->defaultCurrency; -$disableStageBy = !empty(data('executions')) || data('app.rawMethod') == 'edit' ? true : false; +$disableStageBy = !empty(data('executions')) || data('app.rawMethod') == 'edit' || !empty(data('copyProject')); $fields->field('parent') ->control('picker', array('required' => true)) @@ -46,6 +46,18 @@ $fields->field('PM')->control('picker')->items(data('PMUsers')); unset($lang->project->endList[999]); $isLongTime = data('project.end') == LONG_TIME; +$copyProject = data('copyProject'); +if($copyProject) +{ + $beginValue = $copyProject->begin; + $endValue = $copyProject->end == LONG_TIME ? '' : $copyProject->end; +} +else +{ + $beginValue = data('project.begin') ? data('project.begin') : date('Y-m-d'); + $endValue = data('project.end') == LONG_TIME ? '' : data('project.end'); +} + $fields->field('begin') ->label($lang->project->planDate) ->required() @@ -54,10 +66,10 @@ $fields->field('begin') ->control('dateRangePicker') ->beginName('begin') ->beginPlaceholder($lang->project->begin) - ->beginValue(data('project.begin') ? data('project.begin') : date('Y-m-d')) + ->beginValue($beginValue) ->endName('end') ->endPlaceholder($lang->project->end) - ->endValue(data('project.end') == LONG_TIME ? '' : data('project.end')) + ->endValue($endValue) ->endDisabled($isLongTime) ->endList($lang->project->endList) ->itemEnd() diff --git a/module/project/ui/create.field.php b/module/project/ui/create.field.php index 96f4811844..0c01915beb 100644 --- a/module/project/ui/create.field.php +++ b/module/project/ui/create.field.php @@ -47,10 +47,13 @@ $fields->field('days') ->control('input', array('className' => $copyProject ? 'has-warning' : '')) ->className($copyProject ? 'has-warning' : '') ->tip($copyProject ? $lang->project->copyProject->daysTips : null) + ->value($copyProject ? data('copyProject.days') : '') ->tipClass($copyProject ? 'text-warning' : null); $fields->field('productsBox')->hidden(data('copyProject') && data('copyProject.hasProduct') == 0); +$fields->field('PM')->value(data('copyProject.PM')); +$fields->field('budget')->value(data('copyProject.budget')); $fields->field('budget')->foldable(); diff --git a/module/project/ui/execution.html.php b/module/project/ui/execution.html.php index 931b2f54e0..16cb76f598 100644 --- a/module/project/ui/execution.html.php +++ b/module/project/ui/execution.html.php @@ -60,6 +60,8 @@ if($canBatchAction) $fieldList = $config->project->execution->dtable->fieldList; $fieldList['status']['statusMap']['changed'] = $lang->task->storyChange; +if(!empty($project->isTpl)) unset($fieldList['deliverable']); + /* waterfall & waterfallplus & ipd model with different edit link. */ if(in_array($project->model, array('waterfall', 'waterfallplus', 'ipd'))) { diff --git a/module/project/ui/index.html.php b/module/project/ui/index.html.php index b17acd8534..ddaffa3dfe 100644 --- a/module/project/ui/index.html.php +++ b/module/project/ui/index.html.php @@ -104,20 +104,17 @@ if(!empty($kanbanList)) div ( setClass('flex justify-between items-center'), - div + span ( - span - ( - setClass("project-status label rounded-full {$statusLabel}"), - $status != 'delay' ? $lang->project->statusList[$status] : sprintf($lang->project->delayInfo, helper::diffDate($today, $kanban->end)) - ), - a - ( - setClass('project-name ml-2'), - set::href(createLink('execution', 'kanban', "kanbanID={$kanban->id}")), - set::title($kanban->name), - h::strong($kanban->name) - ) + setClass("project-status label rounded-full {$statusLabel} flex-none"), + $status != 'delay' ? $lang->project->statusList[$status] : sprintf($lang->project->delayInfo, helper::diffDate($today, $kanban->end)) + ), + a + ( + setClass('project-name ml-2 flex-auto text-clip'), + set::href(createLink('execution', 'kanban', "kanbanID={$kanban->id}")), + set::title($kanban->name), + h::strong($kanban->name) ), div ( diff --git a/module/project/view/ajaxgetolddropmenu.html.php b/module/project/view/ajaxgetolddropmenu.html.php index 3d81502e2a..f8a7430b64 100644 --- a/module/project/view/ajaxgetolddropmenu.html.php +++ b/module/project/view/ajaxgetolddropmenu.html.php @@ -110,6 +110,10 @@ foreach($projects as $programID => $programProjects) { $link = $indexLink; } + elseif(!empty($project->isTpl)) + { + $link = helper::createLink('project', 'execution', "status=undone&projectID={$project->id}"); + } else { $link = $defaultLink; diff --git a/module/projectrelease/model.php b/module/projectrelease/model.php index 1aee4c5a3e..d58de00f57 100644 --- a/module/projectrelease/model.php +++ b/module/projectrelease/model.php @@ -25,7 +25,7 @@ class projectreleaseModel extends model * @access public * @return array */ - public function getList(int $projectID, string $type = 'all', string $orderBy = 't1.date_desc', object $pager = null): array + public function getList(int $projectID, string $type = 'all', string $orderBy = 't1.date_desc', ?object $pager = null): array { $releases = $this->dao->select('t1.*, t2.name AS productName, t2.type AS productType')->from(TABLE_RELEASE)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') diff --git a/module/projectstory/test/lib/changestatusinlite.ui.class.php b/module/projectstory/test/lib/changestatusinlite.ui.class.php new file mode 100755 index 0000000000..a93b11d00e --- /dev/null +++ b/module/projectstory/test/lib/changestatusinlite.ui.class.php @@ -0,0 +1,100 @@ +switchVision('lite', 5); + $form = $this->initForm('projectstory', 'view', $storyUrl, 'appIframe-project'); + $form->wait(2); + $form->dom->closeBtn->click(); + $form->wait(2); + $form->dom->closestoryBtn->click(); + $viewPage = $this->initForm('projectstory', 'view', $storyUrl, 'appIframe-project'); + $viewPage->wait(2); + $status = $viewPage->dom->storyStatus->getText(); + return($status == $this->lang->story->statusList->closed) + ? $this->success('目标关闭成功') + : $this->failed('目标关闭失败'); + } + + /** + * 运营界面激活目标 + * Activate story in lite + * + * @param array $storyUrl + * @return mixed + */ + public function activeStory($storyUrl) + { + $this->switchVision('lite'); + $this->page->wait(3); + $form = $this->initForm('projectstory', 'view', $storyUrl, 'appIframe-project'); + $form->wait(2); + $form->dom->activateBtn->click(); + $form->wait(2); + $form->dom->activateStoryBtn->click(); + $viewPage = $this->initForm('projectstory', 'view', $storyUrl, 'appIframe-project'); + $viewPage->wait(2); + $status = $viewPage->dom->storyStatus->getText(); + return($status != $this->lang->story->statusList->closed) + ? $this->success('目标激活成功') + : $this->failed('目标激活失败'); + } + + /** + * 运营界面评审目标 + * Review story in lite + * + * @param + * @return mixed + */ + public function reviewStory( $storyID, $result, $status) + { + $this->switchVision('lite'); + $storyURL = array( + 'storyID' => $storyID, + 'form' => 'project', + 'storyType' => 'story' + ); + $form = $this->initForm('projectstory', 'story', array('projectID' => '1'), 'appIframe-project'); + $form = $this->initForm('story', 'review', $storyURL, 'appIframe-project'); //进入研发评审页面 + + $resultOptions = array( + 'pass' => $this->lang->story->reviewResultList->pass, //通过 + 'revert' => $this->lang->story->reviewResultList->revert,//撤销变更 + 'clarify' => $this->lang->story->reviewResultList->clarify,//有待明确 + 'reject' => $this->lang->story->reviewResultList->reject//拒绝 + ); + $form->dom->result->picker($resultOptions[$result]); //选择目标评审结果 + if($result != 'reject') $form->dom->assignedTo->picker('admin'); //指派人选择admin + $form->dom->btn($this->lang->save)->click(); + + $viewPage = $this->loadPage('projectstory', 'view'); + $viewPage->wait(3); + + $statusOptions = array( + 'active' => $this->lang->story->statusList->active, + 'draft' => $this->lang->story->statusList->draft, + 'closed' => $this->lang->story->statusList->closed + ); + if($viewPage->dom->storyStatus->getText() != $statusOptions[$status]) return $this->failed('目标状态错误'); + if($result != 'revert') + { + $viewPage->dom->TargetLife->click(); + if($viewPage->dom->storyReviwer->getText() != 'admin') return $this->failed('目标评审人错误'); + }else + { + if($viewPage->dom->storyName->getText() != '目标4') return $this->failed('目标名称错误'); + } + + return $this->success('评审目标成功'); + } +} diff --git a/module/projectstory/test/lib/switchtabinlite.ui.class.php b/module/projectstory/test/lib/switchtabinlite.ui.class.php new file mode 100755 index 0000000000..e30a8f2e6c --- /dev/null +++ b/module/projectstory/test/lib/switchtabinlite.ui.class.php @@ -0,0 +1,34 @@ +switchVision('lite', 5); + $form = $this->initForm('projectstory', 'story', $projectID, 'appIframe-project'); + $numDom = $tabName . 'Num'; + $tabLang = [ + 'allTab' => '全部', + 'openTab' => '未关闭', + 'draftTab' => '草稿', + 'reviewingTab' => '评审中', + 'changingTab' => '变更中' + ]; + $form->wait(1); + $form->dom->$tabName->click(); + $form->wait(1); + $num = $form->dom->$numDom->getText(); + return ($num == $expectNum) + ? $this->success("{$tabLang[$tabName]}Tab下数据显示正确") + : $this->failed("{$tabLang[$tabName]}Tab下数据显示不正确"); + } +} diff --git a/module/projectstory/test/ui/changestorystatusinlite.php b/module/projectstory/test/ui/changestorystatusinlite.php new file mode 100755 index 0000000000..9448d4c709 --- /dev/null +++ b/module/projectstory/test/ui/changestorystatusinlite.php @@ -0,0 +1,102 @@ +#!/usr/bin/env php +id->range('1'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->name->range('运营项目'); +$project->hasProduct->range('0'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(1); + +$product = zenData('product'); +$product->id->range('1'); +$product->program->range('0'); +$product->name->range('运营项目'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->acl->range('open'); +$product->vision->range('lite'); +$product->gen(1); + +$projectproduct = zenData('projectproduct'); +$projectproduct->project->range('1'); +$projectproduct->product->range('1'); +$projectproduct->branch->range('0'); +$projectproduct->plan->range('0'); +$projectproduct->gen(1); + +$team = ZenData('team'); +$team->id->range('1'); +$team->root->range('1'); +$team->type->range('project'); +$team->account->range('admin'); +$team->gen(1); + +$story = ZenData('story'); +$story->id->range('1'); +$story->vision->range('lite'); +$story->parent->range('0'); +$story->isparent->range('0'); +$story->root->range('1'); +$story->path->range(',1,'); +$story->product->range('1'); +$story->title->range('目标01'); +$story->type->range('story'); +$story->status->range('active'); +$story->stage->range('projected'); +$story->version->range('1'); +$story->openedBy->range('admin'); +$story->gen(1); + +$storyspec = ZenData('storyspec'); +$storyspec->story->range('1'); +$storyspec->version->range('1'); +$storyspec->title->range('目标01'); +$storyspec->gen(1); + +$storyreview = ZenData('storyreview'); +$storyreview->story->range('1'); +$storyreview->version->range('1'); +$storyreview->reviewer->range('admin'); +$storyreview->result->range('pass'); +$storyreview->gen(1); + +$projectstory = ZenData('projectstory'); +$projectstory->project->range('1'); +$projectstory->product->range('1'); +$projectstory->branch->range('0'); +$projectstory->story->range('1'); +$projectstory->version->range('1'); +$projectstory->order->range('1'); +$projectstory->gen(1); + +$storyUrl = array( + 'storyID' => '1', + 'projectID' => '1' +); +$tester = new changeStatus(); +$tester->login(); + +r($tester->closeStory($storyUrl)) && p('message,status') && e('目标关闭成功,SUCCESS');//关闭目标 +r($tester->activeStory($storyUrl)) && p('message,status') && e('目标激活成功,SUCCESS');//激活目标 + +$tester->closeBrowser(); diff --git a/module/projectstory/test/ui/page/story.php b/module/projectstory/test/ui/page/story.php index 240fb251aa..5fe10e4e57 100755 --- a/module/projectstory/test/ui/page/story.php +++ b/module/projectstory/test/ui/page/story.php @@ -37,7 +37,19 @@ class storyPage extends page 'assignedTo' => "//*[@data-name='assignedTo']/div/div", 'assignBtn' => "//*[@class='panel-body']/form/div[3]/div/button", 'batchAssignBtn' => "//*[@id='stories']/div[3]/nav/button[4]/span[1]", - 'assignToAdmin' => "//*[@class='item-content']/div" + 'assignToAdmin' => "//*[@class='item-content']/div", + /* 运营管理界面 */ + 'allTab' => '//*[@data-id="allstory"]', + 'openTab' => '//*[@data-id="unclosed"]', + 'draftTab' => '//*[@data-id="draft"]', + 'reviewingTab' => '//*[@data-id="reviewing"]', + 'changingTab' => '//*[@data-id="changing"]', + 'allTabNum' => '//*[@data-id="allstory"]/span[2]', + 'openTabNum' => '//*[@data-id="unclosed"]/span[2]', + 'draftTabNum' => '//*[@data-id="draft"]/span[2]', + 'reviewingTabNum' => '//*[@data-id="reviewing"]/span[2]', + 'changingTabNum' => '//*[@data-id="changing"]/span[2]', + 'firstStory' => '//*[@id="stories"]/div[2]/div[1]/div/div[2]/div/a' ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); } diff --git a/module/projectstory/test/ui/page/view.php b/module/projectstory/test/ui/page/view.php new file mode 100755 index 0000000000..3c340be01b --- /dev/null +++ b/module/projectstory/test/ui/page/view.php @@ -0,0 +1,21 @@ + "//*[@id='mainContent']/div/div[1]/div[1]/span[2]", + 'TargetLife' => "//*[@id='mainContent']/div/div[2]/div[2]/div[1]/div[1]/ul/li[2]/a", + 'openedBy' => "//*[@id='mainContent']/div/div[2]/div[2]//div[2]/div[2]//div[1]/div[3]/div[2]//span", + 'closeBtn' => '//*[@id="mainContent"]/div/div[2]/div[1]/div[3]/div/div/a[last()-3]', + 'closestoryBtn' => '//*[@id="zin_story_close_1_form"]/div[4]/div/button', + 'activateBtn' => '//*[@id="mainContent"]/div/div[2]/div[1]/div[3]/div/div/a[last()-3]', + 'activateStoryBtn' => '//*[@id="zin_story_activate_1_form"]/div[3]/div/button', + 'storyStatus' => '//*[@id="zin_projectstory_view_tabPane"]/div/div[2]/div[2]/span', + 'storyReviwer' => '//*[@zui-key="side"]/div/div[2]/div[2]/div/div[3]/div[2]//span' + ); + $this->dom->xpath = array_merge($this->dom->xpath, $xpath); + } +} diff --git a/module/projectstory/test/ui/reviewstoryinlite.php b/module/projectstory/test/ui/reviewstoryinlite.php new file mode 100755 index 0000000000..2e4685fa9a --- /dev/null +++ b/module/projectstory/test/ui/reviewstoryinlite.php @@ -0,0 +1,123 @@ +#!/usr/bin/env php +id->range('1'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->name->range('运营项目'); +$project->hasProduct->range('0'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(1); + +$product = zenData('product'); +$product->id->range('1'); +$product->program->range('0'); +$product->name->range('运营项目'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->acl->range('open'); +$product->vision->range('lite'); +$product->gen(1); + +$projectproduct = zenData('projectproduct'); +$projectproduct->project->range('1'); +$projectproduct->product->range('1'); +$projectproduct->branch->range('0'); +$projectproduct->plan->range('0'); +$projectproduct->gen(1); + +$team = ZenData('team'); +$team->id->range('1'); +$team->root->range('1'); +$team->type->range('project'); +$team->account->range('admin'); +$team->gen(1); + +$story = ZenData('story'); +$story->id->range('1-4'); +$story->vision->range('lite'); +$story->parent->range('0'); +$story->isparent->range('0'); +$story->root->range('1'); +$story->path->range('1-4')->prefix(',')->postfix(','); +$story->grade->range('1'); +$story->product->range('1'); +$story->title->range('1-3, 变更')->prefix('目标'); +$story->type->range('story'); +$story->status->range('reviewing'); +$story->stage->range('projected'); +$story->version->range('1{3}, 2'); +$story->openedBy->range('admin'); +$story->closedBy->range('[]'); +$story->closedReason->range('[]'); +$story->gen(4); + +$storyspec = ZenData('storyspec'); +$storyspec->story->range('1-4, 4'); +$storyspec->version->range('1{4}, 2'); +$storyspec->title->range('1-4, 变更')->prefix('目标'); +$storyspec->gen(5); + +$storyreview = ZenData('storyreview'); +$storyreview->story->range('1-4'); +$storyreview->version->range('1{3}, 2'); +$storyreview->reviewer->range('admin'); +$storyreview->result->range('[]'); +$storyreview->gen(4); + +$projectstory = ZenData('projectstory'); +$projectstory->project->range('1'); +$projectstory->product->range('1'); +$projectstory->story->range('1-4'); +$projectstory->version->range('1'); +$projectstory->gen(4); + +$history = ZenData('history')->gen(0); +$action = ZenData('action')->gen(0); + +$result = array( + 'pass' => 'pass', + 'revert' => 'revert', + 'clarify' => 'clarify', + 'reject' => 'reject' +); + +$status = array( + 'active' => 'active', + 'draft' => 'draft', + 'closed' => 'closed' +); + +$tester = new changeStatus(); +$tester->login(); + +r($tester->reviewStory('1', $result['pass'], $status['active'])) && p('message,status') && e('评审目标成功,SUCCESS');//评审通过 +r($tester->reviewStory('2', $result['clarify'], $status['draft'])) && p('message,status') && e('评审目标成功,SUCCESS');//评审需求不明确 +r($tester->reviewStory('3', $result['reject'], $status['closed'])) && p('message,status') && e('评审目标成功,SUCCESS');//评审拒绝 +r($tester->reviewStory('4', $result['revert'], $status['active'])) && p('message,status') && e('评审目标成功,SUCCESS');//评审撤销变更 + +$tester->closeBrowser(); diff --git a/module/projectstory/test/ui/switchtabinlite.php b/module/projectstory/test/ui/switchtabinlite.php new file mode 100755 index 0000000000..f71316bf1a --- /dev/null +++ b/module/projectstory/test/ui/switchtabinlite.php @@ -0,0 +1,130 @@ +#!/usr/bin/env php +id->range('1'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->name->range('运营项目'); +$project->hasProduct->range('0'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(1); + +$product = zenData('product'); +$product->id->range('1'); +$product->program->range('0'); +$product->name->range('运营项目'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->acl->range('open'); +$product->vision->range('lite'); +$product->gen(1); + +$projectproduct = zenData('projectproduct'); +$projectproduct->project->range('1'); +$projectproduct->product->range('1'); +$projectproduct->branch->range('0'); +$projectproduct->plan->range('0'); +$projectproduct->gen(1); + +$team = ZenData('team'); +$team->id->range('1'); +$team->root->range('1'); +$team->type->range('project'); +$team->account->range('admin'); +$team->gen(1); + +$story = ZenData('story'); +$story->id->range('1-12'); +$story->vision->range('lite'); +$story->parent->range('0'); +$story->isparent->range('0'); +$story->root->range('1-12'); +$story->path->range('1-12'); +$story->product->range('1'); +$story->title->range('目标01,目标02,目标03,目标04,目标05,目标06,目标07,目标08,目标09,目标10,目标11,目标12'); +$story->type->range('story'); +$story->status->range('closed{2},active,changing,reviewing{6},draft{2}'); +$story->stage->range('closed{2},projected{10}'); +$story->version->range('1'); +$story->openedBy->range('admin'); +$story->assignedTo->range('closed{2},{10}'); +$story->changedBy->range('{3},admin,{8}'); +$story->reviewedBy->range('admin{3},{9}'); +$story->closedBy->range('admin{2},{10}'); +$story->closedReason->range('done{2},{10}'); +$story->deleted->range('0'); +$story->gen(12); + +$storyspec = ZenData('storyspec'); +$storyspec->story->range('1-12'); +$storyspec->version->range('1'); +$storyspec->title->range('目标01,目标02,目标03,目标04,目标05,目标06,目标07,目标08,目标09,目标10,目标11,目标12'); +$storyspec->gen(12); + +$storyreview = ZenData('storyreview'); +$storyreview->story->range('1-12'); +$storyreview->version->range('1'); +$storyreview->reviewer->range('admin'); +$storyreview->result->range('pass{4},{8}'); +$storyreview->gen(12); + +$projectstory = ZenData('projectstory'); +$projectstory->project->range('1'); +$projectstory->product->range('1'); +$projectstory->branch->range('0'); +$projectstory->story->range('1-12'); +$projectstory->version->range('1'); +$projectstory->order->range('1-12'); +$projectstory->gen(12); + +$action = zenData('action'); +$action->id->range('1-37'); +$action->objectType->range('product,project,story{35}'); +$action->objectID->range('1{3},2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,11,12,11,12,1{2},2{2},3{2},4{3},1,2'); +$action->product->range('1'); +$action->project->range('0,1,0{10},1{10},0{2},1{13}'); +$action->execution->range('0'); +$action->actor->range('admin{27},系统,admin,系统,admin,系统,admin,系统,admin{3}'); +$action->action->range('opened{12},linked2project{10},opened{2},linked2project{2},reviewed,reviewpassed,reviewed,reviewpassed,reviewed,reviewpassed,reviewed,reviewpassed,changed,closed{2}'); +$action->extra->range('{12},1{10},{2},1{2},Pass,pass|draft,Pass,pass|draft,Pass,pass|draft,Pass,pass|draft,{1},Done|active{2}'); +$action->vision->range('lite'); +$action->gen(37); + +$projectID = array('projectID' => '1'); +$tester = new switchTab(); +$tester->login(); + +r($tester->switchTab($projectID, 'allTab', '12')) && p('message,status') && e('全部Tab下数据显示正确,SUCCESS');//检查全部Tab +r($tester->switchTab($projectID, 'openTab', '10')) && p('message,status') && e('未关闭Tab下数据显示正确,SUCCESS');//检查未关闭Tab +r($tester->switchTab($projectID, 'draftTab', '2')) && p('message,status') && e('草稿Tab下数据显示正确,SUCCESS');//检查草稿Tab +r($tester->switchTab($projectID, 'reviewingTab', '6')) && p('message,status') && e('评审中Tab下数据显示正确,SUCCESS');//检查评审中Tab +r($tester->switchTab($projectID, 'changingTab', '1')) && p('message,status') && e('变更中Tab下数据显示正确,SUCCESS');//检查变更中Tab + +$tester->closeBrowser(); diff --git a/module/release/model.php b/module/release/model.php index fc260734ec..7b640a808c 100755 --- a/module/release/model.php +++ b/module/release/model.php @@ -145,7 +145,7 @@ class releaseModel extends model * @access public * @return object[] */ - public function getList(int $productID, string|int $branch = 'all', string $type = 'all', string $orderBy = 't1.date_desc', string $releaseQuery = '', object $pager = null): array + public function getList(int $productID, string|int $branch = 'all', string $type = 'all', string $orderBy = 't1.date_desc', string $releaseQuery = '', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getReleases(); @@ -1194,7 +1194,7 @@ class releaseModel extends model * @access public * @return array */ - public function getStoryList(string $storyIdList, string|int $branch, string $orderBy = '', object $pager = null): array + public function getStoryList(string $storyIdList, string|int $branch, string $orderBy = '', ?object $pager = null): array { $stories = $this->dao->select("t1.*,t2.id as buildID, t2.name as buildName, IF(t1.`pri` = 0, {$this->config->maxPriValue}, t1.`pri`) as priOrder")->from(TABLE_STORY)->alias('t1') ->leftJoin(TABLE_BUILD)->alias('t2')->on("FIND_IN_SET(t1.id, t2.stories)") @@ -1232,7 +1232,7 @@ class releaseModel extends model * @access public * @return array */ - public function getBugList(string $bugIdList, string $orderBy = '', object $pager = null, string $type = 'linked'): array + public function getBugList(string $bugIdList, string $orderBy = '', ?object $pager = null, string $type = 'linked'): array { $bugs = array(); diff --git a/module/repo/control.php b/module/repo/control.php index d9c2823a15..76699ad6fa 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -1917,6 +1917,7 @@ class repo extends control * * @param int $repoID * @param int $objectID + * @param string $label * @param string $keyword * @param string $orderBy * @param int $recTotal @@ -1925,7 +1926,7 @@ class repo extends control * @access public * @return void */ - public function browseBranch(int $repoID, int $objectID = 0, string $keyword = '', string $orderBy = 'date_desc', int $recTotal = 0, int $recPerPage = 20, int $pageID = 1) + public function browseBranch(int $repoID, int $objectID = 0, string $label = 'all', string $keyword = '', string $orderBy = 'date_desc', int $recTotal = 0, int $recPerPage = 20, int $pageID = 1) { $repoID = $this->repoZen->processRepoID($repoID, $objectID); $this->commonAction($repoID, $objectID); @@ -1937,8 +1938,8 @@ class repo extends control $keyword = htmlspecialchars(base64_decode($keyword)); $this->scm->setEngine($repo); - $branchList = $this->scm->branch($keyword ? $keyword : 'all', $orderBy, $recPerPage, $pageID); - if(count($branchList) == 0 && $pageID != 1) $this->locate(inLink('browseBranch', "repoID=$repoID&objectID=$objectID&keyword=$keyword&orderBy=$orderBy&recTotal=0&recPerPage=$recPerPage&pageID=1")); + $branchList = $this->scm->branch($keyword ? $keyword : 'all', $orderBy, $recPerPage, $pageID, $label); + if(count($branchList) == 0 && $pageID != 1) $this->locate(inLink('browseBranch', "repoID=$repoID&objectID=$objectID&label=$label&keyword=$keyword&orderBy=$orderBy&recTotal=0&recPerPage=$recPerPage&pageID=1")); $this->app->loadClass('pager', true); $pager = new pager($recTotal, $recPerPage, $pageID); @@ -1976,6 +1977,7 @@ class repo extends control $this->view->branchList = $branchList; $this->view->keyword = base64_encode($keyword); $this->view->users = $this->user->getPairs('noletter'); + $this->view->label = $label; $this->display(); } diff --git a/module/repo/model.php b/module/repo/model.php index b2e43356fb..e37d17658b 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -96,7 +96,7 @@ class repoModel extends model * @access public * @return array */ - public function getList(int $projectID = 0, string $SCM = '', string $orderBy = 'id_desc', object $pager = null, bool $getCodePath = false, bool $lastSubmitTime = false, string $type = '', int $param = 0): array + public function getList(int $projectID = 0, string $SCM = '', string $orderBy = 'id_desc', ?object $pager = null, bool $getCodePath = false, bool $lastSubmitTime = false, string $type = '', int $param = 0): array { $repoQuery = $type == 'bySearch' ? $this->repoTao->processSearchQuery($param) : ''; $repos = $this->getListByCondition($repoQuery, $SCM, $orderBy, $pager); @@ -844,7 +844,7 @@ class repoModel extends model * @access public * @return array */ - public function getCommits(object $repo, string $entry, string $revision = 'HEAD', string $type = 'dir', object|null $pager = null, string $begin = '', string $end = '', object|string|null $query = null): array + public function getCommits(object $repo, string $entry, string $revision = 'HEAD', string $type = 'dir', ?object $pager = null, string $begin = '', string $end = '', mixed $query = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCommits(); @@ -2105,7 +2105,7 @@ class repoModel extends model * @access public * @return array */ - public function getFileTree(object $repo, string $branch = '', array $diffs = null): array + public function getFileTree(object $repo, string $branch = '', ?array $diffs = null): array { set_time_limit(0); $allFiles = array(); @@ -2964,7 +2964,7 @@ class repoModel extends model * @access public * @return array */ - public function getListByCondition(string $repoQuery, string $SCM, string $orderBy = 'id_desc', object $pager = null): array + public function getListByCondition(string $repoQuery, string $SCM, string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_REPO) ->where('deleted')->eq('0') diff --git a/module/repo/test/model/saverecord.php b/module/repo/test/model/saverecord.php index 5249ff1d37..103c5c816a 100755 --- a/module/repo/test/model/saverecord.php +++ b/module/repo/test/model/saverecord.php @@ -19,6 +19,7 @@ cid=1 */ zenData('task')->gen(10); +zenData('action')->gen(10); zenData('repo')->loadYaml('repo')->gen(4); $taskID = 1; diff --git a/module/repo/ui/browsebranch.html.php b/module/repo/ui/browsebranch.html.php index 25b03008b3..4ef1322760 100644 --- a/module/repo/ui/browsebranch.html.php +++ b/module/repo/ui/browsebranch.html.php @@ -10,7 +10,7 @@ declare(strict_types=1); */ namespace zin; -jsVar('searchUrl', createLink('repo', 'browsebranch', "repoID={$repo->id}&objectID={$objectID}&keyword=%s")); +jsVar('searchUrl', createLink('repo', 'browsebranch', "repoID={$repo->id}&objectID={$objectID}&label={$label}&keyword=%s")); $module = $app->tab == 'devops' ? 'repo' : $app->tab; dropmenu ( @@ -30,7 +30,7 @@ featureBar ) : null, div ( - setClass('flex'), + setClass('flex branch-search'), input ( set::placeholder(sprintf($lang->repo->searchTips, strtolower($lang->repo->branch))), @@ -52,6 +52,7 @@ $branchList = initTableData($branchList, $config->repo->dtable->branch->fieldLis $urlParams = array( 'repoID' => $repo->id, 'objectID' => $objectID, + 'label' => $label, 'keyword' => urlencode($keyword), 'orderBy' => '{name}_{sortType}', 'recTotal' => $pager->recTotal, diff --git a/module/report/test/model/createsinglejson.php b/module/report/test/model/createsinglejson.php index 9ea7f71f4f..1f7c3cc9be 100755 --- a/module/report/test/model/createsinglejson.php +++ b/module/report/test/model/createsinglejson.php @@ -20,7 +20,7 @@ cid=1 - 测试获取执行 102 的json数据 @0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2 -- 测试获取执行 103 的json数据 @0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2 +- 测试获取执行 103 的json数据 @0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2 - 测试获取执行 104 的json数据 @0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2 @@ -34,6 +34,6 @@ $executionID = array(101, 102, 103, 104, 105); r($report->createSingleJSONTest($executionID[0])) && p() && e('0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2'); // 测试获取执行 101 的json数据 r($report->createSingleJSONTest($executionID[1])) && p() && e('0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2'); // 测试获取执行 102 的json数据 -r($report->createSingleJSONTest($executionID[2])) && p() && e('0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2'); // 测试获取执行 103 的json数据 +r($report->createSingleJSONTest($executionID[2])) && p() && e('0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2'); // 测试获取执行 103 的json数据 r($report->createSingleJSONTest($executionID[3])) && p() && e('0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2'); // 测试获取执行 104 的json数据 r($report->createSingleJSONTest($executionID[4])) && p() && e('0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2'); // 测试获取执行 105 的json数据 diff --git a/module/score/model.php b/module/score/model.php index 6e42db9e0a..e44c76bb0c 100644 --- a/module/score/model.php +++ b/module/score/model.php @@ -19,7 +19,7 @@ class scoreModel extends model * @access public * @return array */ - public function getListByAccount(string $account, object $pager = null): array + public function getListByAccount(string $account, ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_SCORE)->where('account')->eq($account)->orderBy('time_desc, id_desc')->page($pager)->fetchAll(); } diff --git a/module/screen/model.php b/module/screen/model.php index f20a5b09f7..8513f7dda3 100644 --- a/module/screen/model.php +++ b/module/screen/model.php @@ -2052,8 +2052,7 @@ class screenModel extends model $component->option->dataset = $doneData; if(!isset($component->option->series) || !is_array($component->option->series)) $component->option->series = $option->series; if(!isset($component->option)) $component->option = $option; - $component->option->series[0]->data[0]->value = array($doneData); - $component->option->series[0]->data[1]->value = array(1 - $doneData); + $component->option->series[0]->data = array((object)array('value'=> $doneData), (object)array('value'=> 1 - $doneData)); } return $this->setComponentDefaults($component); diff --git a/module/screen/test/lib/screen.unittest.class.php b/module/screen/test/lib/screen.unittest.class.php index 3757211016..fc04a05b43 100755 --- a/module/screen/test/lib/screen.unittest.class.php +++ b/module/screen/test/lib/screen.unittest.class.php @@ -84,10 +84,11 @@ class screenTest foreach($screenList as $screen) { $componentList_ = array(); - if(!in_array($screen->id, array(5, 6, 8))) + if(!in_array($screen->id, array(3, 5, 6, 8))) { - if(!$bultion) $componentList_ = json_decode($screen->scheme); + $scheme = json_decode($screen->scheme); + $componentList_ = $scheme->componentList; } else { @@ -194,6 +195,7 @@ class screenTest */ public function getChartOptionTest(object $chart, object $component): void { + $component->option->dataset = new stdclass(); $this->objectModel->getChartOption($chart, $component, array()); } diff --git a/module/screen/test/model/buildbarchart.php b/module/screen/test/model/buildbarchart.php index b563ac0ac3..fc94f56b89 100755 --- a/module/screen/test/model/buildbarchart.php +++ b/module/screen/test/model/buildbarchart.php @@ -22,28 +22,17 @@ zenData('bug')->loadYaml('bug')->gen(15); $screen = new screenTest(); -$components = $screen->getAllComponent(); - global $tester; -$componentList = array(); -foreach($components as $component) -{ - if(isset($component->sourceID) && $component->sourceID) - { - $chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq($component->sourceID)->fetch(); +$chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq(1015)->fetch(); - if(!isset($chart->type)) continue; - if(isset($chart->settings) && isset($chart->sql)) - { - if(!isset($componentList['bar']) && $chart->type == 'bar') - { - $componentList['bar'] = $component; - break; - } - } - } -} +$component = json_decode($tester->config->screen->chartConfig['cluBarY']); +$component->option = new stdClass(); +$component->option->dataset = new stdClass(); -isset($componentList['bar']) && $screen->buildBarChart($componentList['bar'], $chart); -$bar = $componentList['bar'] ?? null; -r($bar && $bar->option->dataset->dimensions[0] == '对象类型' && $bar->option->dataset->dimensions[1] == '创建' && $bar->option->dataset->dimensions[2] == '编辑') && p('') && e('1'); //判断生成的柱状图表数据是否正确。 \ No newline at end of file +$component = $screen->buildBarChart($component, $chart); + +r($component->chartKey) && p('') && e('VBarCrossrange'); // 测试组件类型 +r(isset($component->option->dataset->dimensions)) && p('') && e('1'); // 判断dimensions存在 +r(isset($component->option->dataset->source)) && p('') && e('1'); // 判断source存在 +r(is_array($component->option->dataset->dimensions)) && p('') && e('1'); // 判断dimensions是数组 +r(is_array($component->option->dataset->source)) && p('') && e('1'); // 判断source是数组 \ No newline at end of file diff --git a/module/screen/test/model/buildcomponentlist.php b/module/screen/test/model/buildcomponentlist.php index 3f2ec78fcc..c818b472da 100755 --- a/module/screen/test/model/buildcomponentlist.php +++ b/module/screen/test/model/buildcomponentlist.php @@ -15,8 +15,14 @@ cid=1 $screen = new screenTest(); -$componentList = $screen->getAllComponent(array('type' => 'line')); +$screenData = $tester->dao->select('*')->from(TABLE_SCREEN)->where('id')->eq(1)->fetch(); +$scheme = json_decode($screenData->scheme); +$componentList = $scheme->componentList; -$list = array(current($componentList), ''); +r(count($componentList)) && p('') && e('44'); //测试组件列表数量是否正确。 -r(count($screen->buildComponentListTest($list))) && p('') && e('1'); //测试带有空元素的情况下,生成的组件列表数量是否正确。 \ No newline at end of file +$component = $componentList[0]; +r($component->chartConfig->chartKey) && p('') && e('group'); //测试组件类型是否正确。 +r($component->id) && p('') && e('5scfjzqsbzo000'); //测试组件id是否正确。 +r($component->isGroup) && p('') && e('1'); //测试组件是否为组。 +r(isset($component->groupList)) && p('') && e('1'); //测试组件是否为组。 \ No newline at end of file diff --git a/module/screen/test/model/buildpiechart.php b/module/screen/test/model/buildpiechart.php index f65862b60d..f7c83c5d03 100755 --- a/module/screen/test/model/buildpiechart.php +++ b/module/screen/test/model/buildpiechart.php @@ -32,32 +32,17 @@ zenData('user')->gen(10); $screen = new screenTest(); -$components = $screen->getAllComponent(); +global $tester; +$chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq(1010)->fetch(); -$componentList = array(); -foreach($components as $component) -{ - if(isset($component->sourceID) && $component->sourceID) - { - $chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq($component->sourceID)->fetch(); +$component = json_decode($tester->config->screen->chartConfig['pie']); +$component->option = new stdClass(); +$component->option->dataset = new stdClass(); - if(!isset($chart->type)) continue; - if(isset($chart->settings) && isset($chart->sql)) - { - if(!isset($componentList['pie']) && $chart->type == 'pie') - { - if($chart->builtin !== 0) - { - $componentList['pie'] = $component; - break; - } - } - } - } -} +$component = $screen->buildPieChart($component, $chart); -isset($componentList['pie']) && $screen->buildPieChart($componentList['pie'], $chart); -$pie = $componentList['pie'] ?? null; - -r($pie->option->dataset->dimensions) && p('0,1') && e('状态,id'); //检查生成的饼图表头信息是否正确 -r($pie->option->dataset->source) && p('0:状态,id;1:状态,id;2:状态,id;3:状态,id') && e('未设置,8;未开始,4;进行中,4;已完成,4'); //检查生成的饼图数据是否正确 \ No newline at end of file +r($component->chartKey) && p('') && e('VPieCommon'); // 测试组件类型 +r(isset($component->option->dataset->dimensions)) && p('') && e('1'); // 判断dimensions存在 +r(isset($component->option->dataset->source)) && p('') && e('1'); // 判断source存在 +r(is_array($component->option->dataset->dimensions)) && p('') && e('1'); // 判断dimensions是数组 +r(is_array($component->option->dataset->source)) && p('') && e('1'); // 判断source是数组 \ No newline at end of file diff --git a/module/screen/test/model/buildpiecirclechart.php b/module/screen/test/model/buildpiecirclechart.php index f80e4bf5b7..582520760b 100755 --- a/module/screen/test/model/buildpiecirclechart.php +++ b/module/screen/test/model/buildpiecirclechart.php @@ -8,7 +8,11 @@ title=测试 screenModel->buildPieCircleChart(); timeout=0 cid=1 -- 判断生成的环形图表数据是否正确。 @1 +- 测试组件类型 @VPieCircle +- 测试dataset数据 @1 +- 测试series数据 @1 +- 测试series数据 @pie +- 测试series数据 @70% */ @@ -22,30 +26,16 @@ zenData('bug')->loadYaml('bug')->gen(15); $screen = new screenTest(); -$components = $screen->getAllComponent(); - global $tester; -$componentList = array(); -foreach($components as $component) -{ - if(isset($component->sourceID) && $component->sourceID) - { - $chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq($component->sourceID)->fetch(); +$chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq(1031)->fetch(); - if(!isset($chart->type)) continue; - if(isset($chart->settings) && isset($chart->sql)) - { - if(!isset($componentList['piecircle']) && $chart->type == 'piecircle') - { - $componentList['piecircle'] = $component; - break; - } - } - } -} +$component = json_decode($tester->config->screen->chartConfig['piecircle']); +$component->option = (object)array('dataset' => 0); -$component = $componentList['piecircle']; -$chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq($componentList['piecircle']->sourceID)->fetch(); -isset($componentList['piecircle']) && $screen->buildPieCircleChart($componentList['piecircle'], $chart); -$piecircle = $componentList['piecircle'] ?? null; -r($piecircle && $piecircle->option->dataset == '1') && p('') && e('1'); //判断生成的环形图表数据是否正确。 \ No newline at end of file +$component = $screen->buildPieCircleChart($component, $chart); + +r($component->chartKey) && p('') && e('VPieCircle'); // 测试组件类型 +r($component->option->dataset) && p('') && e('1'); // 测试dataset数据 +r(is_array($component->option->series)) && p('') && e('1'); // 测试series数据 +r($component->option->series[0]->type) && p('') && e('pie'); // 测试series数据 +r($component->option->series[0]->radius) && p('') && e('70%'); // 测试series数据 \ No newline at end of file diff --git a/module/screen/test/model/buildradarchart.php b/module/screen/test/model/buildradarchart.php index 01293b8335..251c9adec6 100755 --- a/module/screen/test/model/buildradarchart.php +++ b/module/screen/test/model/buildradarchart.php @@ -27,32 +27,25 @@ zenData('bug')->loadYaml('bug')->gen(15); $screen = new screenTest(); -$components = $screen->getAllComponent(); - global $tester; -$componentList = array(); -foreach($components as $component) -{ - if(isset($component->sourceID) && $component->sourceID) - { - $chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq($component->sourceID)->fetch(); +$chart = $tester->dao->select('*')->from(TABLE_CHART)->where('id')->eq(1007)->fetch(); - if(!isset($chart->type)) continue; - if(isset($chart->settings) && isset($chart->sql)) - { - if(!isset($componentList['radar']) && $chart->type == 'radar') - { - $componentList['radar'] = $component; - break; - } - } - } -} +$component = json_decode($tester->config->screen->chartConfig['radar']); +$component->option = new stdClass(); +$component->option->dataset = new stdClass(); +$component->option->radar = new stdClass(); +$component->option->series = array(); -isset($componentList['radar']) && $screen->buildRadarChart($componentList['radar'], $chart); -$radar = $componentList['radar'] ?? null; +$component->option->series[0] = new stdClass(); +$component->option->series[0]->data = array(new stdClass()); -r($radar->chartConfig->key) && p('') && e('Radar'); // 测试组件的key -r($radar->option->series[0]) && p('name,type') && e('radar,radar'); // 测试series的name和type -r($radar->option->radar) && p('shape') && e('polygon'); // 测试雷达图的shape -r(isset($radar->option->radar->indicator)) && p('') && e('1'); // 测试雷达图存在数据 +$component = $screen->buildRadarChart($component, $chart); + +r($component->chartKey) && p('') && e('VRadar'); // 测试组件类型 +r(isset($component->option->dataset->radarIndicator)) && p('') && e('1'); // 判断radarIndicator存在 +r(isset($component->option->radar->indicator)) && p('') && e('1'); // 判断indicator存在 + +$radarIndicator = $component->option->dataset->radarIndicator; + +r($radarIndicator[0]) && p('name,max') && e('产品管理,0'); // 判断radarIndicator[0]的name和max +r($radarIndicator[1]) && p('name,max') && e('项目管理,0'); // 判断radarIndicator[1]的name和max diff --git a/module/screen/test/model/genchartdata.php b/module/screen/test/model/genchartdata.php index 4ea39399c4..e322f71c4d 100755 --- a/module/screen/test/model/genchartdata.php +++ b/module/screen/test/model/genchartdata.php @@ -27,7 +27,7 @@ include dirname(__FILE__, 2) . '/lib/screen.unittest.class.php'; zenData('screen')->gen(0); $screenTest = new screenTest(); -$screenIDList = array(1, 5, 8); +$screenIDList = array(1, 2, 8); $screenList = array(); foreach($screenIDList as $screenID) @@ -46,5 +46,5 @@ $componentList = $schema->componentList; r($editCanvasConfig) && p('width,height') && e('1300, 3267'); // 测试id为1的大屏,宽度和高度。 r($componentList) && p('0:id;43:id') && e('5scfjzqsbzo000;1j55da3c41vk00'); -list($schmea, $filter) = $screenTest->genChartDataTest($screenList[5], $yearList[1], 0, $deptList[1], $accountList[1]); +list($schmea, $filter) = $screenTest->genChartDataTest($screenList[2], $yearList[1], 0, $deptList[1], $accountList[1]); r($filter) && p('year,dept,account') && e('2022,1,admin'); //测试传入的过滤参数是否正常赋值。 diff --git a/module/screen/test/model/getbarchartoption.php b/module/screen/test/model/getbarchartoption.php index 61d3bd9e78..2278c33804 100755 --- a/module/screen/test/model/getbarchartoption.php +++ b/module/screen/test/model/getbarchartoption.php @@ -46,6 +46,7 @@ $filter5 = array('type' => 'stackedBar'); $filter6 = array('type' => 'bar'); list($component2, $chart2) = getComponetAndChart($screen, $filter2); +$component2->option->dataset = (object)$component2->option->dataset; $screen->getBarChartOption($component2, $chart2); r(isset($component2) && $component2->option->dataset && $component2->option->dataset->dimensions[0] == 'name' && count($component2->option->dataset->source) == 5) && p('') && e('1'); //测试type为cluBarY的图表是否显示正确,生成的指标项和数据项是否正确。 @@ -53,13 +54,15 @@ list($component3, $chart3) = getComponetAndChart($screen, $filter3); r(is_null($component3) || is_null($chart3)) && p('') && e(1); //测试type为stackedBarY的图表是否显示正确,由于目前系统里没有这种类型的图表,故不作展示。 list($component4, $chart4) = getComponetAndChart($screen, $filter4); +$component4->option->dataset = (object)$component4->option->dataset; $screen->getBarChartOption($component4, $chart4); r(isset($component4->option->dataset->dimensions[0]) && $component4->option->dataset->dimensions[0] == 'project' && count($component4->option->dataset->source) == 5 ) && p('') && e(1); //测试type为cluBarX的图表是否显示正确,生成的指标项和数据项是否正确。 list($component5, $chart5) = getComponetAndChart($screen, $filter5); +$component5->option->dataset = (object)$component5->option->dataset; $screen->getBarChartOption($component5, $chart5); $dataset = isset($component5) && $component5->option->dataset ? $component5->option->dataset : null; r($dataset && $dataset->dimensions[0] == '年份' && count($dataset->source) >= 1) && p('') && e(1); //测试type为stackedBar的图表是否显示正确,生成的指标项和数据项是否正确。 list($component6, $chart6) = getComponetAndChart($screen, $filter6); -r(is_null($component6) && is_null($chart6)) && p('') && e(1); //测试type为bar的图表是否显示正确,由于目前系统里没有这种类型的图表,故不作展示。 \ No newline at end of file +r(is_null($component6) && is_null($chart6)) && p('') && e(1); //测试type为bar的图表是否显示正确,由于目前系统里没有这种类型的图表,故不作展示。 diff --git a/module/screen/test/model/getchartoption.php b/module/screen/test/model/getchartoption.php index 55bbbef466..6580ee042e 100755 --- a/module/screen/test/model/getchartoption.php +++ b/module/screen/test/model/getchartoption.php @@ -54,7 +54,6 @@ $filter3 = array('type' => 'stackedBarY'); $filter4 = array('type' => 'cluBarX'); $filter5 = array('type' => 'stackedBar'); $filter6 = array('type' => 'bar'); -$filter7 = array('type' => 'piecircle'); $filter8 = array('type' => 'pie'); $filter9 = array('type' => 'table'); $filter10 = array('type' => 'waterpolo'); @@ -90,15 +89,7 @@ $dataset = isset($component5) && $component5->option->dataset ? $component5->opt r($dataset && $dataset->dimensions[0] == '年份' && count($dataset->source) >= 1) && p('') && e(1); // 测试type为stackedBar的图表是否显示正确,生成的指标项和数据项是否正确。 list($component6, $chart6) = getComponetAndChart($screen, $filter6); -r(is_null($component6) && is_null($chart6)) && p('') && e(1); //测试type为bar的图表是否显示正确,由于目前系统里没有这种类型的图表,故不作展示。 - -list($component7, $chart7) = getComponetAndChart($screen, $filter7); -$screen->getChartOptionTest($chart7, $component7); -r( - isset($component7->option->series[0]->data[0]->value[0]) - && isset($component7->option->dataset) - && $component7->option->dataset === $component7->option->series[0]->data[0]->value[0] -) && p('') && e(1); // 测试type为piecircle的图表是否显示正确,生成的指标项和数据项是否正确。 +r(is_null($component6) && is_null($chart6)) && p('') && e(1); //测试type为bar的图表是否显示正确,由于目前系统里没有这种类型的图表,故不作展示。 // 测试type为piecircle的图表是否显示正确,生成的指标项和数据项是否正确。 list($component8, $chart8) = getComponetAndChart($screen, $filter8); $screen->getChartOptionTest($chart8, $component8); diff --git a/module/screen/test/model/getlinechartoption.php b/module/screen/test/model/getlinechartoption.php index aecb987ba4..f6349103f4 100755 --- a/module/screen/test/model/getlinechartoption.php +++ b/module/screen/test/model/getlinechartoption.php @@ -33,6 +33,7 @@ function getComponetAndChart($screen, $filters = array()) $type = $componet->chartConfig->package == 'Tables' ? 'pivot' : 'chart'; $table = $type == 'chart' ? TABLE_CHART : TABLE_PIVOT; $chart = $tester->dao->select('*')->from($table)->where('id')->eq($componet->sourceID)->fetch(); + $componet->option->dataset = new stdclass(); if($chart) return array($componet, $chart); } return array(null, null); diff --git a/module/screen/test/model/getlist.php b/module/screen/test/model/getlist.php index 785887fd70..a5818ee9fb 100755 --- a/module/screen/test/model/getlist.php +++ b/module/screen/test/model/getlist.php @@ -21,7 +21,7 @@ $screen = new screenTest(); $dimension = array(0, 1, 2, 3, 10000); r(count($screen->getListTest($dimension[0]))) && p('') && e(0); //测试获取dimension=0的数据 -r(count($screen->getListTest($dimension[1]))) && p('') && e(5); //测试获取dimension=1的数据 +r(count($screen->getListTest($dimension[1]))) && p('') && e(6); //测试获取dimension=1的数据 r(count($screen->getListTest($dimension[2]))) && p('') && e(2); //测试获取dimension=2的数据 r(count($screen->getListTest($dimension[3]))) && p('') && e(1); //测试获取dimension=3的数据 r(count($screen->getListTest($dimension[4]))) && p('') && e(0); //测试获取dimension=10000的数据 \ No newline at end of file diff --git a/module/screen/test/model/getpiechartoption.php b/module/screen/test/model/getpiechartoption.php index 5a82cbdb20..a5fc4d17f8 100755 --- a/module/screen/test/model/getpiechartoption.php +++ b/module/screen/test/model/getpiechartoption.php @@ -31,6 +31,7 @@ function getComponetAndChart($screen, $filters = array()) $type = $componet->chartConfig->package == 'Tables' ? 'pivot' : 'chart'; $table = $type == 'chart' ? TABLE_CHART : TABLE_PIVOT; $chart = $tester->dao->select('*')->from($table)->where('id')->eq($componet->sourceID)->fetch(); + $componet->option->dataset = new stdclass(); if($chart) return array($componet, $chart); } return array(null, null); diff --git a/module/search/control.php b/module/search/control.php index d52d3d9feb..13a6463962 100644 --- a/module/search/control.php +++ b/module/search/control.php @@ -34,9 +34,21 @@ class search extends control $module = empty($module) ? $this->session->searchParams['module'] : $module; $searchParams = $module . 'searchParams'; $searchForm = $module . 'Form'; + $funcName = $_SESSION[$searchParams]['funcName'] ?? ''; + $funcArgs = $_SESSION[$searchParams]['funcArgs'] ?? []; - $fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields; - $params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params; + if($funcName) + { + $funcArgs[] = true; // 处理选项列表。 + $this->loadModel($module)->$funcName(...$funcArgs); + $fields = empty($fields) ? $this->config->$module->search['fields'] : $fields; + $params = empty($params) ? $this->config->$module->search['params'] : $params; + } + else + { + $fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields; + $params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params; + } $_SESSION['searchParams']['module'] = $module; if(empty($_SESSION[$searchForm])) $this->search->initSession($module, $fields, $params); @@ -82,9 +94,21 @@ class search extends control $module = empty($module) ? $this->session->searchParams['module'] : $module; $searchParams = $module . 'searchParams'; $searchForm = $module . 'Form'; + $funcName = $_SESSION[$searchParams]['funcName'] ?? ''; + $funcArgs = $_SESSION[$searchParams]['funcArgs'] ?? []; - $fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields; - $params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params; + if($funcName) + { + $funcArgs[] = true; // 处理选项列表。 + $this->loadModel($module)->$funcName(...$funcArgs); + $fields = empty($fields) ? $this->config->$module->search['fields'] : $fields; + $params = empty($params) ? $this->config->$module->search['params'] : $params; + } + else + { + $fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields; + $params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params; + } $_SESSION['searchParams']['module'] = $module; if(empty($_SESSION[$searchForm])) $this->search->initOldSession($module, $fields, $params); diff --git a/module/search/model.php b/module/search/model.php index 556abc7ba2..83539f10c7 100644 --- a/module/search/model.php +++ b/module/search/model.php @@ -28,13 +28,26 @@ class searchModel extends model if($this->config->edition != 'open') $searchConfig = $this->searchTao->processBuildinFields($module, $searchConfig); - $searchParams['module'] = $searchConfig['module']; - $searchParams['searchFields'] = json_encode($searchConfig['fields']); - $searchParams['fieldParams'] = json_encode($searchConfig['params']); - $searchParams['actionURL'] = $searchConfig['actionURL']; - $searchParams['style'] = zget($searchConfig, 'style', 'full'); - $searchParams['onMenuBar'] = zget($searchConfig, 'onMenuBar', 'no'); - $searchParams['queryID'] = isset($searchConfig['queryID']) ? $searchConfig['queryID'] : 0; + $searchParams['module'] = $searchConfig['module']; + $searchParams['actionURL'] = $searchConfig['actionURL']; + $searchParams['style'] = zget($searchConfig, 'style', 'full'); + $searchParams['onMenuBar'] = zget($searchConfig, 'onMenuBar', 'no'); + $searchParams['queryID'] = isset($searchConfig['queryID']) ? $searchConfig['queryID'] : 0; + + $funcArgs = func_get_args(); + $funcName = $funcArgs[1] ?? ''; + unset($funcArgs[0], $funcArgs[1]); + + if($funcName) + { + $searchParams['funcName'] = $funcName; + $searchParams['funcArgs'] = $funcArgs; + } + else + { + $searchParams['searchFields'] = json_encode($searchConfig['fields']); + $searchParams['fieldParams'] = json_encode($searchConfig['params']); + } $this->session->set($module . 'searchParams', $searchParams); } @@ -97,11 +110,23 @@ class searchModel extends model /* Init vars. */ $module = $this->post->module; $searchParams = $module . 'searchParams'; - $searchFields = json_decode($_SESSION[$searchParams]['searchFields']); - $fieldParams = json_decode($_SESSION[$searchParams]['fieldParams']); $groupItems = $this->config->search->groupItems; $groupAndOr = strtoupper($this->post->groupAndOr); if($groupAndOr != 'AND' && $groupAndOr != 'OR') $groupAndOr = 'AND'; + $funcName = $_SESSION[$searchParams]['funcName'] ?? ''; + $funcArgs = $_SESSION[$searchParams]['funcArgs'] ?? []; + if($funcName) + { + $funcArgs[] = true; // 处理选项列表。 + $this->loadModel($module)->$funcName(...$funcArgs); + $searchFields = json_decode(json_encode($this->config->$module->search['fields'])); + $fieldParams = json_decode(json_encode($this->config->$module->search['params'])); + } + else + { + $searchFields = json_decode($_SESSION[$searchParams]['searchFields']); + $fieldParams = json_decode($_SESSION[$searchParams]['fieldParams']); + } $queryForm = $this->searchTao->initSession($module, $searchFields, $fieldParams); @@ -598,7 +623,7 @@ class searchModel extends model * @access public * @return array */ - public function getList(string $keywords, array|string $type, object $pager = null): array + public function getList(string $keywords, array|string $type, ?object $pager = null): array { list($words, $againstCond, $likeCondition) = $this->searchTao->getSqlParams($keywords); $allowedObjects = $this->searchTao->getAllowedObjects($type); diff --git a/module/serverroom/model.php b/module/serverroom/model.php index 4518bd3676..2779f09d35 100644 --- a/module/serverroom/model.php +++ b/module/serverroom/model.php @@ -22,7 +22,7 @@ class serverroomModel extends model * @access public * @return array */ - public function getList(string $browseType = 'all', int $param = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $browseType = 'all', int $param = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $query = ''; if($browseType == 'bysearch') diff --git a/module/setting/model.php b/module/setting/model.php index f1d807ffcb..a7aab1927e 100644 --- a/module/setting/model.php +++ b/module/setting/model.php @@ -54,6 +54,7 @@ class settingModel extends model if(empty($item)) return false; $item->value = strval($value); + if($item->module == 'feedback') $item->vision = ''; $this->dao->replace(TABLE_CONFIG)->data($item)->exec(); return !dao::isError(); diff --git a/module/setting/test/model/updateversion.php b/module/setting/test/model/updateversion.php index 4767c71c27..04d26eead4 100755 --- a/module/setting/test/model/updateversion.php +++ b/module/setting/test/model/updateversion.php @@ -24,6 +24,9 @@ cid=1 $versionList = array('16.5', 'max3.0', 'max2.0', 'biz6.5', '0'); +global $config; +$config->framework->extensionLevel = 1; + $setting = new settingTest(); r($setting->updateVersionTest($versionList[0])) && p('1:value') && e('16.5'); //测试version值为16.5,添加数据 diff --git a/module/space/model.php b/module/space/model.php index 8655d7d818..a60eff7597 100644 --- a/module/space/model.php +++ b/module/space/model.php @@ -111,7 +111,7 @@ class spaceModel extends model * @access public * @return array */ - public function getSpaceInstances(int $spaceID, string $status = 'all', string $searchName = '', object $pager = null): array + public function getSpaceInstances(int $spaceID, string $status = 'all', string $searchName = '', ?object $pager = null): array { $instances = $this->dao->select('*')->from(TABLE_INSTANCE) ->where('deleted')->eq(0) diff --git a/module/stakeholder/control.php b/module/stakeholder/control.php index 739cd62a49..58dec74a21 100644 --- a/module/stakeholder/control.php +++ b/module/stakeholder/control.php @@ -18,7 +18,8 @@ class stakeholder extends control public function browse(int $projectID, string $browseType = 'all', string $orderBy = 'id_desc', int $recTotal = 0, int $recPerPage = 20, int $pageID = 1) { $this->app->loadLang('user'); - $this->loadModel('project')->setMenu($projectID); + $projectID = $this->loadModel('project')->setMenu($projectID); + if(!$projectID) return $this->locate($this->createLink('project', 'browse')); /* Get stake holders list. */ $this->app->loadClass('pager', true); @@ -293,7 +294,7 @@ class stakeholder extends control $stakeholder = $this->stakeholder->getByID($userID); $this->stakeholder->delete(TABLE_STAKEHOLDER, $userID); $project = $this->session->project ? array($this->session->project) : array(); - $this->loadModel('user')->updateUserView($project, 'project'); + $this->loadModel('user')->updateUserView($project, 'project', array($stakeholder->user)); /* Update linked products view. */ if($stakeholder->objectType == 'project' && $stakeholder->objectID) diff --git a/module/stakeholder/model.php b/module/stakeholder/model.php index 0a315f2537..163c920dfd 100644 --- a/module/stakeholder/model.php +++ b/module/stakeholder/model.php @@ -242,7 +242,7 @@ class stakeholderModel extends model * @access public * @return array */ - public function getStakeholders(int $projectID, string $browseType = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function getStakeholders(int $projectID, string $browseType = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t1.*, t2.role, t2.phone, t2.realname as name, t2.email, t2.qq, t2.weixin, t2.nature, t2.analysis, t2.strategy, t3.name as companyName, t4.model as projectModel')->from(TABLE_STAKEHOLDER)->alias('t1') ->leftJoin(TABLE_USER)->alias('t2')->on('t1.user=t2.account') @@ -473,7 +473,7 @@ class stakeholderModel extends model * @access public * @return array */ - public function getExpectList(string $browseType = 'all', int $queryID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getExpectList(string $browseType = 'all', int $queryID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $stakeholderQuery = ''; if($browseType == 'bysearch') diff --git a/module/story/model.php b/module/story/model.php index bb0cc397a6..dc0c769466 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -262,7 +262,7 @@ class storyModel extends model * @access public * @return array */ - public function getExecutionStories(int|array $executionID = 0, int $productID = 0, string $orderBy = 't1.`order`_desc', string $browseType = 'byModule', string $param = '0', string $storyType = 'story', array|string $excludeStories = '', object|null $pager = null): array + public function getExecutionStories(int|array $executionID = 0, int $productID = 0, string $orderBy = 't1.`order`_desc', string $browseType = 'byModule', string $param = '0', string $storyType = 'story', array|string $excludeStories = '', ?object $pager = null): array { if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getExecutionStories(); @@ -352,7 +352,7 @@ class storyModel extends model * @access public * @return void */ - public function batchGetExecutionStories(string $executionIdList = '', int $productID = 0, string $orderBy = 't1.`order`_desc', string $type = 'byModule', string $param = '0', string $storyType = 'story', array|string $excludeStories = '', object|null $pager = null): array + public function batchGetExecutionStories(string $executionIdList = '', int $productID = 0, string $orderBy = 't1.`order`_desc', string $type = 'byModule', string $param = '0', string $storyType = 'story', array|string $excludeStories = '', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getStories(); @@ -445,7 +445,7 @@ class storyModel extends model * @access public * @return array */ - public function getPlanStories(int $planID, string $status = 'all', string $orderBy = 'id_desc', object|null $pager = null): array + public function getPlanStories(int $planID, string $status = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return array(); @@ -1567,7 +1567,7 @@ class storyModel extends model $changes = common::createChanges($oldStory, $story); if($changes) { - $preStatus = $story->status; + $preStatus = $oldStory->status; $isChanged = !empty($story->changedBy) ? true : false; if($preStatus == 'reviewing') $preStatus = $isChanged ? 'changing' : 'draft'; @@ -1716,8 +1716,7 @@ class storyModel extends model if(empty($oldStory)) continue; if($oldStory->branch != BRANCH_MAIN and $plan->branch != BRANCH_MAIN and !in_array($oldStory->branch, explode(',', $plan->branch))) continue; - /* Ignore closed story and story linked to this plan already. */ - if($oldStory->status == 'closed') continue; + /* Ignore story linked to this plan already. */ if(strpos(",{$oldStory->plan},", ",$planID,") !== false) continue; /* Init story and set last edited data. */ @@ -2075,6 +2074,9 @@ class storyModel extends model $actionID = $this->action->create('story', (int)$storyID, $action); $this->action->logHistory($actionID, $changes); } + + $oldStory->stage = $stage; + $this->storyTao->computeParentStage($oldStory); } if($ignoreStories) return sprintf($this->lang->story->ignoreChangeStage, $ignoreStories); @@ -2310,7 +2312,7 @@ class storyModel extends model * @access public * @return array */ - public function getStories2Link(int $storyID, string $browseType = 'bySearch', int $queryID = 0, object $pager = null): array + public function getStories2Link(int $storyID, string $browseType = 'bySearch', int $queryID = 0, ?object $pager = null): array { $story = $this->getById($storyID); $excludes = $this->storyTao->getRelation($storyID, $story->type); @@ -2343,7 +2345,7 @@ class storyModel extends model * @access public * @return array */ - public function getProductStories(string|int|array $productID = 0, array|string|int $branch = 0, array|string $moduleIdList = '', array|string $status = 'all', string $type = 'story', string $orderBy = 'id_desc', bool $hasParent = true, array|string $excludeStories = '', object|null $pager = null): array + public function getProductStories(string|int|array $productID = 0, array|string|int $branch = 0, array|string $moduleIdList = '', array|string $status = 'all', string $type = 'story', string $orderBy = 'id_desc', bool $hasParent = true, array|string $excludeStories = '', ?object $pager = null): array { if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getStories(); $showGrades = isset($this->config->{$type}->showGrades) ? $this->config->{$type}->showGrades : null; @@ -2630,7 +2632,7 @@ class storyModel extends model * @access public * @return array */ - public function getByField(int|array $productID, int|string $branch, string|array $modules, string $fieldName, string $fieldValue, string $type = 'story', string $orderBy = '', object|null $pager = null, string $operator = 'equal'): array + public function getByField(int|array $productID, int|string $branch, string|array $modules, string $fieldName, string $fieldValue, string $type = 'story', string $orderBy = '', ?object $pager = null, string $operator = 'equal'): array { if(!$this->loadModel('common')->checkField(TABLE_STORY, $fieldName) and $fieldName != 'reviewBy' and $fieldName != 'assignedBy') return array(); @@ -2687,7 +2689,7 @@ class storyModel extends model * @access public * @return array */ - public function get2BeClosed(int|array $productID, int|string $branch, string|array $modules, string $type = 'story', string $orderBy = '', object|null $pager = null): array + public function get2BeClosed(int|array $productID, int|string $branch, string|array $modules, string $type = 'story', string $orderBy = '', ?object $pager = null): array { $showGrades = isset($this->config->{$type}->showGrades) ? $this->config->{$type}->showGrades : null; if($showGrades) @@ -2729,7 +2731,7 @@ class storyModel extends model * @access public * @return array */ - public function getBySearch(int|string $productID, int|string $branch = '', int $queryID = 0, string $orderBy = '', int|array $executionID = 0, string $type = 'story', array|string $excludeStories = '', string $excludeStatus = '', object|null $pager = null): array + public function getBySearch(int|string $productID, int|string $branch = '', int $queryID = 0, string $orderBy = '', int|array $executionID = 0, string $type = 'story', array|string $excludeStories = '', string $excludeStatus = '', ?object $pager = null): array { $this->loadModel('product'); $executionID = empty($executionID) ? 0 : $executionID; @@ -2844,7 +2846,7 @@ class storyModel extends model * @access public * @return array */ - public function getBySQL(int|string $productID, string $sql, string $orderBy, object|null $pager = null, string $type = 'story'): array + public function getBySQL(int|string $productID, string $sql, string $orderBy, ?object $pager = null, string $type = 'story'): array { /* Get plans. */ $plans = $this->dao->select('id,title')->from(TABLE_PRODUCTPLAN)->where('deleted')->eq('0') @@ -3102,7 +3104,7 @@ class storyModel extends model * @access public * @return array */ - public function getUserStories(string $account, string $type = 'assignedTo', string $orderBy = 'id_desc', object|null $pager = null, string $storyType = 'story', bool $includeLibStories = true, string|int $shadow = 0, int $productID = 0): array + public function getUserStories(string $account, string $type = 'assignedTo', string $orderBy = 'id_desc', ?object $pager = null, string $storyType = 'story', bool $includeLibStories = true, string|int $shadow = 0, int $productID = 0): array { $sql = $this->dao->select("t1.*, t1.`path`, t1.`plan`, IF(t1.`pri` = 0, {$this->config->maxPriValue}, t1.`pri`) as priOrder, t2.name as productTitle, t2.shadow as shadow")->from(TABLE_STORY)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id'); @@ -3256,7 +3258,7 @@ class storyModel extends model * @access public * @return array */ - public function getZeroCase(int $productID, int $projectID = 0, int $executionID = 0, int $branchID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getZeroCase(int $productID, int $projectID = 0, int $executionID = 0, int $branchID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $casedStories = $this->dao->select('DISTINCT t1.story') ->from(TABLE_CASE)->alias('t1') @@ -4804,7 +4806,7 @@ class storyModel extends model * @access public * @return array */ - public function getExportStories(string $orderBy = 'id_desc', string $storyType = 'story', object|null $postData = null): array + public function getExportStories(string $orderBy = 'id_desc', string $storyType = 'story', ?object $postData = null): array { $orderBy = $orderBy !== 'id_desc' ? 'id_desc' : $orderBy; /* The order of the stories for exporting is disabled. */ @@ -5114,7 +5116,7 @@ class storyModel extends model * @access public * @return array */ - public function buildActionButtonList(object $story, $type = 'browse', object|null $execution = null, $storyType = 'story', array $maxGradeGroup = array()): array + public function buildActionButtonList(object $story, $type = 'browse', ?object $execution = null, $storyType = 'story', array $maxGradeGroup = array()): array { $params = "storyID=$story->id"; @@ -5366,7 +5368,7 @@ class storyModel extends model * @access public * @return array */ - public function getGradeMenu(string $storyType, object $project = null): array + public function getGradeMenu(string $storyType, ?object $project = null): array { $storyTypes = isset($project->storyType) ? explode(',', $project->storyType) : array(); $showEpic = $this->config->enableER && ($storyType == 'epic' || in_array('epic', $storyTypes) || $storyType == 'all'); diff --git a/module/story/tao.php b/module/story/tao.php index e6cba39677..18dbb157e6 100644 --- a/module/story/tao.php +++ b/module/story/tao.php @@ -34,7 +34,7 @@ class storyTao extends storyModel * @access protected * @return array */ - protected function getProjectRequirements(int $productID, int $projectID, object|null $pager = null): array + protected function getProjectRequirements(int $productID, int $projectID, ?object $pager = null): array { return $this->dao->select('t2.*')->from(TABLE_PROJECTSTORY)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on("t1.story = t2.id && t2.type ='requirement'") @@ -382,7 +382,7 @@ class storyTao extends storyModel * @access protected * @return array */ - protected function getExecutionStoriesBySearch(int $executionID, int $queryID, int $productID, string $orderBy, string $storyType = 'story', string $sqlCondition = '', array $excludeStories = array(), object|null $pager = null): array + protected function getExecutionStoriesBySearch(int $executionID, int $queryID, int $productID, string $orderBy, string $storyType = 'story', string $sqlCondition = '', array $excludeStories = array(), ?object $pager = null): array { /* 获取查询条件。 */ $rawModule = $this->app->rawModule; @@ -509,7 +509,7 @@ class storyTao extends storyModel * @access protected * @return int[] */ - protected function fetchExecutionStories(dao $storyDAO, int $productID, string $type, string $branch, string $orderBy, object|null $pager = null): array + protected function fetchExecutionStories(dao $storyDAO, int $productID, string $type, string $branch, string $orderBy, ?object $pager = null): array { if(strpos($orderBy, 'version_') !== false) $orderBy = str_replace('version_', 't2.version_', $orderBy); @@ -539,7 +539,7 @@ class storyTao extends storyModel * @access protected * @return int[] */ - protected function fetchProjectStories(dao $storyDAO, int $productID, string $type, string $branch, array $executionStoryIdList, string $orderBy, object|null $pager = null, object|null $project = null): array + protected function fetchProjectStories(dao $storyDAO, int $productID, string $type, string $branch, array $executionStoryIdList, string $orderBy, ?object $pager = null, ?object $project = null): array { if(strpos($orderBy, 'version_') !== false) $orderBy = str_replace('version_', 't2.version_', $orderBy); @@ -1958,7 +1958,7 @@ class storyTao extends storyModel * @access protected * @return array */ - protected function buildBrowseActionBtnList(object $story, string $params = '', string $storyType = 'story', object $execution = null, array $maxGradeGroup = array()): array + protected function buildBrowseActionBtnList(object $story, string $params = '', string $storyType = 'story', ?object $execution = null, array $maxGradeGroup = array()): array { global $lang; $actions = array(); diff --git a/module/story/test/lib/batchcreateinlite.ui.class.php b/module/story/test/lib/batchcreateinlite.ui.class.php new file mode 100755 index 0000000000..327de6ae1f --- /dev/null +++ b/module/story/test/lib/batchcreateinlite.ui.class.php @@ -0,0 +1,69 @@ +switchVision('lite', 5); + $this->openURL('projectstory', 'story', $project, 'appIframe-project'); + $form = $this->initForm('story', 'batchCreate', $storyUrl, 'appIframe-project'); + $form->wait(2); + //设置表单内容 + if (isset($story->name)) $form->dom->title_0->setValue($story->name); + if (isset($story->reviewer)) $form->dom->reviewerPick->multiPicker($story->reviewer); + $form->dom->btn($this->lang->story->saveDraft)->click(); + $form->wait(2); + return $this->checkBatchCreate($project, $storyUrl, $story, $form); + } + + /** + * 检查批量创建目标的结果 + * Check the result of batch create story + * + * @param array $project + * @param array $storyUrl + * @param object $story + * @param object $form + * + * @return mixed + */ + public function checkBatchCreate($project, $storyUrl, $story, $form) + { + //创建失败时的校验 + if ($this->response('method') == 'batchCreate') + { + if (!isset($story->name) || $story->name == '') + { + $nameTip = $this->lang->story->errorEmptyStory; + return ($form->dom->alertModal('text') == $nameTip) + ? $this->success('目标名称必填提示信息正确') + : $this->failed('目标名称必填提示信息不正确'); + } + if (!isset($story->reviewer) || $story->reviewer == '') + { + $reviewerTip = sprintf($this->lang->error->notempty, $this->lang->story->reviewer); + return ($reviewerTip == $form->dom->reviewerTip->getText()) + ? $this->success('评审人必填提示信息正确') + : $this->failed('评审人必填提示信息不正确'); + } + } + else + { + $storyList = $this->initForm('projectstory', 'story', $project, 'appIframe-project'); + $storyList->dom->search(array("{$this->lang->story->name},=,{$story->name}")); + return ($storyList->dom->firstStory->getText() == $story->name) + ? $this->success('批量创建目标成功') + : $this->failed('批量创建目标失败'); + } + } +} diff --git a/module/story/test/lib/changestoryinlite.ui.class.php b/module/story/test/lib/changestoryinlite.ui.class.php new file mode 100755 index 0000000000..5c4fa656f9 --- /dev/null +++ b/module/story/test/lib/changestoryinlite.ui.class.php @@ -0,0 +1,61 @@ +switchVision('lite'); + $form = $this->initForm('projectstory', 'story', array('projectID' => '1'), 'appIframe-project'); //变更目标前需要进入列表页面,获取项目ID + $form = $this->initForm('story', 'change', array('storyID' => '1', 'from' => 'project'), 'appIframe-project'); + $form->dom->title->setValue($storyName); + if($reviewer != NULL) + { + $form->dom->reviewer->click(); + $form->dom->reviewerAdmin->click(); + } + $form->dom->btn($this->lang->save)->click(); + $form->wait(3); + + //创建失败检查提示是否正确,名称为空和评审人为空提示 + if($this->response('method') != 'view') + { + $form = $this->loadPage('story', 'change'); + if($storyName == '') + { + $srCommon = $form->dom->srCommon->getText(); + $nameTip = sprintf($this->lang->error->notempty, $srCommon); + if($form->dom->alertModal('text') == $nameTip) return $this->success('变更目标页面名称为空提示正确'); + } + + if(empty($reviewer)) + { + $reviwerTip = sprintf($this->lang->error->notempty, $this->lang->story->reviewers); + if($form->dom->alertModal('text') == $reviwerTip) return $this->success('变更目标页面评审人为空提示正确'); + } + return $this->failed('变更目标页面提示信息不正确'); + } + + $viewPage = $this->loadPage('projectstory', 'view'); + if($viewPage->dom->storyName->getText() != $storyName) return $this->failed('目标名称不正确'); + if($viewPage->dom->storyStatus->getText() != $this->lang->story->statusList->reviewing) return $this->failed('目标状态不正确'); + + return $this->success('变更目标成功'); + } +} diff --git a/module/story/test/lib/createstory.ui.class.php b/module/story/test/lib/createstory.ui.class.php index 6d9cb2bddf..b5f8c15024 100755 --- a/module/story/test/lib/createstory.ui.class.php +++ b/module/story/test/lib/createstory.ui.class.php @@ -78,7 +78,7 @@ class createStoryTester extends tester $viewPage = $this->loadPage('story', 'view'); if($viewPage->dom->storyName->getText() != $storyName) return $this->failed('需求名称不正确'); - if($viewPage->dom->status->getText() != '评审中') return $this->failed('需求状态不正确'); + if($viewPage->dom->status->getText() != $this->lang->story->statusList->reviewing) return $this->failed('需求状态不正确'); $viewPage->dom->btn($this->lang->story->legendLifeTime)->click(); if(strpos($viewPage->dom->openedBy->getText() , 'admin') === false) return $this->failed('创建人不正确'); @@ -132,7 +132,7 @@ class createStoryTester extends tester if($this->response('method') != 'browse') { - if($form->dom->alertModal('text') == '已有相同标题的需求或标题为空,请检查输入。') return $this->success('批量创建需求页面名称为空提示正确'); + if($form->dom->alertModal('text') == $this->lang->story->errorEmptyStory) return $this->success('批量创建需求页面名称为空提示正确'); return $this->failed('批量创建需求表单页面提示信息不正确'); } @@ -159,7 +159,7 @@ class createStoryTester extends tester $viewPage = $this->loadPage('story', 'view'); if($viewPage->dom->storyName->getText() != $storyName) return $this->failed('需求名称不正确'); - if($viewPage->dom->status->getText() != '评审中') return $this->failed('需求状态不正确'); + if($viewPage->dom->status->getText() != $this->lang->story->statusList->reviewing) return $this->failed('需求状态不正确'); $viewPage->dom->btn($this->lang->story->legendLifeTime)->click(); if(strpos($viewPage->dom->openedBy->getText() , 'admin') === false) return $this->failed('创建人不正确'); diff --git a/module/story/test/lib/createstoryinlite.ui.class.php b/module/story/test/lib/createstoryinlite.ui.class.php new file mode 100755 index 0000000000..7a4c628ce3 --- /dev/null +++ b/module/story/test/lib/createstoryinlite.ui.class.php @@ -0,0 +1,77 @@ + '1', + 'branch' => '', + 'moduleID' => '0', + 'storyID' => '0', + 'projectID' => '1', + 'bugID' => '0', + 'planID' => '0', + 'todoID' => '0', + 'extra' => '', + 'storyType' => 'story' + ); + + $form = $this->switchVision('lite'); + $form->page->wait(2)->refresh(); + $form = $this->initForm('projectstory', 'story', array('projectID' => '1'), 'appIframe-project'); //由于创建目标后会跳转到记录了session的页面,所以先进入一次对应目标的列表页面 + $form = $this->initForm('story', 'create', $createStoryParam, 'appIframe-project'); //再进入创建目标页面 + $form->dom->titleInLite->setValue($storyName); + if($reviewer != NULL) + { + $form->dom->reviewer->click(); + $form->dom->reviewerAdmin->click(); + } + $form->dom->saveInLite->click(); + $form->wait(1); + + //创建失败检查提示是否正确,名称为空和评审人为空提示 + if($this->response('method') != 'story') + { + $form = $this->loadPage('story', 'create'); + if($storyName == '') + { + $srCommen = $form->dom->srCommen->getText(); + $nameTip = sprintf($this->lang->error->notempty, $srCommen); + if($form->dom->titleTip->getText() == $nameTip) return $this->success('创建目标页面名称为空提示正确'); + } + + if(empty($reviewer)) + { + $reviwerTip = sprintf($this->lang->error->notempty, $this->lang->story->reviewer); + if($form->dom->reviewerTip->getText() == $reviwerTip) return $this->success('创建目标页面评审人为空提示正确'); + } + return $this->failed('创建目标页面提示信息不正确'); + } + + $viewPage = $this->initForm('projectstory', 'view', array('storyID' => '1', 'projectID' => '1'), 'appIframe-project'); + if($viewPage->dom->storyName->getText() != $storyName) return $this->failed('目标名称不正确'); + if($viewPage->dom->storyStatus->getText() != $this->lang->story->statusList->reviewing) return $this->failed('目标状态不正确'); + $viewPage->dom->TargetLife->click(); + if(strpos($viewPage->dom->openedBy->getText() , 'admin') === false) return $this->failed('创建人不正确'); + + return $this->success('创建'.$storyName.'成功'); + } +} diff --git a/module/story/test/model/batchchangeplan.php b/module/story/test/model/batchchangeplan.php index 772ec505ee..910ebf86b6 100755 --- a/module/story/test/model/batchchangeplan.php +++ b/module/story/test/model/batchchangeplan.php @@ -7,8 +7,8 @@ title=测试 storyModel->batchChangePlan(); timeout=0 cid=0 -- 批量修改6个需求的计划,查看被修改计划的需求数量 @4 -- 批量修改6个需求的计划,查看被修改计划的需求数量 @4 +- 批量修改6个需求的计划,查看被修改计划的需求数量 @5 +- 批量修改6个需求的计划,查看被修改计划的需求数量 @6 - 批量修改6个需求的计划,查看需求1修改后的计划ID第1条的plan属性 @10 - 批量修改6个需求的计划,查看需求2修改后的计划ID第2条的plan属性 @10 - 批量修改6个需求的计划,查看需求4修改后的计划ID第4条的plan属性 @2,10 @@ -50,8 +50,8 @@ $stories1 = $story->batchChangePlanTest($storyIdList, 10, 11); $stories2 = $story->batchChangePlanTest($storyIdList, 9); $stories3 = $story->batchChangePlanTest($storyIdList, 5, 9); -r(count($stories1)) && p() && e('4'); // 批量修改6个需求的计划,查看被修改计划的需求数量 -r(count($stories2)) && p() && e('4'); // 批量修改6个需求的计划,查看被修改计划的需求数量 +r(count($stories1)) && p() && e('5'); // 批量修改6个需求的计划,查看被修改计划的需求数量 +r(count($stories2)) && p() && e('6'); // 批量修改6个需求的计划,查看被修改计划的需求数量 r($stories1) && p('1:plan') && e('10'); // 批量修改6个需求的计划,查看需求1修改后的计划ID r($stories1) && p('2:plan') && e('10'); // 批量修改6个需求的计划,查看需求2修改后的计划ID r($stories1) && p('4:plan', '|') && e('2,10'); // 批量修改6个需求的计划,查看需求4修改后的计划ID diff --git a/module/story/test/model/close.php b/module/story/test/model/close.php index 7ea70c804f..cb4b93778a 100755 --- a/module/story/test/model/close.php +++ b/module/story/test/model/close.php @@ -1,5 +1,17 @@ #!/usr/bin/env php status->range('draft,active,changing,active{2}'); +$stories->closedReason->range('{5}'); +$stories->gen(5); + +zenData('storystage')->gen(5); +zenData('project')->gen(5); +zenData('product')->gen(5); /** @@ -23,17 +35,6 @@ cid=0 - 属性duplicateStory @『重复需求』不能为空。 */ -include dirname(__FILE__, 5) . '/test/lib/init.php'; -include dirname(__FILE__, 2) . '/lib/story.unittest.class.php'; -su('admin'); - -$stories = zenData('story'); -$stories->status->range('draft,active,changing,active{2}'); -$stories->closedReason->range('{5}'); -$stories->gen(5); - -zenData('storystage')->gen(5); -zenData('project')->gen(5); $postData1 = new stdclass(); $postData1->status = 'closed'; @@ -62,4 +63,4 @@ $story4 = $story->closeTest(4, $postData4); r($story1) && p('status,closedReason') && e('closed,done'); // 关闭一个用户需求,查看状态 r($story2) && p('status,closedReason') && e('closed,willnotdo'); // 关闭一个软件需求,查看状态 r($story3) && p('status,closedReason,duplicateStory') && e('closed,duplicate,5'); // 关闭一个重复了的需求,查看状态 -r($story4) && p('status,closedReason,duplicateStory') && e('~~,~~,『重复需求』不能为空。'); // 关闭一个重复了的需求,但缺少重复的需求的ID,查看状态 \ No newline at end of file +r($story4) && p('status,closedReason,duplicateStory') && e('~~,~~,『重复需求』不能为空。'); // 关闭一个重复了的需求,但缺少重复的需求的ID,查看状态 diff --git a/module/story/test/ui/activatestory.php b/module/story/test/ui/activatestory.php index dac111f6e2..556fa1ad53 100755 --- a/module/story/test/ui/activatestory.php +++ b/module/story/test/ui/activatestory.php @@ -55,6 +55,8 @@ $action->date->range('(-2D)-(-D):60m')->type('timestamp')->format('YY/MM/DD hh:m $action->extra->range('Done|active, Done|draft'); $action->gen(6); +$storyreview = zenData('storyreview')->gen(0); + $tester = new activateStoryTester(); $tester->login(); diff --git a/module/story/test/ui/batchcreateinlite.php b/module/story/test/ui/batchcreateinlite.php new file mode 100755 index 0000000000..116697af27 --- /dev/null +++ b/module/story/test/ui/batchcreateinlite.php @@ -0,0 +1,91 @@ +#!/usr/bin/env php +id->range('1'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->name->range('运营项目'); +$project->hasProduct->range('0'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->gen(1); + +$product = zenData('product'); +$product->id->range('1'); +$product->program->range('0'); +$product->name->range('运营项目'); +$product->shadow->range('1'); +$product->type->range('normal'); +$product->acl->range('open'); +$product->vision->range('lite'); +$product->gen(1); + +$projectproduct = zenData('projectproduct'); +$projectproduct->project->range('1'); +$projectproduct->product->range('1'); +$projectproduct->branch->range('0'); +$projectproduct->plan->range('0'); +$projectproduct->gen(1); + +$team = ZenData('team'); +$team->id->range('1'); +$team->root->range('1'); +$team->type->range('project'); +$team->account->range('admin'); +$team->gen(1); + +$projectadmin = ZenData('projectadmin'); +$projectadmin->group->range('1'); +$projectadmin->account->range('admin'); +$projectadmin->projects->range('1'); +$projectadmin->gen(1); + +zendata('story')->loadYaml('story', false, 2)->gen(0); +zendata('storyspec')->loadYaml('storyspec', false, 2)->gen(0); +zendata('storyreview')->loadYaml('storyreview', false, 2)->gen(0); + +$storyUrl = array( + 'productID' => '1', + 'branch' => '', + 'moduleID' => '0', + 'storyID' => '0', + 'project' => 1, + 'plan' => '0', + 'storyType' => 'story' +); +$project = array( + 'projectID' => 1 +); + +$tester = new batchCreateStory(); +$tester->login(); + +$story = new stdClass(); +$story->name = ''; +r($tester->batchCreateStory($project, $storyUrl, $story)) && p('message,status') && e('目标名称必填提示信息正确,SUCCESS');//目标名称必填校验 + +$story->name = '目标A'; +r($tester->batchCreateStory($project, $storyUrl, $story)) && p('message,status') && e('评审人必填提示信息正确,SUCCESS');//评审人必填校验 + +$tester->closeBrowser(); diff --git a/module/story/test/ui/changestoryinlite.php b/module/story/test/ui/changestoryinlite.php new file mode 100755 index 0000000000..ad2724b8cc --- /dev/null +++ b/module/story/test/ui/changestoryinlite.php @@ -0,0 +1,113 @@ +#!/usr/bin/env php +id->range('1'); +$product->program->range('0'); +$product->name->range('产品1'); +$product->shadow->range('1'); +$product->bind->range('0'); +$product->acl->range('open'); +$product->createdBy->range('admin'); +$product->vision->range('lite'); +$product->gen(1); + +$story = zenData('story'); +$story->id->range('1'); +$story->vision->range('lite'); +$story->root->range('1'); +$story->path->range('`,1,`'); +$story->grade->range('1'); +$story->product->range('1'); +$story->module->range('0'); +$story->plan->range('0'); +$story->source->range('[]'); +$story->title->range('运营界面目标1'); +$story->type->range('story'); +$story->stage->range('wait'); +$story->status->range('active'); +$story->openedBy->range('admin'); +$story->version->range('1'); +$story->assignedTo->range('[]'); +$story->reviewedBy->range('[]'); +$story->closedBy->range('[]'); +$story->closedReason->range('[]'); +$story->gen(1); + +$storyspec = zenData('storyspec'); +$storyspec->story->range('1'); +$storyspec->version->range('1'); +$storyspec->title->range('运营界面目标1'); +$storyspec->gen(1); + +$storyreview = zenData('storyreview'); +$storyreview->gen(0); + +$project = zenData('project'); +$project->id->range('1'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->path->range('`,1,`'); +$project->team->range('运营项目1'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->name->range('运营项目1'); +$project->gen(1); + +$projectadmin = zenData('projectadmin'); +$projectadmin->group->range('1'); +$projectadmin->account->range('admin'); +$projectadmin->projects->range('`,`1`,`'); +$projectadmin->gen(1); + +$projectproduct = zenData('projectproduct'); +$projectproduct->project->range('1'); +$projectproduct->product->range('1'); +$projectproduct->gen(1); + +$action = zenData('action')->gen(0); + +$projectstory = zenData('projectstory'); +$projectstory->project->range('1'); +$projectstory->product->range('1'); +$projectstory->branch->range('0'); +$projectstory->story->range('1'); +$projectstory->version->range('1'); +$projectstory->order->range('1'); +$projectstory->gen(1); + +$team = zenData('team'); +$team->id->range('1'); +$team->root->range('1'); +$team->type->range('project'); +$team->account->range('admin'); +$team->limited->range('no'); +$team->gen(1); + +$tester = new changeStoryInLiteTester(); +$tester->login(); + +$storys = array(); +$storys['null'] = ''; +$storys['default'] = '变更后目标名称'; + +$reviewer = array(); +$reviewer['null'] = array(); +$reviewer['default'] = array('admin'); + +r($tester->changeStoryInLite($storys['default'], $reviewer['null'])) && p('message,status') && e('变更目标页面评审人为空提示正确,SUCCESS'); // 缺少评审人,变更失败 +r($tester->changeStoryInLite($storys['null'], $reviewer['default'])) && p('message,status') && e('变更目标页面名称为空提示正确,SUCCESS'); // 缺少需求名称,变更失败 +r($tester->changeStoryInLite($storys['default'], $reviewer['default'])) && p('message,status') && e('变更目标成功,SUCCESS'); // 使用默认选项变更需求,详情页信息对应 + +$tester->closeBrowser(); diff --git a/module/story/test/ui/creatstoryinlite.php b/module/story/test/ui/creatstoryinlite.php new file mode 100755 index 0000000000..0d01831c89 --- /dev/null +++ b/module/story/test/ui/creatstoryinlite.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +id->range('1'); +$product->program->range('0'); +$product->name->range('产品1'); +$product->shadow->range('0'); +$product->bind->range('0'); +$product->acl->range('open'); +$product->createdBy->range('admin'); +$product->vision->range('lite'); +$product->gen(1); + +$story = zenData('story'); +$story->gen(0); + +$storyspec = zenData('storyspec'); +$storyspec->gen(0); + +$storyreview = zenData('storyreview'); +$storyreview->gen(0); + +$project = zenData('project'); +$project->id->range('1'); +$project->model->range('kanban'); +$project->type->range('project'); +$project->path->range('`,1,`'); +$project->team->range('运营项目1'); +$project->acl->range('open'); +$project->vision->range('lite'); +$project->name->range('运营项目1'); +$project->gen(1); + +$projectadmin = zenData('projectadmin'); +$projectadmin->group->range('1'); +$projectadmin->account->range('admin'); +$projectadmin->projects->range('`,`1`,`'); +$projectadmin->gen(1); + +$projectproduct = zenData('projectproduct'); +$projectproduct->project->range('1'); +$projectproduct->product->range('1'); +$projectproduct->gen(1); + +$projectstory = zenData('projectstory')->gen(0); + +$action = zenData('action'); +$action->gen(0); + +$tester = new createStoryInLiteTester(); +$tester->login(); + +$storys = array( + 'null' => '', + 'story' => '运营界面目标' +); + +$reviewers = array( + 'null' => array(), + 'admin' => array('admin') +); + +r($tester->createDefault($storys['null'], $reviewers['admin'])) && p('message,status') && e('创建目标页面名称为空提示正确,SUCCESS'); // 缺少名称,创建失败 +r($tester->createDefault($storys['story'], $reviewers['null'])) && p('message,status') && e('创建目标页面评审人为空提示正确,SUCCESS'); // 缺少评审人,创建失败 +r($tester->createDefault($storys['story'], $reviewers['admin'])) && p('message,status') && e('创建运营界面目标成功,SUCCESS'); // 创建成功 + +$tester->closeBrowser(); diff --git a/module/story/test/ui/page/batchcreate.php b/module/story/test/ui/page/batchcreate.php index b81aa00cc5..f9f99b4541 100755 --- a/module/story/test/ui/page/batchcreate.php +++ b/module/story/test/ui/page/batchcreate.php @@ -10,7 +10,10 @@ class batchCreatePage extends page 'reviewer' => "/html/body/div[1]/div/div/div/div[2]/form/div[1]/table/tbody/tr[1]/td[16]/div/div/select", 'storySave' => "//*[@id='zin_story_batchcreate_formBatch']/div[2]/button[1]", 'requirementSave' => "//*[@id='zin_requirement_batchcreate_formBatch']/div[2]/button[1]", - 'epicSave' => "//*[@id='zin_epic_batchcreate_formBatch']/div[2]/button[1]" + 'epicSave' => "//*[@id='zin_epic_batchcreate_formBatch']/div[2]/button[1]", + /*运营管理界面*/ + 'reviewerPick' => "/html/body/div[1]/div/div/div/div[2]/form/div[1]/table/tbody/tr[1]/td[10]/div/div/select", + 'reviewerTip' => "//*[@id='reviewer[1][]Tip']" ); $this->dom->xpath = array_merge($this->dom->xpath, $xpath); } diff --git a/module/story/test/ui/page/change.php b/module/story/test/ui/page/change.php index 538056ac20..63eb5e132b 100755 --- a/module/story/test/ui/page/change.php +++ b/module/story/test/ui/page/change.php @@ -1,4 +1,15 @@ "//*[@id='dataform']/div[1]/div/div[1]/div[1]/div[2]/div[1]", + /*运营界面*/ + 'reviewerAdmin' => "//*[@class='pick-container']//menu//a/div/div[text()='admin']" + ); + $this->dom->xpath = array_merge($this->dom->xpath, $xpath); + } } diff --git a/module/story/test/ui/page/create.php b/module/story/test/ui/page/create.php index e294e74703..143b8602c6 100755 --- a/module/story/test/ui/page/create.php +++ b/module/story/test/ui/page/create.php @@ -1,4 +1,17 @@ "//*[@id='zin_story_create_form']/div[3]/div[1]/label/span", + 'titleInLite' => "//*[@id='title']", + 'saveInLite' => "//*[@id='zin_story_create_form']/div[8]/div/button[1]", + 'reviewerAdmin' => "//*[@class='pick-container']//menu/menu/li/a/div/div[text()='admin']", + ); + $this->dom->xpath = array_merge($this->dom->xpath, $xpath); + } } diff --git a/module/system/config/dtable.php b/module/system/config/dtable.php index bf29dd06b3..efb5899a3e 100644 --- a/module/system/config/dtable.php +++ b/module/system/config/dtable.php @@ -100,7 +100,7 @@ $config->system->dtable->backup->fieldList['actions']['title'] = $lang->actions; $config->system->dtable->backup->fieldList['actions']['type'] = 'actions'; $config->system->dtable->backup->fieldList['actions']['menu'] = array('restore', 'delete'); -$config->system->dtable->backup->fieldList['actions']['list']['restore']['icon'] = 'history'; +$config->system->dtable->backup->fieldList['actions']['list']['restore']['icon'] = 'restart'; $config->system->dtable->backup->fieldList['actions']['list']['restore']['text'] = $lang->backup->restore; $config->system->dtable->backup->fieldList['actions']['list']['restore']['hint'] = $lang->backup->restore; $config->system->dtable->backup->fieldList['actions']['list']['restore']['url'] = array('module' => 'system', 'method' => 'restoreBackup', 'params' => 'name={id}'); diff --git a/module/system/control.php b/module/system/control.php index 703ff319b9..2948996240 100644 --- a/module/system/control.php +++ b/module/system/control.php @@ -725,4 +725,25 @@ class system extends control ); return $this->send(array('result' => 'success', 'data' => $result)); } + + /** + * 备份详情。 + * Backup detail. + * + * @param string $name + * @access public + * @return void + */ + public function backupView(string $name) + { + if(!$this->config->inQuickon) $this->sendError($this->lang->system->cneStatus); + if(strpos($name, '_') !== false) $name = str_replace('_', '-', $name); + + $this->loadModel('instance'); + $instance = $this->config->instance->zentaopaas; + + $this->view->title = $this->lang->system->backupView; + $this->view->backup = $this->loadModel('cne')->backupDetail($instance, $name); + $this->display(); + } } diff --git a/module/system/lang/de.php b/module/system/lang/de.php index b5e089115c..e4c5f3cd50 100644 --- a/module/system/lang/de.php +++ b/module/system/lang/de.php @@ -42,6 +42,7 @@ $lang->system->delete = 'Delete ' . $lang->product->system . ''; $lang->system->active = 'Online ' . $lang->product->system . ''; $lang->system->inactive = 'Offline ' . $lang->product->system . ''; $lang->system->integratedLabel = 'Integrated'; +$lang->system->backupView = 'Backup details'; $lang->system->integratedList = array(); $lang->system->integratedList[0] = 'No'; @@ -291,6 +292,11 @@ $lang->system->backup->error->upgradeOvertime = "Upgrade timed out!"; $lang->system->backup->error->degradeFail = "Downgrade failed!"; $lang->system->backup->error->beenLatestVersion = "It is already the latest version, no upgrade required!"; $lang->system->backup->error->requireVersion = "Version number must be uploaded!"; +$lang->system->backup->error->backupFailNotice = "Backup failed! %s"; + +$lang->system->backup->backupTypeList = array(); +$lang->system->backup->backupTypeList['db'] = 'Database'; +$lang->system->backup->backupTypeList['volume'] = 'Volume'; $lang->system->maintenance = new stdclass(); $lang->system->maintenance->reason['backup'] = 'The platform is under backup, please visit later'; diff --git a/module/system/lang/en.php b/module/system/lang/en.php index b5e089115c..e4c5f3cd50 100644 --- a/module/system/lang/en.php +++ b/module/system/lang/en.php @@ -42,6 +42,7 @@ $lang->system->delete = 'Delete ' . $lang->product->system . ''; $lang->system->active = 'Online ' . $lang->product->system . ''; $lang->system->inactive = 'Offline ' . $lang->product->system . ''; $lang->system->integratedLabel = 'Integrated'; +$lang->system->backupView = 'Backup details'; $lang->system->integratedList = array(); $lang->system->integratedList[0] = 'No'; @@ -291,6 +292,11 @@ $lang->system->backup->error->upgradeOvertime = "Upgrade timed out!"; $lang->system->backup->error->degradeFail = "Downgrade failed!"; $lang->system->backup->error->beenLatestVersion = "It is already the latest version, no upgrade required!"; $lang->system->backup->error->requireVersion = "Version number must be uploaded!"; +$lang->system->backup->error->backupFailNotice = "Backup failed! %s"; + +$lang->system->backup->backupTypeList = array(); +$lang->system->backup->backupTypeList['db'] = 'Database'; +$lang->system->backup->backupTypeList['volume'] = 'Volume'; $lang->system->maintenance = new stdclass(); $lang->system->maintenance->reason['backup'] = 'The platform is under backup, please visit later'; diff --git a/module/system/lang/fr.php b/module/system/lang/fr.php index b5e089115c..e4c5f3cd50 100644 --- a/module/system/lang/fr.php +++ b/module/system/lang/fr.php @@ -42,6 +42,7 @@ $lang->system->delete = 'Delete ' . $lang->product->system . ''; $lang->system->active = 'Online ' . $lang->product->system . ''; $lang->system->inactive = 'Offline ' . $lang->product->system . ''; $lang->system->integratedLabel = 'Integrated'; +$lang->system->backupView = 'Backup details'; $lang->system->integratedList = array(); $lang->system->integratedList[0] = 'No'; @@ -291,6 +292,11 @@ $lang->system->backup->error->upgradeOvertime = "Upgrade timed out!"; $lang->system->backup->error->degradeFail = "Downgrade failed!"; $lang->system->backup->error->beenLatestVersion = "It is already the latest version, no upgrade required!"; $lang->system->backup->error->requireVersion = "Version number must be uploaded!"; +$lang->system->backup->error->backupFailNotice = "Backup failed! %s"; + +$lang->system->backup->backupTypeList = array(); +$lang->system->backup->backupTypeList['db'] = 'Database'; +$lang->system->backup->backupTypeList['volume'] = 'Volume'; $lang->system->maintenance = new stdclass(); $lang->system->maintenance->reason['backup'] = 'The platform is under backup, please visit later'; diff --git a/module/system/lang/zh-cn.php b/module/system/lang/zh-cn.php index fa3ec7821a..17f756d7db 100644 --- a/module/system/lang/zh-cn.php +++ b/module/system/lang/zh-cn.php @@ -42,6 +42,7 @@ $lang->system->delete = "删除{$lang->product->system}"; $lang->system->active = "上架{$lang->product->system}"; $lang->system->inactive = "下架{$lang->product->system}"; $lang->system->integratedLabel = '集成'; +$lang->system->backupView = '备份详情'; $lang->system->integratedList = array(); $lang->system->integratedList[0] = '否'; @@ -291,6 +292,11 @@ $lang->system->backup->error->upgradeOvertime = "升级超时!"; $lang->system->backup->error->degradeFail = "降级失败!"; $lang->system->backup->error->beenLatestVersion = "已经是最新版,无需升级!"; $lang->system->backup->error->requireVersion = "必须上传版本号!"; +$lang->system->backup->error->backupFailNotice = "备份失败, 失败原因:%s"; + +$lang->system->backup->backupTypeList = array(); +$lang->system->backup->backupTypeList['db'] = '数据库'; +$lang->system->backup->backupTypeList['volume'] = '数据卷'; $lang->system->maintenance = new stdclass(); $lang->system->maintenance->reason['backup'] = '平台正在备份中,请稍后访问'; diff --git a/module/system/ui/backupview.html.php b/module/system/ui/backupview.html.php new file mode 100644 index 0000000000..d460834e71 --- /dev/null +++ b/module/system/ui/backupview.html.php @@ -0,0 +1,74 @@ + + * @package system + * @link https://www.zentao.net + */ +namespace zin; +$backupDetail = zget($backup, 'backup_details', array()); + +$backupList = array(); +if(!empty($backupDetail) && empty($backup->message)) +{ + foreach($backupDetail as $type => $infoList) + { + if(!in_array($type, array('db', 'volume'))) continue; + foreach($infoList as $info) + { + $size = $type == 'db' ? zget($info, 'size', 0) : zget($info, 'total_bytes', 0); + $backupList[] = h::tr + ( + h::td(zget($lang->system->backup->backupTypeList, $type)), + h::td($type == 'db' ? zget($info, 'db_name', '') : zget($info, 'pvc_name', '')), + h::td(round($size / 1024 / 1024, 2) == 0 ? $size . ' B' : round($size / 1024 / 1024, 2) . ' MB'), + h::td(zget($lang->system->backup->statusList, $info->status)) + ); + } + } +} + +detailHeader +( + to::prefix(''), + to::title + ( + entityLabel + ( + set::level(1), + set::text($title) + ) + ) +); + +div +( + !empty($backup->message) ? sectionList(div(setClass('w-full text-center pt-10'), sprintf($lang->system->backup->error->backupFailNotice, $backup->message))) : sectionList + ( + empty($backupList) ? div(setClass('w-full text-center pt-10'), $lang->noData) : div + ( + setClass('flex-none'), + h::table + ( + setClass('table w-full max-w-full bordered text-center'), + h::thead + ( + h::tr + ( + h::th($lang->system->backup->type), + h::th($lang->system->backup->backupName), + h::th($lang->system->backup->size), + h::th($lang->system->backup->status) + ) + ), + h::tbody + ( + $backupList + ) + ) + ) + ) +); diff --git a/module/task/config/form.php b/module/task/config/form.php index 6548d9e6cb..a9c7dc66b6 100644 --- a/module/task/config/form.php +++ b/module/task/config/form.php @@ -202,7 +202,7 @@ $config->task->form->testTask->create['deadlineDitto'] = array('type' => 'arra $config->task->form->recordWorkhour = array(); $config->task->form->recordWorkhour['date'] = array('type' => 'date', 'required' => false, 'default' => array(), 'base' => true); $config->task->form->recordWorkhour['work'] = array('type' => 'string', 'required' => false, 'default' => array()); -$config->task->form->recordWorkhour['consumed'] = array('type' => 'string', 'required' => false, 'default' => array()); +$config->task->form->recordWorkhour['consumed'] = array('type' => 'float', 'required' => false, 'default' => array()); $config->task->form->recordWorkhour['left'] = array('type' => 'string', 'required' => false, 'default' => array()); /* Set required to false as the required field can NOT be 0. */ $config->task->form->editEffort = array(); diff --git a/module/task/control.php b/module/task/control.php index 87629c1bc4..426d816d0d 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -276,7 +276,7 @@ class task extends control $this->view->task = $task; $this->view->title = $this->view->execution->name . $this->lang->hyphen . $this->lang->task->assign; - $this->taskZen->buildUsersAndMembersToFrom($executionID, $taskID); + $this->taskZen->buildUsersAndMembersToForm($executionID, $taskID); $this->display(); } @@ -472,7 +472,7 @@ class task extends control $this->view->assignedTo = !empty($task->team) ? $this->task->getAssignedTo4Multi($task->team, $task) : $assignedTo; $this->view->canRecordEffort = $this->task->canOperateEffort($task); $this->view->currentTeam = $currentTeam; - $this->taskZen->buildUsersAndMembersToFrom($task->execution, $taskID); + $this->taskZen->buildUsersAndMembersToForm($task->execution, $taskID); $this->display(); } @@ -647,7 +647,7 @@ class task extends control $task->myConsumed = zget($currentTeam, 'consumed', 0); } - $this->taskZen->buildUsersAndMembersToFrom($task->execution, $taskID); + $this->taskZen->buildUsersAndMembersToForm($task->execution, $taskID); $this->view->title = $this->view->execution->name . $this->lang->hyphen .$this->lang->task->finish; $this->view->canRecordEffort = $this->task->canOperateEffort($task); diff --git a/module/task/model.php b/module/task/model.php index c91b14e219..2cb785747d 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -123,7 +123,7 @@ class taskModel extends model * @access public * @return bool */ - public function afterBatchCreate(array $taskIdList, object $parent = null): bool + public function afterBatchCreate(array $taskIdList, ?object $parent = null): bool { /* Process other data after split task. */ if($parent && !empty($taskIdList)) @@ -723,7 +723,7 @@ class taskModel extends model * @access public * @return bool */ - public function canOperateEffort(object $task, object $effort = null): bool + public function canOperateEffort(object $task, ?object $effort = null): bool { if(empty($task->team)) { @@ -761,7 +761,7 @@ class taskModel extends model * @access public * @return false|void */ - public function checkEstStartedAndDeadline(int $executionID, string $estStarted, string $deadline, int|null $rowID = null) + public function checkEstStartedAndDeadline(int $executionID, string $estStarted, string $deadline, ?int $rowID = null) { $beginIndex = $rowID === null ? 'estStarted' : "estStarted[$rowID]"; $endIndex = $rowID === null ? 'deadline' : "deadline[$rowID]"; @@ -870,7 +870,7 @@ class taskModel extends model * @access public * @return object|bool */ - public function computeMultipleHours(object $oldTask, object $task = null, array $team = array(), bool $autoStatus = true): object|bool + public function computeMultipleHours(object $oldTask, ?object $task = null, array $team = array(), bool $autoStatus = true): object|bool { if(!$oldTask) return false; @@ -1400,8 +1400,6 @@ class taskModel extends model $task = $this->loadModel('file')->replaceImgURL($task, 'desc'); $task->files = $this->file->getByObject('task', $taskID); if($setImgSize && $task->desc) $task->desc = $this->file->setImgSize($task->desc); - /* Get related test cases. */ - if($task->story) $task->cases = $this->dao->select('id, title')->from(TABLE_CASE)->where('story')->eq($task->story)->andWhere('storyVersion')->eq($task->storyVersion)->andWhere('deleted')->eq('0')->fetchPairs(); /* Process a task, compute its progress and get its related information. */ return $this->processTask($task, false); @@ -1750,7 +1748,7 @@ class taskModel extends model * @access public * @return array */ - public function getExecutionTasks(int|array $executionID, int $productID = 0, string|array $type = 'all', array $modules = array(), string $orderBy = 'status_asc, id_desc', object $pager = null): array + public function getExecutionTasks(int|array $executionID, int $productID = 0, string|array $type = 'all', array $modules = array(), string $orderBy = 'status_asc, id_desc', ?object $pager = null): array { $tasks = $this->taskTao->fetchExecutionTasks($executionID, $productID, $type, $modules, $orderBy, $pager); if(empty($tasks)) return array(); @@ -1902,7 +1900,7 @@ class taskModel extends model * @access public * @return object[] */ - public function getListByCondition(object $condition, string $orderBy = 'id_desc', object|null $pager = null): array + public function getListByCondition(object $condition, string $orderBy = 'id_desc', ?object $pager = null): array { $defaultValueList = array('priList' => array(), 'assignedToList' => array(), 'statusList' => array(), 'idList' => array(), 'taskName' => ''); foreach($defaultValueList as $key => $defaultValue) @@ -2349,7 +2347,7 @@ class taskModel extends model * @access public * @return object[] */ - public function getUserTasks(string $account, string $type = 'assignedTo', int $limit = 0, object $pager = null, string $orderBy = 'id_desc', int $projectID = 0): array + public function getUserTasks(string $account, string $type = 'assignedTo', int $limit = 0, ?object $pager = null, string $orderBy = 'id_desc', int $projectID = 0): array { if($type != 'myInvolved' && !$this->loadModel('common')->checkField(TABLE_TASK, $type)) return array(); @@ -2782,7 +2780,7 @@ class taskModel extends model /* Story changed or not. */ $task->needConfirm = false; - if(!empty($task->storyStatus) && $task->storyStatus == 'active' && $task->latestStoryVersion > $task->storyVersion) + if(!empty($task->storyStatus) && !in_array($task->status, array('cancel', 'closed')) && $task->storyStatus == 'active' && $task->latestStoryVersion > $task->storyVersion) { $task->needConfirm = true; $task->rawStatus = $task->status; @@ -3136,7 +3134,7 @@ class taskModel extends model * @access public * @return array|string|false */ - public function update(object $task, object $teamData = null): array|string|false + public function update(object $task, ?object $teamData = null): array|string|false { $taskID = $task->id; $oldTask = $this->getByID($taskID); diff --git a/module/task/tao.php b/module/task/tao.php index 0ae7dac4e2..974d72919a 100644 --- a/module/task/tao.php +++ b/module/task/tao.php @@ -53,6 +53,7 @@ class taskTao extends taskModel $newTask = clone $task; $newTask->consumed += $record->consumed; $newTask->lastEditedBy = $this->app->user->account; + $newTask->lastEditedDate = $now; if(!$task->realStarted) $newTask->realStarted = $now; if($lastDate <= $record->date) $newTask->left = $record->left; diff --git a/module/task/test/lib/batchcreatetask.ui.class.php b/module/task/test/lib/batchcreatetask.ui.class.php new file mode 100644 index 0000000000..d2c085138e --- /dev/null +++ b/module/task/test/lib/batchcreatetask.ui.class.php @@ -0,0 +1,43 @@ +initForm('task', 'batchCreate', array('executionID' => '2'), 'appIframe-execution'); + $form->dom->name->setValue($task->name); + $form->dom->assignedTo->picker('user1'); + $form->dom->estimate->setValue($task->estimate); + $form->dom->savebtn->click(); + $form->wait(1); + + return $this->success('成功批量创建任务'); + } + + + /** + * Batch create tasks with empty task names. + * + * @param string $task + * @access public + * @return object + * + */ + public function batchCreateNameBlankTask($task) + { + $form = $this->initForm('task', 'batchCreate', array('executionID' => '2'), 'appIframe-execution'); + $form->dom->name->setValue($task->name); + $form->dom->savebtn->click(); + $form->wait(1); + + return $this->failed('保存成功'); + } +} diff --git a/module/task/test/lib/edittask.ui.class.php b/module/task/test/lib/edittask.ui.class.php new file mode 100644 index 0000000000..de07ccf191 --- /dev/null +++ b/module/task/test/lib/edittask.ui.class.php @@ -0,0 +1,41 @@ +initForm('task', 'edit', array('taskID' => '1'), 'appIframe-execution'); + $form->dom->name->setValue($task->name); + $form->dom->assignedTo->picker($task->assignedTo); + $form->dom->type->picker($task->type); + $form->dom->savebtn->click(); + $form->wait(1); + + return $this->success('成功编辑开发任务'); + } +/** + * Edit a task with name blank. + * + * @param string $task + * @access public + * @return object + * + */ + public function editNameBlankTask($task) + { + $form = $this->initForm('task', 'edit', array('taskID' => '2'), 'appIframe-execution'); + $form->dom->name->setValue($task->name); + $form->dom->savebtn->click(); + $form->wait(1); + + return $this->failed('任务名称不能为空'); + } +} diff --git a/module/task/test/model/close.php b/module/task/test/model/close.php index 8e91a0c29d..e8a26c9d30 100755 --- a/module/task/test/model/close.php +++ b/module/task/test/model/close.php @@ -6,7 +6,7 @@ su('admin'); zenData('project')->loadYaml('execution')->gen(5); zenData('task')->loadYaml('task')->gen(5); -zenData('story')->gen(5); +zenData('story')->gen(0); zenData('product')->gen(5); /** @@ -16,7 +16,7 @@ timeout=0 cid=1 - wait状态任务关闭 @status-wait-closed -- doing状态任务关闭 @status-changed-changed +- doing状态任务关闭 @status-doing-closed - done状态任务关闭 @status-done-closed - pause状态任务关闭 @status-pause-closed - cancel状态任务关闭 @status-cancel-closed @@ -26,8 +26,8 @@ cid=1 $taskIDList = range(1, 5); $task = new taskTest(); -r($task->closeTest($taskIDList[0])) && p() && e('status-wait-closed'); // wait状态任务关闭 -r($task->closeTest($taskIDList[1])) && p() && e('status-changed-changed'); // doing状态任务关闭 -r($task->closeTest($taskIDList[2])) && p() && e('status-done-closed'); // done状态任务关闭 -r($task->closeTest($taskIDList[3])) && p() && e('status-pause-closed'); // pause状态任务关闭 -r($task->closeTest($taskIDList[4])) && p() && e('status-cancel-closed'); // cancel状态任务关闭 \ No newline at end of file +r($task->closeTest($taskIDList[0])) && p() && e('status-wait-closed'); // wait状态任务关闭 +r($task->closeTest($taskIDList[1])) && p() && e('status-doing-closed'); // doing状态任务关闭 +r($task->closeTest($taskIDList[2])) && p() && e('status-done-closed'); // done状态任务关闭 +r($task->closeTest($taskIDList[3])) && p() && e('status-pause-closed'); // pause状态任务关闭 +r($task->closeTest($taskIDList[4])) && p() && e('status-cancel-closed'); // cancel状态任务关闭 diff --git a/module/task/test/tao/buildtaskforeffort.php b/module/task/test/tao/buildtaskforeffort.php index a05bb088d6..29471444dd 100755 --- a/module/task/test/tao/buildtaskforeffort.php +++ b/module/task/test/tao/buildtaskforeffort.php @@ -10,6 +10,67 @@ title= 测试buildTaskforEffort方法 timeout=0 cid=1 +- 传入的lastDate比record中的日期小,说明是正常记录工时,并且是完成任务的情况 + - 第0条的consumed属性 @8 + - 第0条的left属性 @0 + - 第0条的estimate属性 @0 + - 第0条的status属性 @done +- 传入的lastDate比record中的大,说明是补录工时,并且是完成任务的情况,但剩余不为0 + - 第0条的consumed属性 @8 + - 第0条的left属性 @1 + - 第0条的estimate属性 @0 + - 第0条的status属性 @doing +- 传入的lastDate比record中的日期小,说明是正常记录工时,并且不是完成任务的情况 + - 第0条的consumed属性 @8 + - 第0条的left属性 @0 + - 第0条的estimate属性 @0 + - 第0条的status属性 @doing +- 传入的lastDate比record中的大,说明是补录工时,并且不是完成任务的情况 + - 第0条的consumed属性 @8 + - 第0条的left属性 @1 + - 第0条的estimate属性 @0 + - 第0条的status属性 @doing +- 传入的lastDate比record中的日期小,说明是正常记录工时,并且是完成任务的情况 + - 第0条的consumed属性 @9 + - 第0条的left属性 @5 + - 第0条的estimate属性 @1 + - 第0条的status属性 @doing +- 传入的lastDate比record中的大,说明是补录工时,并且是完成任务的情况,但剩余不为0 + - 第0条的consumed属性 @9 + - 第0条的left属性 @2 + - 第0条的estimate属性 @1 + - 第0条的status属性 @doing +- 传入的lastDate比record中的日期小,说明是正常记录工时,并且不是完成任务的情况 + - 第0条的consumed属性 @9 + - 第0条的left属性 @5 + - 第0条的estimate属性 @1 + - 第0条的status属性 @doing +- 传入的lastDate比record中的大,说明是补录工时,并且不是完成任务的情况 + - 第0条的consumed属性 @9 + - 第0条的left属性 @2 + - 第0条的estimate属性 @1 + - 第0条的status属性 @doing +- 传入的lastDate比record中的日期小,说明是正常记录工时,并且是完成任务的情况 + - 第0条的consumed属性 @10 + - 第0条的left属性 @5 + - 第0条的estimate属性 @2 + - 第0条的status属性 @doing +- 传入的lastDate比record中的大,说明是补录工时,并且是完成任务的情况,但剩余不为0 + - 第0条的consumed属性 @10 + - 第0条的left属性 @3 + - 第0条的estimate属性 @2 + - 第0条的status属性 @doing +- 传入的lastDate比record中的日期小,说明是正常记录工时,并且不是完成任务的情况 + - 第0条的consumed属性 @10 + - 第0条的left属性 @5 + - 第0条的estimate属性 @2 + - 第0条的status属性 @doing +- 传入的lastDate比record中的大,说明是补录工时,并且不是完成任务的情况 + - 第0条的consumed属性 @10 + - 第0条的left属性 @3 + - 第0条的estimate属性 @2 + - 第0条的status属性 @doing + */ $task = zenData('project'); $task->id->range('1-7'); diff --git a/module/task/test/ui/batchcreatetask.php b/module/task/test/ui/batchcreatetask.php new file mode 100755 index 0000000000..569ec7e30e --- /dev/null +++ b/module/task/test/ui/batchcreatetask.php @@ -0,0 +1,92 @@ +#!/usr/bin/env php +id->range('1-3'); +$user->account->range('admin, user1, user2'); +$user->password->range($config->uitest->defaultPassword)->format('md5'); +$user->realname->range('admin, 用户1, 用户2'); +$user->gen(3); + +$product = zenData('product'); +$product->id->range('1'); +$product->name->range('李娟的产品'); +$product->gen(1); + +$project = zenData('project'); +$project->id->range('1, 2'); +$project->project->range('0, 1'); +$project->model->range('scrum, []'); +$project->type->range('project, sprint'); +$project->auth->range('extend, []'); +$project->storyType->range('story'); +$project->parent->range('0, 1'); +$project->path->range('`,1,`, `,1,2,`'); +$project->name->range('李娟的项目, 李娟的执行'); +$project->gen(2); + +$team = zenData('team'); +$team->id->range('1,2,3'); +$team->root->range('2'); +$team->type->range('execution'); +$team->account->range('admin, user1, user2'); +$team->gen(3); + +$projectProduct = zenData('projectproduct'); +$projectProduct->project->range('1, 2'); +$projectProduct->product->range('1'); +$projectProduct->gen(2); + +$story = zenData('story'); +$story->id->range('1'); +$story->path->range('`,1,`'); +$story->product->range('1'); +$story->title->range('李娟的需求版本2'); +$story->type->range('story'); +$story->status->range('active'); +$story->version->range('2'); +$story->gen(1); + +$storySpec = zenData('storyspec'); +$storySpec->story->range('1'); +$storySpec->version->range('1,2'); +$storySpec->title->range('李娟的需求版本1, 李娟的需求版本2'); +$storySpec->gen(2); + +$projectStory = zenData('projectstory'); +$projectStory->project->range('1, 2'); +$projectStory->product->range('1'); +$projectStory->story->range('1'); +$projectStory->version->range('1'); +$projectStory->gen(2); + +$tester = new batchCreateTaskTester(); +$tester->login(); + +$task = new stdclass(); +$task->name = '李娟批量创建的开发任务'; +$task->estimate = '2'; + +$task1 = new stdclass(); +$task1->name = ''; + +r($tester->batchCreateTask($task)) && p('message') && e('成功批量创建任务'); //成功批量创建任务 +r($tester->batchCreateNameBlankTask($task1)) && p('message') && e('保存成功'); //保存成功 + +$tester->closeBrowser(); diff --git a/module/task/test/ui/edittask.php b/module/task/test/ui/edittask.php new file mode 100755 index 0000000000..45eb842aba --- /dev/null +++ b/module/task/test/ui/edittask.php @@ -0,0 +1,87 @@ +#!/usr/bin/env php +id->range('1-3'); +$user->account->range('admin, user1, user2'); +$user->password->range($config->uitest->defaultPassword)->format('md5'); +$user->realname->range('admin, 用户1, 用户2'); +$user->gen(3); + +$product = zenData('product'); +$product->id->range('1'); +$product->name->range('李娟的产品'); +$product->gen(1); + +$project = zenData('project'); +$project->id->range('1, 2'); +$project->project->range('0, 1'); +$project->model->range('scrum, []'); +$project->type->range('project, sprint'); +$project->auth->range('extend, []'); +$project->storyType->range('story'); +$project->parent->range('0, 1'); +$project->path->range('`,1,`, `,1,2,`'); +$project->name->range('李娟的项目, 李娟的执行'); +$project->gen(2); + +$task = zenData('task'); +$task->id->range('1, 2 '); +$task->project->range('1'); +$task->execution->range('2'); +$task->name->range('李娟的开发任务1, 李娟的开发任务2'); +$task->type->range('devel'); +$task->story->range('0'); +$task->storyVersion->range('0'); +$task->module->range('0'); +$task->estimate->range('3'); +$task->consumed->range('2'); +$task->left->range('1'); +$task->status->range('doing'); +$task->assignedTo->range('用户1, 用户2'); +$task->gen(2); + +$taskSpec = zenData('taskspec'); +$taskSpec->task->range('1, 2'); +$taskSpec->version->range('1'); +$taskSpec->name->range('李娟的开发任务1, 李娟的开发任务2'); +$taskSpec->gen(2); + +$team = zenData('team'); +$team->id->range('1,2,3'); +$team->root->range('2'); +$team->type->range('execution'); +$team->account->range('admin, user1, user2'); +$team->gen(3); + +$tester = new editTaskTester(); +$tester->login(); + +$task = new stdclass(); +$task->name = '开发任务'; +$task->type = '设计'; +$task->assignedTo = '用户2'; + +$task2 = new stdclass(); +$task2->name = ''; + +r($tester->editDevTask($task)) && p('message') && e('成功编辑开发任务'); // 编辑开发任务 +r($tester->editNameBlankTask($task2)) && p('message') && e('任务名称不能为空'); // 编辑任务设置名称为空 + +$tester->closeBrowser(); diff --git a/module/task/test/ui/page/batchcreate.php b/module/task/test/ui/page/batchcreate.php new file mode 100644 index 0000000000..aa5f466725 --- /dev/null +++ b/module/task/test/ui/page/batchcreate.php @@ -0,0 +1,15 @@ + "//*[@id='name_0']", + 'assignedTo' => "//*[@name='assignedTo[1]']", + 'estimate' => "//*[@id='estimate_0']", + 'savebtn' => "//*[@id='zin_task_batchcreate_formBatch']/div[2]/button[1]/span", + ); + $this->dom->xpath = array_merge($this->dom->xpath, $xpath); + } +} diff --git a/module/task/test/ui/page/edit.php b/module/task/test/ui/page/edit.php new file mode 100644 index 0000000000..f2e7fa6773 --- /dev/null +++ b/module/task/test/ui/page/edit.php @@ -0,0 +1,12 @@ + "/html/body/div[1]/div/div/form/div[2]/button[1]", + ); + $this->dom->xpath = array_merge($this->dom->xpath, $xpath); + } +} diff --git a/module/task/zen.php b/module/task/zen.php index 47b41016b3..1ffe8c0b36 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -375,14 +375,14 @@ class taskZen extends task /** * 构建指派给表单。 - * Build from for assignTo page. + * Build form for assignTo page. * * @param int $executionID * @param int $taskID * @access protected * @return void */ - protected function buildUsersAndMembersToFrom(int $executionID, int $taskID): void + protected function buildUsersAndMembersToForm(int $executionID, int $taskID): void { $task = $this->task->getByID($taskID); $projectModel = $this->dao->findById($task->project)->from(TABLE_PROJECT)->fetch('model'); @@ -611,8 +611,14 @@ class taskZen extends task /* Filter tasks. */ foreach($tasks as $taskID => $task) { - if(isset($multipleTasks[$taskID]) && $task->assignedTo != $this->app->user->account && $task->mode == 'linear') unset($tasks[$taskID]); - if(isset($multipleTasks[$taskID]) && !isset($multipleTasks[$taskID][$this->post->assignedTo])) unset($tasks[$taskID]); + /* 不是完成,取消状态的多人任务不能指派。*/ + /* Multiple tasks that are not finished or canceled cannot be assigned. */ + if(isset($multipleTasks[$taskID]) && strpos('wait,doing,pause', $task->status) !== false) unset($tasks[$taskID]); + + /* 多人任务不能指派给任务团队外的人。*/ + /* Multiple tasks cannot be assigned to users that are not in the task team. */ + if(isset($multipleTasks[$taskID]) && !isset($multipleTasks[$taskID][$assignedTo])) unset($tasks[$taskID]); + if($task->status == 'closed') unset($tasks[$taskID]); } @@ -1042,7 +1048,7 @@ class taskZen extends task * @access public * @return void */ - public function checkLegallyDate(object $task, bool $isDateLimit, object|null $parent, int|null $rowID = null): void + public function checkLegallyDate(object $task, bool $isDateLimit, ?object $parent, ?int $rowID = null): void { $beginIndex = $rowID === null ? 'estStarted' : "estStarted[$rowID]"; $endIndex = $rowID === null ? 'deadline' : "deadline[$rowID]"; diff --git a/module/testcase/config/action.php b/module/testcase/config/action.php index f8086142d1..413746f7b3 100644 --- a/module/testcase/config/action.php +++ b/module/testcase/config/action.php @@ -116,7 +116,7 @@ $config->scene->menu = array('editScene', 'deleteScene'); $config->scene->actionList['editScene']['icon'] = 'edit'; $config->scene->actionList['editScene']['text'] = $lang->testcase->editScene; $config->scene->actionList['editScene']['hint'] = $lang->testcase->editScene; -$config->scene->actionList['editScene']['url'] = array('module' => 'testcase', 'method' => 'editScene', 'params' => 'sceneID={id}&executionID=%executionID%'); +$config->scene->actionList['editScene']['url'] = array('module' => 'testcase', 'method' => 'editScene', 'params' => 'sceneID={id}'); $config->scene->actionList['deleteScene']['icon'] = 'trash'; $config->scene->actionList['deleteScene']['text'] = $lang->testcase->deleteScene; diff --git a/module/testcase/control.php b/module/testcase/control.php index 49c3459b61..e1a3860af3 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -122,7 +122,7 @@ class testcase extends control $actionURL = $this->createLink($currentModule, $currentMethod, $projectParam . "productID=$productID&branch=$branch&browseType=bySearch&queryID=myQueryID" . $suffixParam); $this->testcaseZen->buildBrowseSearchForm($productID, $queryID, $projectID, $actionURL); - $this->testcaseZen->assignCasesAndScenesForBrowse($productID, $branch, $browseType, ($browseType == 'bysearch' ? $queryID : $suiteID), $moduleID, $caseType, $orderBy, $recTotal, $recPerPage, $pageID, $from); + $this->testcaseZen->assignCasesForBrowse($productID, $branch, $browseType, ($browseType == 'bysearch' ? $queryID : $suiteID), $moduleID, $caseType, $orderBy, $recTotal, $recPerPage, $pageID, $from); $this->testcaseZen->assignModuleTreeForBrowse($productID, $branch, $projectID); $this->testcaseZen->assignProductAndBranchForBrowse($productID, $branch, $projectID); $this->testcaseZen->assignForBrowse($productID, $branch, $browseType, $projectID, $param, $moduleID, $suiteID, $caseType); @@ -146,6 +146,55 @@ class testcase extends control $this->display(); } + /** + * 浏览场景列表。 + * Browse scenes. + * + * @param int $productID + * @param string $branch + * @param int $moduleID + * @param string $orderBy + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID + * @access public + * @return void + */ + public function browseScene(int $productID = 0, string $branch = '', int $moduleID = 0, string $orderBy = 'sort_asc,id_asc', int $recTotal = 0, int $recPerPage = 20, int $pageID = 1) + { + $this->testcaseZen->checkProducts(); // 如果不存在产品,则跳转到产品创建页面。 + + $this->app->loadClass('pager', true); + $pager = new pager($recTotal, $recPerPage, $pageID); + + $productID = $this->product->checkAccess($productID, $this->products); + $branch = $this->testcaseZen->getBrowseBranch($branch); + $tree = $moduleID ? $this->tree->getByID($moduleID) : ''; + $showModule = !empty($this->config->testcase->browse->showModule) ? $this->config->testcase->browse->showModule : ''; + + $this->testcaseZen->setBrowseCookie($productID, $branch); + $this->testcaseZen->setBrowseSession($productID, $branch, $moduleID); + $this->testcaseZen->assignProductAndBranchForBrowse($productID, $branch); + + /* 这些变量用于设置公共的头部菜单。These variables are used to set the common header menu. */ + $this->view->browseType = 'onlyscene'; + $this->view->caseType = ''; + $this->view->projectID = 0; + $this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID); + + $this->view->title = zget($this->products, $productID, '') . $this->lang->hyphen . $this->lang->testcase->common; + $this->view->scenes = $this->testcase->getSceneGroups($productID, $branch, $moduleID, $orderBy, $pager); + $this->view->users = $this->user->getPairs('noletter'); + $this->view->modules = $this->tree->getOptionMenu($productID, 'case', 0, $branch == 'all' ? '0' : $branch); + $this->view->moduleTree = $this->tree->getTreeMenu($productID, 'case', 0, ['treeModel', 'createSceneLink'], ['orderBy' => $orderBy], $branch); + $this->view->moduleName = $moduleID ? $tree->name : $this->lang->tree->all; + $this->view->modulePairs = $showModule ? $this->tree->getModulePairs($productID, 'case', $showModule) : []; + $this->view->moduleID = $moduleID; + $this->view->orderBy = $orderBy; + $this->view->pager = $pager; + $this->display(); + } + /** * 分组查看用例。 * Group case. @@ -155,11 +204,13 @@ class testcase extends control * @param string $groupBy * @param int $objectID * @param string $caseType + * @param string $browseType * @access public * @return void */ - public function groupCase(int $productID = 0, string $branch = '', string $groupBy = 'story', int $objectID = 0, string $caseType = '') + public function groupCase(int $productID = 0, string $branch = '', string $groupBy = 'story', int $objectID = 0, string $caseType = '', string $browseType = 'all') { + if($browseType) $this->session->set('caseBrowseType', $browseType); $this->testcaseZen->checkProducts(); // 如果不存在产品,则跳转到产品创建页面。 /* 设置SESSION和COOKIE,获取产品信息。 */ @@ -195,7 +246,7 @@ class testcase extends control $this->view->browseType = 'group'; $this->view->groupBy = $groupBy; $this->view->orderBy = $groupBy; - $this->view->cases = $this->testcaseZen->getGroupCases($productID, $branch, $groupBy, $caseType); + $this->view->cases = $this->testcaseZen->getGroupCases($productID, $branch, $groupBy, $caseType, $browseType); $this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID); $this->view->branch = $branch; $this->view->caseType = $caseType; @@ -1509,8 +1560,7 @@ class testcase extends control /* Record the ID of the parent scene, so that the parent scene will be selected by default when creating a scene next time. */ helper::setcookie('lastCaseScene', $scene->parent); - $useSession = $this->app->tab != 'qa' && $this->session->caseList && strpos($this->session->caseList, 'dynamic') === false; - $locate = $useSession ? $this->session->caseList : inlink('browse', "productID={$scene->product}&branch={$scene->branch}&browseType=all¶m={$scene->module}"); + $locate = $this->session->caseList ?: inlink('browse', "productID={$scene->product}&branch={$scene->branch}&browseType=all¶m={$scene->module}"); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locate)); } @@ -1705,8 +1755,7 @@ class testcase extends control if(defined('RUN_MODE') && RUN_MODE == 'api') return $this->send(array('status' => 'success', 'data' => $sceneID)); - $useSession = $this->app->tab != 'qa' && $this->session->caseList && strpos($this->session->caseList, 'dynamic') === false; - $locate = $useSession ? $this->session->caseList : inlink('browse', "productID={$scene->product}&branch={$scene->branch}&browseType=all¶m={$scene->module}"); + $locate = $this->session->caseList ? $this->session->caseList : inlink('browse', "productID={$scene->product}&branch={$scene->branch}&browseType=all¶m={$scene->module}"); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $locate)); } @@ -1729,11 +1778,21 @@ class testcase extends control $type = $this->post->type; $module = $this->post->module; - $table = $module == 'case' ? TABLE_CASE : TABLE_SCENE; - if($type == 'after') $this->dao->update($table)->set('`sort` = `sort` + 1')->where('sort')->gt($targetOrder)->orWhere('sort')->eq($targetOrder)->andWhere('id')->lt($targetID)->exec(); - if($type == 'before') $this->dao->update($table)->set('`sort` = `sort` + 1')->where('sort')->gt($targetOrder)->orWhere('sort')->eq($targetOrder)->andWhere('id')->le($targetID)->exec(); + $table = $module == 'case' ? TABLE_CASE : TABLE_SCENE; + $target = $this->testcase->fetchByID($targetID, $module); + $sortList = $this->dao->select('id,sort')->from($table) + ->where($module == 'case' ? 'scene' : 'parent')->eq($module == 'case' ? $target->scene : $target->parent) + ->andWhere('product')->eq($target->product) + ->orderBy('sort_asc,id_desc') + ->fetchPairs(); - $this->dao->update($table)->set('sort')->eq($type == 'after' ? ($targetOrder + 1) : $targetOrder)->where('id')->eq($sourceID)->exec(); + $sortList = array_keys($sortList); + $sourceIndex = array_search($sourceID, $sortList); // 获取拖动排序对象的索引。 + $sourceData = array_splice($sortList, $sourceIndex, 1); // 将拖动排序的对象从数组移除。 + $targetIndex = array_search($targetID, $sortList); // 获取拖动后排序对象的索引。 + array_splice($sortList, $type == 'before' ? $targetIndex : ($targetIndex + 1), 0, $sourceData); // 将排序的对象放置在拖动后排序对象的前面或者后面。 + + foreach($sortList as $sort => $objectID) $this->dao->update($table)->set('sort')->eq($sort)->where('id')->eq($objectID)->exec(); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => true)); } diff --git a/module/testcase/js/browse.ui.js b/module/testcase/js/browse.ui.js index f09e2856cd..06b9933b3a 100644 --- a/module/testcase/js/browse.ui.js +++ b/module/testcase/js/browse.ui.js @@ -153,9 +153,9 @@ window.onRenderCell = function(result, {row, col}) { result.shift(); // 移除带链接的场景名称 result.push({html: data.title}); // 添加不带链接的场景名称 - if(data.grade == 1 && module) result.unshift({html: '' + module + ''}); // 顶级场景添加模块标签 + if(module) result.unshift({html: '' + module + ''}); // 添加模块标签 result.unshift({html: '' + scene + ''}); // 添加场景标签 - if(!this.options.customData.isOnlyScene && data.hasCase == false) result.push({html: '(' + noCase + ')'}); // 添加暂无用例标签 + if(data.hasCase == false) result.push({html: '(' + noCase + ')'}); // 添加暂无用例标签 } else // 用例 { @@ -223,8 +223,6 @@ window.setStatistics = function(element, checks) run: runCaseCount }); } - - return element.options.customData ? element.options.customData.pageSummary : ''; } /** diff --git a/module/testcase/js/browsescene.ui.js b/module/testcase/js/browsescene.ui.js new file mode 100644 index 0000000000..362529417e --- /dev/null +++ b/module/testcase/js/browsescene.ui.js @@ -0,0 +1,137 @@ +$(document).off('click', '.batch-btn').on('click', '.batch-btn', function() +{ + const dtable = zui.DTable.query($(this).target); + const checkedList = dtable.$.getChecks(); + if(!checkedList.length) return; + + const url = $(this).data('url'); + const form = new FormData(); + + checkedList.forEach((id) => { + const data = dtable.$.getRowInfo(id).data; + form.append('sceneIdList[]', data.id); + }); + + if($(this).hasClass('ajax-btn')) + { + $.ajaxSubmit({ url, data: form }); + } + else + { + postAndLoadPage(url, form); + } +}); + +/** + * 拖拽用例或者场景。 + * Drag case or scene. + * + * @param from 被拿起的元素 + * @param to 放下时的目标元素 + * @param type 放在目标元素的上方还是下方 + * @access public + * @return bool + */ +window.onSortEnd = function(from, to, type) +{ + if(!from || !to) return false; + + if(from.data.parent == to.data.parent) + { + $('#dragModal').attr('data-sourceID', from.data.id); + $('#dragModal').attr('data-targetID', to.data.id); + $('#dragModal').attr('data-sourceSort', from.data.sort); + $('#dragModal').attr('data-targetSort', to.data.sort); + $('#dragModal').attr('data-type', type); + + zui.Modal.open({id: 'dragModal'}); + } + else + { + changeScene(from.data.id, to.data.id); + } + return true; +} + +function changeScene(caseID, sceneID) +{ + const url = $.createLink('testcase', 'changeScene'); + const form = new FormData(); + form.append('sourceID', caseID); + form.append('targetID', sceneID); + $.ajaxSubmit({url, data:form}); +} + +function changeOrder(sourceID, sourceOrder, targetID, targetOrder, type, module) +{ + const url = $.createLink('testcase', 'updateOrder'); + const form = new FormData(); + form.append('sourceID', sourceID); + form.append('sourceOrder', sourceOrder); + form.append('targetID', targetID); + form.append('targetOrder', targetOrder); + form.append('type', type); + form.append('module', module); + $.ajaxSubmit({url, data:form}); +} + +/** + * 拖拽的用例或者场景是否允许放下。 + * Is it allowed to drop the dragged case or scene. + * + * @param from 被拿起的元素 + * @param to 放下时的目标元素 + * @access public + * @return bool + */ +window.canSortTo = function(from, to) +{ + return !!from && !!to; +} + +/** + * 标题列显示额外的内容。 + * Display extra content in the title column. + * + * @param object result + * @param object info + * @access public + * @return object + */ +window.onRenderCell = function(result, {row, col}) +{ + if(result && col.name == 'title') + { + const data = row.data; + const module = this.options.customData.modules[data.module]; + if(module) result.unshift({ html: '' + module + '' }); // 顶级场景添加模块标签 + } + + if(row.data.lastEditedDate == '0000-00-00 00:00:00') row.data.lastEditedDate = ''; + + return result; +} + +window.clickChangeScenen = function() +{ + const caseID = $('#dragModal').attr('data-sourceID'); + const sceneID = $('#dragModal').attr('data-targetID'); + + changeScene(caseID, sceneID); +} + +window.clickChangeOrder = function() +{ + const sourceID = $('#dragModal').attr('data-sourceID'); + const sourceOrder = $('#dragModal').attr('data-sourceSort'); + const targetID = $('#dragModal').attr('data-targetID'); + const targetOrder = $('#dragModal').attr('data-targetSort'); + const type = $('#dragModal').attr('data-type'); + + changeOrder(sourceID, sourceOrder, targetID, targetOrder, type, 'scene'); +} + +$('#dragModal').on('click', '[data-dismiss=modal]', function() +{ + loadCurrentPage({cache: false}); +}); diff --git a/module/testcase/lang/de.php b/module/testcase/lang/de.php index a5bdc082e7..7731259872 100644 --- a/module/testcase/lang/de.php +++ b/module/testcase/lang/de.php @@ -333,6 +333,7 @@ $lang->testcase->jsLng->set2Group = 'Set as Group'; $lang->testcase->exportTemplet = 'Export Template'; +$lang->testcase->browseScene = "Scene List"; $lang->testcase->createScene = "Add Scene"; $lang->testcase->changeScene = "Drag to change the scene which it belongs"; $lang->testcase->batchChangeScene = "Batch change scene"; diff --git a/module/testcase/lang/en.php b/module/testcase/lang/en.php index 578985ab32..e933ac4ea1 100644 --- a/module/testcase/lang/en.php +++ b/module/testcase/lang/en.php @@ -333,6 +333,7 @@ $lang->testcase->jsLng->set2Group = 'Set as Group'; $lang->testcase->exportTemplet = 'Export Template'; +$lang->testcase->browseScene = "Scene List"; $lang->testcase->createScene = "Add Scene"; $lang->testcase->changeScene = "Drag to change the scene which it belongs"; $lang->testcase->batchChangeScene = "Batch change scene"; diff --git a/module/testcase/lang/fr.php b/module/testcase/lang/fr.php index e43eb4b3a3..8ae681f3ee 100644 --- a/module/testcase/lang/fr.php +++ b/module/testcase/lang/fr.php @@ -333,6 +333,7 @@ $lang->testcase->jsLng->set2Group = 'Set as Group'; $lang->testcase->exportTemplet = 'Export Template'; +$lang->testcase->browseScene = "Scene List"; $lang->testcase->createScene = "Add Scene"; $lang->testcase->changeScene = "Drag to change the scene which it belongs"; $lang->testcase->batchChangeScene = "Batch change scene"; diff --git a/module/testcase/lang/zh-cn.php b/module/testcase/lang/zh-cn.php index 24141dd298..1cbbb4f3d2 100644 --- a/module/testcase/lang/zh-cn.php +++ b/module/testcase/lang/zh-cn.php @@ -333,6 +333,7 @@ $lang->testcase->jsLng->set2Group = '设为分组'; $lang->testcase->exportTemplet = '导出模板'; +$lang->testcase->browseScene = "场景列表"; $lang->testcase->createScene = "建场景"; $lang->testcase->changeScene = "拖动改变所属场景"; $lang->testcase->batchChangeScene = "批量改变所属场景"; diff --git a/module/testcase/model.php b/module/testcase/model.php index 609d7e3f66..a88d1193c9 100755 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -91,7 +91,7 @@ class testcaseModel extends model * @access public * @return array */ - public function getModuleCases(int|array $productID, int|string $branch = 0, int|array $moduleIdList = 0, string $browseType = '', string $auto = 'no', string $caseType = '', string $orderBy = 'id_desc', object $pager = null, string $from = 'testcase'): array + public function getModuleCases(int|array $productID, int|string $branch = 0, int|array $moduleIdList = 0, string $browseType = '', string $auto = 'no', string $caseType = '', string $orderBy = 'id_desc', ?object $pager = null, string $from = 'testcase'): array { $isProjectTab = $this->app->tab == 'project' && $from != 'doc'; $isExecutionTab = $this->app->tab == 'execution' && $from != 'doc'; @@ -107,8 +107,8 @@ class testcaseModel extends model ->beginIF($isExecutionTab)->andWhere('t3.project')->eq($this->session->execution)->fi() ->beginIF($branch !== 'all')->andWhere('t1.branch')->eq($branch)->fi() ->beginIF($moduleIdList)->andWhere('t1.module')->in($moduleIdList)->fi() - ->beginIF($browseType == 'all')->andWhere('t1.scene')->eq(0)->fi() ->beginIF($browseType == 'wait')->andWhere('t1.status')->eq($browseType)->fi() + ->beginIF($browseType == 'needconfirm')->andWhere('t2.version > t1.version')->fi() ->beginIF($auto == 'auto' || $auto == 'unit')->andWhere('t1.auto')->eq($auto)->fi() ->beginIF($auto != 'auto' && $auto != 'unit')->andWhere('t1.auto')->ne('unit')->fi() ->beginIF($caseType)->andWhere('t1.type')->eq($caseType)->fi() @@ -133,7 +133,7 @@ class testcaseModel extends model * @access public * @return array */ - public function getExecutionCases(string $browseType = 'all', int $executionID = 0, int $productID = 0, int|string $branchID = 0, int $moduleID = 0, int $paramID = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getExecutionCases(string $browseType = 'all', int $executionID = 0, int $productID = 0, int|string $branchID = 0, int $moduleID = 0, int $paramID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCases(); @@ -379,7 +379,7 @@ class testcaseModel extends model * @access public * @return array */ - public function getByAssignedTo(string $account, string $auto = 'no', string $orderBy = 'id_desc', object $pager = null): array + public function getByAssignedTo(string $account, string $auto = 'no', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t1.id AS run, t1.task, t1.case, t1.version, t1.assignedTo, t1.lastRunner, t1.lastRunDate, t1.lastRunResult, t1.status AS lastRunStatus, t2.id AS id, t2.project, t2.pri, t2.title, t2.type, t2.openedBy, t2.color, t2.product, t2.lib, t2.branch, t2.module, t2.status, t2.auto, t2.story, t2.storyVersion, t3.name AS taskName')->from(TABLE_TESTRUN)->alias('t1') ->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case = t2.id') @@ -406,7 +406,7 @@ class testcaseModel extends model * @access public * @return array */ - public function getByOpenedBy(string $account, string $auto = 'no', string $orderBy = 'id_desc', object $pager = null): array + public function getByOpenedBy(string $account, string $auto = 'no', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->findByOpenedBy($account)->from(TABLE_CASE) ->andWhere('deleted')->eq('0') @@ -433,7 +433,7 @@ class testcaseModel extends model * @access public * @return array */ - public function getByStatus(int $productID = 0, int|string $branch = 0, string $type = 'all', string $status = 'all', int $moduleID = 0, string $auto = 'no', string $orderBy = 'id_desc', object $pager = null): array + public function getByStatus(int $productID = 0, int|string $branch = 0, string $type = 'all', string $status = 'all', int $moduleID = 0, string $auto = 'no', string $orderBy = 'id_desc', ?object $pager = null): array { $modules = $moduleID ? $this->loadModel('tree')->getAllChildId($moduleID) : '0'; @@ -1985,57 +1985,54 @@ class testcaseModel extends model } /** - * 获取包含子场景和子用例的场景列表。 - * Get scene list include sub scenes and cases. + * 获取包含子场景的场景列表。 + * Get scene list include sub scenes. * * @param int|array $productID * @param string $branch - * @param string $browseType * @param int $moduleID - * @param string $caseType * @param string $orderBy * @param object $pager * @access public * @return array */ - public function getSceneGroups(int|array $productID, string $branch = '', string $browseType = '', int $moduleID = 0, string $caseType = '', string $orderBy = 'id_desc', object $pager = null): array + public function getSceneGroups(int|array $productID, string $branch = '', int $moduleID = 0, string $orderBy = 'id_desc', ?object $pager = null): array { - $modules = $moduleID ? $this->loadModel('tree')->getAllChildId($moduleID) : array(); - $scenes = $this->dao->select('*')->from(TABLE_SCENE) + $modules = []; + if($moduleID) + { + $modules = $this->loadModel('tree')->getAllChildId($moduleID); + if(!$modules) return []; + } + + $topScenes = $this->dao->select('*')->from(TABLE_SCENE) ->where('deleted')->eq('0') + ->andWhere('grade')->eq(1) ->andWhere('product')->in($productID) ->beginIF($branch !== 'all')->andWhere('branch')->eq($branch)->fi() ->beginIF($modules)->andWhere('module')->in($modules)->fi() - ->orderBy('grade_desc, sort_asc') + ->orderBy($orderBy) + ->page($pager) + ->fetchAll('id', false); + if(!$topScenes) return array(); + + $subScenes = $this->dao->select('*')->from(TABLE_SCENE) + ->where('deleted')->eq('0') + ->andWhere('grade')->gt(1) + ->andWhere('product')->in($productID) + ->beginIF($branch !== 'all')->andWhere('branch')->eq($branch)->fi() + ->beginIF($modules)->andWhere('module')->in($modules)->fi() + ->orderBy($orderBy) ->fetchAll('id', false); - if($pager) $pager->recTotal = 0; - if(!$scenes) return array(); - - $cases = $scenes && $browseType != 'onlyscene' ? $this->getSceneGroupCases($productID, $branch, $modules, $caseType, $orderBy) : array(); - - $this->dao->setTable(TABLE_CASE); - $fieldTypes = $this->dao->getFieldsType(); - - foreach($scenes as $id => $scene) + foreach($subScenes as $id => $scene) { - $scene = $this->buildSceneBaseOnCase($scene, $fieldTypes, zget($cases, $id, array())); - $scene->scene = $scene->parent; - - if(isset($scenes[$scene->parent])) - { - $parent = $scenes[$scene->parent]; - $parent->children[$id] = $scene; - unset($scenes[$id]); - } + $path = trim($scene->path, ','); + $root = substr($path, 0, strpos($path, ',')); + if(!isset($topScenes[$root])) unset($subScenes[$id]); } - if(!$pager) return $scenes; - - $pager->recTotal = count($scenes); - $pager->pageTotal = ceil($pager->recTotal / $pager->recPerPage); - - return array_slice($scenes, $pager->recPerPage * ($pager->pageID - 1), (int)$pager->recPerPage); + return $subScenes + $topScenes; } /** @@ -2714,7 +2711,7 @@ class testcaseModel extends model * @access public * @return array */ - public function getCanImportCases(int $productID, int $libID, string $orderBy = 'id_desc', object $pager = null, string $browseType = '', int $queryID = 0): array + public function getCanImportCases(int $productID, int $libID, string $orderBy = 'id_desc', ?object $pager = null, string $browseType = '', int $queryID = 0): array { $query = ''; if($browseType == 'bysearch') @@ -2998,73 +2995,4 @@ class testcaseModel extends model if(empty($caseIdList)) return array(); return $this->dao->select('id')->from(TABLE_CASE)->where('id')->in($caseIdList)->andWhere('auto')->ne('auto')->fetchPairs('id', 'id'); } - - /** - * 预处理场景及其包含的用例,把层级结构改为平行结构,处理成数据表格支持的形式。 - * Preprocess the scenario and the use cases it contains, change the hierarchical structure to a parallel structure, and process it into a form supported by the data table. - * - * @param array $scenes - * @access public - * @return array - */ - public function preProcessScenesForBrowse(array $scenes): array - { - $cases = array(); - foreach($scenes as $scene) - { - $scene->hasCase = false; - - if(!empty($scene->children)) - { - $cases = array_merge($cases, $this->preProcessScenesForBrowse($scene->children)); - foreach($scene->children as $child) - { - /* - * 如果子场景有用例,那么父场景也有用例。 - * If the child scene has a use case, the parent scene also has a use case. - */ - if($child->hasCase) - { - $scene->hasCase = true; - break; - } - } - } - if(!empty($scene->cases)) - { - $cases = array_merge($cases, $scene->cases); - - $scene->hasCase = true; - } - - unset($scene->children); - unset($scene->cases); - - $cases[] = $scene; - } - return $cases; - } - - /** - * 预处理没有场景的用例,附加额外的信息并给用例 ID 加前缀以防止和场景 ID 重复。 - * Preprocess use cases without scenarios, append additional information and prefix the use case ID to prevent duplication with scenario IDs. - * - * @param array $cases - * @access public - * @return array - */ - public function preProcessCasesForBrowse(array $cases): array - { - /* Check if the related story of cases are changed. */ - $cases = $this->loadModel('story')->checkNeedConfirm($cases); - $cases = $this->appendData($cases); - foreach($cases as $case) - { - $case->caseID = $case->id; - $case->id = 'case_' . $case->id; // Add a prefix to avoid duplication with the scene ID. - $case->parent = 0; - $case->isScene = false; - } - return $cases; - } } diff --git a/module/testcase/tao.php b/module/testcase/tao.php index 61a3af0bff..c8e38b5978 100644 --- a/module/testcase/tao.php +++ b/module/testcase/tao.php @@ -61,7 +61,7 @@ class testcaseTao extends testcaseModel * @access protected * @return array */ - protected function getModuleProjectCases(int|array $productID, int|string $branch = 0, int|array $moduleIdList = 0, string $browseType = '', string $auto = 'no', string $caseType = '', string $orderBy = 'id_desc', object $pager = null): array + protected function getModuleProjectCases(int|array $productID, int|string $branch = 0, int|array $moduleIdList = 0, string $browseType = '', string $auto = 'no', string $caseType = '', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('distinct t1.*, t2.*, t4.title AS storyTitle')->from(TABLE_PROJECTCASE)->alias('t1') ->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case = t2.id') @@ -96,7 +96,7 @@ class testcaseTao extends testcaseModel * @access protected * @return array */ - protected function getNeedConfirmList(int|array $productID, string|int $branch, array $modules, string $auto, string $caseType, string $sort, object $pager = null): array + protected function getNeedConfirmList(int|array $productID, string|int $branch, array $modules, string $auto, string $caseType, string $sort, ?object $pager = null): array { return $this->dao->select('distinct t1.*, t2.title AS storyTitle')->from(TABLE_CASE)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id') @@ -130,7 +130,7 @@ class testcaseTao extends testcaseModel * @access public * @return array */ - public function getBySuite(int $productID, int|string $branch = 0, int $suiteID = 0, array|int $moduleIdList = 0, string $auto = 'no', string $orderBy = 'id_desc', object $pager = null): array + public function getBySuite(int $productID, int|string $branch = 0, int $suiteID = 0, array|int $moduleIdList = 0, string $auto = 'no', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t1.*, t2.title AS storyTitle, t3.version AS version')->from(TABLE_CASE)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id') @@ -754,11 +754,10 @@ class testcaseTao extends testcaseModel * * @param object $scene * @param array $fieldTypes - * @param array $cases * @access public * @return object */ - public function buildSceneBaseOnCase(object $scene, array $fieldTypes, array $cases): object + public function buildSceneBaseOnCase(object $scene, array $fieldTypes): object { /* Set default value for the fields exist in TABLE_CASE but not in TABLE_SCENE. */ foreach($fieldTypes as $field => $type) @@ -773,20 +772,6 @@ class testcaseTao extends testcaseModel $scene->stepNumber = 0; $scene->isScene = true; - if(!empty($cases)) - { - foreach($cases as $case) - { - $case->caseID = $case->id; - $case->id = 'case_' . $case->id; - $case->parent = $scene->id; - $case->grade = $scene->grade + 1; - $case->path = $scene->path . $case->id . ','; - $case->isScene = false; - } - $scene->cases = $cases; - } - return $scene; } diff --git a/module/testcase/test/lib/testcase.unittest.class.php b/module/testcase/test/lib/testcase.unittest.class.php index 85e1386f72..994d713399 100644 --- a/module/testcase/test/lib/testcase.unittest.class.php +++ b/module/testcase/test/lib/testcase.unittest.class.php @@ -763,7 +763,7 @@ class testcaseTest public function joinStepTest(string $stepIDList): string { global $tester; - $steps = $tester->dao->select('*')->from(TABLE_CASESTEP)->where('id')->in($stepIDList)->fetchAll(); + $steps = $tester->dao->select('*')->from(TABLE_CASESTEP)->where('id')->in($stepIDList)->fetchAll('', false); $string = $this->objectModel->joinStep($steps); @@ -1620,14 +1620,12 @@ class testcaseTest * * @param int $productID * @param string $branch - * @param string $browseType * @param int $moduleID - * @param string $caseType * @param string $orderBy * @access public * @return string */ - public function getSceneGroupsTest(int $productID, string $branch = '', string $browseType = '', int $moduleID = 0, string $caseType = '', string $orderBy = 'id_desc'): string + public function getSceneGroupsTest(int $productID, string $branch = '', int $moduleID = 0, string $orderBy = 'id_desc'): string { global $tester; $tester->app->loadClass('pager', true); @@ -1635,7 +1633,7 @@ class testcaseTest $tester->app->methodName = 'getSceneGroups'; $pager = new pager(0, 50, 1); - $scenes = $this->objectModel->getSceneGroups($productID, $branch, $browseType, $moduleID, $caseType, $orderBy, $pager); + $scenes = $this->objectModel->getSceneGroups($productID, $branch, $moduleID, $orderBy, $pager); if(dao::isError()) return dao::getError(); return implode(',', array_column($scenes, 'id')); @@ -1948,24 +1946,4 @@ class testcaseTest $result = $this->objectModel->buildSearchConfig($productID, $branch); return array('module' => $result['module'], 'storyValues' => $result['params']['story']['values'], 'typeValues' => $result['params']['type']['values']); } - - /** - * 预处理场景及其包含的用例,把层级结构改为平行结构,处理成数据表格支持的形式。 - * Preprocess the scenario and the use cases it contains, change the hierarchical structure to a parallel structure, and process it into a form supported by the data table. - * - * @param array $scenes - * @access public - * @return array - */ - public function preProcessScenesForBrowseTest($scenes) - { - $cases = $this->objectModel->preProcessScenesForBrowse($scenes); - - foreach($cases as $case) - { - if(empty($case->hasCase)) $case->hasCase = 0; - } - return $cases; - } - } diff --git a/module/testcase/test/model/appenddata.php b/module/testcase/test/model/appenddata.php index fa30f2cb2e..f40e3ba0f1 100755 --- a/module/testcase/test/model/appenddata.php +++ b/module/testcase/test/model/appenddata.php @@ -201,44 +201,54 @@ cid=1 */ $case1 = new stdclass(); -$case1->id = 1; -$case1->case = 1; +$case1->id = 1; +$case1->case = 1; +$case1->story = 0; $case2 = new stdclass(); -$case2->id = 2; -$case2->case = 2; +$case2->id = 2; +$case2->case = 2; +$case2->story = 0; $case3 = new stdclass(); -$case3->id = 3; -$case3->case = 3; +$case3->id = 3; +$case3->case = 3; +$case3->story = 0; $case4 = new stdclass(); -$case4->id = 4; -$case4->case = 4; +$case4->id = 4; +$case4->case = 4; +$case4->story = 0; $case5 = new stdclass(); -$case5->id = 5; -$case5->case = 5; +$case5->id = 5; +$case5->case = 5; +$case5->story = 0; $case6 = new stdclass(); -$case6->id = 6; -$case6->case = 6; +$case6->id = 6; +$case6->case = 6; +$case6->story = 0; $case7 = new stdclass(); -$case7->id = 7; -$case7->case = 7; +$case7->id = 7; +$case7->case = 7; +$case7->story = 0; $case8 = new stdclass(); -$case8->id = 8; -$case8->case = 8; +$case8->id = 8; +$case8->case = 8; +$case8->story = 0; $case9 = new stdclass(); -$case9->id = 9; -$case9->case = 9; +$case9->id = 9; +$case9->case = 9; +$case9->story = 0; $case10 = new stdclass(); -$case10->id = 10; -$case10->case = 10; +$case10->id = 10; +$case10->case = 10; +$case10->story = 0; $cases = array(array(1 => $case1, 2 => $case2), array(3 => $case3, 4 => $case4), array(5 => $case5, 6 => $case6), array(7 => $case7, 8 => $case8), array(9 => $case9, 10 => $case10)); $type = array('case', 'run'); @@ -268,4 +278,4 @@ r($testcase->appendDataTest($cases[0], $type[1], $caseIdList)) && p('1:bugs,resu r($testcase->appendDataTest($cases[1], $type[1], $caseIdList)) && p('3:bugs,results,caseFails,stepNumber;4:bugs,results,caseFails,stepNumber') && e('3,1,0,1;0,0,0,0'); // 获取run 3 4 run id 1 3 5 7 可以加入的数据 r($testcase->appendDataTest($cases[2], $type[1], $caseIdList)) && p('5:bugs,results,caseFails,stepNumber;6:bugs,results,caseFails,stepNumber') && e('0,1,0,1;3,0,0,0'); // 获取run 5 6 run id 1 3 5 7 可以加入的数据 r($testcase->appendDataTest($cases[3], $type[1], $caseIdList)) && p('7:bugs,results,caseFails,stepNumber;8:bugs,results,caseFails,stepNumber') && e('3,1,0,1;3,0,0,0'); // 获取run 7 8 run id 1 3 5 7 可以加入的数据 -r($testcase->appendDataTest($cases[4], $type[1], $caseIdList)) && p('9:bugs,results,caseFails,stepNumber;10:bugs,results,caseFails,stepNumber') && e('3,0,0,0;0,0,0,0'); // 获取run 9 10 run id 1 3 5 7 可以加入的数据 \ No newline at end of file +r($testcase->appendDataTest($cases[4], $type[1], $caseIdList)) && p('9:bugs,results,caseFails,stepNumber;10:bugs,results,caseFails,stepNumber') && e('3,0,0,0;0,0,0,0'); // 获取run 9 10 run id 1 3 5 7 可以加入的数据 diff --git a/module/testcase/test/model/getscenegroups.php b/module/testcase/test/model/getscenegroups.php old mode 100644 new mode 100755 index 2f876caf48..52172e9c82 --- a/module/testcase/test/model/getscenegroups.php +++ b/module/testcase/test/model/getscenegroups.php @@ -3,10 +3,8 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/testcase.unittest.class.php'; -zenData('scene')->loadYaml('modulebranchscene')->gen('100'); -zenData('module')->loadYaml('module')->gen('50'); -zenData('case')->loadYaml('modulescenecase')->gen('50'); -zenData('projectcase')->gen('10'); +zenData('module')->loadYaml('module')->gen('4'); +zenData('scene')->loadYaml('modulebranchscene')->gen('8'); zenData('user')->gen('1'); su('admin'); @@ -17,39 +15,20 @@ title=测试 testcaseModel->getSceneGroups(); timeout=0 cid=1 -- 获取产品 1 分支 all noscene 模块 0 用例类型 空 id_desc 的场景分组 @1,2,3 +- 产品 0、分支空、模块 0、正序,场景分组为空。 @0 +- 产品 3、分支空、模块 0、正序,场景分组为空。 @0 +- 产品 1、分支空、模块 0、正序,场景分组为空。 @0 +- 产品 1、分支 1、模块 0、正序,场景分组为 1,2。 @1,2 -- 获取产品 1 分支 0 noscene 模块 0 用例类型 空 id_desc 的场景分组 @0 -- 获取产品 1 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 @1,2,3 +- 产品 1、分支 1、模块 0、倒序,场景分组为 2,1。 @2,1 -- 获取产品 1 分支 all noscene 模块 1 用例类型 空 id_desc 的场景分组 @1,3 +- 产品 1、分支 2、模块 0、倒序,场景分组为空。 @0 +- 产品 1、分支 1、模块 6、倒序,场景分组为空。 @0 +- 产品 1、分支 all、模块 0、倒序,场景分组为 6,5,4,3,2,1。 @6,5,4,3,2,1 -- 获取产品 1 分支 all noscene 模块 0 用例类型 install id_desc 的场景分组 @1,2,3 +- 产品 1、分支 all、模块 0、倒序,场景分组为 3,4,5,6,1,2。 @3,4,5,6,1,2 -- 获取产品 1 分支 all noscene 模块 0 用例类型 空 id_asc 的场景分组 @1,2,3 - -- 获取产品 1 分支 0 onlyscene 模块 0 用例类型 空 id_desc 的场景分组 @0 -- 获取产品 1 分支 0 noscene 模块 1 用例类型 空 id_desc 的场景分组 @0 -- 获取产品 1 分支 0 noscene 模块 0 用例类型 install id_desc 的场景分组 @0 -- 获取产品 1 分支 0 noscene 模块 0 用例类型 空 id_asc 的场景分组 @0 -- 获取产品 1 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 @1,3 - -- 获取产品 2 分支 all noscene 模块 0 用例类型 空 id_desc 的场景分组 @6,7,8,9,10 - -- 获取产品 2 分支 0 noscene 模块 0 用例类型 空 id_desc 的场景分组 @0 -- 获取产品 2 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 @6,7,8,9,10 - -- 获取产品 2 分支 all noscene 模块 1 用例类型 空 id_desc 的场景分组 @6,8 - -- 获取产品 2 分支 all noscene 模块 0 用例类型 install id_desc 的场景分组 @6,7,8,9,10 - -- 获取产品 2 分支 all noscene 模块 0 用例类型 空 id_asc 的场景分组 @6,7,8,9,10 - -- 获取产品 2 分支 0 onlyscene 模块 0 用例类型 空 id_desc 的场景分组 @0 -- 获取产品 2 分支 0 noscene 模块 1 用例类型 空 id_desc 的场景分组 @0 -- 获取产品 2 分支 0 noscene 模块 0 用例类型 install id_desc 的场景分组 @0 -- 获取产品 2 分支 0 noscene 模块 0 用例类型 空 id_asc 的场景分组 @0 -- 获取产品 2 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 @6,8 +- 产品 1、分支 all、模块 0、倒序,场景分组为 3,6,1。 @3,6,1 */ @@ -57,36 +36,14 @@ global $app; $app->rawModule = 'testcase'; $app->rawMethod = 'getSceneGroups'; -$productIdList = array(1, 2); -$branchList = array('all', '0'); -$browseTypeList = array('noscene', 'onlyscene'); -$moduleIdList = array(0, 1); -$caseTypeList = array('', 'install'); -$orderList = array('id_desc', 'id_asc'); - - $testcase = new testcaseTest(); - -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('1,2,3'); // 获取产品 1 分支 all noscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[1], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('0'); // 获取产品 1 分支 0 noscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[0], $browseTypeList[1], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('1,2,3'); // 获取产品 1 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $orderList[0])) && p() && e('1,3'); // 获取产品 1 分支 all noscene 模块 1 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[1], $orderList[0])) && p() && e('1,2,3'); // 获取产品 1 分支 all noscene 模块 0 用例类型 install id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[1])) && p() && e('1,2,3'); // 获取产品 1 分支 all noscene 模块 0 用例类型 空 id_asc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[1], $browseTypeList[1], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('0'); // 获取产品 1 分支 0 onlyscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[1], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $orderList[0])) && p() && e('0'); // 获取产品 1 分支 0 noscene 模块 1 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[1], $browseTypeList[0], $moduleIdList[0], $caseTypeList[1], $orderList[0])) && p() && e('0'); // 获取产品 1 分支 0 noscene 模块 0 用例类型 install id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[1], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[1])) && p() && e('0'); // 获取产品 1 分支 0 noscene 模块 0 用例类型 空 id_asc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[0], $branchList[0], $browseTypeList[1], $moduleIdList[1], $caseTypeList[1], $orderList[0])) && p() && e('1,3'); // 获取产品 1 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 - -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('6,7,8,9,10'); // 获取产品 2 分支 all noscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[1], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('0'); // 获取产品 2 分支 0 noscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[0], $browseTypeList[1], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('6,7,8,9,10'); // 获取产品 2 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $orderList[0])) && p() && e('6,8'); // 获取产品 2 分支 all noscene 模块 1 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[1], $orderList[0])) && p() && e('6,7,8,9,10'); // 获取产品 2 分支 all noscene 模块 0 用例类型 install id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[1])) && p() && e('6,7,8,9,10'); // 获取产品 2 分支 all noscene 模块 0 用例类型 空 id_asc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[1], $browseTypeList[1], $moduleIdList[0], $caseTypeList[0], $orderList[0])) && p() && e('0'); // 获取产品 2 分支 0 onlyscene 模块 0 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[1], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $orderList[0])) && p() && e('0'); // 获取产品 2 分支 0 noscene 模块 1 用例类型 空 id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[1], $browseTypeList[0], $moduleIdList[0], $caseTypeList[1], $orderList[0])) && p() && e('0'); // 获取产品 2 分支 0 noscene 模块 0 用例类型 install id_desc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[1], $browseTypeList[0], $moduleIdList[0], $caseTypeList[0], $orderList[1])) && p() && e('0'); // 获取产品 2 分支 0 noscene 模块 0 用例类型 空 id_asc 的场景分组 -r($testcase->getSceneGroupsTest($productIdList[1], $branchList[0], $browseTypeList[1], $moduleIdList[1], $caseTypeList[1], $orderList[0])) && p() && e('6,8'); // 获取产品 2 分支 all onlyscene 模块 0 用例类型 空 id_desc 的场景分组 +r($testcase->getSceneGroupsTest(0, '', 0, 'id_asc')) && p() && e(0); // 产品 0、分支空、模块 0、正序,场景分组为空。 +r($testcase->getSceneGroupsTest(3, '', 0, 'id_asc')) && p() && e(0); // 产品 3、分支空、模块 0、正序,场景分组为空。 +r($testcase->getSceneGroupsTest(1, '', 0, 'id_asc')) && p() && e(0); // 产品 1、分支空、模块 0、正序,场景分组为空。 +r($testcase->getSceneGroupsTest(1, 1, 0, 'id_asc')) && p() && e('1,2'); // 产品 1、分支 1、模块 0、正序,场景分组为 1,2。 +r($testcase->getSceneGroupsTest(1, 1, 0, 'id_desc')) && p() && e('2,1'); // 产品 1、分支 1、模块 0、倒序,场景分组为 2,1。 +r($testcase->getSceneGroupsTest(1, 2, 0, 'id_desc')) && p() && e(0); // 产品 1、分支 2、模块 0、倒序,场景分组为空。 +r($testcase->getSceneGroupsTest(1, 1, 6, 'id_desc')) && p() && e(0); // 产品 1、分支 1、模块 6、倒序,场景分组为空。 +r($testcase->getSceneGroupsTest(1, 'all', 0, 'id_desc')) && p() && e('6,5,4,3,2,1'); // 产品 1、分支 all、模块 0、倒序,场景分组为 6,5,4,3,2,1。 +r($testcase->getSceneGroupsTest(1, 'all', 0, 'id_asc')) && p() && e('3,4,5,6,1,2'); // 产品 1、分支 all、模块 0、倒序,场景分组为 3,4,5,6,1,2。 +r($testcase->getSceneGroupsTest(1, 'all', 1, 'id_asc')) && p() && e('3,6,1'); // 产品 1、分支 all、模块 0、倒序,场景分组为 3,6,1。 \ No newline at end of file diff --git a/module/testcase/test/model/gettestcases.php b/module/testcase/test/model/gettestcases.php index 3b035fa40d..07b7a92ce8 100755 --- a/module/testcase/test/model/gettestcases.php +++ b/module/testcase/test/model/gettestcases.php @@ -43,8 +43,10 @@ cid=1 - 测试查询产品 1 分支 0 browseType bysuite 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 @0 - 测试查询产品 1 分支 0 browseType bysearch 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 @4,2,1 -- 测试查询产品 1 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @1 -- 测试查询产品 1 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @1 +- 测试查询产品 1 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @4,2,1 + +- 测试查询产品 1 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @4,2,1 + - 测试查询产品 1 分支 1 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @0 - 测试查询产品 1 分支 all browseType all 模块 0 用例类型 feature 自动化 no 排序 id_desc 的测试用例 @1 - 测试查询产品 1 分支 0 browseType all 模块 0 用例类型 feature 自动化 no 排序 id_desc 的测试用例 @1 @@ -80,8 +82,10 @@ cid=1 - 测试查询产品 41 分支 0 browseType bysuite 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 @0 - 测试查询产品 41 分支 0 browseType bysearch 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 @164,163,161 -- 测试查询产品 41 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @161 -- 测试查询产品 41 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @161 +- 测试查询产品 41 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @164,163,161 + +- 测试查询产品 41 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @164,163,161 + - 测试查询产品 41 分支 1 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 @0 - 测试查询产品 41 分支 all browseType all 模块 0 用例类型 feature 自动化 no 排序 id_desc 的测试用例 @0 - 测试查询产品 41 分支 0 browseType all 模块 0 用例类型 feature 自动化 no 排序 id_desc 的测试用例 @0 @@ -125,8 +129,8 @@ r($testcase->getTestCasesTest($productIdList[0], $branchList[1], $browseTypeList r($testcase->getTestCasesTest($productIdList[0], $branchList[1], $browseTypeList[4], $moduleIdList[0], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('0'); // 测试查询产品 1 分支 0 browseType bysuite 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 r($testcase->getTestCasesTest($productIdList[0], $branchList[1], $browseTypeList[5], $moduleIdList[0], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('4,2,1'); // 测试查询产品 1 分支 0 browseType bysearch 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 -r($testcase->getTestCasesTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('1'); // 测试查询产品 1 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 -r($testcase->getTestCasesTest($productIdList[0], $branchList[1], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('1'); // 测试查询产品 1 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 +r($testcase->getTestCasesTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('4,2,1'); // 测试查询产品 1 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 +r($testcase->getTestCasesTest($productIdList[0], $branchList[1], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('4,2,1'); // 测试查询产品 1 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 r($testcase->getTestCasesTest($productIdList[0], $branchList[2], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('0'); // 测试查询产品 1 分支 1 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 r($testcase->getTestCasesTest($productIdList[0], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[1], $unitList[0], $orderByList[0])) && p() && e('1'); // 测试查询产品 1 分支 all browseType all 模块 0 用例类型 feature 自动化 no 排序 id_desc 的测试用例 @@ -159,8 +163,8 @@ r($testcase->getTestCasesTest($productIdList[1], $branchList[1], $browseTypeList r($testcase->getTestCasesTest($productIdList[1], $branchList[1], $browseTypeList[4], $moduleIdList[0], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('0'); // 测试查询产品 41 分支 0 browseType bysuite 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 r($testcase->getTestCasesTest($productIdList[1], $branchList[1], $browseTypeList[5], $moduleIdList[0], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('164,163,161'); // 测试查询产品 41 分支 0 browseType bysearch 模块 0 用例类型 空 自动化 no 排序 id_desc 的测试用例 -r($testcase->getTestCasesTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('161'); // 测试查询产品 41 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 -r($testcase->getTestCasesTest($productIdList[1], $branchList[1], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('161'); // 测试查询产品 41 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 +r($testcase->getTestCasesTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('164,163,161'); // 测试查询产品 41 分支 all browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 +r($testcase->getTestCasesTest($productIdList[1], $branchList[1], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('164,163,161'); // 测试查询产品 41 分支 0 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 r($testcase->getTestCasesTest($productIdList[1], $branchList[2], $browseTypeList[0], $moduleIdList[1], $caseTypeList[0], $unitList[0], $orderByList[0])) && p() && e('0'); // 测试查询产品 41 分支 1 browseType all 模块 1821 用例类型 空 自动化 no 排序 id_desc 的测试用例 r($testcase->getTestCasesTest($productIdList[1], $branchList[0], $browseTypeList[0], $moduleIdList[0], $caseTypeList[1], $unitList[0], $orderByList[0])) && p() && e('0'); // 测试查询产品 41 分支 all browseType all 模块 0 用例类型 feature 自动化 no 排序 id_desc 的测试用例 diff --git a/module/testcase/test/model/preprocesscasesforbrowse.php b/module/testcase/test/model/preprocesscasesforbrowse.php deleted file mode 100644 index f3b28831ef..0000000000 --- a/module/testcase/test/model/preprocesscasesforbrowse.php +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env php -preProcessCasesForBrowse(); -timeout=0 -cid=1 - -- 获取用例1额外的信息 - - 第1条的id属性 @case_1 - - 第1条的bugs属性 @6 - - 第1条的results属性 @1 - - 第1条的caseFails属性 @0 - - 第1条的stepNumber属性 @1 - - 第1条的caseID属性 @1 -- 获取用例3额外的信息 - - 第3条的id属性 @case_3 - - 第3条的bugs属性 @6 - - 第3条的results属性 @1 - - 第3条的caseFails属性 @0 - - 第3条的stepNumber属性 @1 - - 第3条的caseID属性 @3 -- 获取用例4额外的信息 - - 第4条的id属性 @case_4 - - 第4条的bugs属性 @0 - - 第4条的results属性 @1 - - 第4条的caseFails属性 @1 - - 第4条的stepNumber属性 @1 - - 第4条的caseID属性 @4 -- 获取用例5额外的信息 - - 第5条的id属性 @case_5 - - 第5条的bugs属性 @0 - - 第5条的results属性 @1 - - 第5条的caseFails属性 @0 - - 第5条的stepNumber属性 @1 - - 第5条的caseID属性 @5 -- 获取用例2额外的信息 - - 第2条的id属性 @case_2 - - 第2条的needconfirm属性 @1 - - 第2条的bugs属性 @6 - - 第2条的results属性 @1 - - 第2条的caseFails属性 @1 - - 第2条的stepNumber属性 @1 - - 第2条的caseID属性 @2 - -*/ - -su('admin'); -zenData('case')->gen('100'); -zenData('casestep')->gen('100'); -zenData('bug')->loadYaml('casebug')->gen('50'); -zenData('testresult')->gen('50'); -zenData('user')->gen('1'); -zenData('testrun')->gen('10'); -zenData('story')->gen('10'); - -$case1 = new stdclass(); -$case1->id = 1; -$case1->story = 1; -$case1->storyVersion = 1; - -$case2 = new stdclass(); -$case2->id = 2; -$case2->story = 2; -$case2->storyVersion = 2; - -$case3 = new stdclass(); -$case3->id = 3; -$case3->story = 3; -$case3->storyVersion = 3; - -$case4 = new stdclass(); -$case4->id = 4; -$case4->story = 4; -$case4->storyVersion = 4; - -$case5 = new stdclass(); -$case5->id = 5; -$case5->story = 5; -$case5->storyVersion = 5; - -global $tester; -$caseModel = $tester->loadModel('testcase'); -$caseList = array(array(1 => $case1), array(2 => $case2), array(3 => $case3), array(4 => $case4), array(5 => $case5)); - -r($caseModel->preProcessCasesForBrowse($caseList[0])) && p('1:id,bugs,results,caseFails,stepNumber,caseID') && e('case_1,6,1,0,1,1'); // 获取用例1额外的信息 -r($caseModel->preProcessCasesForBrowse($caseList[2])) && p('3:id,bugs,results,caseFails,stepNumber,caseID') && e('case_3,6,1,0,1,3'); // 获取用例3额外的信息 -r($caseModel->preProcessCasesForBrowse($caseList[3])) && p('4:id,bugs,results,caseFails,stepNumber,caseID') && e('case_4,0,1,1,1,4'); // 获取用例4额外的信息 -r($caseModel->preProcessCasesForBrowse($caseList[4])) && p('5:id,bugs,results,caseFails,stepNumber,caseID') && e('case_5,0,1,0,1,5'); // 获取用例5额外的信息 -r($caseModel->preProcessCasesForBrowse($caseList[1])) && p('2:id,needconfirm,bugs,results,caseFails,stepNumber,caseID') && e('case_2,1,6,1,1,1,2'); // 获取用例2额外的信息 diff --git a/module/testcase/test/model/preprocessscenesforbrowse.php b/module/testcase/test/model/preprocessscenesforbrowse.php deleted file mode 100755 index e6ba2aa4e7..0000000000 --- a/module/testcase/test/model/preprocessscenesforbrowse.php +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env php -preProcessScenesForBrowse(); -timeout=0 -cid=1 - -- 无用例的场景 - - 第0条的name属性 @场景1 - - 第0条的hasCase属性 @0 -- 包含用例的场景 - - 第2条的name属性 @场景2 - - 第2条的hasCase属性 @1 -- 包含无用例的子场景的场景 - - 第1条的name属性 @场景3 - - 第1条的hasCase属性 @0 -- 包含有用例的子场景的场景 - - 第2条的name属性 @场景4 - - 第2条的hasCase属性 @1 - -*/ - -su('admin'); - -$case1 = new stdclass(); -$case1->id = 1; -$case1->name = '用例1'; - -$case2 = new stdclass(); -$case2->id = 2; -$case2->name = '用例2'; - -$case3 = new stdclass(); -$case3->id = 3; -$case3->name = '用例3'; - -$childScene1 = new stdclass(); -$childScene1->name = '子场景1'; -$childScene1->cases = array(); -$childScene1->children = array(); - -$childScene2 = new stdclass(); -$childScene2->name = '子场景2'; -$childScene2->cases = array(1 => $case1); - -$scene1 = new stdclass(); -$scene1->name = '场景1'; -$scene1->cases = array(); -$scene1->children = array(); - -$scene2 = new stdclass(); -$scene2->name = '场景2'; -$scene2->cases = array(1 => $case1, 2 => $case2); -$scene2->children = array(); - -$scene3 = new stdclass(); -$scene3->name = '场景3'; -$scene3->cases = array(); -$scene3->children = array(1 => $childScene1); - -$scene4 = new stdclass(); -$scene4->name = '场景4'; -$scene4->cases = array(); -$scene4->children = array(1 => $childScene2); - -$scenes1 = array(1 => $scene1); -$scenes2 = array(2 => $scene2); -$scenes3 = array(3 => $scene3); -$scenes4 = array(4 => $scene4); - -$caseTester = new testcaseTest(); - -r($caseTester->preProcessScenesForBrowseTest($scenes1)) && p('0:name,hasCase') && e('场景1,0'); // 无用例的场景 -r($caseTester->preProcessScenesForBrowseTest($scenes2)) && p('2:name,hasCase') && e('场景2,1'); // 包含用例的场景 -r($caseTester->preProcessScenesForBrowseTest($scenes3)) && p('1:name,hasCase') && e('场景3,0'); // 包含无用例的子场景的场景 -r($caseTester->preProcessScenesForBrowseTest($scenes4)) && p('2:name,hasCase') && e('场景4,1'); // 包含有用例的子场景的场景 \ No newline at end of file diff --git a/module/testcase/test/tao/buildscenebaseoncase.php b/module/testcase/test/tao/buildscenebaseoncase.php index e1f335264a..879ece7e5a 100644 --- a/module/testcase/test/tao/buildscenebaseoncase.php +++ b/module/testcase/test/tao/buildscenebaseoncase.php @@ -18,25 +18,25 @@ cid=1 - 测试构建场景 1 rule3 rule4 rule5 用例 空 的用例信息 @1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene -- 测试构建场景 1 rule1 rule2 用例 1,2 的用例信息 @1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2; +- 测试构建场景 1 rule1 rule2 用例 1,2 的用例信息 @1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene -- 测试构建场景 1 rule3 rule4 rule5 用例 1,2 的用例信息 @1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2; +- 测试构建场景 1 rule3 rule4 rule5 用例 1,2 的用例信息 @1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene - 测试构建场景 2 rule1 rule2 用例 空 的用例信息 @2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene - 测试构建场景 2 rule3 rule4 rule5 用例 空 的用例信息 @2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene -- 测试构建场景 2 rule1 rule2 用例 1,2 的用例信息 @2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2; +- 测试构建场景 2 rule1 rule2 用例 1,2 的用例信息 @2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene -- 测试构建场景 2 rule3 rule4 rule5 用例 1,2 的用例信息 @2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2; +- 测试构建场景 2 rule3 rule4 rule5 用例 1,2 的用例信息 @2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene - 测试构建场景 20 rule1 rule2 用例 空 的用例信息 @20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene - 测试构建场景 20 rule3 rule4 rule5 用例 空 的用例信息 @20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene -- 测试构建场景 20 rule1 rule2 用例 1,2 的用例信息 @20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2; +- 测试构建场景 20 rule1 rule2 用例 1,2 的用例信息 @20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene -- 测试构建场景 20 rule3 rule4 rule5 用例 1,2 的用例信息 @20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2; +- 测试构建场景 20 rule3 rule4 rule5 用例 1,2 的用例信息 @20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene */ @@ -52,17 +52,17 @@ $caseIdList = array(array(), array(1, 2)); $testcase = new testcaseTest(); -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[0], $caseIdList[0])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 1 rule1 rule2 用例 空 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[1], $caseIdList[0])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 1 rule3 rule4 rule5 用例 空 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[0], $caseIdList[1])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2;'); // 测试构建场景 1 rule1 rule2 用例 1,2 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[1], $caseIdList[1])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2;'); // 测试构建场景 1 rule3 rule4 rule5 用例 1,2 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[0], $caseIdList[0])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 1 rule1 rule2 用例 空 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[1], $caseIdList[0])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 1 rule3 rule4 rule5 用例 空 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[0], $caseIdList[1])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 1 rule1 rule2 用例 1,2 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[0], $fieldTypeList[1], $caseIdList[1])) && p() && e('1: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 1 rule3 rule4 rule5 用例 1,2 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[0], $caseIdList[0])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 2 rule1 rule2 用例 空 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[1], $caseIdList[0])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 2 rule3 rule4 rule5 用例 空 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[0], $caseIdList[1])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2;'); // 测试构建场景 2 rule1 rule2 用例 1,2 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[1], $caseIdList[1])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2;'); // 测试构建场景 2 rule3 rule4 rule5 用例 1,2 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[0], $caseIdList[0])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 2 rule1 rule2 用例 空 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[1], $caseIdList[0])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 2 rule3 rule4 rule5 用例 空 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[0], $caseIdList[1])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 2 rule1 rule2 用例 1,2 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[1], $fieldTypeList[1], $caseIdList[1])) && p() && e('2: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 2 rule3 rule4 rule5 用例 1,2 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[0], $caseIdList[0])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 20 rule1 rule2 用例 空 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[1], $caseIdList[0])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 20 rule3 rule4 rule5 用例 空 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[0], $caseIdList[1])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2;'); // 测试构建场景 20 rule1 rule2 用例 1,2 的用例信息 -r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[1], $caseIdList[1])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene, cases cases: case_1,case_2;'); // 测试构建场景 20 rule3 rule4 rule5 用例 1,2 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[0], $caseIdList[0])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 20 rule1 rule2 用例 空 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[1], $caseIdList[0])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 20 rule3 rule4 rule5 用例 空 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[0], $caseIdList[1])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, lib, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 20 rule1 rule2 用例 1,2 的用例信息 +r($testcase->buildSceneBaseOnCaseTest($sceneIdList[2], $fieldTypeList[1], $caseIdList[1])) && p() && e('20: id, product, branch, module, title, sort, openedBy, openedDate, lastEditedBy, lastEditedDate, deleted, parent, grade, path, type, pri, auto, caseID, bugs, results, caseFails, stepNumber, isScene'); // 测试构建场景 20 rule3 rule4 rule5 用例 1,2 的用例信息 diff --git a/module/testcase/test/yaml/modulebranchscene.yaml b/module/testcase/test/yaml/modulebranchscene.yaml index ba1351cbcf..2fa94b5be2 100644 --- a/module/testcase/test/yaml/modulebranchscene.yaml +++ b/module/testcase/test/yaml/modulebranchscene.yaml @@ -5,9 +5,17 @@ version: "1.0" fields: - field: id range: 1-1000 - - field: module - range: 1-5 - field: product - range: 1-100{5} + range: 1{7},2 - field: branch range: 1-100{2} + - field: module + range: 1-5 + - field: parent + range: 0,0,1,1,3,3,5,5,7,7 + - field: grade + range: "1,1,2,2,3,3,4,4,5,5" + - field: path + range: "`,1,`,`,2,`,`,1,3,`,`,1,4,`,`,1,3,5,`,`,1,3,6,`,`,1,3,5,7,`,`,1,3,5,8,`,`1,3,5,7,9,`,`1,3,5,7,10,`" + - field: deleted + range: 0{6},1,0 diff --git a/module/testcase/ui/browse.html.php b/module/testcase/ui/browse.html.php index b27c6aa22f..82e1766c01 100644 --- a/module/testcase/ui/browse.html.php +++ b/module/testcase/ui/browse.html.php @@ -21,16 +21,16 @@ 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 && $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; -$canBatchConfirmStoryChange = $canModify && hasPriv('testcase', 'batchConfirmStoryChange') && !$isOnlyScene; -$canBatchChangeBranch = $canModify && hasPriv('testcase', 'batchChangeBranch') && !$isOnlyScene && isset($product->type) && $product->type != 'normal'; +$canBatchRun = $canModify && hasPriv('testtask', 'batchRun'); +$canBatchEdit = $canModify && hasPriv('testcase', 'batchEdit') && $productID; +$canBatchReview = $canModify && hasPriv('testcase', 'batchReview') && ($config->testcase->needReview || !empty($config->testcase->forceReview)); +$canBatchDelete = $canModify && hasPriv('testcase', 'batchDelete'); +$canBatchChangeType = $canModify && hasPriv('testcase', 'batchChangeType'); +$canBatchConfirmStoryChange = $canModify && hasPriv('testcase', 'batchConfirmStoryChange'); +$canBatchChangeBranch = $canModify && hasPriv('testcase', 'batchChangeBranch') && isset($product->type) && $product->type != 'normal'; $canBatchChangeModule = $canModify && hasPriv('testcase', 'batchChangeModule') && !empty($productID) && ((isset($product->type) && $product->type == 'normal') || $branch !== 'all'); -$canBatchChangeScene = $canModify && hasPriv('testcase', 'batchChangeScene') && !$isOnlyScene; -$canImportToLib = $canModify && hasPriv('testcase', 'importToLib') && !$isOnlyScene; +$canBatchChangeScene = $canModify && hasPriv('testcase', 'batchChangeScene'); +$canImportToLib = $canModify && hasPriv('testcase', 'importToLib'); $canGroupBatch = ($canBatchRun || $canBatchEdit || $canBatchReview || $canBatchDelete || $canBatchChangeType || $canBatchConfirmStoryChange); $canBatchAction = ($canGroupBatch || $canBatchChangeBranch || $canBatchChangeModule || $canBatchChangeScene || $canImportToLib); @@ -103,7 +103,7 @@ if($isFromDoc) $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToDoc('#testcases', 'productCase', $blockID, '$insertListLink')")); } -$cols = $isOnlyScene ? $this->config->scene->dtable->fieldList : $this->loadModel('datatable')->getSetting('testcase'); +$cols = $this->loadModel('datatable')->getSetting('testcase'); if(!empty($cols['actions']['list'])) { $executionID = ($app->tab == 'project' || $app->tab == 'execution') ? $this->session->{$app->tab} : '0'; @@ -171,7 +171,7 @@ div( !$isFromDoc ? null : set::afterRender(jsCallback()->call('toggleCheckRows', $idList)), !$isFromDoc ? null : set::onCheckChange(jsRaw('window.checkedChange')), !$isFromDoc ? null : set::height(400), - $isFromDoc || $isOnlyScene ? null : set::customCols(true), + $isFromDoc ? null : set::customCols(true), $isFromDoc ? null : set::sortLink(createLink($app->rawModule, $app->rawMethod, $linkParams)), $isFromDoc ? null : set::createTip($browseType == 'onlyscene' ? $lang->testcase->createScene : $lang->testcase->create), $isFromDoc ? null : set::createLink($browseType == 'onlyscene' ? ($canCreateScene ? $createSceneLink : '') : ($canCreateCase ? $createCaseLink : '')), @@ -187,7 +187,7 @@ div( set::footToolbar($footToolbar), set::footPager(usePager()), set::emptyTip($browseType == 'onlyscene' ? $lang->testcase->noScene : $lang->testcase->noCase), - set::customData(array('isOnlyScene' => $isOnlyScene, 'pageSummary' => $summary, 'modules' => $modulePairs)) + set::customData(array('modules' => $modulePairs)) ) ); diff --git a/module/testcase/ui/browsescene.html.php b/module/testcase/ui/browsescene.html.php new file mode 100644 index 0000000000..65bca86a9f --- /dev/null +++ b/module/testcase/ui/browsescene.html.php @@ -0,0 +1,78 @@ + + * @package testcase + * @link https://www.zentao.net + */ +namespace zin; + +include 'header.html.php'; + +$footToolbar = null; +$canBatchChangeModule = common::canModify('product', $product) && hasPriv('testcase', 'batchChangeModule') && !empty($productID) && ((isset($product->type) && $product->type == 'normal') || $branch !== 'all'); +if($canBatchChangeModule) +{ + $moduleItems = array(); + foreach($modules as $changeModuleID => $module) $moduleItems[] = array('text' => $module, 'innerClass' => 'batch-btn ajax-btn not-open-url', 'data-url' => helper::createLink('testcase', 'batchChangeModule', "moduleID={$changeModuleID}")); + $footToolbar = array('items' => array + ( + array('caret' => 'up', 'text' => $lang->testcase->moduleAB, 'type' => 'dropdown', 'items' => $moduleItems, 'data-placement' => 'top-start', 'data-menu' => array('searchBox' => true)) + ), 'btnProps' => array('size' => 'sm', 'btnType' => 'secondary')); +} + +$subSceneCount = count(array_filter(array_map(function($scene){return $scene->grade > 1;}, $scenes))); + +$cols = $this->config->scene->dtable->fieldList; +$cols['title']['nestedToggle'] = $subSceneCount > 0; + +initTableData($scenes, $cols, $this->testcase); + +div +( + dtable + ( + set::id('scenes'), + set::plugins(array('sortable')), + set::nested(true), + set::sortable(strpos($orderBy, 'sort_asc') !== false), + set::onSortEnd(strpos($orderBy, 'sort_asc') !== false ? jsRaw('window.onSortEnd') : null), + set::canSortTo(strpos($orderBy, 'sort_asc') !== false ? jsRaw('window.canSortTo') : null), + set::onRenderCell(jsRaw('window.onRenderCell')), + set::sortLink(inlink('browseScene', "productID=$product->id&branch=$branch&moduleID=$moduleID&orderBy={name}_{sortType}")), + set::checkable($canBatchChangeModule), + set::cols($cols), + set::data(array_values($scenes)), + set::userMap($users), + set::orderBy($orderBy), + set::footPager(usePager()), + set::footToolbar($footToolbar), + set::emptyTip($lang->testcase->noScene), + set::createTip($lang->testcase->createScene), + set::createLink($canCreateScene ? $createSceneLink : ''), + set::customData(array('modules' => $modulePairs)) + ) +); + +modal +( + setID('dragModal'), + set::title($lang->testcase->dragModalTitle), + set::size('sm'), + divider(), + div(setClass('my-4'), $lang->testcase->dragModalDesc), + div($lang->testcase->dragModalOrder), + div($lang->testcase->dragModalScene), + div(setClass('my-4'), $lang->testcase->dragModalAction), + divider(), + div + ( + setClass('mt-4 pull-right'), + btn(setClass('primary mr-2'), $lang->testcase->dragModalChangeScene, set('data-on', 'click'), set('data-call', 'clickChangeScenen')), + btn(setClass('primary mr-2'), $lang->testcase->dragModalChangeOrder, set('data-on', 'click'), set('data-call', 'clickChangeOrder')), + btn($lang->close, set('data-dismiss', 'modal')) + ) +); diff --git a/module/testcase/ui/header.html.php b/module/testcase/ui/header.html.php index 0661858f8e..55cd198fc1 100644 --- a/module/testcase/ui/header.html.php +++ b/module/testcase/ui/header.html.php @@ -41,6 +41,7 @@ $canCreateSuite = $canModify && hasPriv('testsuite', 'create'); $canBrowseUnits = hasPriv('testtask', 'browseunits'); $canBrowseZeroCase = hasPriv('testcase', 'zerocase') && $rawMethod != 'browseunits'; $canBrowseGroupCase = hasPriv('testcase', 'groupcase'); +$canBrowseScene = hasPriv('testcase', 'browseScene') && ($rawMethod == 'browse' || $rawMethod == 'browsescene') && !$isFromDoc; $canAutomation = !$isExecutionApp && $canModify && hasPriv('testcase', 'automation') && !empty($productID) && $rawMethod != 'browseunits'; $canExport = !$isExecutionApp && hasPriv('testcase', 'export'); $canExportTemplate = !$isExecutionApp && hasPriv('testcase', 'exportTemplate'); @@ -155,7 +156,7 @@ if($isFromDoc) ); } -$linkParams = $projectParam . "productID=$productID&branch=$branch&browseType={key}¶m=0" . $suffixParam; +$linkParams = $rawMethod == 'groupcase' ? "productID=$productID&branch=$branch&groupBy=$groupBy&objectID=0&caseType=$caseType&browseType={key}" : $projectParam . "productID=$productID&branch=$branch&browseType={key}¶m=0" . $suffixParam; $browseLink = createLink('testcase', 'browse', $linkParams); if($app->tab == 'project') $browseLink = createLink('project', 'testcase', $linkParams); if($app->tab == 'execution' && $from != 'doc') $browseLink = createLink('execution', 'testcase', "executionID={$executionID}&productID=$productID&branch=$branch&browseType={key}"); @@ -168,10 +169,12 @@ if($app->tab == 'execution' && $from != 'doc') $objectID = $executionID; featureBar ( set::isModal($isFromDoc), - set::linkParams($rawMethod == 'zerocase' || $rawMethod == 'browseunits' ? null : $linkParams), - set::link($rawMethod == 'zerocase' || $rawMethod == 'browseunits' ? $browseLink : null), + set::module('testcase'), + set::method('browse'), + set::linkParams($rawMethod == 'zerocase' || $rawMethod == 'browseunits' || $rawMethod == 'browsescene' ? null : $linkParams), + set::link($rawMethod == 'zerocase' || $rawMethod == 'browseunits' || $rawMethod == 'browsescene' ? $browseLink : null), set::queryMenuLinkCallback(array(fn($key) => str_replace('{queryID}', (string)$key, $queryMenuLink))), - set::current($methodName == 'browse' ? $this->session->caseBrowseType : null), + set::current(in_array($methodName, array('groupcase', 'browse')) ? $this->session->caseBrowseType : null), set::load($load), set::app($app->tab), $canSwitchCaseType ? to::leading @@ -211,12 +214,12 @@ featureBar ($rawMethod == 'zerocase' && $pager->recTotal != '') ? span(setClass('label size-sm rounded-full white'), $pager->recTotal) : null, ) ) : null, - !$isFromDoc && $rawMethod == 'browse' ? li + $canBrowseScene ? li ( set::className('nav-item'), a ( - set::href(str_replace('{key}', 'onlyScene', $browseLink)), + set::href(inlink('browseScene', "productID=$productID&branch=$branch&moduleID=$moduleID")), set('class', $isOnlyScene ? 'active' : ''), set('data-load', $load), $lang->testcase->onlyScene @@ -395,7 +398,7 @@ toolbar if($rawMethod != 'zerocase' && $rawMethod != 'browseunits' && $rawMethod != 'groupcase' && !$isFromDoc) { $settingLink = $canManageModule ? createLink('tree', 'browse', "productID=$productID&view=case¤tModuleID=0&branch=0&from={$app->tab}") : ''; - $closeLink = createLink($currentModule, $currentMethod, $projectParam . "productID=$productID&branch=$branch&browseType=$browseType¶m=0&caseType=&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}"); + $closeLink = $isOnlyScene ? createLink('testcase', 'browseScene', "productID=$productID&branch=$branch&moduleID=0&orderBy=$orderBy") : createLink($currentModule, $currentMethod, $projectParam . "productID=$productID&branch=$branch&browseType=$browseType¶m=0&caseType=&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}"); sidebar ( moduleMenu(set(array diff --git a/module/testcase/ui/importfromlib.html.php b/module/testcase/ui/importfromlib.html.php index acdec4c3a6..eb2aeed6b1 100644 --- a/module/testcase/ui/importfromlib.html.php +++ b/module/testcase/ui/importfromlib.html.php @@ -74,7 +74,7 @@ foreach($cases as $case) $case->module = 0; } - $case->moduleItems = $canImportModules[$caseBranch][$case->id]; + $case->moduleItems = !empty($canImportModules[$caseBranch][$case->id]) ? $canImportModules[$caseBranch][$case->id] : array(); } $footToolbar = array('items' => array(array('text' => $lang->testcase->import, 'btnType' => 'secondary', 'className' => 'import-btn'))); diff --git a/module/testcase/ui/view.html.php b/module/testcase/ui/view.html.php index 19cc64e3cb..dcefd12dc3 100644 --- a/module/testcase/ui/view.html.php +++ b/module/testcase/ui/view.html.php @@ -179,7 +179,7 @@ $stepsTable = !empty($case->steps) ? div $stepsActions = array(); $stepsMisc = isInModal() ? array('data-load' => 'modal', 'data-target' => '.modal-content') : array(); -$stepsActions['items'][] = $stepsMisc + array('icon' => 'table-large', 'data-app' => $app->tab, 'size' => 'xs', 'type' => $stepsType == 'table' ? 'primary' : 'ghost', 'class' => 'mr-2', 'url' => createLink($viewModule, $viewMethod, "caseID={$case->id}&version={$case->version}&from={$from}&taskID={$taskID}&stepsType=table")); +$stepsActions['items'][] = $stepsMisc + array('icon' => 'table', 'data-app' => $app->tab, 'size' => 'xs', 'type' => $stepsType == 'table' ? 'primary' : 'ghost', 'class' => 'mr-2', 'url' => createLink($viewModule, $viewMethod, "caseID={$case->id}&version={$case->version}&from={$from}&taskID={$taskID}&stepsType=table")); $stepsActions['items'][] = $stepsMisc + array('icon' => 'tree', 'data-app' => $app->tab, 'size' => 'xs', 'type' => $stepsType == 'mindmap' ? 'primary' : 'ghost', 'url' => createLink($viewModule, $viewMethod, "caseID={$case->id}&version={$case->version}&from={$from}&taskID={$taskID}&stepsType=mindmap")); /* 初始化主栏内容。Init sections in main column. */ diff --git a/module/testcase/zen.php b/module/testcase/zen.php index a277c70486..6d14e416b0 100755 --- a/module/testcase/zen.php +++ b/module/testcase/zen.php @@ -44,7 +44,7 @@ class testcaseZen extends testcase * @access protected * @return void */ - protected function setBrowseCookie(int $productID, string|bool $branch, string $browseType, string $param): void + protected function setBrowseCookie(int $productID, string|bool $branch, string $browseType = '', string $param = ''): void { helper::setcookie('preProductID', $productID); helper::setcookie('preBranch', $branch); @@ -87,7 +87,7 @@ class testcaseZen extends testcase * @access protected * @return void */ - protected function setBrowseSession(int $productID, string|bool $branch, int $moduleID, string $browseType, string $orderBy): void + protected function setBrowseSession(int $productID, string|bool $branch, int $moduleID, string $browseType = '', string $orderBy = ''): void { if($browseType != 'bymodule') $this->session->set('caseBrowseType', $browseType); @@ -439,8 +439,67 @@ class testcaseZen extends testcase } /** - * 指定用例列表的场景和用例。 - * Assign scenes and cases for browse page. + * 处理浏览页面的用例列表。 + * Process cases for browse page. + * + * @param array $cases + * @access public + * @return array + */ + public function processCasesForBrowse(array $cases): array + { + if(!$cases) return []; + + foreach($cases as $case) + { + $case->caseID = $case->id; + $case->id = 'case_' . $case->id; // 给用例 ID 加前缀以防止和场景 ID 重复。Add prefix to case ID to prevent it from conflicting with scene ID. + $case->parent = 0; + $case->isScene = false; + } + + $caseScenes = array_unique(array_filter(array_column($cases, 'scene'))); // 获取用例的场景 ID。Get unique scene IDs from cases. + if(!$caseScenes) return $cases; + + $pathList = $this->dao->select('path')->from(TABLE_SCENE)->where('deleted')->eq('0')->andWhere('id')->in($caseScenes)->fetchPairs(); // 获取场景的路径列表。Get path list of scenes. + $idList = array_unique(array_filter(explode(',', implode(',', $pathList)))); + $scenes = $this->dao->select('*')->from(TABLE_SCENE)->where('deleted')->eq('0')->andWhere('id')->in($idList)->orderBy('grade_desc, sort_asc')->fetchAll('id'); // 获取场景列表。Get scene list. + + foreach($cases as $case) + { + if(!isset($scenes[$case->scene])) continue; + + $scene = $scenes[$case->scene]; + $scene->hasCase = true; + + $case->parent = $scene->id; + $case->grade = $scene->grade + 1; + $case->path = $scene->path . $case->id . ','; + } + + $this->dao->setTable(TABLE_CASE); + $fieldTypes = $this->dao->getFieldsType(); + + foreach($scenes as $scene) + { + $scene = $this->testcase->buildSceneBaseOnCase($scene, $fieldTypes); + $scene->scene = $scene->parent; + if(isset($scene->hasCase)) + { + if (isset($scenes[$scene->parent])) $scenes[$scene->parent]->hasCase = true; // 如果子场景有用例,那么父场景也有用例。If the child scene has a use case, the parent scene also has a use case. + } + else + { + $scene->hasCase = false; // hasCase 为 false 时在页面上显示“暂无用例”。If hasCase is false, show "No use case" on the page. + } + } + + return array_merge($scenes, $cases); + } + + /** + * 指定浏览用例页面的用例列表。 + * Assign cases for browse page. * * @param int $productID * @param string $branch @@ -452,69 +511,21 @@ class testcaseZen extends testcase * @param int $recTotal * @param int $recPerPage * @param int $pageID - * @param string $from * @access protected * @return void */ - protected function assignCasesAndScenesForBrowse(int $productID, string $branch, string $browseType, int $queryID, int $moduleID, string $caseType, string $orderBy, int $recTotal, int $recPerPage, int $pageID, string $from = 'testcase'): void + protected function assignCasesForBrowse(int $productID, string $branch, string $browseType, int $queryID, int $moduleID, string $caseType, string $orderBy, int $recTotal, int $recPerPage, int $pageID, string $from = 'testcase'): void { $this->app->loadClass('pager', $static = true); $pager = new pager($recTotal, $recPerPage, $pageID); - $cases = array(); - $scenes = array(); - $sort = common::appendOrder($orderBy); + $sort = common::appendOrder($orderBy); if(strpos($sort, 'caseID') !== false) $sort = str_replace('caseID', 'id', $sort); - if($browseType == 'all' || $browseType == 'onlyscene') - { - $pager->pageID = $pageID; // 场景和用例混排,$pageID 可能大于场景分页后的总页数。在 pager 构造函数中会被设为 1,这里要重新赋值。 - $scenes = $this->testcase->getSceneGroups($productID, $branch, $browseType, $moduleID, $caseType, $sort, $pager); // 获取包含子场景和用例的顶级场景树。 - - if($browseType == 'all') - { - $recPerPage = $pager->recPerPage; - $sceneTotal = $pager->recTotal; - $sceneCount = count($scenes); - - /* 场景条数小于每页记录数,继续获取用例。 */ - if($sceneCount < $recPerPage) - { - /* 重置 $pager 属性,只获取需要的用例条数。*/ - $pager->recTotal = 0; - $pager->recPerPage = $recPerPage - $sceneCount; - if($sceneCount > 0) $pager->pageID = 1; // 查询用例时的分页起始偏移量单独计算,每次查询的页码都设为 1 即可,后面会重新设置页码。 - if($sceneCount == 0) $pager->offset = - $sceneTotal; // 场景数为 0 表示本页查询只显示用例,需要计算用例分页的起始偏移量。 - - $cases = $this->testcase->getTestCases($productID, $branch, $browseType, $queryID, $moduleID, $caseType, $auto = 'no', $sort, $pager, $from); - $this->loadModel('common')->saveQueryCondition($this->dao->get(), 'testcase', false); - } - else - { - /* 场景和用例混排,总记录数需要合并后显示,这里是为了获取用例的总记录数。*/ - $cases = $this->testcase->getTestCases($productID, $branch, $browseType, $queryID, $moduleID, $caseType, $auto = 'no', $sort, $pager); - $cases = array(); - } - - /* 合并场景和用例的总记录数,并重新计算总页数和当前页码。*/ - $pager->recTotal += $sceneTotal; - $pager->recPerPage = $recPerPage; - $pager->pageTotal = ceil($pager->recTotal / $recPerPage); - $pager->pageID = $pageID; - } - } - else - { - $cases = $this->testcase->getTestCases($productID, $branch, $browseType, $queryID, $moduleID, $caseType, $auto = 'no', $sort, $pager); - $this->loadModel('common')->saveQueryCondition($this->dao->get(), 'testcase', false); - } - - $sceneCount = count($scenes); - $caseCount = count($cases); - $summary = sprintf($browseType == 'onlyscene' ? $this->lang->testcase->summaryScene : $this->lang->testcase->summary, $sceneCount, $caseCount); - - $scenes = $this->testcase->preProcessScenesForBrowse($scenes); - $cases = $this->testcase->preProcessCasesForBrowse($cases); + $cases = $this->testcase->getTestCases($productID, $branch, $browseType, $queryID, $moduleID, $caseType, 'no', $sort, $pager, $from); + $this->loadModel('common')->saveQueryCondition($this->dao->get(), 'testcase', false); + $cases = $this->loadModel('story')->checkNeedConfirm($cases); + $cases = $this->testcase->appendData($cases); if($this->config->edition != 'open') { @@ -522,10 +533,9 @@ class testcaseZen extends testcase foreach($cases as $caseID => $case) $case->relatedObject = zget($caseRelatedObjectList, $caseID, 0); } - $this->view->cases = array_merge($scenes, $cases); + $this->view->cases = $this->processCasesForBrowse($cases); $this->view->orderBy = $orderBy; $this->view->pager = $pager; - $this->view->summary = $summary; } /** @@ -557,11 +567,12 @@ class testcaseZen extends testcase * Assign product and branch. * * @param int $productID + * @param string $branch * @param int $projectID * @access protected * @return void */ - protected function assignProductAndBranchForBrowse(int $productID, string $branch, int $projectID): void + protected function assignProductAndBranchForBrowse(int $productID, string $branch, int $projectID = 0): void { /* 根据产品类型判断是否展示分支,获取分支选项信息和带标签的分支选项信息。*/ /* Judge whether to show branch according to the type of product, get branch option and branch tag option. */ @@ -2309,14 +2320,15 @@ class testcaseZen extends testcase * @param string $branch * @param string $groupBy * @param string $caseType + * @param string $browseType * @access protected * @return array */ - protected function getGroupCases(int $productID, string $branch, string $groupBy, string $caseType): array + protected function getGroupCases(int $productID, string $branch, string $groupBy, string $caseType, string $browseType = ''): array { /* 获取用例。 */ /* Get cases. */ - $cases = $this->testcase->getModuleCases($productID, $branch, 0, '', 'no', $caseType, $groupBy); + $cases = $this->testcase->getModuleCases($productID, $branch, 0, $browseType, 'no', $caseType, $groupBy); $this->loadModel('common')->saveQueryCondition($this->dao->get(), 'testcase', false); $cases = $this->loadModel('story')->checkNeedConfirm($cases); @@ -2437,7 +2449,7 @@ class testcaseZen extends testcase $currentModule = $this->app->tab == 'qa' ? 'testcase' : $this->app->tab; $currentMethod = $this->app->tab == 'qa' ? 'browse' : 'testcase'; $projectParam = $this->app->tab == 'qa' ? '' : "{$this->app->tab}ID=" . zget($_SESSION, $this->app->tab, 0) . '&'; - return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $this->createLink($currentModule, $currentMethod, "{$projectParam}productID={$productID}&branch={$branch}&browseType=all¶m=0&caseType=&orderBy=id_desc"))); + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $this->createLink($currentModule, $currentMethod, "{$projectParam}productID={$productID}&branch={$branch}"))); } /** diff --git a/module/testreport/model.php b/module/testreport/model.php index 2c6eb5be5b..103d1504d3 100644 --- a/module/testreport/model.php +++ b/module/testreport/model.php @@ -92,7 +92,7 @@ class testreportModel extends model * @access public * @return array */ - public function getList(int $objectID, string $objectType, int $extra = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(int $objectID, string $objectType, int $extra = 0, string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTestReports(); @@ -119,7 +119,7 @@ class testreportModel extends model * @access public * @return array */ - public function getTaskCases(array $tasks, string $begin, string $end, string $idList = '', object $pager = null): array + public function getTaskCases(array $tasks, string $begin, string $end, string $idList = '', ?object $pager = null): array { $cases = $this->dao->select('t2.*, t1.task, t1.assignedTo, t1.status, t1.lastRunDate AS maxRunDate')->from(TABLE_TESTRUN)->alias('t1') ->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case = t2.id') diff --git a/module/testreport/zen.php b/module/testreport/zen.php index 88580af531..575e49c049 100644 --- a/module/testreport/zen.php +++ b/module/testreport/zen.php @@ -142,7 +142,7 @@ class testreportZen extends testreport * @access protected * @return array */ - protected function assignTesttaskReportData(int $objectID, string $begin = '', string $end = '', int $productID = 0, object $task = null, string $method = 'create'): array + protected function assignTesttaskReportData(int $objectID, string $begin = '', string $end = '', int $productID = 0, ?object $task = null, string $method = 'create'): array { $begin = !empty($begin) ? date("Y-m-d", strtotime($begin)) : $task->begin; $end = !empty($end) ? date("Y-m-d", strtotime($end)) : $task->end; @@ -279,7 +279,7 @@ class testreportZen extends testreport * @access protected * @return void */ - protected function assignReportData(array $reportData, string $method, object $pager = null): void + protected function assignReportData(array $reportData, string $method, ?object $pager = null): void { foreach($reportData as $key => $value) { diff --git a/module/testsuite/model.php b/module/testsuite/model.php index 7a7dd83046..5bd089cdb4 100644 --- a/module/testsuite/model.php +++ b/module/testsuite/model.php @@ -46,7 +46,7 @@ class testsuiteModel extends model * @access public * @return array */ - public function getSuites(int $productID, string $orderBy = 'id_desc', object $pager = null, string $param = ''): array + public function getSuites(int $productID, string $orderBy = 'id_desc', ?object $pager = null, string $param = ''): array { return $this->dao->select('*')->from(TABLE_TESTSUITE) ->where('product')->eq($productID) @@ -182,7 +182,7 @@ class testsuiteModel extends model * @access public * @return array */ - public function getLinkedCases(int $suiteID, string $orderBy = 'id_desc', object $pager = null, bool $append = true): array + public function getLinkedCases(int $suiteID, string $orderBy = 'id_desc', ?object $pager = null, bool $append = true): array { $suite = $this->getById($suiteID); if(!$suite) return array(); @@ -238,7 +238,7 @@ class testsuiteModel extends model * @access public * @return array */ - public function getUnlinkedCases(object $suite, string $browseType = 'all', int $param = 0, object $pager = null): array + public function getUnlinkedCases(object $suite, string $browseType = 'all', int $param = 0, ?object $pager = null): array { if($this->session->testsuiteQuery == false) $this->session->set('testsuiteQuery', ' 1 = 1'); if($param) diff --git a/module/testtask/control.php b/module/testtask/control.php index 7d401446c8..fe9f4da733 100644 --- a/module/testtask/control.php +++ b/module/testtask/control.php @@ -1090,8 +1090,9 @@ class testtask extends control * @access public * @return void */ - public function batchAssign(int $taskID, string $account) + public function batchAssign(int $taskID, string $account = '') { + if(empty($account)) $account = $this->post->assignedTo; $this->testtask->batchAssign($taskID, $account, $this->post->caseIdList); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); diff --git a/module/testtask/js/browse.ui.js b/module/testtask/js/browse.ui.js index aebb5fea8e..af2866f0c6 100644 --- a/module/testtask/js/browse.ui.js +++ b/module/testtask/js/browse.ui.js @@ -12,5 +12,9 @@ window.onRenderCell = function(result, {row, col}) { if(result[0].props) result[0].props['data-app'] = 'project'; } + else if(col.name == 'status' && result) + { + result[0] = {html: `` + row.data.status + ""}; + } return result; } diff --git a/module/testtask/js/cases.ui.js b/module/testtask/js/cases.ui.js index 06621db4cd..32d8119a4f 100644 --- a/module/testtask/js/cases.ui.js +++ b/module/testtask/js/cases.ui.js @@ -12,6 +12,7 @@ $(document).off('click', '.batch-btn').on('click', '.batch-btn', function() form.append('caseIdList[]', caseInfo.case); if(caseInfo.auto == 'auto') autoRun = true; }); + if($(this).data('account')) form.append('assignedTo', $(this).data('account')); if($(this).hasClass('batch-run') && autoRun) { diff --git a/module/testtask/model.php b/module/testtask/model.php index 8fa58f1d9b..847932d668 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -55,7 +55,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getProductTasks(int $productID, string $branch = 'all', string $type = '', string $begin = '', string $end = '', string $orderBy = 'id_desc', object $pager = null): array + public function getProductTasks(int $productID, string $branch = 'all', string $type = '', string $begin = '', string $end = '', string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTesttasks(); @@ -103,7 +103,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getProductUnitTasks(int $productID, string $browseType = 'newest', string $orderBy = 'id_desc', object $pager = null): array + public function getProductUnitTasks(int $productID, string $browseType = 'newest', string $orderBy = 'id_desc', ?object $pager = null): array { $begin = ''; $end = ''; @@ -152,9 +152,9 @@ class testtaskModel extends model * @access public * @return array */ - public function getProjectTasks(int $projectID, string $orderBy = 'id_desc', object $pager = null): array + public function getProjectTasks(int $projectID, string $orderBy = 'id_desc', ?object $pager = null): array { - $tasks = $this->dao->select('t1.*, t1.id as idName, t5.multiple, IF(t4.shadow = 1, t5.name, t4.name) AS productName, t3.name AS executionName, t2.name AS buildName, t2.branch AS branch, t5.name AS projectName, t4.order as productOrder') + $tasks = $this->dao->select('t1.*, t1.id AS idName, t5.multiple, IF(t4.shadow = 1, t5.name, t4.name) AS productName, t3.name AS executionName, t2.name AS buildName, t2.branch AS branch, t5.name AS projectName, t4.`order` AS productOrder') ->from(TABLE_TESTTASK)->alias('t1') ->leftJoin(TABLE_BUILD)->alias('t2')->on('t1.build = t2.id') ->leftJoin(TABLE_EXECUTION)->alias('t3')->on('t1.execution = t3.id') @@ -181,7 +181,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getExecutionTasks(int $executionID, string $objectType = 'execution', string $orderBy = 'id_desc', object $pager = null): array + public function getExecutionTasks(int $executionID, string $objectType = 'execution', string $orderBy = 'id_desc', ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTesttasks(); @@ -308,7 +308,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getByUser(string $account, object $pager = null, string $orderBy = 'id_desc', string $type = ''): array + public function getByUser(string $account, ?object $pager = null, string $orderBy = 'id_desc', string $type = ''): array { return $this->dao->select("t1.*, t2.name AS executionName, t2.multiple AS executionMultiple, t5.name AS projectName, t3.name AS buildName, t4.name AS productName, CONCAT(t2.name, '/', t3.name) as executionBuild") ->from(TABLE_TESTTASK)->alias('t1') @@ -356,7 +356,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getLinkableCases(int $productID, object $task, string $type = 'all', int $param = 0, object $pager = null): array + public function getLinkableCases(int $productID, object $task, string $type = 'all', int $param = 0, ?object $pager = null): array { if($this->session->testcaseQuery == false) $this->session->set('testcaseQuery', ' 1 = 1'); $query = $this->session->testcaseQuery; @@ -386,7 +386,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getAllLinkableCases(object $task, string $query = '', array $linkedCases = array(), object $pager = null): array + public function getAllLinkableCases(object $task, string $query = '', array $linkedCases = array(), ?object $pager = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCases(); @@ -414,7 +414,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getLinkableCasesByStory(int $productID, object $task, string $query = '', array $linkedCases = array(), object $pager = null): array + public function getLinkableCasesByStory(int $productID, object $task, string $query = '', array $linkedCases = array(), ?object $pager = null): array { $stories = $this->dao->select('stories')->from(TABLE_BUILD)->where('id')->eq($task->build)->fetch('stories'); if(!$stories) return array(); @@ -447,7 +447,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getLinkableCasesByBug(int $productID, object $task, string $query = '', array $linkedCases = array(), object $pager = null): array + public function getLinkableCasesByBug(int $productID, object $task, string $query = '', array $linkedCases = array(), ?object $pager = null): array { $bugs = $this->dao->select('bugs')->from(TABLE_BUILD)->where('id')->eq($task->build)->fetch('bugs'); if(!$bugs) return array(); @@ -479,7 +479,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getLinkableCasesBySuite(int $productID, object $task, int $suite, string $query = '', array$linkedCases = array(), object $pager = null): array + public function getLinkableCasesBySuite(int $productID, object $task, int $suite, string $query = '', array$linkedCases = array(), ?object $pager = null): array { if(strpos($query, '`product`') !== false) $query = str_replace('`product`', 't1.`product`', $query); @@ -509,7 +509,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getLinkableCasesByTestTask(int $testTask, string $query = '', array $linkedCases = array(), object $pager = null): array + public function getLinkableCasesByTestTask(int $testTask, string $query = '', array $linkedCases = array(), ?object $pager = null): array { /* Format the query condition. */ $query = preg_replace('/`(\w+)`/', 't1.`$1`', $query); @@ -980,7 +980,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getRuns(int $taskID, array $modules, string $orderBy, object $pager = null): array + public function getRuns(int $taskID, array $modules, string $orderBy, ?object $pager = null): array { $orderBy = $this->addPrefixToOrderBy($orderBy); @@ -1006,7 +1006,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getRunsBySuite(int $taskID, int $suiteID, string $orderBy, object $pager = null): array + public function getRunsBySuite(int $taskID, int $suiteID, string $orderBy, ?object $pager = null): array { $orderBy = $this->addPrefixToOrderBy($orderBy); $cases = $this->loadModel('testsuite')->getLinkedCasePairs($suiteID); @@ -1056,7 +1056,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getUserRuns(int $taskID, string $user, array $modules = array(), string $orderBy = 'id_desc', object $pager = null): array + public function getUserRuns(int $taskID, string $user, array $modules = array(), string $orderBy = 'id_desc', ?object $pager = null): array { $orderBy = $this->addPrefixToOrderBy($orderBy); @@ -1134,7 +1134,7 @@ class testtaskModel extends model * @access public * @return array */ - public function getTaskCases(int $productID, string $browseType, int $queryID, int $moduleID, string $sort, object $pager = null, object $task = null): array + public function getTaskCases(int $productID, string $browseType, int $queryID, int $moduleID, string $sort, ?object $pager = null, ?object $task = null): array { if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCases(); diff --git a/module/testtask/tao.php b/module/testtask/tao.php index 332a0affb2..92fdb26ec1 100644 --- a/module/testtask/tao.php +++ b/module/testtask/tao.php @@ -19,7 +19,7 @@ class testtaskTao extends testtaskModel * @access protected * @return array */ - protected function fetchTesttaskList(int $productID, string $branch = '', int $projectID = 0, string $unit = 'no', string $scope = '', string $status = '', string $begin = '', string $end = '', string $orderBy = '', object $pager = null): array + protected function fetchTesttaskList(int $productID, string $branch = '', int $projectID = 0, string $unit = 'no', string $scope = '', string $status = '', string $begin = '', string $end = '', string $orderBy = '', ?object $pager = null): array { return $this->dao->select("t1.*, t5.multiple, IF(t2.shadow = 1, t5.name, t2.name) AS productName, t3.name AS executionName, t4.name AS buildName, t4.branch AS branch, t5.name AS projectName") ->from(TABLE_TESTTASK)->alias('t1') diff --git a/module/testtask/test/model/getlinkablecases.php b/module/testtask/test/model/getlinkablecases.php index 27f94ba241..133dd339b5 100755 --- a/module/testtask/test/model/getlinkablecases.php +++ b/module/testtask/test/model/getlinkablecases.php @@ -51,8 +51,8 @@ cid=1 global $tester, $app; -$app->setModuleName('testtask'); -$app->setMethodName('linkCase'); +$app->rawModule = 'testtask'; +$app->rawMethod = 'linkCase'; $app->loadClass('pager', true); $pager = new pager(0, 5, 1); @@ -104,4 +104,4 @@ r(count($testtask->getLinkableCases(1, $task4, 'bybuild', 1))) && p() && e(15); r(count($testtask->getLinkableCases(1, $task5, 'bybuild', 1))) && p() && e(15); // 产品 1 测试单 4 按版本关联可关联的用例数为 15。 r(count($testtask->getLinkableCases(1, $task4, 'bybuild', 1, $pager))) && p() && e(5); // 产品 1 测试单 4 限制每页查询 5 条后按版本关联可关联的用例数为 5。 -r(count($testtask->getLinkableCases(1, $task5, 'bybuild', 1, $pager))) && p() && e(5); // 产品 1 测试单 4 限制每页查询 5 条后按版本关联可关联的用例数为 5。 \ No newline at end of file +r(count($testtask->getLinkableCases(1, $task5, 'bybuild', 1, $pager))) && p() && e(5); // 产品 1 测试单 4 限制每页查询 5 条后按版本关联可关联的用例数为 5。 diff --git a/module/testtask/ui/cases.html.php b/module/testtask/ui/cases.html.php index 846983a400..464ca71d76 100644 --- a/module/testtask/ui/cases.html.php +++ b/module/testtask/ui/cases.html.php @@ -138,7 +138,7 @@ if($canBatchAction) if($canBatchAssign) { $userItems = array(); - foreach($assignedToList as $account => $realname) $userItems[] = array('text' => $realname, 'innerClass' => 'batch-btn ajax-btn not-open-url', 'data-url' => inlink('batchAssign', "taskID={$task->id}&account={$account}")); + foreach($assignedToList as $account => $realname) $userItems[] = array('text' => $realname, 'innerClass' => 'batch-btn ajax-btn not-open-url', 'data-url' => inlink('batchAssign', "taskID={$task->id}"), 'data-account' => $account); $footToolbar['items'][] = array('text' => $lang->testtask->assign, 'caret' => 'up', 'btnType' => 'secondary', 'type' => 'dropdown', 'items' => $userItems, 'data-placement' => 'top-start', 'data-menu' => array('searchBox' => true)); } diff --git a/module/todo/model.php b/module/todo/model.php index 17bffc7f54..2edceb2303 100755 --- a/module/todo/model.php +++ b/module/todo/model.php @@ -226,7 +226,7 @@ class todoModel extends model * @access public * @return array */ - public function getList(string $type = 'today', string $account = '', string|array $status = 'all', int $limit = 0, object $pager = null, string $orderBy="date,status,begin"): array + public function getList(string $type = 'today', string $account = '', string|array $status = 'all', int $limit = 0, ?object $pager = null, string $orderBy="date,status,begin"): array { $this->app->loadClass('date', true); diff --git a/module/todo/tao.php b/module/todo/tao.php index 9686123ad7..82ba991b27 100644 --- a/module/todo/tao.php +++ b/module/todo/tao.php @@ -445,7 +445,7 @@ class todoTao extends todoModel * @access protected * @return array */ - protected function getListBy(string $type, string $account, array|string $status, string $begin, string $end, int $limit, string $orderBy, object $pager = null): array + protected function getListBy(string $type, string $account, array|string $status, string $begin, string $end, int $limit, string $orderBy, ?object $pager = null): array { return $this->dao->select('*')->from(TABLE_TODO) ->where('deleted')->eq('0') diff --git a/module/transfer/zen.php b/module/transfer/zen.php index a37942b840..d1d760206b 100644 --- a/module/transfer/zen.php +++ b/module/transfer/zen.php @@ -268,7 +268,7 @@ class transferZen extends transfer * @access private * @return string */ - private function processEstimate(int $row = 0, object $object = null): string + private function processEstimate(int $row = 0, ?object $object = null): string { $members = $this->loadModel('user')->getTeamMemberPairs($this->session->taskTransferParams['executionID'], 'execution'); $html = ''; diff --git a/module/tree/model.php b/module/tree/model.php index 3fb1ccc27c..a9c9b4d207 100644 --- a/module/tree/model.php +++ b/module/tree/model.php @@ -1344,6 +1344,31 @@ class treeModel extends model return $data; } + /** + * 生成测试场景的链接。 + * Create module of a scene. + * + * @param string $type + * @param object $module + * @param string $parent + * @param array|string $extra + * @access public + * @return object + */ + public function createSceneLink(string $type, object $module, string $parent, array|string $extra = array()): object + { + $branch = $extra['branchID'] ?? ''; + $orderBy = $extra['orderBy'] ?? 'id_desc'; + + $data = new stdclass(); + $data->id = (string)$module->id; + $data->parent = $parent && empty($module->parent) ? $parent : (string)$module->parent; + $data->name = $module->name; + $data->url = helper::createLink('testcase', 'browseScene', "productID={$module->root}&branch=$branch&moduleID={$module->id}&orderBy=$orderBy"); + + return $data; + } + /** * 生成测试任务的链接。 * Create link of a test task. diff --git a/module/upgrade/config.php b/module/upgrade/config.php index b76d86f78b..a4f29c5412 100644 --- a/module/upgrade/config.php +++ b/module/upgrade/config.php @@ -69,7 +69,8 @@ $config->upgrade->maxVersion['max6_6'] = '21_6'; $config->upgrade->maxVersion['max6_6_1'] = '21_6_1'; $config->upgrade->maxVersion['max6_7'] = '21_7'; $config->upgrade->maxVersion['max7_0'] = '21_7_1'; -$config->upgrade->maxVersion['max7_1'] = '21_7_2'; // max insert position. +$config->upgrade->maxVersion['max7_1'] = '21_7_2'; +$config->upgrade->maxVersion['max7_2'] = '21_7_3'; // max insert position. $config->upgrade->bizVersion = array(); $config->upgrade->bizVersion['biz1_0'] = '9_5_1'; @@ -177,7 +178,8 @@ $config->upgrade->bizVersion['biz11_6'] = '21_6'; $config->upgrade->bizVersion['biz11_6_1'] = '21_6_1'; $config->upgrade->bizVersion['biz11_7'] = '21_7'; $config->upgrade->bizVersion['biz12_0'] = '21_7_1'; -$config->upgrade->bizVersion['biz12_1'] = '21_7_2'; // biz insert position. +$config->upgrade->bizVersion['biz12_1'] = '21_7_2'; +$config->upgrade->bizVersion['biz12_2'] = '21_7_3'; // biz insert position. $config->upgrade->proVersion = array(); $config->upgrade->proVersion['pro1_0'] = '3_1'; @@ -322,7 +324,8 @@ $config->upgrade->ipdVersion['ipd3_6'] = '21_6'; $config->upgrade->ipdVersion['ipd3_6_1'] = '21_6_1'; $config->upgrade->ipdVersion['ipd3_7'] = '21_7'; $config->upgrade->ipdVersion['ipd4_0'] = '21_7_1'; -$config->upgrade->ipdVersion['ipd4_1'] = '21_7_2'; // ipd insert position. +$config->upgrade->ipdVersion['ipd4_1'] = '21_7_2'; +$config->upgrade->ipdVersion['ipd4_2'] = '21_7_3'; // ipd insert position. $config->upgrade->lowerTables = array(); $config->upgrade->lowerTables[$config->db->prefix . 'caseStep'] = $config->db->prefix . 'casestep'; diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index 8990723fe8..1a445e0154 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -214,7 +214,8 @@ $lang->upgrade->fromVersions['21_6'] = '21.6'; $lang->upgrade->fromVersions['21_6_1'] = '21.6.1'; $lang->upgrade->fromVersions['21_7'] = '21.7'; $lang->upgrade->fromVersions['21_7_1'] = '21.7.1'; -$lang->upgrade->fromVersions['21_7_2'] = '21.7.2'; // pms insert position. +$lang->upgrade->fromVersions['21_7_2'] = '21.7.2'; +$lang->upgrade->fromVersions['21_7_3'] = '21.7.3'; // pms insert position. global $config; /* Lite. */ @@ -429,7 +430,8 @@ $lang->upgrade->fromVersions['biz11_6'] = 'Biz11.6'; $lang->upgrade->fromVersions['biz11_6_1'] = 'Biz11.6.1'; $lang->upgrade->fromVersions['biz11_7'] = 'Biz11.7'; $lang->upgrade->fromVersions['biz12_0'] = 'Biz12.0'; -$lang->upgrade->fromVersions['biz12_1'] = 'Biz12.1'; // biz insert position. +$lang->upgrade->fromVersions['biz12_1'] = 'Biz12.1'; +$lang->upgrade->fromVersions['biz12_2'] = 'Biz12.2'; // biz insert position. /* Max. */ $lang->upgrade->fromVersions['max2_0_beta4'] = 'Max2.0.beta4'; @@ -502,7 +504,8 @@ $lang->upgrade->fromVersions['max6_6'] = 'Max6.6'; $lang->upgrade->fromVersions['max6_6_1'] = 'Max6.6.1'; $lang->upgrade->fromVersions['max6_7'] = 'Max6.7'; $lang->upgrade->fromVersions['max7_0'] = 'Max7.0'; -$lang->upgrade->fromVersions['max7_1'] = 'Max7.1'; // max insert position. +$lang->upgrade->fromVersions['max7_1'] = 'Max7.1'; +$lang->upgrade->fromVersions['max7_2'] = 'Max7.2'; // max insert position. /* Ipd */ $lang->upgrade->fromVersions['ipd1_0_beta1'] = 'Ipd1.0.beta1'; @@ -536,4 +539,5 @@ $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'; $lang->upgrade->fromVersions['ipd3_7'] = 'Ipd3.7'; -$lang->upgrade->fromVersions['ipd4_0'] = 'Ipd4.0'; // ipd insert position. +$lang->upgrade->fromVersions['ipd4_0'] = 'Ipd4.0'; +$lang->upgrade->fromVersions['ipd4_1'] = 'Ipd4.1'; // ipd insert position. diff --git a/module/upgrade/model.php b/module/upgrade/model.php index d50bdbe50b..6c9dc7e161 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -3884,7 +3884,7 @@ class upgradeModel extends model * @access public * @return int|bool */ - public function createProject(int $programID = 0, object $data = null): int|bool + public function createProject(int $programID = 0, ?object $data = null): int|bool { $now = helper::now(); $account = isset($this->app->user->account) ? $this->app->user->account : ''; @@ -4005,7 +4005,7 @@ class upgradeModel extends model * @access public * @return void */ - public function computeProductAcl(array $productIdList = array(), int $programID = 0, int|object $lineID = null): void + public function computeProductAcl(array $productIdList = array(), int $programID = 0, mixed $lineID = null): void { /* Compute product acl. */ $products = $this->dao->select('id,program,acl')->from(TABLE_PRODUCT)->where('id')->in($productIdList)->fetchAll(); diff --git a/module/user/model.php b/module/user/model.php index cba2cac97b..caa4e2f647 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -464,7 +464,7 @@ class userModel extends model * @access public * @return array */ - public function getByQuery(string $browseType = 'inside', string $query = '', object $pager = null, string $orderBy = 'id'): array + public function getByQuery(string $browseType = 'inside', string $query = '', ?object $pager = null, string $orderBy = 'id'): array { return $this->dao->select('*')->from(TABLE_USER) ->where('deleted')->eq('0') @@ -1296,7 +1296,7 @@ class userModel extends model * @access public * @return array */ - public function getProjects(string $account, string $status = 'all', string $orderBy = 'id_desc', object $pager = null): array + 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); @@ -1336,7 +1336,7 @@ class userModel extends model * @access public * @return array */ - public function getExecutions(string $account, string $status = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function getExecutions(string $account, string $status = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { $executions = $this->userTao->fetchExecutions($account, $status, $orderBy, $pager); if(!$executions) return array(); diff --git a/module/user/tao.php b/module/user/tao.php index 3dcd8e28cc..1eac761d7b 100644 --- a/module/user/tao.php +++ b/module/user/tao.php @@ -22,7 +22,7 @@ class userTao extends userModel * @access public * @return array */ - public function fetchProjects(string $account, string $status = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function fetchProjects(string $account, string $status = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t1.role, t1.join, t1.days, t1.hours, t2.*')->from(TABLE_TEAM)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.root = t2.id') @@ -97,7 +97,7 @@ class userTao extends userModel * @access public * @return array */ - public function fetchExecutions(string $account, string $status = 'all', string $orderBy = 'id_desc', object $pager = null): array + public function fetchExecutions(string $account, string $status = 'all', string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('t1.role, t1.join, t1.days, t1.hours, t2.*')->from(TABLE_TEAM)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.root = t2.id') diff --git a/module/user/test/model/getbyquery.php b/module/user/test/model/getbyquery.php index b9e6d98a7e..b9fa7dbb6f 100755 --- a/module/user/test/model/getbyquery.php +++ b/module/user/test/model/getbyquery.php @@ -53,8 +53,8 @@ su('admin'); global $app; $app->loadClass('pager', true); -$app->setModuleName('user'); -$app->setMethodName('browse'); +$app->rawModule = 'user'; +$app->rawMethod = 'browse'; $pager = new pager(0, 5, 1); $userTest = new userTest(); diff --git a/module/user/test/model/getexecutions.php b/module/user/test/model/getexecutions.php index 250530836e..a20adbf885 100755 --- a/module/user/test/model/getexecutions.php +++ b/module/user/test/model/getexecutions.php @@ -73,8 +73,8 @@ su('admin'); global $app, $config; -$app->setModuleName('my'); -$app->setMethodName('project'); +$app->rawModule = 'my'; +$app->rawMethod = 'project'; $app->loadClass('pager'); $pager = new pager(0, 5, 1); @@ -98,4 +98,4 @@ r($executions) && p('6:status,delay,projectName,assignedToMeTasks') && e('wait, r($executions) && p('7:status,delay,projectName,assignedToMeTasks') && e('wait,1,项目2,2'); // 执行 7 的状态为 wait,延期 1 天,项目名称为项目 2,指派给 admin 的任务数是 2。 r($executions) && p('8:status,delay,projectName,assignedToMeTasks') && e('doing,1,项目2,1'); // 执行 8 的状态为 doing,延期 1 天,项目名称为项目 2,指派给 admin 的任务数是 1。 r($executions) && p('9:status,delay,projectName,assignedToMeTasks') && e('suspended,~~,项目2,1'); // 执行 9 的状态为 suspended,没有延期,项目名称为项目 2,指派给 admin 的任务数是 1。 -r($executions) && p('10:status,delay,projectName,assignedToMeTasks') && e('closed,~~,项目3,1'); // 执行 10 的状态为 closed,没有延期,项目名称为项目 3,指派给 admin 的任务数是 1。 \ No newline at end of file +r($executions) && p('10:status,delay,projectName,assignedToMeTasks') && e('closed,~~,项目3,1'); // 执行 10 的状态为 closed,没有延期,项目名称为项目 3,指派给 admin 的任务数是 1。 diff --git a/module/user/test/model/getgroupsbyvisions.php b/module/user/test/model/getgroupsbyvisions.php index dc8f05a16e..a77f233494 100755 --- a/module/user/test/model/getgroupsbyvisions.php +++ b/module/user/test/model/getgroupsbyvisions.php @@ -4,6 +4,7 @@ /** title=测试 userModel->getGroupsByVisions(); +timeout=0 cid=0 - 传空字符串,返回空数组。 @0 @@ -81,6 +82,11 @@ $table->gen(9); su('admin'); +global $config, $app; +$config->edition = 'open'; +$app::$loadedLangs = array(); +$app->loadLang('common'); + $userTest = new userTest(); r($userTest->getGroupsByVisionsTest('')) && p() && e(0); // 传空字符串,返回空数组。 diff --git a/module/webhook/model.php b/module/webhook/model.php index d508f8589f..78925c39cf 100644 --- a/module/webhook/model.php +++ b/module/webhook/model.php @@ -65,7 +65,7 @@ class webhookModel extends model * @access public * @return array */ - public function getList(string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $orderBy = 'id_desc', ?object $pager = null): array { return $this->dao->select('*,products,executions')->from(TABLE_WEBHOOK) ->where('deleted')->eq('0') @@ -84,7 +84,7 @@ class webhookModel extends model * @access public * @return array */ - public function getLogList(int $id, string $orderBy = 'date_desc', object $pager = null): array + public function getLogList(int $id, string $orderBy = 'date_desc', ?object $pager = null): array { $logs = $this->dao->select('*')->from(TABLE_LOG) ->where('objectType')->eq('webhook') diff --git a/module/weekly/test/lib/weekly.unittest.class.php b/module/weekly/test/lib/weekly.unittest.class.php index a91d9b7114..45b81f4268 100644 --- a/module/weekly/test/lib/weekly.unittest.class.php +++ b/module/weekly/test/lib/weekly.unittest.class.php @@ -45,13 +45,13 @@ class weeklyTest switch($begin) { case '1': - $begin = date('Y-m-d'); + $begin = '2023-04-24'; break; case '2': - $begin = date('Y-m-d', strtotime(date('Y-m-d')."- 6 days")); + $begin = date('Y-m-d', strtotime('2023-04-24' . "- 10 days")); break; case '3': - $begin = date('Y-m-d', strtotime(date('Y-m-d') . "+ 6 days")); + $begin = date('Y-m-d', strtotime('2023-04-24' . "+ 10 days")); break; case '': $begin = ''; @@ -61,13 +61,13 @@ class weeklyTest switch($begin) { case '1': - $end = date('Y-m-d'); + $end = '2023-04-24'; break; case '2': - $end = date('Y-m-d', strtotime(date('Y-m-d')."- 6 days")); + $end = date('Y-m-d', strtotime('2023-04-24' . "- 10 days")); break; case '3': - $end = date('Y-m-d', strtotime(date('Y-m-d') . "+ 6 days")); + $end = date('Y-m-d', strtotime('2023-04-24' . "+ 10 days")); break; case '': $end = ''; diff --git a/module/weekly/test/model/getweekpairs.php b/module/weekly/test/model/getweekpairs.php index 68ad17f7ae..7df3dc85e0 100755 --- a/module/weekly/test/model/getweekpairs.php +++ b/module/weekly/test/model/getweekpairs.php @@ -7,22 +7,25 @@ su('admin'); /** title=测试 weeklyModel->getWeekPairs(); +timeout=0 cid=1 -pid=1 - >> 0 - >> 0 - >> 0 - >> 0 - >> 第 1 周( 2022-04-25 ~ 2022-05-01) - >> 0 - >> 0 - >> 0 - >> 0 - >> 第 1 周( 2022-05-03 ~ 2022-05-09) - >> 第 4 周( 2022-05-23 ~ 2022-05-29) - >> 第 239 周( 2026-11-23 ~ 2026-11-29) - >> 第 5 周( 2022-05-30 ~ 2022-06-05) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[0], $end[0] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[0], $end[1] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[0], $end[2] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[0], $end[3] 属性20230424 @第 1 周( 2023-04-24 ~ 2023-04-30) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[1], $end[0] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[1], $end[1] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[1], $end[2] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[1], $end[3] 属性20230410 @第 1 周( 2023-04-10 ~ 2023-04-16) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[2], $end[0] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[2], $end[1] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[2], $end[2] @0 +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[2], $end[3] 属性20230501 @第 1 周( 2023-05-01 ~ 2023-05-07) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[3], $end[0] 属性19691229 @第 1 周( 1969-12-29 ~ 1970-01-04) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[3], $end[1] 属性19691229 @第 1 周( 1969-12-29 ~ 1970-01-04) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[3], $end[2] 属性20261123 @第 73 周( 2026-11-23 ~ 2026-11-29) +- 执行weekly模块的getWeekPairsTest方法,参数是$begin[3], $end[3] 属性20250804 @第 5 周( 2025-08-04 ~ 2025-08-10) */ $begin = array(1, 2, 3, ''); @@ -33,16 +36,16 @@ $weekly = new weeklyTest(); r($weekly->getWeekPairsTest($begin[0], $end[0])) && p() && e('0'); r($weekly->getWeekPairsTest($begin[0], $end[1])) && p() && e('0'); r($weekly->getWeekPairsTest($begin[0], $end[2])) && p() && e('0'); -r($weekly->getWeekPairsTest($begin[0], $end[3])) && p() && e('0'); -r($weekly->getWeekPairsTest($begin[1], $end[0])) && p() && e(); -r($weekly->getWeekPairsTest($begin[1], $end[1])) && p() && e(); -r($weekly->getWeekPairsTest($begin[1], $end[2])) && p() && e(); -r($weekly->getWeekPairsTest($begin[1], $end[3])) && p('20220425') && e('第 1 周( 2022-04-25 ~ 2022-05-01)'); +r($weekly->getWeekPairsTest($begin[0], $end[3])) && p('20230424') && e('第 1 周( 2023-04-24 ~ 2023-04-30)'); +r($weekly->getWeekPairsTest($begin[1], $end[0])) && p() && e('0'); +r($weekly->getWeekPairsTest($begin[1], $end[1])) && p() && e('0'); +r($weekly->getWeekPairsTest($begin[1], $end[2])) && p() && e('0'); +r($weekly->getWeekPairsTest($begin[1], $end[3])) && p('20230410') && e('第 1 周( 2023-04-10 ~ 2023-04-16)'); r($weekly->getWeekPairsTest($begin[2], $end[0])) && p() && e('0'); r($weekly->getWeekPairsTest($begin[2], $end[1])) && p() && e('0'); r($weekly->getWeekPairsTest($begin[2], $end[2])) && p() && e('0'); -r($weekly->getWeekPairsTest($begin[2], $end[3])) && p() && e('0'); -r($weekly->getWeekPairsTest($begin[3], $end[0])) && p('20220503') && e('第 1 周( 2022-05-03 ~ 2022-05-09)'); -r($weekly->getWeekPairsTest($begin[3], $end[1])) && p('20220523') && e('第 4 周( 2022-05-23 ~ 2022-05-29)'); -r($weekly->getWeekPairsTest($begin[3], $end[2])) && p('20261123') && e('第 239 周( 2026-11-23 ~ 2026-11-29)'); -r($weekly->getWeekPairsTest($begin[3], $end[3])) && p('20220530') && e('第 5 周( 2022-05-30 ~ 2022-06-05)'); \ No newline at end of file +r($weekly->getWeekPairsTest($begin[2], $end[3])) && p('20230501') && e('第 1 周( 2023-05-01 ~ 2023-05-07)'); +r($weekly->getWeekPairsTest($begin[3], $end[0])) && p('19691229') && e('第 1 周( 1969-12-29 ~ 1970-01-04)'); +r($weekly->getWeekPairsTest($begin[3], $end[1])) && p('19691229') && e('第 1 周( 1969-12-29 ~ 1970-01-04)'); +r($weekly->getWeekPairsTest($begin[3], $end[2])) && p('20261123') && e('第 73 周( 2026-11-23 ~ 2026-11-29)'); +r($weekly->getWeekPairsTest($begin[3], $end[3])) && p('20250804') && e('第 5 周( 2025-08-04 ~ 2025-08-10)'); diff --git a/module/zahost/model.php b/module/zahost/model.php index 10147c8416..0eaca58c21 100644 --- a/module/zahost/model.php +++ b/module/zahost/model.php @@ -53,7 +53,7 @@ class zahostModel extends model * @access public * @return array */ - public function getList(string $browseType = 'all', int $param = 0, string $orderBy = 'id_desc', object $pager = null): array + public function getList(string $browseType = 'all', int $param = 0, string $orderBy = 'id_desc', ?object $pager = null): array { $query = ''; if($browseType == 'bysearch') @@ -222,7 +222,7 @@ class zahostModel extends model * @access public * @return array */ - public function getImageList(int $hostID, string $orderBy = 'id', object $pager = null): array + public function getImageList(int $hostID, string $orderBy = 'id', ?object $pager = null): array { $imageList = json_decode(commonModel::http($this->config->zahost->imageListUrl, array(), array())); if(empty($imageList)) return array(); diff --git a/module/zanode/model.php b/module/zanode/model.php index 73daa948d4..217b80c4ef 100644 --- a/module/zanode/model.php +++ b/module/zanode/model.php @@ -366,7 +366,7 @@ class zanodemodel extends model * @access public * @return array */ - public function getListByQuery(string $browseType = 'all', int $param = 0, string $orderBy = 't1.id_desc', object $pager = null): array + public function getListByQuery(string $browseType = 'all', int $param = 0, string $orderBy = 't1.id_desc', ?object $pager = null): array { $query = ''; if($browseType == 'bysearch') @@ -537,7 +537,7 @@ class zanodemodel extends model * @access public * @return array */ - public function getSnapshotList(int $nodeID, string $orderBy = 'id', object $pager = null): array + public function getSnapshotList(int $nodeID, string $orderBy = 'id', ?object $pager = null): array { $snapshotList = $this->dao->select('*')->from(TABLE_IMAGE) ->where('host')->eq($nodeID) diff --git a/module/zanode/tao.php b/module/zanode/tao.php index a0c5963ddc..23cd5271f1 100644 --- a/module/zanode/tao.php +++ b/module/zanode/tao.php @@ -30,7 +30,7 @@ class zanodeTao extends zanodeModel * @access protected * @return array */ - protected function getZaNodeListByQuery(string $query, string $orderBy, object|null $pager): array + protected function getZaNodeListByQuery(string $query, string $orderBy, ?object $pager): array { return $this->dao->select("t1.*, t2.name as hostName, if(t1.hostType='', t2.extranet, t1.extranet) extranet,if(t1.hostType='', t3.osName, t1.osName) osName")->from(TABLE_ZAHOST)->alias('t1') ->leftJoin(TABLE_ZAHOST)->alias('t2')->on('t1.parent = t2.id') diff --git a/test/data/screen.sql b/test/data/screen.sql index ff8ff4df90..64cfb80d7d 100644 --- a/test/data/screen.sql +++ b/test/data/screen.sql @@ -1,894 +1,10 @@ TRUNCATE zt_screen; -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (1, 1, '宏观数据盘点大屏', '从宏观的角度快速的了解公司的现状', 'static/images/screen1.png', '[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8f\\u89c2\\u6570\\u636e\\u76d8\\u70b9\\u5927\\u5c4f","fontSize":26,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":124,"w":1000,"h":480,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":800,"h":120,"x":0,"y":128,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":287,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u7ea7\\u6570\\u636e\\u6982\\u89c8","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":33,"w":800,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1018,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1019,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4ea7\\u54c1\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1020,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u8ba1\\u5212\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1021,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u8ba1\\u5212\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u8ba1\\u5212\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u8ba1\\u5212\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6267\\u884c\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1022,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6267\\u884c\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u53d1\\u5e03\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1023,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u53d1\\u5e03\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u53d1\\u5e03\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u53d1\\u5e03\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9700\\u6c42\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1024,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4efb\\u52a1\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1025,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4efb\\u52a1\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"Bug\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1026,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1027,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6587\\u6863\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6587\\u6863\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6587\\u6863\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u73b0\\u6709\\u4eba\\u5458\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1028,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u73b0\\u6709\\u4eba\\u5458\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u73b0\\u6709\\u4eba\\u5458\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u73b0\\u6709\\u4eba\\u5458\\u4e2a\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u7d2f\\u8ba1\\u6d88\\u8017\\u5de5\\u65f6","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1029,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u7d2f\\u8ba1\\u6d88\\u8017\\u5de5\\u65f6","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u7d2f\\u8ba1\\u6d88\\u8017\\u5de5\\u65f6","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u7d2f\\u8ba1\\u6d88\\u8017\\u5de5\\u65f6","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"3v5jz5hzz0c000","isGroup":true,"attr":{"w":211,"h":150,"x":500,"y":133,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4f7f\\u7528\\u65f6\\u957f","image":""},"groupList":[{"id":"1hxm2jtfh3y800","isGroup":false,"attr":{"x":0,"y":0,"w":380,"h":150,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4f7f\\u7528\\u65f6\\u957f\\u8fb9\\u6846","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#6586ec00","#2cf7fe00"],"backgroundColor":"#00000000"}},{"id":"3aekp6a7tag000","isGroup":false,"attr":{"x":60,"y":25,"w":200,"h":150,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4f7f\\u7528\\u65f6\\u957f","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u7985\\u9053\\u4f7f\\u7528\\u65f6\\u957f\\uff1a","fontSize":19,"fontColor":"#9abdcd","paddingX":10,"paddingY":10,"textAlign":"right","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4u5rgs0pf34000","sourceID":1030,"isGroup":false,"attr":{"x":265,"y":25,"w":252,"h":150,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u65f6\\u957f","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"","fontSize":19,"fontColor":"#9abdcd","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":963,"y":139,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u9700\\u6c42\\u5b8c\\u6210\\u7387=\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u4e2a\\u6570\\/(\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u4e2a\\u6570+\\u672a\\u5173\\u95ed\\u7684\\u9700\\u6c42\\u4e2a\\u6570)\\uff1b\\nBug\\u4fee\\u590d\\u7387=\\u65b9\\u6848\\u4e3a\\u5df2\\u89e3\\u51b3\\u4e14\\u72b6\\u6001\\u4e3a\\u5df2\\u5173\\u95ed\\u7684Bug\\u6570\\/(\\u65b9\\u6848\\u4e3a\\u5df2\\u89e3\\u51b3\\u7684Bug\\u6570+\\u65b9\\u6848\\u4e3a\\u5ef6\\u671f\\u5904\\u7406\\u7684Bug\\u6570+\\u6fc0\\u6d3b\\u7684Bug\\u6570)\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"17sqdjuu74ik00","sourceID":1031,"isGroup":false,"attr":{"x":460,"y":253,"w":280,"h":250,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCircle","chartConfig":{"key":"PieCircle","chartKey":"VPieCircle","conKey":"VPieCircle","title":"\\u9700\\u6c42\\u5b8c\\u6210\\u7387","category":"Pies","categoryName":"\\u997c\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-circle-258fcce7.png"},"option":{"legend":{"show":true,"top":"15%","textStyle":{"color":"#B9B8CE"}},"title":{"text":"30.00%","x":"center","y":"center","textStyle":{"color":"#FFF","fontSize":20}},"type":"nomal","tooltip":{"show":false,"trigger":"item","formatter":"{d}%"},"dataset":0.25,"series":[{"type":"pie","radius":["63%","70%"],"label":{"show":false},"center":["50%","50%"],"data":[{"value":[30],"itemStyle":{"color":"#03a9f4","shadowBlur":10,"shadowColor":"#97e2f5"}},{"value":[70],"itemStyle":{"color":"#00bcd44a","shadowBlur":0,"shadowColor":"#00bcd44a"}}]}]}},{"id":"4u5rgs0pf34000","isGroup":false,"attr":{"x":475,"y":488,"w":250,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u65f6\\u957f","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u5b8c\\u6210\\u7387","fontSize":16,"fontColor":"#c6d3d9","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4xgico362ww000","sourceID":1032,"isGroup":false,"attr":{"x":720,"y":253,"w":280,"h":250,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCircle","chartConfig":{"key":"PieCircle","chartKey":"VPieCircle","conKey":"VPieCircle","title":"Bug\\u4fee\\u590d\\u7387","category":"Pies","categoryName":"\\u997c\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-circle-258fcce7.png"},"option":{"legend":{"show":true,"top":"15%","textStyle":{"color":"#B9B8CE"}},"title":{"text":"30.00%","x":"center","y":"center","textStyle":{"color":"#FFF","fontSize":20}},"type":"nomal","tooltip":{"show":false,"trigger":"item","formatter":"{d}%"},"dataset":0.25,"series":[{"type":"pie","radius":["63%","70%"],"label":{"show":false},"center":["50%","50%"],"data":[{"value":[30],"itemStyle":{"color":"#C29160","shadowBlur":10,"shadowColor":"#eed045"}},{"value":[70],"itemStyle":{"color":"#00bcd44a","shadowBlur":0,"shadowColor":"#00bcd44a"}}]}]}},{"id":"4u5rgs0pf34000","isGroup":false,"attr":{"x":735,"y":488,"w":250,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u65f6\\u957f","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u4fee\\u590d\\u7387","fontSize":16,"fontColor":"#c6d3d9","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":1010,"y":124,"w":290,"h":480,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":400,"h":120,"x":1010,"y":128,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":400,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u7ea7\\u672a\\u5b8c\\u6210\\u6570\\u636e\\u6982\\u89c8","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":235,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":235,"y":34,"w":41,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1033,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1034,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4ea7\\u54c1\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1035,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1036,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u8ba1\\u5212\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1037,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u8ba1\\u5212\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u8ba1\\u5212\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u8ba1\\u5212\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6267\\u884c\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1038,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6267\\u884c\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"Bug\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1039,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4efb\\u52a1\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1040,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4efb\\u52a1\\u6570","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1260,"y":139,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u672a\\u5b8c\\u6210\\u7684\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570=\\u672a\\u5173\\u95ed\\u7684\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u4e2a\\u6570=\\u672a\\u5173\\u95ed\\u7684\\u9700\\u6c42\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684\\u4ea7\\u54c1\\u4e2a\\u6570=\\u672a\\u5173\\u95ed\\u7684\\u4ea7\\u54c1\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684\\u9879\\u76ee\\u4e2a\\u6570=\\u672a\\u5173\\u95ed\\u7684\\u9879\\u76ee\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684\\u8ba1\\u5212\\u4e2a\\u6570=\\u672a\\u5b8c\\u6210\\u7684\\u8ba1\\u5212\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684\\u6267\\u884c\\u4e2a\\u6570=\\u672a\\u5173\\u95ed\\u7684\\u6267\\u884c\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u4e2a\\u6570=\\u672a\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u4e2a\\u6570\\uff1b\\n\\u672a\\u5b8c\\u6210\\u7684Bug\\u4e2a\\u6570=\\u672a\\u5173\\u95ed\\u7684Bug\\u4e2a\\u6570\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":618,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":618,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u6570\\u636e\\u6982\\u89c8","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":212,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":212,"y":33,"w":1065,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1041,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":1153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1042,"isGroup":false,"attr":{"x":30,"y":60,"w":380,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":true,"bottom":"2%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"10","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}},{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[2]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":5,"maxValueSpan":5,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":-10,"y":0,"w":378,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug\\u4fee\\u590d\\u7387","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":349,"y":33,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":350,"y":35,"w":55,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"1xih6tzmmssg00","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":1153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u516c\\u53f8\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u72b6\\u6001\\u5206\\u5e03","image":""},"groupList":[{"id":"2bnelf1diy8000","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u516c\\u53f8\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u72b6\\u6001\\u5206\\u5e03","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"1351cy224nb400","isGroup":false,"attr":{"x":10,"y":0,"w":240,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u516c\\u53f8\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u72b6\\u6001\\u5206\\u5e03","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u72b6\\u6001\\u5206\\u5e03","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":247,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":248,"y":32,"w":160,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"4ocyn7hip9k000","sourceID":1043,"isGroup":false,"attr":{"x":10,"y":67,"w":400,"h":410,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"\\u997c\\u56fe","category":"Pies","categoryName":"\\u997c\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":5},"center":["50%","50%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}}],"key":"group","option":{}},{"id":"2js0ncv6kpc000","isGroup":true,"attr":{"w":426,"h":865,"x":874,"y":1153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u516c\\u53f8\\u9879\\u76ee\\u72b6\\u6001\\u5206\\u5e03","image":""},"groupList":[{"id":"4d4pumofn5g000","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u516c\\u53f8\\u9879\\u76ee\\u72b6\\u6001\\u5206\\u5e03","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"50qj95gt8fs000","sourceID":1044,"isGroup":false,"attr":{"x":10,"y":76,"w":400,"h":400,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"\\u997c\\u56fe","category":"Pies","categoryName":"\\u997c\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":5},"center":["50%","50%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"36zg35ree9q000","isGroup":false,"attr":{"x":8,"y":0,"w":180,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u516c\\u53f8\\u9879\\u76ee\\u72b6\\u6001\\u5206\\u5e03","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u9879\\u76ee\\u72b6\\u6001\\u5206\\u5e03","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":186,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":188,"y":32,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1663,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"vwvqtuc6lyo00","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1663,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"5l0cps9x0z0000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u6570\\u636e\\u6982\\u89c8","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":161,"y":33,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":163,"y":35,"w":1105,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1045,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"sl2d95i1hz400","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":2203,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4ea7\\u54c1\\u9700\\u6c42\\u5b8c\\u6210\\u7387","image":""},"groupList":[{"id":"57zre1am96c000","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4ea7\\u54c1\\u9700\\u6c42\\u5b8c\\u6210\\u7387","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"42ae8w3dgeg000","sourceID":1046,"isGroup":false,"attr":{"x":30,"y":60,"w":530,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"15%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"item","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"579jc04cfps000","isGroup":false,"attr":{"x":10,"y":0,"w":170,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u9700\\u6c42\\u5b8c\\u6210\\u7387","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u9700\\u6c42\\u5b8c\\u6210\\u7387","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":175,"y":33,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":176,"y":35,"w":445,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"nr1mfqoyuwg00","isGroup":true,"attr":{"w":645,"h":500,"x":655,"y":2203,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"2ta7xcd152i000","isGroup":false,"attr":{"x":0,"y":0,"w":645,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4ea7\\u54c1Bug\\u4fee\\u590d\\u7387","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"4o7ep6z91ii000","sourceID":1047,"isGroup":false,"attr":{"x":30,"y":60,"w":540,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"15%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"4vcyxy305n6000","isGroup":false,"attr":{"x":12,"y":0,"w":160,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1Bug\\u4fee\\u590d\\u7387","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1Bug\\u4fee\\u590d\\u7387","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":171,"y":34,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":172,"y":36,"w":445,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"45ao1xz9kzu000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":2717,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u90e8\\u95e8\\u4eba\\u5458\\u5206\\u5e03\\u56fe","image":""},"groupList":[{"id":"1ncdmrlvzjy800","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u90e8\\u95e8\\u4eba\\u5458\\u5206\\u5e03\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"v3d9spa59dc00","sourceID":1049,"isGroup":false,"attr":{"x":20,"y":50,"w":380,"h":426,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"15%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"wam6ydb8zqo00","isGroup":false,"attr":{"x":15,"y":0,"w":160,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u90e8\\u95e8\\u4eba\\u5458\\u5206\\u5e03\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u90e8\\u95e8\\u4eba\\u5458\\u5206\\u5e03\\u56fe","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":176,"y":32,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":176,"y":34,"w":235,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"2dg0t90atgg000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":2717,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u516c\\u53f8\\u89d2\\u8272\\u5206\\u5e03\\u56fe","image":""},"groupList":[{"id":"53ynqk2kzh8000","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u516c\\u53f8\\u89d2\\u8272\\u5206\\u5e03\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"1knkjcb65rwg00","isGroup":false,"attr":{"x":7,"y":0,"w":170,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u516c\\u53f8\\u89d2\\u8272\\u5206\\u5e03\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u89d2\\u8272\\u5206\\u5e03\\u56fe","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"mblj8ow100000","sourceID":1050,"isGroup":false,"attr":{"x":20,"y":60,"w":400,"h":420,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"\\u9700\\u6c42\\u5b8c\\u6210\\u7387","category":"Pies","categoryName":"\\u997c\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["40%","40%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":5},"center":["50%","45%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":168,"y":32,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":169,"y":34,"w":235,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"1j55da3c41vk00","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":2717,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4eba\\u5458\\u5de5\\u9f84\\u5206\\u5e03\\u56fe","image":""},"groupList":[{"id":"1xqnm37nva8w00","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4eba\\u5458\\u5de5\\u9f84\\u5206\\u5e03\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"5ll028fasrw000","sourceID":1051,"isGroup":false,"attr":{"x":20,"y":50,"w":380,"h":426,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"20%","top":"20","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"4887ix47ule000","isGroup":false,"attr":{"x":7,"y":0,"w":170,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4eba\\u5458\\u5de5\\u9f84\\u5206\\u5e03\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4eba\\u5458\\u5de5\\u9f84\\u5206\\u5e03\\u56fe","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":170,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":171,"y":33,"w":235,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}}]', 'published', '1', 'admin', '2022-11-18 10:46:18', 'admin', '2023-03-23 15:01:00', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (2, 1, '公司年度汇总数据大屏', '从不同的年份了解公司汇总数据的情况', 'static/images/screen2.png', '[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":" \\u516c\\u53f8\\u5e74\\u5ea6\\u6c47\\u603b\\u6570\\u636e\\u5927\\u5c4f","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":0,"y":95,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","type":"year","filterCharts":[{"chart":1055,"field":"t1.`year`"},{"chart":1056,"field":"t1.`year`"},{"chart":1057,"field":"t1.`year`"},{"chart":1058,"field":"t1.`year`"},{"chart":1059,"field":"t1.`year`"},{"chart":1060,"field":"t1.`year`"},{"chart":1061,"field":"t1.`year`"},{"chart":1062,"field":"t1.`year`"},{"chart":1063,"field":"t1.`year`"},{"chart":1064,"field":"t1.`year`"},{"chart":1065,"field":"t1.`year`"},{"chart":1066,"field":"t1.`year`"},{"chart":1067,"field":"t1.`year`"},{"chart":1068,"field":"t1.`year`"},{"chart":1069,"field":"t1.`year`"},{"chart":1070,"field":"t1.`year`"},{"chart":1071,"field":"t1.`year`"},{"chart":1072,"field":"t1.`year`"},{"chart":1073,"field":"t1.`year`"},{"chart":1074,"field":"t1.`year`"},{"chart":1075,"field":"t1.`year`"},{"chart":1076,"field":"t1.`year`"},{"chart":1077,"field":"t1.`year`"},{"chart":1078,"field":"t1.`year`"},{"chart":1079,"field":"t1.`year`"},{"chart":1080,"field":"t1.`year`"},{"chart":1081,"field":"t1.`year`"},{"chart":1082,"field":"t1.`year`"},{"chart":1083,"field":"t1.`year`"}],"isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"\\u9009\\u62e9","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"\\u8bf7\\u9009\\u62e9","value":""},{"label":"\\u6cb3\\u5317","value":"18700"},{"label":"\\u5f90\\u5dde","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20,"onChange":"console.log(value)"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":149,"w":750,"h":300,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":750,"h":120,"x":0,"y":153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u5e74\\u5ea6\\u65b0\\u589e\\u6570\\u636e\\u6982\\u89c8","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":32,"w":500,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":770,"y":149,"w":530,"h":300,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":820,"h":120,"x":770,"y":153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u5e74\\u5ea6\\u5b8c\\u6210\\u6570\\u636e\\u6982\\u89c8","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":220,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":220,"y":32,"w":290,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":25,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1055,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":145,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1056,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":265,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1057,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":385,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1058,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":505,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1059,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u8ba1\\u5212\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u8ba1\\u5212\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u8ba1\\u5212\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":25,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1060,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":145,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1061,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6267\\u884c\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":265,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1062,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4efb\\u52a1\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":385,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1063,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u53d1\\u5e03\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6587\\u6863\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6587\\u6863\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":505,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1064,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u53d1\\u5e03\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u53d1\\u5e03\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u53d1\\u5e03\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":250,"x":625,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":190,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1065,"isGroup":false,"attr":{"x":0,"y":60,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u7528\\u6237\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":78,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u7528\\u6237\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u7528\\u6237\\u4e2a\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":800,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1066,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u9879\\u76ee\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u9879\\u76ee\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u9879\\u76ee\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":920,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1067,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u6267\\u884c\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6587\\u6863\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u6267\\u884c\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":1040,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1068,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u53d1\\u5e03\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u53d1\\u5e03\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u53d1\\u5e03\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":800,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1069,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u9700\\u6c42\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u9700\\u6c42\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u9700\\u6c42\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":920,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1070,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u89e3\\u51b3Bug\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u89e3\\u51b3Bug\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u89e3\\u51b3Bug\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":1040,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1071,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":200,"x":1160,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":190,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1072,"isGroup":false,"attr":{"x":0,"y":54,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6295\\u5165\\u5de5\\u65f6\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":78,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6295\\u5165\\u5de5\\u65f6\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6295\\u5165\\u5de5\\u65f6\\u6570","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1260,"y":165,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u5b8c\\u6210\\u7684\\u9879\\u76ee\\u4e2a\\u6570=\\u5df2\\u5173\\u95ed\\u7684\\u9879\\u76ee\\u4e2a\\u6570\\uff1b\\n\\u5b8c\\u6210\\u6267\\u884c\\u6570=\\u5df2\\u5173\\u95ed\\u7684\\u6267\\u884c\\u6570\\uff1b\\n\\u5b8c\\u6210\\u53d1\\u5e03\\u6570=\\u5168\\u90e8\\u53d1\\u5e03\\u6570\\uff1b\\n\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u6570=\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u4e2a\\u6570\\uff1b\\n\\u4fee\\u590d\\u7684Bug\\u6570=Bug\\u72b6\\u6001\\u4e3a\\u5df2\\u5173\\u95ed\\u4e14\\u89e3\\u51b3\\u65b9\\u6848\\u4e3a\\u5df2\\u89e3\\u51b3\\u7684Bug\\u4e2a\\u6570\\uff1b\\n\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u6570=\\u4efb\\u52a1\\u72b6\\u6001\\u4e3a\\u5df2\\u5b8c\\u6210+\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u6570\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":479,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":479,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u96c6\\u5e74\\u5ea6\\u65b0\\u589e\\u6570\\u636e\\u6c47\\u603b\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":1015,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1073,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1029,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1029,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u96c6\\u5e74\\u5ea6\\u5b8c\\u6210\\u6570\\u636e\\u6982\\u89c8","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":33,"w":1035,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1074,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1579,"w":640,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":640,"h":120,"x":0,"y":1579,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":17,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u5e74\\u5ea6\\u65b0\\u589e\\u6570\\u636e\\u6c47\\u603b\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":244,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":32,"w":370,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1075,"isGroup":false,"attr":{"x":20,"y":57,"w":600,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":660,"y":1579,"w":640,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":640,"h":120,"x":660,"y":1579,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":17,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u5e74\\u5ea6\\u5b8c\\u6210\\u6570\\u636e\\u6c47\\u603b\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":244,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":32,"w":370,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1076,"isGroup":false,"attr":{"x":20,"y":57,"w":600,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9700\\u6c42\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9700\\u6c42\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1077,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u6708\\u4efd)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9700\\u6c42\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":32,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":34,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":660,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"BUG\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u89e3\\u51b3\\u8d8b\\u52bf\\u56fe","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"BUG\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u89e3\\u51b3\\u8d8b\\u52bf\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1078,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u6708\\u4efd)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":10,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"BUG\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u89e3\\u51b3\\u8d8b\\u52bf\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"BUG\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u89e3\\u51b3\\u8d8b\\u52bf\\u56fe","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":269,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":270,"y":32,"w":340,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":2654,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4efb\\u52a1\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4efb\\u52a1\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1079,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon ","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u6708\\u4efd)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4efb\\u52a1\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4efb\\u52a1\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":660,"y":2654,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1080,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u6708\\u4efd)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u9879\\u76ee\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":3179,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6267\\u884c\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u6267\\u884c\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1081,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u6708\\u4efd)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u6267\\u884c\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6267\\u884c\\u5e74\\u5ea6\\u65b0\\u589e\\u548c\\u5b8c\\u6210\\u8d8b\\u52bf\\u56fe","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":660,"y":3179,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u4ea7\\u54c1\\u53d1\\u5e03\\u6b21\\u6570\\u5e74\\u5ea6\\u8d8b\\u52bf\\u56fe","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u4ea7\\u54c1\\u53d1\\u5e03\\u6b21\\u6570\\u5e74\\u5ea6\\u8d8b\\u52bf\\u56fe","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1082,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u6708\\u4efd)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":230,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4ea7\\u54c1\\u53d1\\u5e03\\u6b21\\u6570\\u5e74\\u5ea6\\u8d8b\\u52bf\\u56fe","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u53d1\\u5e03\\u6b21\\u6570\\u5e74\\u5ea6\\u8d8b\\u52bf\\u56fe","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":239,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":240,"y":32,"w":370,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":3709,"w":1300,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":1300,"h":500,"x":0,"y":3709,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u5e74\\u5ea6\\u6295\\u5165\\u4ea7\\u51fa\\u6bd4","image":""},"option":{},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":17,"y":0,"w":155,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u5e74\\u5ea6\\u6295\\u5165\\u4ea7\\u51fa\\u6bd4","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1083,"isGroup":false,"attr":{"x":30,"y":60,"w":1300,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":[{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"right","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"}],"grid":{"show":false,"left":"10%","top":"20","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","yAxisIndex":1,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"bar","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"bar","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":15,"y":0,"w":155,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u5e74\\u5ea6\\u6295\\u5165\\u4ea7\\u51fa\\u6bd4","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5e74\\u5ea6\\u6295\\u5165\\u4ea7\\u51fa\\u6bd4","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":164,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":165,"y":32,"w":1080,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}}],"key":"group"},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1245,"y":3726,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"\\/static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u6295\\u5165\\u4ea7\\u51fa\\u6bd4=\\u9700\\u6c42\\u4ea4\\u4ed8\\u6545\\u4e8b\\u70b9\\u6570\\/\\u5de5\\u65f6\\u6d88\\u8017\\uff1b\\n\\u9700\\u6c42\\u4ea4\\u4ed8\\u6545\\u4e8b\\u70b9\\u6570=\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u7684\\u6545\\u4e8b\\u70b9\\u6570u003b\\n\\u5de5\\u65f6\\u6d88\\u8017=\\u4efb\\u52a1\\u6d88\\u8017\\u7684\\u5de5\\u65f6\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}}]', 'published', '1', 'admin', '2022-11-18 10:46:18', 'admin', '2023-03-23 15:01:00', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (3, 1, '年度总结大屏', '从年份、部门、个人的角度快速了解年度工作总结的情况', 'static/images/screen3.png', '[ - { - "id": "5scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 1300, "h": 120, "x": 0, "y": 0, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 1300, "h": 120, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/screen_header.png", "borderRadius": 10 } - }, - { - "id": "2nws38440fq000", - "isGroup": false, - "attr": { "x": 360, "y": 36, "w": 500, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "年度总结大屏", "fontSize": 20, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "center", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "5scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 300, "h": 120, "x": 0, "y": 80, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2xjom2cw2b2000", - "type": "year", - "filterCharts": [ - {"chart": 1001, "field": "t1.`year`"}, - {"chart": 1002, "field": "t1.`year`"}, - {"chart": 1003, "field": "t1.`year`"}, - {"chart": 1004, "field": "t1.`year`"}, - {"chart": 1005, "field": "t1.`year`"}, - {"chart": 1006, "field": "t1.`year`"}, - {"chart": 1007, "field": "t1.`year`"}, - {"chart": 1008, "field": "t1.`year`"}, - {"chart": 1009, "field": "t1.`year`"}, - {"chart": 1010, "field": "t1.`year`"}, - {"chart": 1011, "field": "t1.`year`"}, - {"chart": 1012, "field": "t1.`year`"}, - {"chart": 1013, "field": "t1.`year`"}, - {"chart": 1014, "field": "t1.`year`"}, - {"chart": 1015, "field": "t1.`year`"}, - {"chart": 1016, "field": "t1.`year`"}, - {"chart": 1017, "field": "t1.`year`"} - ], - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 100, "h": 120, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Select", - "chartConfig": { "key": "Select", "chartKey": "VSelect", "conKey": "VCSelect", "title": "选择", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/select-c616737a.png" }, - "option": { "dataset": [ { "label": "请选择", "value": "" }, { "label": "河北", "value": "18700" }, { "label": "徐州", "value": "17800" } ], "value": "", "borderWidth": 1, "borderStyle": "solid", "borderColor": "#1a77a5", "background": "none", "borderRadius": 6, "color": "#ffffff", "textAlign": "center", "fontWeight": "normal", "backgroundColor": "transparent", "fontSize": 20, "onChange": "console.log(value)"} - }, - { - "id": "2xjom2cw2b2000", - "type": "dept", - "filterCharts": [ - {"chart": 1001, "field": ""}, - {"chart": 1002, "field": ""}, - {"chart": 1003, "field": ""}, - {"chart": 1004, "field": ""}, - {"chart": 1005, "field": ""}, - {"chart": 1006, "field": ""}, - {"chart": 1007, "field": ""}, - {"chart": 1008, "field": ""}, - {"chart": 1009, "field": ""}, - {"chart": 1010, "field": ""}, - {"chart": 1011, "field": ""}, - {"chart": 1012, "field": ""}, - {"chart": 1013, "field": ""}, - {"chart": 1014, "field": ""}, - {"chart": 1015, "field": ""}, - {"chart": 1016, "field": ""}, - {"chart": 1017, "field": ""} - ], - "isGroup": false, - "attr": { "x": 110, "y": 0, "w": 120, "h": 120, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Select", - "chartConfig": { "key": "Select", "chartKey": "VSelect", "conKey": "VCSelect", "title": "选择", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/select-c616737a.png" }, - "option": { "dataset": [ { "label": "请选择", "value": "" }, { "label": "河北", "value": "18700" }, { "label": "徐州", "value": "17800" } ], "value": "", "borderWidth": 1, "borderStyle": "solid", "borderColor": "#1a77a5", "background": "none", "borderRadius": 6, "color": "#ffffff", "textAlign": "center", "fontWeight": "normal", "backgroundColor": "transparent", "fontSize": 20, "onChange": "console.log(value)"} - }, - { - "id": "2xjom2cw2b2000", - "type": "account", - "filterCharts": [ - {"chart": 1001, "field": "t1.account"}, - {"chart": 1002, "field": "t1.account"}, - {"chart": 1003, "field": "t1.account"}, - {"chart": 1004, "field": "t1.account"}, - {"chart": 1005, "field": "t1.account"}, - {"chart": 1006, "field": "t1.account"}, - {"chart": 1007, "field": "t1.account"}, - {"chart": 1008, "field": "t1.account"}, - {"chart": 1009, "field": "t1.account"}, - {"chart": 1010, "field": "t1.account"}, - {"chart": 1011, "field": "t1.account"}, - {"chart": 1012, "field": "t1.account"}, - {"chart": 1013, "field": "t1.account"}, - {"chart": 1014, "field": "t1.account"}, - {"chart": 1015, "field": "t1.account"}, - {"chart": 1016, "field": "t1.account"}, - {"chart": 1017, "field": "t1.account"} - ], - "isGroup": false, - "attr": { "x": 240, "y": 0, "w": 120, "h": 120, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Select", - "chartConfig": { "key": "Select", "chartKey": "VSelect", "conKey": "VCSelect", "title": "选择", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/select-c616737a.png" }, - "option": { "dataset": [ { "label": "请选择", "value": "" }, { "label": "河北", "value": "18700" }, { "label": "徐州", "value": "17800" } ], "value": "", "borderWidth": 1, "borderStyle": "solid", "borderColor": "#1a77a5", "background": "none", "borderRadius": 6, "color": "#ffffff", "textAlign": "center", "fontWeight": "normal", "backgroundColor": "transparent", "fontSize": 20, "onChange": "console.log(value)"} - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 0, "y": 175, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 350, "h": 380, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 100, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "基础数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 115, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 115, "y": 30, "w": 200, "h": 8.5, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 0, "y": 195, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2nws38440fq000", - "isGroup": false, - "attr": { "x": 40, "y": 36, "w": 150, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "登录次数", "fontSize": 12, "fontColor": "#ebf3f6", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2nws38440fq000", - "sourceID": 1001, - "isGroup": false, - "attr": { "x": 200, "y": 34, "w": 110, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "100", "fontSize": 18, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "right", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 0, "y": 245, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2nws38440fq000", - "isGroup": false, - "attr": { "x": 40, "y": 36, "w": 130, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "操作次数", "fontSize": 12, "fontColor": "#ebf3f6", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2nws38440fq000", - "sourceID": 1002, - "isGroup": false, - "attr": { "x": 200, "y": 34, "w": 110, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "100", "fontSize": 18, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "right", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 0, "y": 295, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2nws38440fq000", - "isGroup": false, - "attr": { "x": 40, "y": 36, "w": 130, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "消耗工时", "fontSize": 12, "fontColor": "#ebf3f6", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2nws38440fq000", - "sourceID": 1003, - "isGroup": false, - "attr": { "x": 200, "y": 34, "w": 110, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "100", "fontSize": 18, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "right", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 0, "y": 345, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2nws38440fq000", - "isGroup": false, - "attr": { "x": 40, "y": 36, "w": 130, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "待办数", "fontSize": 12, "fontColor": "#ebf3f6", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2nws38440fq000", - "sourceID": 1004, - "isGroup": false, - "attr": { "x": 200, "y": 34, "w": 110, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "100", "fontSize": 18, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "right", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 0, "y": 395, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "2nws38440fq000", - "isGroup": false, - "attr": { "x": 40, "y": 36, "w": 130, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "贡献数", "fontSize": 12, "fontColor": "#ebf3f6", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2nws38440fq000", - "sourceID": 1005, - "isGroup": false, - "attr": { "x": 200, "y": 34, "w": 110, "h": 66, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "title", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "100", "fontSize": 18, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "right", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 560, "h": 120, "x": 370, "y": 175, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 560, "h": 380, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 100, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "贡献数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 115, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 115, "y": 30, "w": 410, "h": 8.5, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "obhxxjnin3400", - "sourceID": 1006, - "isGroup": false, - "attr": { "x": 30, "y": 10, "w": 500, "h": 400, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "BarCrossrange", - "chartConfig": { "key": "BarCrossrange", "chartKey": "VBarCrossrange", "conKey": "VCBarCrossrange", "title": "横向柱状图", "category": "Bars", "categoryName": "柱状图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/bar_y-05067169.png" }, - "option": { - "legend": { "show": false, "top": "5%", "textStyle": { "color": "#B9B8CE" } }, - "xAxis": { - "show": false, "name": "", - "nameGap": 15, - "nameTextStyle": { - "color": "#B9B8CE", - "fontSize": 12 - }, - "inverse": false, - "axisLabel": { - "show": false, "fontSize": 12, "color": "#B9B8CE", "rotate": 0, "formatter": "{value}%" - }, - "position": "bottom", - "axisLine": { "show": false, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, - "axisTick": { "show": false, "length": 5 }, - "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } } - }, - "yAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0}, "position": "left", "axisLine": { "show": false, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": false, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "category" }, - "grid": { "show": false, "left": "8%", "top": "60", "right": "12%", "bottom": "60", "containLabel": true }, - "tooltip": { "show": true, "trigger": "axis", "axisPointer": { "show": true, "type": "shadow" } }, - "dataset": { "dimensions": [ "product", "data1", "data2" ], "source": [ { "product": "Mon", "data1": 120, "data2": 130 }, { "product": "Tue", "data1": 200, "data2": 130 }, { "product": "Wed", "data1": 150, "data2": 312 }, { "product": "Thu", "data1": 80, "data2": 268 }, { "product": "Fri", "data1": 70, "data2": 155 }, { "product": "Sat", "data1": 110, "data2": 117 }, { "product": "Sun", "data1": 130, "data2": 160 } ] }, - "series": [ - { "type": "bar", "barWidth": null, "stack": "totoal", "emphasis": {"focus": "series"}, "label": { "show": false, "formatter": "{@[1]}", "position": "center", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 0 } }, - { "type": "bar", "barWidth": null, "stack": "totoal", "emphasis": {"focus": "series"}, "label": { "show": false, "formatter": "{@[2]}", "position": "center", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 0 } } ], - "backgroundColor": "rgba(0,0,0,0)" - } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 350, "h": 120, "x": 950, "y": 175, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 350, "h": 380, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 100, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "贡献数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 115, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 115, "y": 30, "w": 200, "h": 8.5, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "5k6jxu8g200000", - "sourceID": 1007, - "isGroup": false, - "attr": { "x": 0, "y": 30, "w": 350, "h": 300, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Radar", - "chartConfig": { "key": "Radar", "chartKey": "VRadar", "conKey": "VCRadar", "title": "雷达图", "category": "Mores", "categoryName": "更多", "package": "Charts", "chartFrame": "common", "image": "static/png/radar.png" }, - "option": { - "legend": { "show": false, "top": "5%", "textStyle": { "color": "#B9B8CE" }, "data": [ "data1" ] }, - "tooltip": { "show": true }, - "dataset": { "radarIndicator": [ { "name": "数据1", "max": 6500 }, { "name": "数据2", "max": 16000 }, { "name": "数据3", "max": 30000 }, { "name": "数据4", "max": 38000 }, { "name": "数据5", "max": 52000 }, { "name": "数据6", "max": 25000 } ], "seriesData": [ { "name": "data1", "value": [ 4200, 3000, 20000, 35000, 50000, 18000 ] } ] }, - "radar": { "shape": "polygon", "radius": [ "0%", "60%" ], "center": [ "50%", "55%" ], "splitArea": { "show": true }, "splitLine": { "show": true }, "axisName": { "show": true, "color": "#eee", "fontSize": 12 }, "axisLine": { "show": true }, "axisTick": { "show": true }, "indicator": [ { "name": "数据1", "max": 6500 }, { "name": "数据2", "max": 16000 }, { "name": "数据3", "max": 30000 }, { "name": "数据4", "max": 38000 }, { "name": "数据5", "max": 52000 }, { "name": "数据6", "max": 25000 } ] }, - "series": [ { "name": "radar", "type": "radar", "areaStyle": { "opacity": 0.1 }, "data": [ { "name": "data1", "value": [ 4200, 3000, 20000, 35000, 50000, 18000 ] } ] } ], - "backgroundColor": "rgba(0,0,0,0)" - } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 640, "h": 120, "x": 0, "y": 570, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 640, "h": 525, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "迭代数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 31, "w": 495, "h": 8, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "1zhfrmecpnxc00", - "sourceID": 1008, - "isGroup": false, - "attr": { "x": 25, "y": 57, "w": 590, "h": 446, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TableScrollBoard", - "chartConfig": { "key": "TableScrollBoard", "chartKey": "VTableScrollBoard", "conKey": "VCTableScrollBoard", "title": "轮播列表", "category": "Tables", "categoryName": "表格", "package": "Tables", "chartFrame": "common", "image": "static/png/table_scrollboard-fb642e78.png" }, - "option": { "header": [ "列1", "列2", "列3" ], "dataset": [ [ "行1列1", "行1列2", "行1列3" ], [ "行2列1", "行2列2", "行2列3" ], [ "行3列1", "行3列2", "行3列3" ], [ "行4列1", "行4列2", "行4列3" ], [ "行5列1", "行5列2", "行5列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ] ], "index": false, "columnWidth": [], "align": [ "center", "center","center","center","center","center","center","center"], "rowNum": 8, "waitTime": 3, "headerHeight": 45, "carousel": "single", "headerBGC": "#165896FF", "oddRowBGC": "#042b4dFF", "evenRowBGC": "#0a1c37FF" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 640, "h": 120, "x": 660, "y": 570, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 640, "h": 525, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "产品数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 31, "w": 495, "h": 8, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "1zhfrmecpnxc00", - "sourceID": 1009, - "isGroup": false, - "attr": { "x": 25, "y": 57, "w": 590, "h": 446, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TableScrollBoard", - "chartConfig": { "key": "TableScrollBoard", "chartKey": "VTableScrollBoard", "conKey": "VCTableScrollBoard", "title": "轮播列表", "category": "Tables", "categoryName": "表格", "package": "Tables", "chartFrame": "common", "image": "static/png/table_scrollboard-fb642e78.png" }, - "option": { "header": [ "列1", "列2", "列3" ], "dataset": [ [ "行1列1", "行1列2", "行1列3" ], [ "行2列1", "行2列2", "行2列3" ], [ "行3列1", "行3列2", "行3列3" ], [ "行4列1", "行4列2", "行4列3" ], [ "行5列1", "行5列2", "行5列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ], [ "行6列1", "行6列2", "行6列3" ] ], "index": false, "columnWidth": [], "align": [ "center", "center","center","center","center","center","center","center"], "rowNum": 8, "waitTime": 3, "headerHeight": 45, "carousel": "single", "headerBGC": "#165896FF", "oddRowBGC": "#042b4dFF", "evenRowBGC": "#0a1c37FF" } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 1300, "h": 400, "x": 0, "y": 1110, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 1300, "h": 400, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "任务数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 30, "w": 1150, "h": 9, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 57, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "任务状态分布", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1010, - "isGroup": false, - "attr": { "x": 60, "y": 70, "w": 380, "h": 280, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "PieCommon", - "chartConfig": { "key": "PieCommon", "chartKey": "VPieCommon", "conKey": "VCPieCommon", "title": "需求完成率", "category": "Pies", "categoryName": "饼图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/pie-9620f191.png" }, - "option": { "legend": { "show": false, "top": "5%", "textStyle": { "color": "#B9B8CE" } }, "type": "nomal", "tooltip": { "show": true, "trigger": "item" }, "dataset": { "dimensions": [ "product", "data1" ], "source": [ { "product": "Mon", "data1": 120 }, { "product": "Tue", "data1": 200 }, { "product": "Wed", "data1": 150 }, { "product": "Thu", "data1": 80 }, { "product": "Fri", "data1": 70 }, { "product": "Sat", "data1": 110 }, { "product": "Sun", "data1": 130 } ] }, "series": [ { "type": "pie", "radius": [ "40%", "65%" ], "label": { "show": true, "width": 120, "formatter": "{b}\\n{d}%", "lineHeight": 20, "color": "#ffffff", "position": "outside" }, "center": [ "50%", "60%" ], "roseType": false , "emphasis": { "itemStyle": { "shadowBlur": 20, "shadowOffsetX": 2, "shadowColor": "rgba(0, 0, 0, 0)" } }} ] } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 520, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "每月任务操作情况", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1011, - "isGroup": false, - "attr": { "x": 520, "y": 70, "w": 780, "h": 350, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "BarCommon", - "chartConfig": { "key": "BarCommon", "chartKey": "VBarCommon", "conKey": "VCBarCommon", "title": "柱状图", "category": "Bars", "categoryName": "柱状图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/bar_x.png" }, - "option": { - "legend": { "show": true, "top": "5%", "left": 5, "textStyle": { "color": "#B9B8CE" } }, - "xAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "bottom", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": true, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "category" }, - "yAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "left", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": false, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "value" }, - "grid": { "show": false, "left": "5%", "top": "60", "right": "10%", "bottom": "60" }, - "tooltip": { "show": true, "trigger": "axis", "axisPointer": { "show": true, "type": "shadow" } }, - "dataset": { - "dimensions": [ "product", "data1", "data2" ], - "source": [ { "product": "Mon", "data1": 120, "data2": 130 }, { "product": "Tue", "data1": 200, "data2": 130 }, { "product": "Wed", "data1": 150, "data2": 312 }, { "product": "Thu", "data1": 80, "data2": 268 }, { "product": "Fri", "data1": 70, "data2": 155 }, { "product": "Sat", "data1": 110, "data2": 117 }, { "product": "Sun", "data1": 130, "data2": 160 } ] }, - "series": [ { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } } ], - "backgroundColor": "rgba(0,0,0,0)" - } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 1300, "h": 400, "x": 0, "y": 1525, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 1300, "h": 400, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "需求数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 30, "w": 1150, "h": 9, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 57, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "需求状态分布", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1012, - "isGroup": false, - "attr": { "x": 60, "y": 70, "w": 380, "h": 280, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "PieCommon", - "chartConfig": { "key": "PieCommon", "chartKey": "VPieCommon", "conKey": "VCPieCommon", "title": "需求完成率", "category": "Pies", "categoryName": "饼图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/pie-9620f191.png" }, - "option": { "legend": { "show": false, "top": "5%", "textStyle": { "color": "#B9B8CE" } }, "type": "nomal", "tooltip": { "show": true, "trigger": "item" }, "dataset": { "dimensions": [ "product", "data1" ], "source": [ { "product": "Mon", "data1": 120 }, { "product": "Tue", "data1": 200 }, { "product": "Wed", "data1": 150 }, { "product": "Thu", "data1": 80 }, { "product": "Fri", "data1": 70 }, { "product": "Sat", "data1": 110 }, { "product": "Sun", "data1": 130 } ] }, "series": [ { "type": "pie", "radius": [ "40%", "65%" ], "label": { "show": true, "width": 120, "formatter": "{b}\\n{d}%", "lineHeight": 20, "color": "#ffffff", "position": "outside" }, "center": [ "50%", "60%" ], "roseType": false , "emphasis": { "itemStyle": { "shadowBlur": 20, "shadowOffsetX": 2, "shadowColor": "rgba(0, 0, 0, 0)" } }} ] } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 520, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "每月需求操作情况", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1013, - "isGroup": false, - "attr": { "x": 520, "y": 70, "w": 780, "h": 350, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "BarCommon", - "chartConfig": { "key": "BarCommon", "chartKey": "VBarCommon", "conKey": "VCBarCommon", "title": "柱状图", "category": "Bars", "categoryName": "柱状图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/bar_x.png" }, - "option": { - "legend": { "show": true, "top": "5%", "left": 5, "textStyle": { "color": "#B9B8CE" } }, - "xAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "bottom", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": true, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "category" }, - "yAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "left", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": false, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "value" }, - "grid": { "show": false, "left": "5%", "top": "60", "right": "10%", "bottom": "60" }, - "tooltip": { "show": true, "trigger": "axis", "axisPointer": { "show": true, "type": "shadow" } }, - "dataset": { - "dimensions": [ "product", "data1", "data2" ], - "source": [ { "product": "Mon", "data1": 120, "data2": 130 }, { "product": "Tue", "data1": 200, "data2": 130 }, { "product": "Wed", "data1": 150, "data2": 312 }, { "product": "Thu", "data1": 80, "data2": 268 }, { "product": "Fri", "data1": 70, "data2": 155 }, { "product": "Sat", "data1": 110, "data2": 117 }, { "product": "Sun", "data1": 130, "data2": 160 } ] }, - "series": [ { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } } ], - "backgroundColor": "rgba(0,0,0,0)" - } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 1300, "h": 400, "x": 0, "y": 1935, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 1300, "h": 400, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "Bug数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 30, "w": 1150, "h": 9, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 57, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "Bug状态分布", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1014, - "isGroup": false, - "attr": { "x": 60, "y": 70, "w": 380, "h": 280, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "PieCommon", - "chartConfig": { "key": "PieCommon", "chartKey": "VPieCommon", "conKey": "VCPieCommon", "title": "需求完成率", "category": "Pies", "categoryName": "饼图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/pie-9620f191.png" }, - "option": { "legend": { "show": false, "top": "5%", "textStyle": { "color": "#B9B8CE" } }, "type": "nomal", "tooltip": { "show": true, "trigger": "item" }, "dataset": { "dimensions": [ "product", "data1" ], "source": [ { "product": "Mon", "data1": 120 }, { "product": "Tue", "data1": 200 }, { "product": "Wed", "data1": 150 }, { "product": "Thu", "data1": 80 }, { "product": "Fri", "data1": 70 }, { "product": "Sat", "data1": 110 }, { "product": "Sun", "data1": 130 } ] }, "series": [ { "type": "pie", "radius": [ "40%", "65%" ], "label": { "show": true, "width": 120, "formatter": "{b}\\n{d}%", "lineHeight": 20, "color": "#ffffff", "position": "outside" }, "center": [ "50%", "60%" ], "roseType": false , "emphasis": { "itemStyle": { "shadowBlur": 20, "shadowOffsetX": 2, "shadowColor": "rgba(0, 0, 0, 0)" } }} ] } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 520, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "每月Bug操作情况", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1015, - "isGroup": false, - "attr": { "x": 520, "y": 70, "w": 780, "h": 350, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "BarCommon", - "chartConfig": { "key": "BarCommon", "chartKey": "VBarCommon", "conKey": "VCBarCommon", "title": "柱状图", "category": "Bars", "categoryName": "柱状图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/bar_x.png" }, - "option": { - "legend": { "show": true, "top": "5%", "left": 5, "textStyle": { "color": "#B9B8CE" } }, - "xAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "bottom", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": true, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "category" }, - "yAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "left", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": false, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "value" }, - "grid": { "show": false, "left": "5%", "top": "60", "right": "10%", "bottom": "60" }, - "tooltip": { "show": true, "trigger": "axis", "axisPointer": { "show": true, "type": "shadow" } }, - "dataset": { - "dimensions": [ "product", "data1", "data2" ], - "source": [ { "product": "Mon", "data1": 120, "data2": 130 }, { "product": "Tue", "data1": 200, "data2": 130 }, { "product": "Wed", "data1": 150, "data2": 312 }, { "product": "Thu", "data1": 80, "data2": 268 }, { "product": "Fri", "data1": 70, "data2": 155 }, { "product": "Sat", "data1": 110, "data2": 117 }, { "product": "Sun", "data1": 130, "data2": 160 } ] }, - "series": [ { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } } ], - "backgroundColor": "rgba(0,0,0,0)" - } - } - ], - "key": "group", - "option": {} - }, - { - "id": "6scfjzqsbzo000", - "isGroup": true, - "attr": { "w": 1300, "h": 400, "x": 0, "y": 2350, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "chartConfig": { "key": "group", "chartKey": "group", "conKey": "group", "category": "group", "categoryName": "group", "package": "group", "chartFrame": "common", "title": "标题", "image": "" }, - "groupList": [ - { - "id": "1cfwp95aiif400", - "isGroup": false, - "attr": { "x": 0, "y": 0, "w": 1300, "h": 400, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Border03", - "chartConfig": { "key": "Border03", "chartKey": "VBorder03", "conKey": "VCBorder03", "title": "summary", "category": "Borders", "categoryName": "边框", "package": "Decorates", "image": "" }, - "option": { "colors": [ "#00102800", "#00102800" ], "backgroundColor": "#0a1c38" } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 15, "y": 0, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "用例数据", "fontSize": 14, "fontColor": "#b2d5e5", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 26, "w": 14, "h": 11, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_left.png", "borderRadius": 0 } - }, - { - "id": "3xjom2cw2b2000", - "isGroup": false, - "attr": { "x": 120, "y": 30, "w": 1150, "h": 9, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "Image", - "chartConfig": { "key": "Image", "chartKey": "VImage", "conKey": "VCImage", "title": "header", "category": "Mores", "categoryName": "更多", "package": "Informations", "chartFrame": "common", "image": "static/png/photo-637bc05d.png" }, - "option": { "dataset": "static/images/line_right.png", "fit": "fill", "borderRadius": 0 } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 57, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "用例结果分布", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1016, - "isGroup": false, - "attr": { "x": 60, "y": 70, "w": 380, "h": 280, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "PieCommon", - "chartConfig": { "key": "PieCommon", "chartKey": "VPieCommon", "conKey": "VCPieCommon", "title": "需求完成率", "category": "Pies", "categoryName": "饼图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/pie-9620f191.png" }, - "option": { "legend": { "show": false, "top": "5%", "textStyle": { "color": "#B9B8CE" } }, "type": "nomal", "tooltip": { "show": true, "trigger": "item" }, "dataset": { "dimensions": [ "product", "data1" ], "source": [ { "product": "Mon", "data1": 120 }, { "product": "Tue", "data1": 200 }, { "product": "Wed", "data1": 150 }, { "product": "Thu", "data1": 80 }, { "product": "Fri", "data1": 70 }, { "product": "Sat", "data1": 110 }, { "product": "Sun", "data1": 130 } ] }, "series": [ { "type": "pie", "radius": [ "40%", "65%" ], "label": { "show": true, "width": 120, "formatter": "{b}\\n{d}%", "lineHeight": 20, "color": "#ffffff", "position": "outside" }, "center": [ "50%", "60%" ], "roseType": false , "emphasis": { "itemStyle": { "shadowBlur": 20, "shadowOffsetX": 2, "shadowColor": "rgba(0, 0, 0, 0)" } }} ] } - }, - { - "id": "57r67ykkwxk000", - "isGroup": false, - "attr": { "x": 520, "y": 38, "w": 187, "h": 68, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "TextCommon", - "chartConfig": { "key": "TextCommon", "chartKey": "VTextCommon", "conKey": "VCTextCommon", "title": "summary_top", "category": "Texts", "categoryName": "文本", "package": "Informations", "image": "static/png/text_static-b2721032.png" }, - "option": { "link": "", "linkHead": "http://", "dataset": "每月用例操作情况", "fontSize": 12, "fontColor": "#d7e0e4", "paddingX": 10, "paddingY": 10, "textAlign": "left", "fontWeight": "bold", "borderWidth": 0, "borderColor": "#ffffff", "borderRadius": 5, "letterSpacing": 5, "writingMode": "horizontal-tb", "backgroundColor": "#00000000" } - }, - { - "id": "2mxz8pdw932000", - "sourceID": 1017, - "isGroup": false, - "attr": { "x": 520, "y": 70, "w": 780, "h": 350, "offsetX": 0, "offsetY": 0, "zIndex": -1 }, - "key": "BarCommon", - "chartConfig": { "key": "BarCommon", "chartKey": "VBarCommon", "conKey": "VCBarCommon", "title": "柱状图", "category": "Bars", "categoryName": "柱状图", "package": "Charts", "chartFrame": "echarts", "image": "static/png/bar_x.png" }, - "option": { - "legend": { "show": true, "top": "5%", "left": 5, "textStyle": { "color": "#B9B8CE" } }, - "xAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "bottom", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": true, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "category" }, - "yAxis": { "show": true, "name": "", "nameGap": 15, "nameTextStyle": { "color": "#B9B8CE", "fontSize": 12 }, "inverse": false, "axisLabel": { "show": true, "fontSize": 12, "color": "#B9B8CE", "rotate": 0 }, "position": "left", "axisLine": { "show": true, "lineStyle": { "color": "#B9B8CE", "width": 1 }, "onZero": true }, "axisTick": { "show": false, "length": 5 }, "splitLine": { "show": false, "lineStyle": { "color": "#484753", "width": 1, "type": "solid" } }, "type": "value" }, - "grid": { "show": false, "left": "5%", "top": "60", "right": "10%", "bottom": "60" }, - "tooltip": { "show": true, "trigger": "axis", "axisPointer": { "show": true, "type": "shadow" } }, - "dataset": { - "dimensions": [ "product", "data1", "data2" ], - "source": [ { "product": "Mon", "data1": 120, "data2": 130 }, { "product": "Tue", "data1": 200, "data2": 130 }, { "product": "Wed", "data1": 150, "data2": 312 }, { "product": "Thu", "data1": 80, "data2": 268 }, { "product": "Fri", "data1": 70, "data2": 155 }, { "product": "Sat", "data1": 110, "data2": 117 }, { "product": "Sun", "data1": 130, "data2": 160 } ] }, - "series": [ { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } }, { "type": "bar", "barWidth": 15, "stack": "total", "label": { "show": false, "position": "top", "color": "#fff", "fontSize": 12 }, "itemStyle": { "color": null, "borderRadius": 2 } } ], - "backgroundColor": "rgba(0,0,0,0)" - } - } - ], - "key": "group", - "option": {} - } -] -', 'published', '1', 'admin', '2022-11-18 10:46:18', 'admin', '2022-11-18 10:46:18', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (4, 1, '年度排行榜大屏', '从项目集、项目、产品、个人的角度快速了解进度、投入、产出的排行榜', 'static/images/screen4.png', '[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5e74\\u5ea6\\u6392\\u884c\\u699c\\u5927\\u5c4f","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":0,"y":80,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","type":"year","filterCharts":[{"chart":1085,"field":"t1.`year`"},{"chart":1086,"field":"t1.`year`"},{"chart":1087,"field":"t1.`year`"},{"chart":1088,"field":"t1.`year`"},{"chart":1089,"field":"t1.`year`"},{"chart":1090,"field":"t1.`year`"},{"chart":1091,"field":"t1.`year`"},{"chart":1092,"field":"t1.`year`"},{"chart":1093,"field":"t1.`year`"},{"chart":1094,"field":"t1.`year`"},{"chart":1096,"field":"t1.`year`"},{"chart":1097,"field":"t1.`year`"},{"chart":1098,"field":"t1.`year`"},{"chart":1099,"field":"t1.`year`"},{"chart":1100,"field":"t1.`year`"},{"chart":1101,"field":"t1.`year`"},{"chart":1102,"field":"t1.`year`"},{"chart":1103,"field":"t1.`year`"},{"chart":1104,"field":"t1.`year`"},{"chart":1105,"field":"t1.`year`"},{"chart":1106,"field":"t1.`year`"},{"chart":1107,"field":"t1.`year`"},{"chart":1108,"field":"t1.`year`"},{"chart":1109,"field":"t1.`year`"},{"chart":1110,"field":"t1.`year`"}],"isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"\\u9009\\u62e9","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"\\u8bf7\\u9009\\u62e9","value":""},{"label":"\\u6cb3\\u5317","value":"18700"},{"label":"\\u5f90\\u5dde","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20,"onChange":"console.log(value)"}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":100,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":33,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"\\u88c5\\u9970-06","category":"Decorates","categoryName":"\\u88c5\\u9970","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"\\u9879\\u76ee\\u96c6","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":200,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":200,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9884\\u7b97\\u6295\\u5165\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":140,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9884\\u7b97\\u6295\\u5165(\\u4e07\\u5143)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1085,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":200,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":200,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4eba\\u5458\\u6295\\u5165\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4eba\\u5458\\u6295\\u5165(\\u4eba)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1086,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":835,"y":220,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u67d0\\u9879\\u76ee\\u96c6\\u67d0\\u5e74\\u7684\\u4eba\\u5458\\u6295\\u5165=\\u67d0\\u5e74\\u5185\\u67d0\\u9879\\u76ee\\u96c6\\u4e2d\\u8fdb\\u884c\\u8fc7\\u7684\\u9879\\u76ee\\uff0c\\u5176\\u56e2\\u961f\\u6210\\u5458\\u52a0\\u76df\\u65e5\\u671f\\u4e3a\\u67d0\\u5e74\\u7684\\u6700\\u540e\\u4e00\\u5929\\u4ee5\\u53ca\\u6700\\u540e\\u4e00\\u5929\\u4e4b\\u524d\\u7684\\u6210\\u5458\\u4eba\\u6570\\u4e4b\\u548c\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":200,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":200,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u65f6\\u6d88\\u8017\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u65f6\\u6d88\\u8017(h)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1087,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1272,"y":220,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u67d0\\u9879\\u76ee\\u96c6\\u5e74\\u5ea6\\u5de5\\u65f6\\u6d88\\u8017=\\u67d0\\u5e74\\u67d0\\u9879\\u76ee\\u96c6\\u4e2d\\u8fdb\\u884c\\u8fc7\\u7684\\u9879\\u76ee\\u7684\\u7d2f\\u8ba1\\u5de5\\u65f6","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":710,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":710,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u65b0\\u589e\\u9700\\u6c42\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1088,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":710,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":710,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u65b0\\u589e\\u9700\\u6c42\\u89c4\\u6a21\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u89c4\\u6a21(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1089,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":710,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":710,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u65b0\\u589eBug\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":208,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1090,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":1220,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":1220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u9700\\u6c42\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":170,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1091,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":1220,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":1220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":" \\u5b8c\\u6210\\u9700\\u6c42\\u89c4\\u6a21\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u89c4\\u6a21(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1092,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":1220,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":1220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4fee\\u590dBug\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":208,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1093,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1700,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":36,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"\\u88c5\\u9970-06","category":"Decorates","categoryName":"\\u88c5\\u9970","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"\\u9879\\u76ee","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":1800,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":1800,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u671f\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":170,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u671f(\\u5929)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":95,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":96,"y":28,"w":290,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1094,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":395,"y":1825,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u672a\\u7ed3\\u675f\\u9879\\u76ee\\u7684\\u5de5\\u671f=\\u5f53\\u524d\\u65e5\\u671f-\\u5b9e\\u9645\\u5f00\\u59cb\\u65e5\\u671f\\uff1b\\n\\u5df2\\u7ed3\\u675f\\u9879\\u76ee\\u7684\\u5de5\\u671f=\\u5b9e\\u9645\\u7ed3\\u675f\\u65e5\\u671f-\\u5b9e\\u9645\\u5f00\\u59cb\\u65e5\\u671f\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":1800,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":1800,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u671f\\u504f\\u5dee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1096,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":835,"y":1825,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u5df2\\u5b8c\\u6210\\u9879\\u76ee\\u7684\\u5de5\\u671f\\u504f\\u5dee\\u7387=\\uff08\\u5b9e\\u9645\\u5de5\\u671f-\\u8ba1\\u5212\\u5de5\\u671f\\uff09\\/\\u8ba1\\u5212\\u5de5\\u671f*100%\\uff1b\\n\\u5df2\\u8d85\\u671f\\u9879\\u76ee\\u7684\\u5de5\\u671f\\u504f\\u5dee\\u7387=\\uff08\\uff08\\u5f53\\u524d\\u65e5\\u671f-\\u5b9e\\u9645\\u5f00\\u59cb\\u65e5\\u671f\\uff09-\\u8ba1\\u5212\\u5de5\\u671f\\uff09\\/\\u8ba1\\u5212\\u5de5\\u671f*100%\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":1800,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":1800,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4eba\\u5458\\u6295\\u5165\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4eba\\u5458\\u6295\\u5165(\\u4eba)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1097,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1272,"y":1825,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u67d0\\u9879\\u76ee\\u67d0\\u5e74\\u7684\\u4eba\\u5458\\u6295\\u5165=\\u67d0\\u5e74\\u8fdb\\u884c\\u8fc7\\u7684\\u9879\\u76ee\\uff0c\\u5176\\u56e2\\u961f\\u6210\\u5458\\u52a0\\u76df\\u65e5\\u671f\\u4e3a\\u67d0\\u5e74\\u7684\\u6700\\u540e\\u4e00\\u5929\\u4ee5\\u53ca\\u6700\\u540e\\u4e00\\u5929\\u4e4b\\u524d\\u7684\\u6210\\u5458\\u4eba\\u6570\\u4e4b\\u548c\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":2310,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":2310,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u65f6\\u6d88\\u8017\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u65f6\\u6d88\\u8017(h)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1098,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":2310,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":2310,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u9700\\u6c42\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1099,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":2310,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":2310,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u9700\\u6c42\\u89c4\\u6a21\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u89c4\\u6a21(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1100,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":2790,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":36,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"\\u88c5\\u9970-06","category":"Decorates","categoryName":"\\u88c5\\u9970","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"\\u4ea7\\u54c1","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":2890,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":500,"x":0,"y":2890,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u65b0\\u589e\\u9700\\u6c42\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":250,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1101,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":655,"y":2890,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":580,"x":655,"y":2890,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5b8c\\u6210\\u9700\\u6c42\\u89c4\\u6a21\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":230,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u89c4\\u6a21(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1102,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":3480,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":500,"x":0,"y":3480,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u65b0\\u589eBug\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":250,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1103,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":655,"y":3480,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":580,"x":655,"y":3480,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4fee\\u590dBug\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":250,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1104,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":4040,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":36,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"\\u88c5\\u9970-06","category":"Decorates","categoryName":"\\u88c5\\u9970","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"\\u4e2a\\u4eba","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":4140,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":4140,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u521b\\u5efa\\u9700\\u6c42\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9700\\u6c42\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1105,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":4140,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":4140,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u521b\\u5efa\\u7528\\u4f8b\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u7528\\u4f8b\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1106,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":4140,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":4140,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u521b\\u5efaBug\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":208,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1107,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":4650,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":4650,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4fee\\u590dBug\\u6761\\u76ee\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug\\u6761\\u76ee(\\u4e2a)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1108,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":4650,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":4650,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u65f6\\u6d88\\u8017\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u5de5\\u65f6\\u6d88\\u8017(h)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1109,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":4650,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":4650,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u9879\\u76ee\\u96c6\\u9700\\u6c42\\u5b8c\\u6210\\u7387\\u4e0eBug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u7985\\u9053\\u64cd\\u4f5c\\u6b21\\u6570\\u699c","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u64cd\\u4f5c\\u6b21\\u6570(\\u6b21)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1110,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"\\u6a2a\\u5411\\u67f1\\u72b6\\u56fe","category":"Bars","categoryName":"\\u67f1\\u72b6\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"barWidth":null,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":{}}]', 'published', '1', 'admin', '2022-11-18 10:46:18', 'admin', '2023-03-23 15:01:00', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (5, 1, '迭代燃尽图大屏', '快速查看公司全部未关闭迭代的燃尽图', 'static/images/screen5.png', '', 'published', '1', 'admin', '2022-11-18 10:46:18', 'admin', '2022-11-18 10:46:18', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (6, 2, '年度完成项目过程数据大屏', '了解已完成项目的生产效率', 'static/images/screen1.png', '{"editCanvasConfig":{"projectName":"2","width":1366,"height":"3600","size":0,"lockScale":false,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":null,"backgroundImage":null,"selectColor":true,"chartThemeColor":"3wvajowr6l8000","chartThemeSetting":{"title":{"text":"","show":true,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"legend":{"show":true,"top":"5%","textStyle":{"color":"#B9B8CE"}},"grid":{"show":false,"left":"10%","top":"60","right":"10%","bottom":"60"},"dataset":null,"renderer":"svg"},"previewScaleType":"scrollY","globalFilter":[],"chartCustomThemeColorInfo":[{"id":"3wvajowr6l8000","name":"未命名","color":["#6ae5bb","#69e3de","#5ac5ee","#6FB6F1FF","#4498ec","#3c7ddf","#1E6AEBFF"]}]},"componentList":[{"id":"owvo5wyad9c00","isGroup":false,"attr":{"x":1142,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"3as8najk6hg00","isGroup":false,"attr":{"x":1142,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5d6bo6dfzf4000","isGroup":false,"attr":{"x":962,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"26hlsg2c15vk00","isGroup":false,"attr":{"x":962,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5niqhm817gw000","isGroup":false,"attr":{"x":782,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5rjfkvfw4i8000","isGroup":false,"attr":{"x":782,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"ffvurro4h4w00","isGroup":false,"attr":{"x":603,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"51idc736a5s000","isGroup":false,"attr":{"x":602,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"rdnf6i797pc00","isGroup":false,"attr":{"x":421,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089ff12"}},{"id":"2klk0oo8kj8000","isGroup":false,"attr":{"x":421,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"48zdrnjvl0c000","isGroup":false,"attr":{"x":242,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"4q65e0gqmlg000","isGroup":false,"attr":{"x":61,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"17bvssn39zuk00","isGroup":false,"attr":{"x":242,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5irrkthvdhc000","isGroup":false,"attr":{"x":61,"y":"208","w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"vgfp0juvuf400","isGroup":false,"attr":{"x":416,"y":339,"w":161,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"延期完成执行数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#E1E5EA00"}},{"id":"2uqxi3e1y3u000","isGroup":false,"attr":{"x":424,"y":303,"w":144,"h":81,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-延期完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"1326","sourceID":"10009","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"1326","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10009","title":"延期完成执行数","type":"card"},{"id":"5nyrxc5w010000","isGroup":false,"attr":{"x":18,"y":726,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":true,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"2uws0ytah1s000","isGroup":false,"attr":{"x":693,"y":726,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":true,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3mnttqgyc4o000","isGroup":false,"attr":{"x":253,"y":46,"w":860,"h":32,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"4nir9d6n138000","isGroup":false,"attr":{"x":20,"y":106,"w":1326,"h":600,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":true,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3sdxo2ffqi0000","isGroup":false,"attr":{"x":50,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":" 完成项目数 ","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":37,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4nyo2dxv5yi000","isGroup":false,"attr":{"x":50,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"91","sourceID":"10000","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"91","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10000","title":"完成项目数","type":"card"},{"id":"2ev27p00xbpc00","isGroup":false,"attr":{"x":230,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"按时完成项目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"lzaj0yorolc00","isGroup":false,"attr":{"x":410,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"延期完成项目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4jogna07yk8000","isGroup":false,"attr":{"x":771,"y":229,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成需求规模数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"15j805dkq4ik00","isGroup":false,"attr":{"x":951,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成发布数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":36,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4q15hg06540000","isGroup":false,"attr":{"x":1131,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"解决bug数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":36,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4l83s1sqlek000","isGroup":false,"attr":{"x":591,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成需求条目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"5f6dr2y034w000","isGroup":false,"attr":{"x":231,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-按时完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"3","sourceID":"10001","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"3","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10001","title":"按时完成项目数","type":"card"},{"id":"1gw11ho3ev4w00","isGroup":false,"attr":{"x":410,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-延期完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"88","sourceID":"10002","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"88","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10002","title":"延期完成项目数","type":"card"},{"id":"4ljohxdlzfs000","isGroup":false,"attr":{"x":591,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成需求条目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"17954","sourceID":"10003","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"17954","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10003","title":"完成需求条目数","type":"card"},{"id":"2dsxvobrqdes00","isGroup":false,"attr":{"x":771,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成需求规模数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"57370","sourceID":"10004","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"57370","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10004","title":"完成需求规模数","type":"card"},{"id":"25j01jdzmrts00","isGroup":false,"attr":{"x":951,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成发布数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"602","sourceID":"10005","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"602","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10005","title":"完成发布数","type":"card"},{"id":"poh8lbo2qc000","isGroup":false,"attr":{"x":1131,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-解决bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"13886","sourceID":"10006","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"13886","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10006","title":"解决bug数","type":"card"},{"id":"4nkffa1hzc0000","isGroup":false,"attr":{"x":50,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成执行数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":34,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"43q8d7h9nlk000","isGroup":false,"attr":{"x":50,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"1567","sourceID":"10007","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"1567","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10007","title":"完成执行数","type":"card"},{"id":"5jexl1ycymg000","isGroup":false,"attr":{"x":230,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"按时完成执行数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"3362s9jdoko000","isGroup":false,"attr":{"x":605,"y":338,"w":166,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成任务条目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"5l9fr10ck94000","isGroup":false,"attr":{"x":772,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成任务预计工时数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":8,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"1zxjse36amv400","isGroup":false,"attr":{"x":952,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成任务消耗工时数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":8,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"29iw7qg73bbw00","isGroup":false,"attr":{"x":1131,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"投入的总人天","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":28,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"1r8qfow1e45c00","isGroup":false,"attr":{"x":230,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-按时完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"241","sourceID":"10008","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"241","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10008","title":"按时完成执行数","type":"card"},{"id":"2bnzdjpcesg000","isGroup":false,"attr":{"x":591,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成任务条目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"38661","sourceID":"10010","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"38661","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10010","title":"完成任务条目数","type":"card"},{"id":"5rwyxojtmnw000","isGroup":false,"attr":{"x":772,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成任务预计工时数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"109341","sourceID":"10011","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"109341","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10011","title":"完成任务预计工时数","type":"card"},{"id":"1ook02lf4ns000","isGroup":false,"attr":{"x":951,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成任务消耗工时数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"101601","sourceID":"10012","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"101601","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10012","title":"完成任务消耗工时数","type":"card"},{"id":"3c1qy9alml2000","isGroup":false,"attr":{"x":1131,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-投入的总人天","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"12339","sourceID":"10013","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"12339","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10013","title":"投入的总人天","type":"card"},{"id":"4v411wy0jam000","isGroup":false,"attr":{"x":68,"y":439,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"PieCircle","chartConfig":{"key":"PieCircle","chartKey":"VPieCircle","conKey":"VCPieCircle","title":"项目过程-项目按期完成率","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie-circle.png","sourceID":"10014","fields":null,"filters":[],"dataset":0},"option":{"tooltip":{"show":true,"trigger":"item"},"legend":{"show":true},"dataset":0,"title":{"text":"0.00%","x":"center","y":"center","textStyle":{"color":"#4498ECFF","fontSize":30}},"series":[{"type":"pie","radius":["75%","80%"],"center":["50%","50%"],"hoverAnimation":true,"color":["#00bcd44a","transparent"],"label":{"show":false},"data":[{"value":[0],"itemStyle":{"color":"#4498ECFF","shadowBlur":10,"shadowColor":"#6FB6F1FF"}},{"value":[100],"itemStyle":{"color":"#6FB6F130","shadowBlur":0,"shadowColor":"#00bcd44a"}}]}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10014","title":"项目过程-项目按期完成率","type":"piecircle"},{"id":"455e6v96m36000","isGroup":false,"attr":{"x":347,"y":440,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"PieCircle","chartConfig":{"key":"PieCircle","chartKey":"VPieCircle","conKey":"VCPieCircle","title":"项目过程-执行按期完成率","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie-circle.png","sourceID":"10015","fields":null,"filters":[],"dataset":0},"option":{"tooltip":{"show":true,"trigger":"item"},"legend":{"show":true},"dataset":0,"title":{"text":"0.00%","x":"center","y":"center","textStyle":{"color":"#4498ECFF","fontSize":30}},"series":[{"type":"pie","radius":["75%","80%"],"center":["50%","50%"],"hoverAnimation":true,"color":["#00bcd44a","transparent"],"label":{"show":false},"data":[{"value":[0],"itemStyle":{"color":"#4498ECFF","shadowBlur":10,"shadowColor":"#6FB6F1FF"}},{"value":[100],"itemStyle":{"color":"#6FB6F130","shadowBlur":0,"shadowColor":"#00bcd44a"}}]}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10015","title":"项目过程-执行按期完成率","type":"piecircle"},{"id":"1357hi74tghs00","isGroup":false,"attr":{"x":680,"y":439,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"PieCircle","chartConfig":{"key":"PieCircle","chartKey":"VPieCircle","conKey":"VCPieCircle","title":"项目过程-项目延期率","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie-circle.png","sourceID":"10016","fields":null,"filters":[],"dataset":0},"option":{"tooltip":{"show":true,"trigger":"item"},"legend":{"show":true},"dataset":0,"title":{"text":"0.00%","x":"center","y":"center","textStyle":{"color":"#69E3DEE0","fontSize":30}},"series":[{"type":"pie","radius":["75%","80%"],"center":["50%","50%"],"hoverAnimation":true,"color":["#00bcd44a","transparent"],"label":{"show":false},"data":[{"value":[0],"itemStyle":{"color":"#69E3DEA1","shadowBlur":10,"shadowColor":"#69E3DEE0"}},{"value":[100],"itemStyle":{"color":"#69E3DE21","shadowBlur":0,"shadowColor":"#FFCE97FF"}}]}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10016","title":"项目过程-项目延期率","type":"piecircle"},{"id":"5czvzl4a3qs000","isGroup":false,"attr":{"x":959,"y":439,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"PieCircle","chartConfig":{"key":"PieCircle","chartKey":"VPieCircle","conKey":"VCPieCircle","title":"项目过程-执行延期率","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie-circle.png","sourceID":"10017","fields":null,"filters":[],"dataset":0},"option":{"tooltip":{"show":true,"trigger":"item"},"legend":{"show":true},"dataset":0,"title":{"text":"0.00%","x":"center","y":"center","textStyle":{"color":"#69E3DEE0","fontSize":30}},"series":[{"type":"pie","radius":["75%","80%"],"center":["50%","50%"],"hoverAnimation":true,"color":["#00bcd44a","transparent"],"label":{"show":false},"data":[{"value":[0],"itemStyle":{"color":"#69E3DEA1","shadowBlur":10,"shadowColor":"#69E3DEE0"}},{"value":[100],"itemStyle":{"color":"#69E3DE21","shadowBlur":0,"shadowColor":"#6AE5BBFF"}}]}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10017","title":"项目过程-执行延期率","type":"piecircle"},{"id":"3rrf13x8aig000","isGroup":false,"attr":{"x":68,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"项目按期完成率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2fj8shp4iww000","isGroup":false,"attr":{"x":349,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"执行按期完成率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"7c0kw504pfo00","isGroup":false,"attr":{"x":680,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"项目延期率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3tdqudx15lm000","isGroup":false,"attr":{"x":959,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"执行延期率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"15v07f9mllz400","isGroup":false,"attr":{"x":"27","y":120,"w":242,"h":"58","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"年度完成项目数据盘点","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5rscm33a7a0000","isGroup":false,"attr":{"x":916,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":false}},{"id":"48vgwd3xywc000","isGroup":false,"attr":{"x":2,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":true}},{"id":"34gsoca72ak000","isGroup":false,"attr":{"x":450,"y":55,"w":466,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates05","chartConfig":{"key":"Decorates05","chartKey":"VDecorates05","conKey":"VCDecorates05","title":"装饰-05","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates05.png","chartFrame":"static"},"option":{"colors":["#00c2ff","#00c2ff4d"],"dur":3}},{"id":"5emz0hdi03k000","isGroup":false,"attr":{"x":1,"y":-2,"w":1365,"h":48,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"afw1xcxn3ug00","isGroup":false,"attr":{"x":433,"y":7,"w":500,"h":64,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"年度完成项目过程数据大屏","fontSize":28,"fontColor":"#b2d5e5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2v5j91if94k000","isGroup":false,"attr":{"x":18,"y":1236,"w":1326,"h":528,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3h6cqs958r6000","isGroup":false,"attr":{"x":"272","y":"1240","w":"1040","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4p2d6bkzx2m000","isGroup":false,"attr":{"x":"40","y":"1240","w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成项目工期透视表","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"53verjpnwh8000","isGroup":false,"attr":{"x":22,"y":2347,"w":653,"h":619,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5rg2qtyfzno000","isGroup":false,"attr":{"x":691,"y":2347,"w":653,"h":617,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"4gf68m6chq4000","isGroup":false,"attr":{"x":20,"y":2991,"w":1326,"h":580,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"1t16zb563uzk00","isGroup":false,"attr":{"x":53,"y":1312,"w":1263,"h":420,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"TableMergeCell","chartConfig":{"key":"TableMergeCell","chartKey":"VTableMergeCell","conKey":"VCTableMergeCell","title":"完成项目工期透视表","category":"Tables","categoryName":"列表","package":"Tables","chartFrame":"common","image":"table_scrollboard.png","sourceID":"1000","fields":{},"filters":[{"field":"closedDate","type":"date","name":"关闭日期","default":null}],"dataset":[],"tableInfo":{}},"option":{"dataset":[],"header":[],"align":["center","center","center","center","center","center","center","center","center","center"],"columnWidth":[],"rowspan":{},"colspan":[],"evenRowBGC":"#FFFFFF00","oddRowBGC":"#1089FF1A","headerBGC":"#4498EC85"},"sourceID":"1000","title":"完成项目工期透视表","type":"table"},{"id":"12km9ka7t40g00","isGroup":false,"attr":{"x":18,"y":1788,"w":1326,"h":528,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"4wxuogwx6he000","isGroup":false,"attr":{"x":236,"y":726,"w":242,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"项目完成分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5n8bpai3kcw000","isGroup":false,"attr":{"x":"60","y":"2440","w":"580","h":"500","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"项目过程-完成项目工期偏差条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10018","fields":{},"filters":[{"field":"name","type":"input","name":"项目名称","default":""}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"项目过程-完成项目工期偏差条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{},"series":[{"type":"bar","barWidth":null,"label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10018","title":"完成项目工期偏差条形图","type":"cluBarY"},{"id":"5q7zvaotgyo000","isGroup":false,"attr":{"x":724,"y":"2440","w":"580","h":"500","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"项目过程-完成项目工期偏差条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10022","fields":{},"filters":[{"field":"name","type":"input","name":"项目名称","default":""}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"项目过程-完成项目工期偏差条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{},"series":[{"type":"bar","barWidth":null,"label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10022","title":"完成项目工期偏差条形图","type":"cluBarY"},{"id":"37kkzy05o6u000","isGroup":false,"attr":{"x":"48","y":"3100","w":1265,"h":"420","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarCommon","chartConfig":{"key":"BarCommon","chartKey":"VBarCommon","conKey":"VCBarCommon","title":"项目过程-单位工时交付需求规模数对比图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_x.png","sourceID":"10019","fields":{},"filters":[{"field":"project","type":"input","name":"所属项目","default":""}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"项目过程-单位工时交付需求规模数对比图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{},"series":[{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":2}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10019","title":"单位工时交付需求规模数对比图","type":"cluBarX"},{"id":"58diyfly21g000","isGroup":false,"attr":{"x":900,"y":726,"w":242,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"执行完成分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4y4a1x55hh4000","isGroup":false,"attr":{"x":"60","y":"734","w":"182","h":"40","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5txcqlq213g000","isGroup":false,"attr":{"x":"460","y":"734","w":"182","h":"40","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5oxxiekui1c000","isGroup":false,"attr":{"x":"724","y":"734","w":"182","h":"33","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"3u3w3sejwiu000","isGroup":false,"attr":{"x":1134,"y":"734","w":182,"h":"40","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"579d65hwr6c00","isGroup":false,"attr":{"x":"64","y":"790","w":"560","h":400,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"项目过程-项目完成分布图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10020","fields":{},"filters":[{"field":"closedDate","type":"date","name":"关闭日期","default":null}],"dataset":{}},"option":{"legend":{"show":true,"top":30,"textStyle":{"color":"#B9B8CE"},"left":"center"},"title":{"text":"项目过程-项目完成分布图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"grid":{"top":70},"dataset":{},"series":[{"type":"pie","radius":"70%","center":["50%","60%"],"label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"roseType":false}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10020","title":"项目完成分布图","type":"pie"},{"id":"1ei55qri4gu800","isGroup":false,"attr":{"x":"736","y":"790","w":"560","h":"400","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"项目过程-执行完成分布图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10021","fields":{},"filters":[{"field":"closedDate","type":"date","name":"关闭日期","default":null}],"dataset":{}},"option":{"legend":{"show":true,"top":30,"textStyle":{"color":"#B9B8CE"},"left":"center"},"title":{"text":"项目过程-执行完成分布图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"grid":{"top":70},"dataset":{},"series":[{"type":"pie","radius":"70%","center":["50%","60%"],"label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color": "#fff","shadowColor": "transparent"},"roseType":false}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10021","title":"执行完成分布图","type":"pie"},{"id":"2flxymehju8000","isGroup":false,"attr":{"x":"272","y":"1794","w":"1036","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":277,"y":133,"offsetX":0,"offsetY":0,"zIndex":-1,"lockScale":false},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"u6807u9898","image":"","dataset":[]},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"u9009u62e9","category":"Mores","categoryName":"u66f4u591a","package":"Informations","chartFrame":"common","image":"static/png/select-c616737a.png"},"option":{"dataset":[{"label":"2023","value":"2023"},{"label":2022,"value":2022},{"label":2021,"value":2021},{"label":2020,"value":2020},{"label":2019,"value":2019},{"label":2018,"value":2018},{"label":2017,"value":2017},{"label":2016,"value":2016},{"label":2015,"value":2015},{"label":2014,"value":2014},{"label":2013,"value":2013},{"label":2012,"value":2012},{"label":2011,"value":2011},{"label":2010,"value":2010},{"label":2009,"value":2009}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20,"onChange":"window.location.href = createLink(\'screen\', \'view\', \'screenID=6&year=\' + value + \'&dept=&account=\')"},"type":"year","filterCharts":[{"chart":10000,"field":"t1.`year`"},{"chart":10001,"field":"t1.`year`"},{"chart":10002,"field":"t1.`year`"},{"chart":10003,"field":"t1.`year`"},{"chart":10004,"field":"t1.`year`"},{"chart":10005,"field":"t1.`year`"},{"chart":10006,"field":"t1.`year`"},{"chart":10007,"field":"t1.`year`"},{"chart":10008,"field":"t1.`year`"},{"chart":10009,"field":"t1.`year`"},{"chart":10010,"field":"t1.`year`"},{"chart":10011,"field":"t1.`year`"},{"chart":10012,"field":"t1.`year`"},{"chart":10013,"field":"t1.`year`"},{"chart":10014,"field":"t1.`year`"},{"chart":10015,"field":"t1.`year`"},{"chart":10016,"field":"t1.`year`"},{"chart":10017,"field":"t1.`year`"}]}],"key":"group","option":{}},{"id":"12pr64gobork00","isGroup":false,"attr":{"x":424,"y":120,"w":882,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"436oj64jvca000","isGroup":false,"attr":{"x":"32","y":2362,"w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png"},"option":{"link":"","linkHead":"http://","dataset":"完成项目工期偏差","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1ahevk1yw0tc00","isGroup":false,"attr":{"x":"268","y":"2362","w":"376","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4kcpsj6i5q8000","isGroup":false,"attr":{"x":698,"y":"2362","w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png"},"option":{"link":"","linkHead":"http://","dataset":"完成项目工时偏差","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5dijh3989bg000","isGroup":false,"attr":{"x":"940","y":"2362","w":"376","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"17o4abp7p68w00","isGroup":false,"attr":{"x":"32","y":3014,"w":"460","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png"},"option":{"link":"","linkHead":"http://","dataset":"完成项目单位工时交付需求规模数对比","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4f1dpys6drq000","isGroup":false,"attr":{"x":"500","y":"3014","w":"820","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#ffffff4d","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4dhr11orgts000","isGroup":false,"attr":{"x":"40","y":"1794","w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成项目工时透视表","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3j6atjdm7co000","isGroup":false,"attr":{"x":50,"y":1861,"w":1257,"h":428,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"TableMergeCell","chartConfig":{"key":"TableMergeCell","chartKey":"VTableMergeCell","conKey":"VCTableMergeCell","title":"完成项目工时透视表","category":"Tables","categoryName":"列表","package":"Tables","chartFrame":"common","image":"table_scrollboard.png","sourceID":"1001","fields":{},"filters":[{"field":"closedDate","type":"date","name":"关闭日期","default":null}],"dataset":[],"tableInfo":{}},"option":{"dataset":[],"header":[],"align":["center","center","center","center","center","center","center","center","center","center"],"columnWidth":[],"rowspan":{},"colspan":[],"oddRowBGC":"#1089FF1A","headerBGC":"#4498EC85","evenRowBGC":"#00000000"},"sourceID":"1001","title":"完成项目工时透视表","type":"table"}],"requestGlobalConfig":{"requestDataPond":[],"requestOriginUrl":"","requestInterval":30,"requestIntervalUnit":"second","requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}}}', 'published', '1', 'admin', '2022-11-18 10:46:18', 'admin', '2023-03-23 15:01:00', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (7, 2, '年度进行中项目过程跟踪大屏', '从宏观的角度跟踪年度进行中项目的过程数据情况', 'static/images/screen6.png', '[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":" 年度进行中项目过程跟踪大屏","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":171,"w":1300,"h":385,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":175,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"项目进度概览","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":145,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":165,"y":28,"w":1097,"h":10,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_right.png","fit":"fill","borderRadius":0}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":25,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10101,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"进行中项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":206,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10103,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"进展顺利项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":387,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10105,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"进度滞后项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":568,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10107,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"已延期项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":749,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10109,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":42,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"未完成","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":58,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"需求条目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":930,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10111,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":42,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"未完成","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":58,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"需求规模数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":25,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10102,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"进行中迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":206,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10104,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"进展顺利迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":387,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10106,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"进度滞后迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":568,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10108,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文档个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"已延期迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":749,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10110,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"未完成任务数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":930,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10112,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"剩余工时数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":159,"h":370,"x":1111,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":159,"h":267,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10113,"isGroup":false,"attr":{"x":0,"y":80,"w":159,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":130,"w":159,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"投入的","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":150,"w":159,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"总人次","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1260,"y":186,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"顺利:进度百分比 ≥ (当前日期-计划开始日期)/(计划工期)或者 长期项目\\n滞后:进度百分比 <(当前日期-计划开始日期)/(计划工期)\\n延期:计划结束日期 < 当前日期","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":647,"h":500,"x":0,"y":562,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"需求年度新增和完成趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":647,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"需求年度新增和完成趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"4ocyn7hip9k000","sourceID":10114,"isGroup":false,"attr":{"x":10,"y":50,"w":600,"h":410,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"饼图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static/png/pie-9620f191.png"},"option":{"legend":{"show":true,"top":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","position":"outside","alignTo":"edge","margin":"10%"},"center":["50%","55%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":15,"y":22,"w":600,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求年度新增和完成趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"项目进度分布图","fontSize":14,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":647,"h":500,"x":653,"y":562,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"BUG年度新增和解决趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":647,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"BUG年度新增和解决趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"4ocyn7hip9k000","sourceID":10115,"isGroup":false,"attr":{"x":10,"y":50,"w":600,"h":410,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"饼图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static/png/pie-9620f191.png"},"option":{"legend":{"show":true,"top":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","position":"outside","alignTo":"edge","margin":"10%"},"center":["50%","55%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":15,"y":22,"w":600,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"BUG年度新增和解决趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"迭代进度分布图","fontSize":14,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1068,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1068,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"项目进度透视图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":167,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":187,"y":28,"w":1083,"h":10,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10116,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static/png/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1597,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1597,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"迭代进度透视表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":165,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":185,"y":28,"w":1090,"h":10,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10117,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static/png/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":2129,"w":647,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":647,"h":120,"x":0,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"项目剩余工作量透视表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":28,"w":380,"h":8,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10118,"isGroup":false,"attr":{"x":17,"y":57,"w":610,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static/png/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":["120","100","90","130","80","90"],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":653,"y":2129,"w":647,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":647,"h":120,"x":653,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"迭代剩余工作量透视表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":28,"w":380,"h":8,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10119,"isGroup":false,"attr":{"x":17,"y":57,"w":610,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static/png/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":["140","120","90","130","80","90"],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}}]', 'published', '1', 'admin', '2022-12-07 14:59:41', 'admin', '2022-12-07 14:59:41', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (8, 3, '公司质量数据盘点大屏', '关于公司质量数据的大屏,整体把握公司生产质量', 'static/images/screen6.png', '{"editCanvasConfig":{"projectName":"2","width":1366,"height":3740,"size":0,"lockScale":false,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#0B0F18FF","backgroundImage":null,"selectColor":true,"chartThemeColor":"3wvajowr6l8000","chartThemeSetting":{"title":{"text":"","show":true,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"legend":{"show":true,"top":"5%","textStyle":{"color":"#B9B8CE"}},"grid":{"show":false,"left":"10%","top":"60","right":"10%","bottom":"60"},"dataset":null,"renderer":"svg"},"previewScaleType":"scrollY","globalFilter":[],"chartCustomThemeColorInfo":[{"id":"3wvajowr6l8000","name":"未命名","color":["#6ae5bb","#69e3de","#5ac5ee","#6FB6F1FF","#4498ec","#3c7ddf","#1E6AEBFF"]}]},"componentList":[{"id":"55ojhdng6xc00","isGroup":false,"attr":{"x":1128,"y":"202","w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"3frl1vyqmta000","isGroup":false,"attr":{"x":932,"y":"202","w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"2ags77k2ww7w00","isGroup":false,"attr":{"x":734,"y":"202","w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"50nt2l84n38000","isGroup":false,"attr":{"x":516,"y":202,"w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5mc1lzqkgtg00","isGroup":false,"attr":{"x":284,"y":202,"w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"1i58n5kxophc00","isGroup":false,"attr":{"x":60,"y":202,"w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"3mnttqgyc4o000","isGroup":false,"attr":{"x":253,"y":46,"w":860,"h":32,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"4nir9d6n138000","isGroup":false,"attr":{"x":20,"y":106,"w":1326,"h":500,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3sdxo2ffqi0000","isGroup":false,"attr":{"x":50,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"研发完成需求数 ","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":34,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4nyo2dxv5yi000","isGroup":false,"attr":{"x":60,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"质量数据-研发完成需求数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"19033","sourceID":"10201","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"19033","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10201","title":"质量数据-研发完成需求数","type":"card"},{"id":"2ev27p00xbpc00","isGroup":false,"attr":{"x":274,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"研发完成需求规模数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":12,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"lzaj0yorolc00","isGroup":false,"attr":{"x":506,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"研发完成需求用例数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":12,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4jogna07yk8000","isGroup":false,"attr":{"x":922,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"有效Bug数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":40,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"15j805dkq4ik00","isGroup":false,"attr":{"x":1118,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"修复Bug数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":48,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"ltddmmh5kkw00","isGroup":false,"attr":{"x":-1232,"y":613,"w":153,"h":84,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成项目数","fontSize":12,"fontColor":"#ffffff","paddingX":20,"paddingY":20,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF12"}},{"id":"6p4ckgbvmx400","isGroup":false,"attr":{"x":-1232,"y":613,"w":153,"h":84,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成项目数","fontSize":12,"fontColor":"#ffffff","paddingX":20,"paddingY":20,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF12"}},{"id":"5nkv71g8l9o000","isGroup":false,"attr":{"x":-1232,"y":613,"w":153,"h":84,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"完成项目数","fontSize":12,"fontColor":"#ffffff","paddingX":20,"paddingY":20,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF12"}},{"id":"4l83s1sqlek000","isGroup":false,"attr":{"x":724,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug总数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":54,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"5f6dr2y034w000","isGroup":false,"attr":{"x":284,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"质量数据-研发完成需求规模数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"62482","sourceID":"10202","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"62482","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10202","title":"质量数据-研发完成需求规模数","type":"card"},{"id":"1gw11ho3ev4w00","isGroup":false,"attr":{"x":516,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"质量数据-研发完成需求用例数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"2208","sourceID":"10203","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"2208","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10203","title":"质量数据-研发完成需求用例数","type":"card"},{"id":"4ljohxdlzfs000","isGroup":false,"attr":{"x":734,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"质量数据-Bug总数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"19799","sourceID":"10204","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"19799","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10204","title":"质量数据-Bug总数","type":"card"},{"id":"2dsxvobrqdes00","isGroup":false,"attr":{"x":931,"y":191,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"质量数据-有效Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"17341","sourceID":"10205","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"17341","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10205","title":"质量数据-有效Bug数","type":"card"},{"id":"25j01jdzmrts00","isGroup":false,"attr":{"x":1128,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"质量数据-修复Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"13886","sourceID":"10206","fields":null,"filters":[]},"option":{"link":"","linkHead":"http://","dataset":"13886","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10206","title":"质量数据-修复Bug数","type":"card"},{"id":"3rrf13x8aig000","isGroup":false,"attr":{"x":58,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"研发完成需求用例覆盖率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2fj8shp4iww000","isGroup":false,"attr":{"x":352,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"研发完成需求用例密度","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"7c0kw504pfo00","isGroup":false,"attr":{"x":660,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug密度","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3tdqudx15lm000","isGroup":false,"attr":{"x":972,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug修复率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"15v07f9mllz400","isGroup":false,"attr":{"x":"23","y":120,"w":201,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"质量数据盘点","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"12pr64gobork00","isGroup":false,"attr":{"x":"232","y":120,"w":1075,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5rscm33a7a0000","isGroup":false,"attr":{"x":916,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":false}},{"id":"48vgwd3xywc000","isGroup":false,"attr":{"x":2,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":true}},{"id":"34gsoca72ak000","isGroup":false,"attr":{"x":450,"y":55,"w":466,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates05","chartConfig":{"key":"Decorates05","chartKey":"VDecorates05","conKey":"VCDecorates05","title":"装饰-05","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates05.png","chartFrame":"static"},"option":{"colors":["#00c2ff","#00c2ff4d"],"dur":3}},{"id":"5emz0hdi03k000","isGroup":false,"attr":{"x":1,"y":1,"w":1365,"h":45,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"afw1xcxn3ug00","isGroup":false,"attr":{"x":456,"y":4,"w":454,"h":64,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"公司质量数据盘点大屏","fontSize":28,"fontColor":"#b2d5e5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"58c9hdcwi5s000","isGroup":false,"attr":{"x":660,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"质量数据-Bug密度","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.04","sourceID":"10209","fields":null,"filters":[]},"option":{"dataset":"0.04","series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.04],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10209","title":"质量数据-Bug密度","type":"waterpolo"},{"id":"172yoxa90vb400","isGroup":false,"attr":{"x":972,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"质量数据-Bug修复率","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.10","sourceID":"10210","fields":null,"filters":[]},"option":{"dataset":"0.10","series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.1],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10210","title":"质量数据-Bug修复率","type":"waterpolo"},{"id":"3w4daidjqdi000","isGroup":false,"attr":{"x":58,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"质量数据-研发完成需求用例覆盖率","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.309625","sourceID":"10207","fields":null,"filters":[]},"option":{"dataset":"0.309625","series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.31],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10207","title":"质量数据-研发完成需求用例覆盖率","type":"waterpolo"},{"id":"4bn4v0qaocw000","isGroup":false,"attr":{"x":352,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"质量数据-研发完成需求用例密度","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.7013","sourceID":"10208","fields":null,"filters":[]},"option":{"dataset":"0.7013","series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.7],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10208","title":"质量数据-研发完成需求用例密度","type":"waterpolo"},{"id":"27f0de7xfqfw00","isGroup":false,"attr":{"x":510,"y":1646,"w":833,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"kp909j6ffg000","isGroup":false,"attr":{"x":18,"y":1645,"w":477,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3vsciuh0hrs000","isGroup":false,"attr":{"x":"154","y":"1648","w":200,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug类型分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2mqp7xv959400","isGroup":false,"attr":{"x":"354","y":"1648","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4n4yq7lcev4000","isGroup":false,"attr":{"x":"32","y":"1648","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"1d271h0v8mqo00","isGroup":false,"attr":{"x":"782","y":"1648","w":280,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug严重程度堆积图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5mrgc6eqt90000","isGroup":false,"attr":{"x":1057,"y":"1648","w":260,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"254g36lcv2io00","isGroup":false,"attr":{"x":539,"y":"1648","w":254,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5ip3xc3pes0000","isGroup":false,"attr":{"x":511,"y":2156,"w":835,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"p5v6om0y7gg00","isGroup":false,"attr":{"x":20,"y":2156,"w":472,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"ktbwgyibuz400","isGroup":false,"attr":{"x":"136","y":"2160","w":240,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug解决方案分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"517812ddp18000","isGroup":false,"attr":{"x":"374","y":"2160","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2ubeu8arz66000","isGroup":false,"attr":{"x":"40","y":"2160","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"dwud1obtioo00","isGroup":false,"attr":{"x":"778","y":"2160","w":280,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug密度年度趋势图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2zef39rtski000","isGroup":false,"attr":{"x":1048,"y":"2160","w":266,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"44fwuqancr0000","isGroup":false,"attr":{"x":533,"y":"2160","w":260,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2uws0ytah1s000","isGroup":false,"attr":{"x":512,"y":626,"w":834,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5nyrxc5w010000","isGroup":false,"attr":{"x":20,"y":626,"w":475,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5jlquwudqjc000","isGroup":false,"attr":{"x":"154","y":"632","w":200,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug状态分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"gpiyfioye2800","isGroup":false,"attr":{"x":"354","y":"632","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"54c0xx57r24000","isGroup":false,"attr":{"x":"32","y":"632","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2sphsycadhc000","isGroup":false,"attr":{"x":"664","y":"632","w":512,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug总数、有效Bug数与修复Bug数近30天统计图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1k6hl6r7tygw00","isGroup":false,"attr":{"x":1188,"y":"632","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4hnhyvnfq5g000","isGroup":false,"attr":{"x":536,"y":"632","w":120,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"1jeaitz0lrr400","isGroup":false,"attr":{"x":512,"y":1136,"w":834,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"1hwn0jcj6uio00","isGroup":false,"attr":{"x":20,"y":1136,"w":475,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"pw93bwp425c00","isGroup":false,"attr":{"x":"136","y":"1140","w":240,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"Bug严重程度分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4zzvvpybfdc000","isGroup":false,"attr":{"x":"374","y":"1140","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2my1y33oe22000","isGroup":false,"attr":{"x":40,"y":"1140","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"53axbaefjh8000","isGroup":false,"attr":{"x":"784","y":"1140","w":280,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"有效Bug率年度趋势图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3dn99i3ync4000","isGroup":false,"attr":{"x":1062,"y":"1140","w":"260","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4nwwxcg1bt4000","isGroup":false,"attr":{"x":533,"y":"1140","w":260,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4ogg3298z1q000","isGroup":false,"attr":{"x":"528","y":"708","w":798,"h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarCommon","chartConfig":{"key":"BarCommon","chartKey":"VBarCommon","conKey":"VCBarCommon","title":"Bug总数、有效Bug与解决Bug数近30天统计柱形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_x.png","sourceID":"10211","fields":{},"filters":[{"field":"日期","type":"date","name":"日期","default":null}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"Bug总数、有效Bug与解决Bug数近30天统计柱形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{},"series":[{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":2}},{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":2}},{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":2}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10211","title":"Bug总数、有效Bug与解决Bug数近30天统计柱形图","type":"cluBarX"},{"id":"3g6xki3tayi000","isGroup":false,"attr":{"x":"528","y":"1216","w":"798","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"有效Bug率年度趋势图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"line.png","sourceID":"10212","fields":{},"filters":[{"field":"年份","type":"date","name":"年份","default":null}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"有效Bug率年度趋势图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10212","title":"有效Bug率年度趋势图","type":"line"},{"id":"1lk7rgc6je5c00","isGroup":false,"attr":{"x":"528","y":"1720","w":"798","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarStacked","chartConfig":{"key":"BarStacked","chartKey":"VBarStacked","conKey":"VCBarStacked","title":"Bug严重程度堆积柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_stacked_x.png","sourceID":"10214","fields":{},"filters":[{"field":"年份","type":"date","name":"年份","default":null}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"Bug严重程度堆积柱状图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"series":[{"type":"bar","stack":"total","barWidth":null,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}},{"type":"bar","stack":"total","barWidth":null,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}},{"type":"bar","stack":"total","barWidth":null,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataset":{}},"sourceID":"10214","title":"Bug严重程度堆积柱状图","type":"stackedBar"},{"id":"25mmk8o5duo000","isGroup":false,"attr":{"x":"528","y":"2236","w":"798","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"Bug密度年度趋势图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"line.png","sourceID":"10213","fields":{},"filters":[{"field":"年份","type":"select","name":"年份","options":[{"label":"0000","value":"0000"},{"label":"2004","value":2004},{"label":"2005","value":2005},{"label":"2006","value":2006},{"label":"2007","value":2007},{"label":"2009","value":2009},{"label":"2010","value":2010},{"label":"2011","value":2011},{"label":"2012","value":2012},{"label":"2013","value":2013},{"label":"2014","value":2014},{"label":"2015","value":2015},{"label":"2016","value":2016},{"label":"2017","value":2017},{"label":"2018","value":2018},{"label":"2019","value":2019},{"label":"2020","value":2020},{"label":"2021","value":2021},{"label":"2022","value":2022},{"label":"2023","value":2023}]}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"Bug密度年度趋势图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10213","title":"Bug密度年度趋势图","type":"line"},{"id":"53verjpnwh8000","isGroup":false,"attr":{"x":20,"y":3214,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5rg2qtyfzno000","isGroup":false,"attr":{"x":693,"y":3216,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"1j96xfpflgw000","isGroup":false,"attr":{"x":1152,"y":"3230","w":"160","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"d47gaf5trhk00","isGroup":false,"attr":{"x":734,"y":"3230","w":"160","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"50iv7knqqtk000","isGroup":false,"attr":{"x":"920","y":"3230","w":200,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"产品Bug数量统计","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4xtycre64bw000","isGroup":false,"attr":{"x":"220","y":"3230","w":240,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"产品用例数量统计","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2o3vh7bn0k6000","isGroup":false,"attr":{"x":465,"y":"3230","w":160,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"gkc4fwuus2o0","isGroup":false,"attr":{"x":60,"y":"3230","w":160,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"penzroyxpao00","isGroup":false,"attr":{"x":20,"y":2666,"w":1326,"h":528,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3kx9bltlzts000","isGroup":false,"attr":{"x":"2800","y":"26800","w":1023,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"1igpxgk2mv6o00","isGroup":false,"attr":{"x":"32","y":"2680","w":242,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http://","dataset":"产品缺陷数据汇总表","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3oqvmqrcqfg000","isGroup":false,"attr":{"x":50,"y":2750,"w":1262,"h":413,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"TableMergeCell","chartConfig":{"key":"TableMergeCell","chartKey":"VTableMergeCell","conKey":"VCTableMergeCell","title":"产品缺陷数据汇总表","category":"Tables","categoryName":"列表","package":"Tables","chartFrame":"common","image":"table_scrollboard.png","sourceID":"1002","fields":{},"filters":[],"dataset":[],"tableInfo":{}},"option":{"header":[],"dataset":[],"index":true,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center","center","center","center","center","center"],"rowNum":5,"waitTime":2,"headerHeight":35,"carousel":"single","headerBGC":"#4498EC85","oddRowBGC":"#1089FF1A","evenRowBGC":"#FFFFFF00","rowspan":{},"colspan":[]},"sourceID":"1002","title":"产品缺陷数据汇总表","type":"table"},{"id":"23hxn88hrwm800","isGroup":false,"attr":{"x":56,"y":"3300","w":574,"h":"380","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"产品用例数量统计条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10215","fields":{},"filters":[{"field":"name","type":"input","name":"产品","default":""}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"产品用例数量统计条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{},"series":[{"type":"bar","barWidth":null,"label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10215","title":"产品用例数量统计条形图","type":"cluBarY"},{"id":"zu2vtfsd1z400","isGroup":false,"attr":{"x":"732","y":"3300","w":"574","h":"380","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"产品Bug数量统计条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10216","fields":{},"filters":[{"field":"name","type":"input","name":"产品","default":""}],"dataset":{}},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"产品Bug数量统计条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{},"series":[{"type":"bar","barWidth":null,"label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"color":null,"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10216","title":"产品Bug数量统计条形图","type":"cluBarY"},{"id":"38a8owutx4m000","isGroup":false,"attr":{"x":"280","y":2680,"w":"1030","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null},"interactEvents":[]},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"p8d55xj3za800","isGroup":false,"attr":{"x":"34","y":"708","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug状态分布图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10217","fields":{},"filters":[{"field":"openedDate","type":"date","name":"创建日期","default":null}],"dataset":{}},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#B9B8CE"},"left":"center"},"title":{"text":"Bug状态分布图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"dataset":{},"series":[{"type":"pie","radius":"70%","center":["50%","60%"],"label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"roseType":false}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10217","title":"Bug状态分布图","type":"pie"},{"id":"11322hw5hcf40","isGroup":false,"attr":{"x":"34","y":"1216","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug严重程度分布","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10219","fields":{},"filters":[{"field":"openedDate","type":"date","name":"创建日期","default":null}],"dataset":{}},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#fff"},"left":"center","type":"scroll"},"title":{"text":"Bug严重程度分布","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"series":[{"type":"pie","label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"radius":"70%","roseType":false}],"backgroundColor":"rgba(0,0,0,0)","dataset":{}},"sourceID":"10219","title":"Bug严重程度分布","type":"pie"},{"id":"1bw4mu8kjfi800","isGroup":false,"attr":{"x":"34","y":"1720","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug类型分布","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10218","fields":{},"filters":[{"field":"openedDate","type":"date","name":"创建日期","default":null}],"dataset":{}},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#fff"},"left":"center","type":"scroll"},"title":{"text":"Bug类型分布","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"series":[{"type":"pie","label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"radius":"70%","roseType":false}],"backgroundColor":"rgba(0,0,0,0)","dataset":{}},"sourceID":"10218","title":"Bug类型分布","type":"pie"},{"id":"14ns3t0es7k000","isGroup":false,"attr":{"x":"34","y":"2236","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"preview":{"overFlowHidden":false},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"events":{"baseEvent":{},"advancedEvents":{}},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug解决方案分布","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10220","fields":{},"filters":[{"field":"resolvedDate","type":"date","name":"解决日期","default":null}],"dataset":{}},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#fff"},"left":"center","type":"scroll"},"title":{"text":"Bug解决方案分布","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"series":[{"type":"pie","label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"radius":"70%","roseType":false}],"backgroundColor":"rgba(0,0,0,0)","dataset":{}},"sourceID":"10220","title":"Bug解决方案分布","type":"pie"}],"requestGlobalConfig":{"requestDataPond":[],"requestOriginUrl":"","requestInterval":30,"requestIntervalUnit":"second","requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}}}', 'published', '1', 'admin', '2022-12-07 14:59:41', 'admin', '2022-12-07 14:59:41', '0'); -INSERT INTO zt_screen (id, dimension, name, `desc`, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES (1001, 1, '禅道月度应用健康度体检大屏', '公司级禅道应用健康度体检大屏,促进项目管理持续改进。', '', '[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u7985\\u9053\\u6708\\u5ea6\\u5e94\\u7528\\u5065\\u5eb7\\u5ea6\\u4f53\\u68c0\\u62a5\\u544a","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":0,"y":95,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","type":"year","filterCharts":[{"chart":20001,"field":"t1.`year`"},{"chart":20002,"field":"t1.`year`"},{"chart":20003,"field":"t1.`year`"},{"chart":20004,"field":"t1.`year`"},{"chart":20005,"field":"t1.`year`"},{"chart":20006,"field":"t1.`year`"},{"chart":20007,"field":"t1.`year`"},{"chart":20008,"field":"t1.`year`"},{"chart":20009,"field":"t1.`year`"},{"chart":20010,"field":"t1.`year`"},{"chart":20011,"field":"t1.`year`"},{"chart":20012,"field":"t1.`year`"},{"chart":20013,"field":"t1.`year`"}],"isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"\\u9009\\u62e9","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"\\u8bf7\\u9009\\u62e9","value":""},{"label":"\\u6cb3\\u5317","value":"18700"},{"label":"\\u5f90\\u5dde","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20,"onChange":"console.log(value)"}},{"id":"2xjom2cw2b2000","type":"month","filterCharts":[{"chart":20001,"field":"t1.`month`"},{"chart":20002,"field":"t1.`month`"},{"chart":20003,"field":"t1.`month`"},{"chart":20004,"field":"t1.`month`"},{"chart":20005,"field":"t1.`month`"},{"chart":20006,"field":"t1.`month`"},{"chart":20007,"field":"t1.`month`"},{"chart":20008,"field":"t1.`month`"},{"chart":20009,"field":"t1.`month`"},{"chart":20010,"field":"t1.`month`"},{"chart":20011,"field":"t1.`month`"},{"chart":20012,"field":"t1.`month`"},{"chart":20013,"field":"t1.`month`"}],"isGroup":false,"attr":{"x":100,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"\\u9009\\u62e9","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"\\u8bf7\\u9009\\u62e9","value":""},{"label":"\\u6cb3\\u5317","value":"18700"},{"label":"\\u5f90\\u5dde","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20,"onChange":"console.log(value)"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":150,"w":1300,"h":220,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":80,"x":0,"y":150,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u4f7f\\u7528\\u6570\\u636e\\u5206\\u6790","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":25,"y":220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20014,"isGroup":false,"attr":{"x":110,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":110,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u5f53\\u524d\\u7248\\u672c","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":448,"y":220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20015,"isGroup":false,"attr":{"x":110,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":110,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u4e0a\\u7ebf\\u65f6\\u95f4","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":870,"y":220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1028,"isGroup":false,"attr":{"x":110,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":110,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u540e\\u53f0\\u8d26\\u53f7\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":375,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":375,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u6d3b\\u8dc3\\u8d26\\u53f7\\u6570\\u9879\\u76ee\\u95f4\\u5bf9\\u6bd4","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20002,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":1300,"h":500,"x":0,"y":905,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u516c\\u53f8\\u8d26\\u53f7\\u65e5\\u6d3b\\u8dc3\\u5ea6\\u8d8b\\u52bf\\u7edf\\u8ba1","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"\\u516c\\u53f8\\u8d26\\u53f7\\u65e5\\u6d3b\\u8dc3\\u5ea6\\u8d8b\\u52bf\\u7edf\\u8ba1","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":20003,"isGroup":false,"attr":{"x":0,"y":60,"w":1250,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"\\u6298\\u7ebf\\u56fe","category":"Lines","categoryName":"\\u6298\\u7ebf\\u56fe","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(\\u65e5\\u671f)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(\\u4e2a\\u6570)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"color":null,"borderRadius":0},"lineStyle":{"type":"solid","width":3,"color":null}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u516c\\u53f8\\u8d26\\u53f7\\u65e5\\u6d3b\\u8dc3\\u5ea6\\u8d8b\\u52bf\\u7edf\\u8ba1","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u516c\\u53f8\\u8d26\\u53f7\\u65e5\\u6d3b\\u8dc3\\u5ea6\\u8d8b\\u52bf\\u7edf\\u8ba1","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1405,"w":1300,"h":400,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":80,"x":0,"y":1400,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u4ea7\\u54c1\\u6570\\u636e","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":25,"y":1470,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1020,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u5f53\\u524d\\u4ea7\\u54c1\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":448,"y":1470,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20004,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u6d3b\\u8dc3\\u4ea7\\u54c1\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":870,"y":1470,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20005,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u672c\\u6708\\u65b0\\u589e\\u4ea7\\u54c1\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":1300,"h":159,"x":25,"y":1630,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1240,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20006,"isGroup":false,"attr":{"x":110,"y":20,"w":1000,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":525,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u672c\\u6708\\u65b0\\u589e\\u4ea7\\u54c1\\u540d","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":2855,"w":1300,"h":400,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":80,"x":0,"y":2855,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u9879\\u76ee\\u6570\\u636e","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":25,"y":2925,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":370,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1019,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u5f53\\u524d\\u9879\\u76ee\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":448,"y":2925,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":370,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20007,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u6d3b\\u8dc3\\u9879\\u76ee\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":870,"y":2925,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":370,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20008,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u672c\\u6708\\u65b0\\u589e\\u9879\\u76ee\\u6570","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":1300,"h":159,"x":25,"y":3080,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6587\\u6863\\u4e2a\\u6570","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1215,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static/png/photo-637bc05d.png"},"option":{"dataset":"static/images/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20009,"isGroup":false,"attr":{"x":100,"y":20,"w":1000,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":515,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"\\u4e00\\u7ea7\\u9879\\u76ee\\u96c6\\u4e2a\\u6570","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static/png/text_static-b2721032.png"},"option":{"link":"","linkHead":"http://","dataset":"\\u672c\\u6708\\u65b0\\u589e\\u9879\\u76ee\\u540d","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":3780,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":3780,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u4efb\\u52a1\\u6982\\u51b5\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20010,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":3255,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":3255,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u9879\\u76ee\\u9700\\u6c42\\u6982\\u51b5\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20013,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":2330,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":2330,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u6d4b\\u8bd5\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20011,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1805,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"\\u8fb9\\u6846","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1805,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"\\u6807\\u9898","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"\\u6587\\u672c","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"\\u4ea7\\u54c1\\u9700\\u6c42\\u6982\\u51b5\\u8868","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20012,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"\\u8f6e\\u64ad\\u5217\\u8868","category":"Tables","categoryName":"\\u8868\\u683c","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["\\u52171","\\u52172","\\u52173"],"dataset":[["\\u884c1\\u52171","\\u884c1\\u52172","\\u884c1\\u52173"],["\\u884c2\\u52171","\\u884c2\\u52172","\\u884c2\\u52173"],["\\u884c3\\u52171","\\u884c3\\u52172","\\u884c3\\u52173"],["\\u884c4\\u52171","\\u884c4\\u52172","\\u884c4\\u52173"],["\\u884c5\\u52171","\\u884c5\\u52172","\\u884c5\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"],["\\u884c6\\u52171","\\u884c6\\u52172","\\u884c6\\u52173"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":{}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":173,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u4e0a\\u7ebf\\u65f6\\u95f4\\uff1a\\u7ba1\\u7406\\u5458\\u9996\\u6b21\\u767b\\u5f55\\u7985\\u9053\\u7684\\u65f6\\u95f4\\u3002\\u000A\\u540e\\u53f0\\u8d26\\u53f7\\u6570\\uff1a\\u7cfb\\u7edf\\u6240\\u6709\\u8d26\\u53f7\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u8d26\\u53f7\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":395,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u67d0\\u6708\\u56e2\\u961f\\u8d26\\u53f7\\u6570\\uff1a\\u56e2\\u961f\\u6240\\u6709\\u8d26\\u53f7\\u6570\\u6c42\\u548c\\uff0c\\u52a0\\u5165\\u65f6\\u95f4\\u003c\\u003d\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u8d26\\u53f7\\u6570\\u3002\\u000A\\u67d0\\u6708\\u6d3b\\u8dc3\\u8d26\\u53f7\\u6570\\uff1a\\u56e2\\u961f\\u8d26\\u53f7\\u4e2d\\uff0c\\u5728\\u67d0\\u6708\\u6709\\u8fc7\\u767b\\u5f55\\u884c\\u4e3a\\u7684\\u8d26\\u53f7\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u8d26\\u53f7\\u3002\\u000A\\u67d0\\u6708\\u6d3b\\u8dc3\\u8d26\\u53f7\\u6bd4\\uff1a\\u67d0\\u6708\\u6d3b\\u8dc3\\u8d26\\u53f7\\u6bd4\\u003d\\u67d0\\u6708\\u6d3b\\u8dc3\\u8d26\\u53f7\\u6570\\u002f\\u67d0\\u6708\\u56e2\\u961f\\u8d26\\u53f7\\u6570\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":925,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u5728\\u67d0\\u6708\\uff0c\\u516c\\u53f8\\u6bcf\\u65e5\\u6709\\u767b\\u5f55\\u884c\\u4e3a\\u7684\\u8d26\\u53f7\\u6570\\u6c42\\u548c\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":1419,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u5f53\\u524d\\u4ea7\\u54c1\\u6570\\uff1a\\u7cfb\\u7edf\\u4e2d\\u6240\\u6709\\u4ea7\\u54c1\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u67d0\\u6708\\u6d3b\\u8dc3\\u4ea7\\u54c1\\u6570\\uff1a\\u7cfb\\u7edf\\u4e2d\\u67d0\\u6708\\u6709\\u8fc7\\u52a8\\u6001\\u7684\\u4ea7\\u54c1\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u67d0\\u6708\\u65b0\\u589e\\u4ea7\\u54c1\\u6570\\uff1a\\u7cfb\\u7edf\\u4e2d\\u67d0\\u6708\\u65b0\\u589e\\u7684\\u4ea7\\u54c1\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":1820,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u7814\\u53d1\\u9700\\u6c42\\u6570\\uff1a\\u4ea7\\u54c1\\u4e2d\\u7814\\u53d1\\u9700\\u6c42\\u7684\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u521b\\u5efa\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u7814\\u53d1\\u9700\\u6c42\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u4ea4\\u4ed8\\u7814\\u53d1\\u9700\\u6c42\\u6570\\uff1a\\u4ea7\\u54c1\\u4e2d\\u7814\\u53d1\\u9700\\u6c42\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u6240\\u5904\\u9636\\u6bb5\\u4e3a\\u5df2\\u53d1\\u5e03\\u4e14\\u53d1\\u5e03\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\u6216\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u4e14\\u5173\\u95ed\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u7814\\u53d1\\u9700\\u6c42\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":2356,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u7528\\u4f8b\\u6570\\uff1a\\u4ea7\\u54c1\\u4e2d\\u7528\\u4f8b\\u7684\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u521b\\u5efa\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u7528\\u4f8b\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u7528\\u4f8b\\u5e73\\u5747\\u0042\\u0075\\u0067\\u6570\\uff1a\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u7528\\u4f8b\\u6570\\u5173\\u8054\\u7684\\u0042\\u0075\\u0067\\u6570\\u002f\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u7528\\u4f8b\\u6570\\u3002\\u000A\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u0042\\u0075\\u0067\\u6570\\uff1a\\u4ea7\\u54c1\\u4e2d\\u0042\\u0075\\u0067\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u521b\\u5efa\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u0042\\u0075\\u0067\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u4fee\\u590d\\u0042\\u0075\\u0067\\u6570\\uff1a\\u4ea7\\u54c1\\u4e2d\\u0042\\u0075\\u0067\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u5173\\u95ed\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u89e3\\u51b3\\u65b9\\u6848\\u4e3a\\u5df2\\u89e3\\u51b3\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u0042\\u0075\\u0067\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u0062\\u0075\\u0067\\u5e73\\u5747\\u4fee\\u590d\\u65f6\\u95f4\\uff1a\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u4fee\\u590d\\u0042\\u0075\\u0067\\u7684\\u4fee\\u590d\\u5468\\u671f\\u002f\\u6309\\u4ea7\\u54c1\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u4fee\\u590d\\u0042\\u0075\\u0067\\u6570\\u3002\\u000A\\u4fee\\u590d\\u5468\\u671f\\uff1a\\u4fee\\u590d\\u65e5\\u671f\\u002d\\u521b\\u5efa\\u65e5\\u671f\\u3002\\u000A\\u4fee\\u590d\\uff1a\\u5df2\\u5173\\u95ed\\uff0c\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u89e3\\u51b3\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":2872,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u5f53\\u524d\\u9879\\u76ee\\u6570\\uff1a\\u7cfb\\u7edf\\u4e2d\\u6240\\u6709\\u9879\\u76ee\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\u3002\\u000A\\u67d0\\u6708\\u6d3b\\u8dc3\\u9879\\u76ee\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u67d0\\u6708\\u6709\\u8fc7\\u52a8\\u6001\\u7684\\u9879\\u76ee\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\u3002\\u000A\\u67d0\\u6708\\u65b0\\u589e\\u9879\\u76ee\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u67d0\\u6708\\u65b0\\u589e\\u7684\\u9879\\u76ee\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":3278,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u6309\\u9879\\u76ee\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u7814\\u53d1\\u9700\\u6c42\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u7814\\u53d1\\u9700\\u6c42\\u7684\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u521b\\u5efa\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u7814\\u53d1\\u9700\\u6c42\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002\\u000A\\u6309\\u9879\\u76ee\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u4ea4\\u4ed8\\u7814\\u53d1\\u9700\\u6c42\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u7814\\u53d1\\u9700\\u6c42\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u6240\\u5904\\u9636\\u6bb5\\u4e3a\\u5df2\\u53d1\\u5e03\\u4e14\\u53d1\\u5e03\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\u6216\\u5173\\u95ed\\u539f\\u56e0\\u4e3a\\u5df2\\u5b8c\\u6210\\u4e14\\u5173\\u95ed\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u7814\\u53d1\\u9700\\u6c42\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4ea7\\u54c1\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":3800,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"styles":{"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","animations":[]},"status":{"lock":false,"hide":false},"request":{"requestDataType":0,"requestHttpType":"get","requestUrl":"","requestInterval":null,"requestIntervalUnit":"second","requestContentType":0,"requestParamsBodyType":"none","requestSQLContent":{"sql":"select * from where"},"requestParams":{"Body":{"form-data":{},"x-www-form-urlencoded":{},"json":"","xml":""},"Header":{},"Params":{}}},"filter":null,"events":{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"\\u63d0\\u793a","category":"Mores","categoryName":"\\u66f4\\u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"\\u6309\\u9879\\u76ee\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u65b0\\u589e\\u4efb\\u52a1\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u4efb\\u52a1\\u7684\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u521b\\u5efa\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4efb\\u52a1\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\u3002\\u000A\\u6309\\u9879\\u76ee\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u8d21\\u732e\\u4efb\\u52a1\\u4eba\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u4efb\\u52a1\\u7684\\u521b\\u5efa\\u4eba\\u7684\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u521b\\u5efa\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4efb\\u52a1\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\uff0c\\u4eba\\u5458\\u53bb\\u91cd\\u3002\\u000A\\u6309\\u9879\\u76ee\\u7edf\\u8ba1\\u7684\\u6708\\u5ea6\\u5b8c\\u6210\\u4efb\\u52a1\\u6570\\uff1a\\u9879\\u76ee\\u4e2d\\u4efb\\u52a1\\u4e2a\\u6570\\u6c42\\u548c\\uff0c\\u5b8c\\u6210\\u65f6\\u95f4\\u4e3a\\u67d0\\u5e74\\u67d0\\u6708\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u4efb\\u52a1\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u6267\\u884c\\u7684\\u4efb\\u52a1\\uff0c\\u8fc7\\u6ee4\\u5df2\\u5220\\u9664\\u7684\\u9879\\u76ee\\u3002","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}}]', 'published', '1', 'admin', '2022-12-07 14:59:41', 'admin', '2022-12-07 14:59:41', '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(1, 1, '宏观数据盘点大屏', '从宏观的角度快速的了解公司的现状', 'open', NULL, 'static/images/screen1.png', '{"editCanvasConfig":{"width":1300,"height":3267,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#001028","selectColor":true,"chartThemeColor":"dark","previewScaleType":"scrollY"},"componentList":[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"宏观数据盘点大屏","fontSize":26,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":124,"w":1000,"h":480,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":800,"h":120,"x":0,"y":128,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":287,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司级数据概览","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":33,"w":800,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"一级项目集个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1018,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"一级项目集个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1019,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"产品个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1020,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"计划个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1021,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"计划个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"执行个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1022,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"发布个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1023,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"发布个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"需求个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1024,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"任务个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1025,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"任务个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"Bug个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1026,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":25,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1027,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文档个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文档个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"文档个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":155,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"现有人员个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1028,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"现有人员个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"现有人员个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"现有人员个数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":285,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"累计消耗工时","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1029,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"累计消耗工时","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"累计消耗工时","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"累计消耗工时","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"3v5jz5hzz0c000","isGroup":true,"attr":{"w":211,"h":150,"x":500,"y":133,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"使用时长","image":""},"groupList":[{"id":"1hxm2jtfh3y800","isGroup":false,"attr":{"x":0,"y":0,"w":380,"h":150,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"使用时长边框","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#6586ec00","#2cf7fe00"],"backgroundColor":"#00000000"}},{"id":"3aekp6a7tag000","isGroup":false,"attr":{"x":60,"y":25,"w":200,"h":150,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"使用时长","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"禅道使用时长:","fontSize":19,"fontColor":"#9abdcd","paddingX":10,"paddingY":10,"textAlign":"right","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4u5rgs0pf34000","sourceID":1030,"isGroup":false,"attr":{"x":265,"y":25,"w":252,"h":150,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"时长","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"","fontSize":19,"fontColor":"#9abdcd","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":963,"y":139,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"需求完成率=关闭原因为已完成的需求个数\\/(关闭原因为已完成的需求个数+未关闭的需求个数);\\nBug修复率=方案为已解决且状态为已关闭的Bug数\\/(方案为已解决的Bug数+方案为延期处理的Bug数+激活的Bug数)。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"17sqdjuu74ik00","sourceID":1031,"isGroup":false,"attr":{"x":460,"y":253,"w":280,"h":250,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VWaterPolo","title":"需求完成率","category":"WaterPolo","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"water_WaterPolo.png"},"option":{"dataset":0.66669999999999995932142837773426435887813568115234375,"series":[{"type":"liquidFill","shape":"circle","radius":"70%","data":[0.67000000000000003996802888650563545525074005126953125],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"4u5rgs0pf34000","isGroup":false,"attr":{"x":475,"y":488,"w":250,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"时长","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求完成率","fontSize":16,"fontColor":"#c6d3d9","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4xgico362ww000","sourceID":1032,"isGroup":false,"attr":{"x":720,"y":253,"w":280,"h":250,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VWaterPolo","title":"Bug修复率","category":"WaterPolo","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"water_WaterPolo.png"},"option":{"dataset":0.66669999999999995932142837773426435887813568115234375,"series":[{"type":"liquidFill","shape":"circle","radius":"70%","data":[0.67000000000000003996802888650563545525074005126953125],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"4u5rgs0pf34000","isGroup":false,"attr":{"x":735,"y":488,"w":250,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"时长","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug修复率","fontSize":16,"fontColor":"#c6d3d9","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":1010,"y":124,"w":290,"h":480,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":400,"h":120,"x":1010,"y":128,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":400,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司级未完成数据概览","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":235,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":235,"y":34,"w":41,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"一级项目集个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1033,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"一级项目集数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":199,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1034,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"产品数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1035,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":299,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1036,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"计划数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1037,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"计划数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":399,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"执行个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1038,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1035,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"Bug数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1039,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":110,"h":100,"x":1165,"y":499,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"任务个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":110,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1040,"isGroup":false,"attr":{"x":0,"y":14,"w":110,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":24,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":110,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"任务数","fontSize":13,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1260,"y":139,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"未完成的一级项目集个数=未关闭的一级项目集个数;\\n未完成的需求个数=未关闭的需求个数;\\n未完成的产品个数=未关闭的产品个数;\\n未完成的项目个数=未关闭的项目个数;\\n未完成的计划个数=未完成的计划个数;\\n未完成的执行个数=未关闭的执行个数;\\n未完成的任务个数=未完成的任务个数;\\n未完成的Bug个数=未关闭的Bug个数。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":618,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":618,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"一级项目集数据概览","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":212,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":212,"y":33,"w":1065,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1041,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":1153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"一级项目集需求完成率与Bug","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"一级项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1042,"isGroup":false,"attr":{"x":30,"y":60,"w":380,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":true,"bottom":"2%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"10","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}},{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[2]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":5,"maxValueSpan":5,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":-10,"y":0,"w":378,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集需求完成率与Bug","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"一级项目集需求完成率与Bug修复率","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":349,"y":33,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":350,"y":35,"w":55,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"1xih6tzmmssg00","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":1153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"公司一级项目集状态分布","image":""},"groupList":[{"id":"2bnelf1diy8000","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"公司一级项目集状态分布","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"1351cy224nb400","isGroup":false,"attr":{"x":10,"y":0,"w":240,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"公司一级项目集状态分布","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司一级项目集状态分布","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":247,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":248,"y":32,"w":160,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"4ocyn7hip9k000","sourceID":1043,"isGroup":false,"attr":{"x":10,"y":67,"w":400,"h":410,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"饼图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":5},"center":["50%","50%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}}],"key":"group","option":[]},{"id":"2js0ncv6kpc000","isGroup":true,"attr":{"w":426,"h":865,"x":874,"y":1153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"公司项目状态分布","image":""},"groupList":[{"id":"4d4pumofn5g000","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"公司项目状态分布","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"50qj95gt8fs000","sourceID":1044,"isGroup":false,"attr":{"x":10,"y":76,"w":400,"h":400,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"饼图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":5},"center":["50%","50%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"36zg35ree9q000","isGroup":false,"attr":{"x":8,"y":0,"w":180,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"公司项目状态分布","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司项目状态分布","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":186,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":188,"y":32,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1663,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"vwvqtuc6lyo00","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1663,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"5l0cps9x0z0000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品数据概览","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":161,"y":33,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":163,"y":35,"w":1105,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1045,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"sl2d95i1hz400","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":2203,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"产品需求完成率","image":""},"groupList":[{"id":"57zre1am96c000","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"产品需求完成率","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"42ae8w3dgeg000","sourceID":1046,"isGroup":false,"attr":{"x":30,"y":60,"w":530,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"15%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"item","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"579jc04cfps000","isGroup":false,"attr":{"x":10,"y":0,"w":170,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品需求完成率","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品需求完成率","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":175,"y":33,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":176,"y":35,"w":445,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"nr1mfqoyuwg00","isGroup":true,"attr":{"w":645,"h":500,"x":655,"y":2203,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"一级项目集需求完成率与Bug","image":""},"groupList":[{"id":"2ta7xcd152i000","isGroup":false,"attr":{"x":0,"y":0,"w":645,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"产品Bug修复率","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"4o7ep6z91ii000","sourceID":1047,"isGroup":false,"attr":{"x":30,"y":60,"w":540,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"15%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}%","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"4vcyxy305n6000","isGroup":false,"attr":{"x":12,"y":0,"w":160,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品Bug修复率","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品Bug修复率","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":171,"y":34,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":172,"y":36,"w":445,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"45ao1xz9kzu000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":2717,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"部门人员分布图","image":""},"groupList":[{"id":"1ncdmrlvzjy800","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"部门人员分布图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"v3d9spa59dc00","sourceID":1049,"isGroup":false,"attr":{"x":20,"y":50,"w":380,"h":426,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"15%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","handleIcon":"path:\\/\\/M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z","handleSize":0,"yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","borderCap":"round","backgroundColor":"#cfcfcf00","showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}},{"id":"wam6ydb8zqo00","isGroup":false,"attr":{"x":15,"y":0,"w":160,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"部门人员分布图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"部门人员分布图","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":176,"y":32,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":176,"y":34,"w":235,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"2dg0t90atgg000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":2717,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"公司角色分布图","image":""},"groupList":[{"id":"53ynqk2kzh8000","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"公司角色分布图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"1knkjcb65rwg00","isGroup":false,"attr":{"x":7,"y":0,"w":170,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"公司角色分布图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司角色分布图","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"mblj8ow100000","sourceID":1050,"isGroup":false,"attr":{"x":20,"y":60,"w":400,"h":420,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"需求完成率","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["40%","40%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":5},"center":["50%","45%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":168,"y":32,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":169,"y":34,"w":235,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImwage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"1j55da3c41vk00","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":2717,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"人员工龄分布图","image":""},"groupList":[{"id":"1xqnm37nva8w00","isGroup":false,"attr":{"x":0,"y":0,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"人员工龄分布图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"5ll028fasrw000","sourceID":1051,"isGroup":false,"attr":{"x":20,"y":50,"w":380,"h":426,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"20%","top":"20","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"4887ix47ule000","isGroup":false,"attr":{"x":7,"y":0,"w":170,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"人员工龄分布图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"人员工龄分布图","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":0,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3ajkrqyykr8000","isGroup":false,"attr":{"x":170,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"2z65lmxl328000","isGroup":false,"attr":{"x":171,"y":33,"w":235,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(2, 1, '公司年度汇总数据大屏', '从不同的年份了解公司汇总数据的情况', 'open', NULL, 'static/images/screen2.png', '{"editCanvasConfig":{"width":1300,"height":4259,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#001028","selectColor":true,"chartThemeColor":"dark","previewScaleType":"scrollY"},"componentList":[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":" 公司年度汇总数据大屏","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":0,"y":95,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","type":"year","filterCharts":[{"chart":1055,"field":"t1.`year`"},{"chart":1056,"field":"t1.`year`"},{"chart":1057,"field":"t1.`year`"},{"chart":1058,"field":"t1.`year`"},{"chart":1059,"field":"t1.`year`"},{"chart":1060,"field":"t1.`year`"},{"chart":1061,"field":"t1.`year`"},{"chart":1062,"field":"t1.`year`"},{"chart":1063,"field":"t1.`year`"},{"chart":1064,"field":"t1.`year`"},{"chart":1065,"field":"t1.`year`"},{"chart":1066,"field":"t1.`year`"},{"chart":1067,"field":"t1.`year`"},{"chart":1068,"field":"t1.`year`"},{"chart":1069,"field":"t1.`year`"},{"chart":1070,"field":"t1.`year`"},{"chart":1071,"field":"t1.`year`"},{"chart":1072,"field":"t1.`year`"},{"chart":1073,"field":"t1.`year`"},{"chart":1074,"field":"t1.`year`"},{"chart":1075,"field":"t1.`year`"},{"chart":1076,"field":"t1.`year`"},{"chart":1077,"field":"t1.`year`"},{"chart":1078,"field":"t1.`year`"},{"chart":1079,"field":"t1.`year`"},{"chart":1080,"field":"t1.`year`"},{"chart":1081,"field":"t1.`year`"},{"chart":1082,"field":"t1.`year`"},{"chart":1083,"field":"t1.`year`"}],"isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"选择","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"请选择","value":""},{"label":"河北","value":"18700"},{"label":"徐州","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":149,"w":750,"h":300,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":750,"h":120,"x":0,"y":153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司年度新增数据概览","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":32,"w":500,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":770,"y":149,"w":530,"h":300,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":820,"h":120,"x":770,"y":153,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司年度完成数据概览","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":220,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":220,"y":32,"w":290,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":25,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1055,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"一级项目集个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":145,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1056,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":265,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1057,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":385,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1058,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":505,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1059,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"计划个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":25,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1060,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":145,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1061,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":265,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1062,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"任务个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":385,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1063,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文档个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"文档个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":505,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1064,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"发布个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":250,"x":625,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":190,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1065,"isGroup":false,"attr":{"x":0,"y":60,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":78,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"用户个数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":705,"y":165,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"一级项目集个数:系统在某年创建的一级项目级个数;\\n产品个数:系统在某年创建的产品个数;\\n需求个数:系统在某年新增的Bug个数;\\n计划个数:系统在某年创建的计划个数;\\n项目个数:系统在某年创建的项目个数;\\n执行个数:系统在某年创建的执行个数;\\n任务个数:系统在某年创建的任务个数;\\n文档个数:系统在某年创建的文档个数;\\n发布个数:系统在某年发布的发布个数,这里使用的是实际发布日期;\\n用户个数:系统在某年添加的用户个数。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":800,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1066,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":920,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1067,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文档个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成执行数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":1040,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1068,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成发布数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成发布数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成发布数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":800,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1069,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成需求数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成需求数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":920,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1070,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"解决Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"解决Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"解决Bug数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":100,"x":1040,"y":339,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":80,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1071,"isGroup":false,"attr":{"x":0,"y":14,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成任务数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":38,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"完成任务数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成任务数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":100,"h":200,"x":1160,"y":229,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":190,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1072,"isGroup":false,"attr":{"x":0,"y":54,"w":100,"h":30,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"投入工时数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":18,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":78,"w":100,"h":49,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"投入工时数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"投入工时数","fontSize":9,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1260,"y":165,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"完成的项目个数=已关闭的项目个数;\\n完成执行数=已关闭的执行数;\\n完成发布数=全部发布数;\\n完成的需求数=关闭原因为已完成的需求个数;\\n修复的Bug数=Bug状态为已关闭且解决方案为已解决的Bug个数;\\n完成的任务数=任务状态为已完成+关闭原因为已完成的任务数。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":479,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":479,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目集年度新增数据汇总表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":1015,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1073,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1029,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1029,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目集年度完成数据概览","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":31,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":33,"w":1035,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1074,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1579,"w":640,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":640,"h":120,"x":0,"y":1579,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":17,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品年度新增数据汇总表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":244,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":32,"w":370,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1075,"isGroup":false,"attr":{"x":20,"y":57,"w":600,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":660,"y":1579,"w":640,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":640,"h":120,"x":660,"y":1579,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":17,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品年度完成数据汇总表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":244,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":32,"w":370,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":1076,"isGroup":false,"attr":{"x":20,"y":57,"w":600,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"需求年度新增和完成趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"需求年度新增和完成趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1077,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(月份)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求年度新增和完成趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求年度新增和完成趋势图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":32,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":34,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":660,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"BUG年度新增和解决趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"BUG年度新增和解决趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1078,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(月份)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":10,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"BUG年度新增和解决趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"BUG年度新增和解决趋势图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":269,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":270,"y":32,"w":340,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":2654,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"任务年度新增和完成趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"任务年度新增和完成趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1079,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon ","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(月份)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务年度新增和完成趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"任务年度新增和完成趋势图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":660,"y":2654,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目年度新增和完成趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目年度新增和完成趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1080,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(月份)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目年度新增和完成趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目年度新增和完成趋势图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":0,"y":3179,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"执行年度新增和完成趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"执行年度新增和完成趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1081,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(月份)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行年度新增和完成趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行年度新增和完成趋势图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":259,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":260,"y":32,"w":350,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":640,"h":500,"x":660,"y":3179,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"产品发布次数年度趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":640,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"产品发布次数年度趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1082,"isGroup":false,"attr":{"x":30,"y":60,"w":600,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(月份)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":230,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品发布次数年度趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品发布次数年度趋势图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":239,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":240,"y":32,"w":370,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":3709,"w":1300,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":1300,"h":500,"x":0,"y":3709,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"年度投入产出比","image":""},"option":[],"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":17,"y":0,"w":155,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"年度投入产出比","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":1083,"isGroup":false,"attr":{"x":30,"y":60,"w":1300,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":[{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"right","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"}],"grid":{"show":false,"left":"10%","top":"20","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","yAxisIndex":1,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"bar","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"bar","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":15,"y":0,"w":155,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"年度投入产出比","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"年度投入产出比","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":164,"y":30,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":165,"y":32,"w":1080,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"contain","borderRadius":0}}],"key":"group"},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1245,"y":3726,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"\\/static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"投入产出比=需求交付故事点数\\/工时消耗;\\n需求交付故事点数=关闭原因为已完成的需求的故事点数u003b\\n工时消耗=任务消耗的工时。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(3, 1, '年度总结大屏', '从年份、部门、个人的角度快速了解年度工作总结的情况', 'open', NULL, 'static/images/screen3.png', NULL, 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(4, 1, '年度排行榜大屏', '从项目集、项目、产品、个人的角度快速了解进度、投入、产出的排行榜', 'open', NULL, 'static/images/screen4.png', '{"editCanvasConfig":{"width":1300,"height":5200,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#001028","selectColor":true,"chartThemeColor":"dark","previewScaleType":"scrollY"},"componentList":[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"年度排行榜大屏","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":0,"y":80,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","type":"year","filterCharts":[{"chart":1085,"field":"t1.`year`"},{"chart":1086,"field":"t1.`year`"},{"chart":1087,"field":"t1.`year`"},{"chart":1088,"field":"t1.`year`"},{"chart":1089,"field":"t1.`year`"},{"chart":1090,"field":"t1.`year`"},{"chart":1091,"field":"t1.`year`"},{"chart":1092,"field":"t1.`year`"},{"chart":1093,"field":"t1.`year`"},{"chart":1094,"field":"t1.`year`"},{"chart":1096,"field":"t1.`year`"},{"chart":1097,"field":"t1.`year`"},{"chart":1098,"field":"t1.`year`"},{"chart":1099,"field":"t1.`year`"},{"chart":1100,"field":"t1.`year`"},{"chart":1101,"field":"t1.`year`"},{"chart":1102,"field":"t1.`year`"},{"chart":1103,"field":"t1.`year`"},{"chart":1104,"field":"t1.`year`"},{"chart":1105,"field":"t1.`year`"},{"chart":1106,"field":"t1.`year`"},{"chart":1107,"field":"t1.`year`"},{"chart":1108,"field":"t1.`year`"},{"chart":1109,"field":"t1.`year`"},{"chart":1110,"field":"t1.`year`"}],"isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"选择","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"请选择","value":""},{"label":"河北","value":"18700"},{"label":"徐州","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":100,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":33,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"装饰-06","category":"Decorates","categoryName":"装饰","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"项目集","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":200,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":200,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"预算投入榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":140,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"预算投入(万元)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1085,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":200,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":200,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"人员投入榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"人员投入(人)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1086,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":835,"y":220,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"某项目集某年的人员投入=某年内某项目集中进行过的项目,其团队成员加盟日期为某年的最后一天以及最后一天之前的成员人数之和。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":200,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":200,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工时消耗榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工时消耗(h)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1087,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1272,"y":220,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"某项目集年度工时消耗=某年某项目集中进行过的项目的累计工时","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":710,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":710,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"新增需求条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1088,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":710,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":710,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"新增需求规模榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求规模(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1089,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":710,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":710,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"新增Bug条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":208,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1090,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":1220,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":1220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":170,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1091,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":1220,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":1220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":" 完成需求规模榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求规模(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1092,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":1220,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":1220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"修复Bug条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":208,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1093,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1700,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":36,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"装饰-06","category":"Decorates","categoryName":"装饰","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"项目","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":1800,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":1800,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工期榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":170,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工期(天)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":95,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":96,"y":28,"w":290,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1094,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":395,"y":1825,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"未结束项目的工期=当前日期-实际开始日期;\\n已结束项目的工期=实际结束日期-实际开始日期。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":1800,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":1800,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工期偏差榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1096,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}%"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":835,"y":1825,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"已完成项目的工期偏差率=(实际工期-计划工期)\\/计划工期*100%;\\n已超期项目的工期偏差率=((当前日期-实际开始日期)-计划工期)\\/计划工期*100%。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":1800,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":1800,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"人员投入榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"人员投入(人)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1097,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":6,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":6,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1272,"y":1825,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"某项目某年的人员投入=某年进行过的项目,其团队成员加盟日期为某年的最后一天以及最后一天之前的成员人数之和。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":2310,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":2310,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工时消耗榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工时消耗(h)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1098,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":2310,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":2310,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1099,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":2310,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":2310,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求规模榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求规模(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1100,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":2790,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":36,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"装饰-06","category":"Decorates","categoryName":"装饰","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"产品","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":2890,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":500,"x":0,"y":2890,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"新增需求条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":250,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1101,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":655,"y":2890,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":580,"x":655,"y":2890,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求规模榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":230,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求规模(sp)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1102,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":3480,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":500,"x":0,"y":3480,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"新增Bug条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":250,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1103,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":655,"y":3480,"w":645,"h":580,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":600,"h":580,"x":655,"y":3480,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"修复Bug条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":250,"y":515,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":400,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1104,"isGroup":false,"attr":{"x":30,"y":40,"w":530,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":4040,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2nws38440fq000","isGroup":false,"attr":{"x":525,"y":36,"w":250,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Decorates06","chartConfig":{"key":"Decorates06","chartKey":"VDecorates06","conKey":"VCDecorates06","title":"装饰-06","category":"Decorates","categoryName":"装饰","package":"Decorates","chartFrame":"static","image":"decorates06.png"},"option":{"colors":["#1DC1F533","#1A77A5"],"dataset":"个人","textColor":"#b2d5e5","textSize":20}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":4140,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":4140,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"创建需求条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1105,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":4140,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":4140,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"创建用例条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"用例条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1106,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":4140,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":4140,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"创建Bug条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":177,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":178,"y":28,"w":208,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1107,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":4650,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":0,"y":4650,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"修复Bug条目榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":150,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug条目(个)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1108,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"confine":"true","trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":437,"y":4650,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":437,"y":4650,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工时消耗榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":136,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"工时消耗(h)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":135,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":136,"y":28,"w":250,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1109,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]},{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":874,"y":4650,"w":426,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"项目集需求完成率与Bug","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":426,"h":500,"x":874,"y":4650,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"项目集需求完成率与Bug","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"禅道操作次数榜","fontSize":16,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":153,"y":430,"w":187,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"操作次数(次)","fontSize":10,"fontColor":"#fafafb","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":175,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":176,"y":28,"w":210,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"none","borderRadius":0}},{"id":"obhxxjnin3400","sourceID":1110,"isGroup":false,"attr":{"x":30,"y":40,"w":380,"h":440,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"横向柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/bar_y-05067169.png"},"option":{"legend":{"show":false,"top":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0,"formatter":"{value}"},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}}},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":true,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":false,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"18%","top":"20","right":"12%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"bar","barMaxWidth":28,"label":{"show":true,"formatter":"{@[1]}","position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataZoom":[{"type":"inside","startValue":0,"endValue":5,"minValueSpan":10,"maxValueSpan":10,"yAxisIndex":[0],"zoomOnMouseWheel":false,"moveOnMouseWheel":true,"moveOnMouseMove":true},{"type":"slider","realtime":true,"startValue":0,"endValue":5,"zoomLock":true,"brushSelect":false,"width":5,"height":"80%","yAxisIndex":[0],"fillerColor":"#33aaff","borderColor":"#33aaff00","backgroundColor":"#cfcfcf00","handleSize":0,"showDataShadow":false,"showDetail":false,"top":"10%","right":0}]}}],"key":"group","option":[]}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(5, 1, '迭代燃尽图大屏', '快速查看公司全部未关闭迭代的燃尽图', 'open', NULL, 'static/images/screen5.png', NULL, 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(6, 2, '年度完成项目过程数据大屏', '了解已完成项目的生产效率', 'open', NULL, 'static/images/screen1.png', '{"editCanvasConfig":{"projectName":"2","width":1366,"height":"3600","size":0,"lockScale":false,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","selectColor":true,"chartThemeColor":"3wvajowr6l8000","chartThemeSetting":{},"previewScaleType":"scrollY","globalFilter":[],"chartCustomThemeColorInfo":[]},"componentList":[{"id":"owvo5wyad9c00","isGroup":false,"attr":{"x":1142,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"3as8najk6hg00","isGroup":false,"attr":{"x":1142,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5d6bo6dfzf4000","isGroup":false,"attr":{"x":962,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"26hlsg2c15vk00","isGroup":false,"attr":{"x":962,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5niqhm817gw000","isGroup":false,"attr":{"x":782,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5rjfkvfw4i8000","isGroup":false,"attr":{"x":782,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"ffvurro4h4w00","isGroup":false,"attr":{"x":603,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"51idc736a5s000","isGroup":false,"attr":{"x":602,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"rdnf6i797pc00","isGroup":false,"attr":{"x":421,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089ff12"}},{"id":"2klk0oo8kj8000","isGroup":false,"attr":{"x":421,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"48zdrnjvl0c000","isGroup":false,"attr":{"x":242,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"4q65e0gqmlg000","isGroup":false,"attr":{"x":61,"y":320,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"17bvssn39zuk00","isGroup":false,"attr":{"x":242,"y":208,"w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5irrkthvdhc000","isGroup":false,"attr":{"x":61,"y":"208","w":156,"h":88,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"vgfp0juvuf400","isGroup":false,"attr":{"x":416,"y":339,"w":161,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"延期完成执行数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#E1E5EA00"}},{"id":"2uqxi3e1y3u000","isGroup":false,"attr":{"x":424,"y":303,"w":144,"h":81,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-延期完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"1326","sourceID":"10009"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"1326","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10009","title":"延期完成执行数","type":"card"},{"id":"5nyrxc5w010000","isGroup":false,"attr":{"x":18,"y":726,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"2uws0ytah1s000","isGroup":false,"attr":{"x":693,"y":726,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3mnttqgyc4o000","isGroup":false,"attr":{"x":253,"y":46,"w":860,"h":32,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"4nir9d6n138000","isGroup":false,"attr":{"x":20,"y":106,"w":1326,"h":600,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3sdxo2ffqi0000","isGroup":false,"attr":{"x":50,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":" 完成项目数 ","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":37,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4nyo2dxv5yi000","isGroup":false,"attr":{"x":50,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"91","sourceID":"10000"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"91","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10000","title":"完成项目数","type":"card"},{"id":"2ev27p00xbpc00","isGroup":false,"attr":{"x":230,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"按时完成项目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"lzaj0yorolc00","isGroup":false,"attr":{"x":410,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"延期完成项目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4jogna07yk8000","isGroup":false,"attr":{"x":771,"y":229,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求规模数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"15j805dkq4ik00","isGroup":false,"attr":{"x":951,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成发布数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":36,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4q15hg06540000","isGroup":false,"attr":{"x":1131,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"解决bug数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":36,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4l83s1sqlek000","isGroup":false,"attr":{"x":591,"y":228,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成需求条目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"5f6dr2y034w000","isGroup":false,"attr":{"x":231,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-按时完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"3","sourceID":"10001"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"3","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10001","title":"按时完成项目数","type":"card"},{"id":"1gw11ho3ev4w00","isGroup":false,"attr":{"x":410,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-延期完成项目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"88","sourceID":"10002"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"88","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10002","title":"延期完成项目数","type":"card"},{"id":"4ljohxdlzfs000","isGroup":false,"attr":{"x":591,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成需求条目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"17954","sourceID":"10003"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"17954","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10003","title":"完成需求条目数","type":"card"},{"id":"2dsxvobrqdes00","isGroup":false,"attr":{"x":771,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成需求规模数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"57370","sourceID":"10004"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"57370","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10004","title":"完成需求规模数","type":"card"},{"id":"25j01jdzmrts00","isGroup":false,"attr":{"x":951,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成发布数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"602","sourceID":"10005"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"602","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10005","title":"完成发布数","type":"card"},{"id":"poh8lbo2qc000","isGroup":false,"attr":{"x":1131,"y":194,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-解决bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"13886","sourceID":"10006"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"13886","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10006","title":"解决bug数","type":"card"},{"id":"4nkffa1hzc0000","isGroup":false,"attr":{"x":50,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成执行数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":34,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"43q8d7h9nlk000","isGroup":false,"attr":{"x":50,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"1567","sourceID":"10007"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"1567","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10007","title":"完成执行数","type":"card"},{"id":"5jexl1ycymg000","isGroup":false,"attr":{"x":230,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"按时完成执行数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"3362s9jdoko000","isGroup":false,"attr":{"x":605,"y":338,"w":166,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成任务条目数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":20,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"5l9fr10ck94000","isGroup":false,"attr":{"x":772,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成任务预计工时数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":8,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"1zxjse36amv400","isGroup":false,"attr":{"x":952,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成任务消耗工时数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":8,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"29iw7qg73bbw00","isGroup":false,"attr":{"x":1131,"y":338,"w":180,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"投入的总人天","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":28,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"1r8qfow1e45c00","isGroup":false,"attr":{"x":230,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-按时完成执行数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"241","sourceID":"10008"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"241","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10008","title":"按时完成执行数","type":"card"},{"id":"2bnzdjpcesg000","isGroup":false,"attr":{"x":591,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成任务条目数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"38661","sourceID":"10010"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"38661","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10010","title":"完成任务条目数","type":"card"},{"id":"5rwyxojtmnw000","isGroup":false,"attr":{"x":772,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成任务预计工时数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"109341","sourceID":"10011"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"109341","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10011","title":"完成任务预计工时数","type":"card"},{"id":"1ook02lf4ns000","isGroup":false,"attr":{"x":951,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-完成任务消耗工时数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"101601","sourceID":"10012"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"101601","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10012","title":"完成任务消耗工时数","type":"card"},{"id":"3c1qy9alml2000","isGroup":false,"attr":{"x":1131,"y":304,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目过程-投入的总人天","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"12339","sourceID":"10013"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"12339","fontSize":18,"fontColor":"#ffffff","paddingX":57,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10013","title":"投入的总人天","type":"card"},{"id":"4v411wy0jam000","isGroup":false,"attr":{"x":68,"y":439,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCVWaterPolo","title":"项目过程-项目按期完成率","category":"WaterPolo","categoryName":"水球图","package":"Charts","chartFrame":"echarts","image":"water_WaterPolo.png","sourceID":"10014","dataset":0},"option":{"dataset":0.66669999999999995932142837773426435887813568115234375,"series":[{"type":"liquidFill","shape":"circle","radius":"80%","data":[0.67000000000000003996802888650563545525074005126953125],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10014","title":"项目过程-项目按期完成率","type":"WaterPolo"},{"id":"455e6v96m36000","isGroup":false,"attr":{"x":347,"y":440,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"项目过程-执行按期完成率","category":"WaterPolo","categoryName":"水球图","package":"Charts","chartFrame":"echarts","image":"water_WaterPolo.png","sourceID":"10015","dataset":0},"option":{"dataset":0.66669999999999995932142837773426435887813568115234375,"series":[{"type":"liquidFill","shape":"circle","radius":"80%","data":[0.67000000000000003996802888650563545525074005126953125],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10015","title":"项目过程-执行按期完成率","type":"water_WaterPolo.png"},{"id":"1357hi74tghs00","isGroup":false,"attr":{"x":680,"y":439,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"项目过程-项目延期率","category":"WaterPolo","categoryName":"水球图","package":"Charts","chartFrame":"echarts","image":"water_WaterPolo.png","sourceID":"10016","dataset":0},"option":{"dataset":0.66669999999999995932142837773426435887813568115234375,"series":[{"type":"liquidFill","shape":"circle","radius":"80%","data":[0.67000000000000003996802888650563545525074005126953125],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10016","title":"项目过程-项目延期率","type":"WaterPolo"},{"id":"5czvzl4a3qs000","isGroup":false,"attr":{"x":959,"y":439,"w":332,"h":200,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"项目过程-执行延期率","category":"WaterPolo","categoryName":"水球图","package":"Charts","chartFrame":"echarts","image":"water_WaterPolo.png","sourceID":"10017","dataset":0},"option":{"dataset":0.66669999999999995932142837773426435887813568115234375,"series":[{"type":"liquidFill","shape":"circle","radius":"80%","data":[0.67000000000000003996802888650563545525074005126953125],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":32,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10017","title":"项目过程-执行延期率","type":"WaterPolo"},{"id":"3rrf13x8aig000","isGroup":false,"attr":{"x":68,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目按期完成率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2fj8shp4iww000","isGroup":false,"attr":{"x":349,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行按期完成率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"7c0kw504pfo00","isGroup":false,"attr":{"x":680,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目延期率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3tdqudx15lm000","isGroup":false,"attr":{"x":959,"y":626,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行延期率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"15v07f9mllz400","isGroup":false,"attr":{"x":"27","y":120,"w":242,"h":"58","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"年度完成项目数据盘点","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5rscm33a7a0000","isGroup":false,"attr":{"x":916,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":false}},{"id":"48vgwd3xywc000","isGroup":false,"attr":{"x":2,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":true}},{"id":"34gsoca72ak000","isGroup":false,"attr":{"x":450,"y":55,"w":466,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates05","chartConfig":{"key":"Decorates05","chartKey":"VDecorates05","conKey":"VCDecorates05","title":"装饰-05","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates05.png","chartFrame":"static"},"option":{"colors":["#00c2ff","#00c2ff4d"],"dur":3}},{"id":"5emz0hdi03k000","isGroup":false,"attr":{"x":1,"y":-2,"w":1365,"h":48,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"afw1xcxn3ug00","isGroup":false,"attr":{"x":433,"y":7,"w":500,"h":64,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"年度完成项目过程数据大屏","fontSize":28,"fontColor":"#b2d5e5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2v5j91if94k000","isGroup":false,"attr":{"x":18,"y":1236,"w":1326,"h":528,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3h6cqs958r6000","isGroup":false,"attr":{"x":"272","y":"1240","w":"1040","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4p2d6bkzx2m000","isGroup":false,"attr":{"x":"40","y":"1240","w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目工期透视表","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"53verjpnwh8000","isGroup":false,"attr":{"x":22,"y":2347,"w":653,"h":619,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5rg2qtyfzno000","isGroup":false,"attr":{"x":691,"y":2347,"w":653,"h":617,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"4gf68m6chq4000","isGroup":false,"attr":{"x":20,"y":2991,"w":1326,"h":580,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"1t16zb563uzk00","isGroup":false,"attr":{"x":53,"y":1312,"w":1263,"h":420,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TableMergeCell","chartConfig":{"key":"TableMergeCell","chartKey":"VTableMergeCell","conKey":"VCTableMergeCell","title":"完成项目工期透视表","category":"Tables","categoryName":"列表","package":"Tables","chartFrame":"common","image":"table_scrollboard.png","sourceID":"1000"},"option":{"dataset":[],"header":[],"align":["center","center","center","center","center","center","center","center","center","center"],"columnWidth":[],"rowspan":[],"colspan":[],"evenRowBGC":"#FFFFFF00","oddRowBGC":"#1089FF1A","headerBGC":"#4498EC85"},"sourceID":"1000","title":"完成项目工期透视表","type":"table"},{"id":"12km9ka7t40g00","isGroup":false,"attr":{"x":18,"y":1788,"w":1326,"h":528,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"4wxuogwx6he000","isGroup":false,"attr":{"x":236,"y":726,"w":242,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目完成分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5n8bpai3kcw000","isGroup":false,"attr":{"x":"60","y":"2440","w":"580","h":"500","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"项目过程-完成项目工期偏差条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10018"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"项目过程-完成项目工期偏差条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":[],"series":[{"type":"bar","label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10018","title":"完成项目工期偏差条形图","type":"cluBarY"},{"id":"5q7zvaotgyo000","isGroup":false,"attr":{"x":724,"y":"2440","w":"580","h":"500","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"项目过程-完成项目工期偏差条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10022"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"项目过程-完成项目工期偏差条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":[],"series":[{"type":"bar","label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10022","title":"完成项目工期偏差条形图","type":"cluBarY"},{"id":"37kkzy05o6u000","isGroup":false,"attr":{"x":"48","y":"3100","w":1265,"h":"420","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarCommon","chartConfig":{"key":"BarCommon","chartKey":"VBarCommon","conKey":"VCBarCommon","title":"项目过程-单位工时交付需求规模数对比图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_x.png","sourceID":"10019"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"项目过程-单位工时交付需求规模数对比图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":[],"series":[{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":2}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10019","title":"单位工时交付需求规模数对比图","type":"cluBarX"},{"id":"58diyfly21g000","isGroup":false,"attr":{"x":900,"y":726,"w":242,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"执行完成分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4y4a1x55hh4000","isGroup":false,"attr":{"x":"60","y":"734","w":"182","h":"40","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5txcqlq213g000","isGroup":false,"attr":{"x":"460","y":"734","w":"182","h":"40","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5oxxiekui1c000","isGroup":false,"attr":{"x":"724","y":"734","w":"182","h":"33","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"3u3w3sejwiu000","isGroup":false,"attr":{"x":1134,"y":"734","w":182,"h":"40","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"579d65hwr6c00","isGroup":false,"attr":{"x":"64","y":"790","w":"560","h":400,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"项目过程-项目完成分布图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10020"},"option":{"legend":{"show":true,"top":30,"textStyle":{"color":"#B9B8CE"},"left":"center"},"title":{"text":"项目过程-项目完成分布图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"grid":{"top":70},"dataset":[],"series":[{"type":"pie","radius":"70%","center":["50%","60%"],"label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"roseType":false}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10020","title":"项目完成分布图","type":"pie"},{"id":"1ei55qri4gu800","isGroup":false,"attr":{"x":"736","y":"790","w":"560","h":"400","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"项目过程-执行完成分布图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10021"},"option":{"legend":{"show":true,"top":30,"textStyle":{"color":"#B9B8CE"},"left":"center"},"title":{"text":"项目过程-执行完成分布图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"grid":{"top":70},"dataset":[],"series":[{"type":"pie","radius":"70%","center":["50%","60%"],"label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"roseType":false}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10021","title":"执行完成分布图","type":"pie"},{"id":"2flxymehju8000","isGroup":false,"attr":{"x":"272","y":"1794","w":"1036","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":277,"y":133,"offsetX":0,"offsetY":0,"zIndex":-1,"lockScale":false},"preview":{"overFlowHidden":false},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"u6807u9898","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"u9009u62e9","category":"Mores","categoryName":"u66f4u591a","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"2023","value":"2023"},{"label":2022,"value":2022},{"label":2021,"value":2021},{"label":2020,"value":2020},{"label":2019,"value":2019},{"label":2018,"value":2018},{"label":2017,"value":2017},{"label":2016,"value":2016},{"label":2015,"value":2015},{"label":2014,"value":2014},{"label":2013,"value":2013},{"label":2012,"value":2012},{"label":2011,"value":2011},{"label":2010,"value":2010},{"label":2009,"value":2009}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20},"type":"year","filterCharts":[{"chart":10000,"field":"t1.`year`"},{"chart":10001,"field":"t1.`year`"},{"chart":10002,"field":"t1.`year`"},{"chart":10003,"field":"t1.`year`"},{"chart":10004,"field":"t1.`year`"},{"chart":10005,"field":"t1.`year`"},{"chart":10006,"field":"t1.`year`"},{"chart":10007,"field":"t1.`year`"},{"chart":10008,"field":"t1.`year`"},{"chart":10009,"field":"t1.`year`"},{"chart":10010,"field":"t1.`year`"},{"chart":10011,"field":"t1.`year`"},{"chart":10012,"field":"t1.`year`"},{"chart":10013,"field":"t1.`year`"},{"chart":10014,"field":"t1.`year`"},{"chart":10015,"field":"t1.`year`"},{"chart":10016,"field":"t1.`year`"},{"chart":10017,"field":"t1.`year`"}]}],"key":"group","option":[]},{"id":"12pr64gobork00","isGroup":false,"attr":{"x":424,"y":120,"w":882,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"436oj64jvca000","isGroup":false,"attr":{"x":"32","y":2362,"w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目工期偏差","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1ahevk1yw0tc00","isGroup":false,"attr":{"x":"268","y":"2362","w":"376","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4kcpsj6i5q8000","isGroup":false,"attr":{"x":698,"y":"2362","w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目工时偏差","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5dijh3989bg000","isGroup":false,"attr":{"x":"940","y":"2362","w":"376","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"17o4abp7p68w00","isGroup":false,"attr":{"x":"32","y":3014,"w":"460","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目单位工时交付需求规模数对比","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4f1dpys6drq000","isGroup":false,"attr":{"x":"500","y":"3014","w":"820","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png"},"option":{"colors":["#ffffff4d","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4dhr11orgts000","isGroup":false,"attr":{"x":"40","y":"1794","w":"240","h":"60","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目工时透视表","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3j6atjdm7co000","isGroup":false,"attr":{"x":50,"y":1861,"w":1257,"h":428,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TableMergeCell","chartConfig":{"key":"TableMergeCell","chartKey":"VTableMergeCell","conKey":"VCTableMergeCell","title":"完成项目工时透视表","category":"Tables","categoryName":"列表","package":"Tables","chartFrame":"common","image":"table_scrollboard.png","sourceID":"1001"},"option":{"dataset":[],"header":[],"align":["center","center","center","center","center","center","center","center","center","center"],"columnWidth":[],"rowspan":[],"colspan":[],"oddRowBGC":"#1089FF1A","headerBGC":"#4498EC85","evenRowBGC":"#00000000"},"sourceID":"1001","title":"完成项目工时透视表","type":"table"}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(7, 2, '年度进行中项目过程跟踪大屏', '从宏观的角度跟踪年度进行中项目的过程数据情况', 'open', NULL, 'static/images/screen6.png', '{"editCanvasConfig":{"width":1300,"height":2704,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#001028","selectColor":true,"chartThemeColor":"dark","previewScaleType":"scrollY"},"componentList":[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":" 年度进行中项目过程跟踪大屏","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":171,"w":1300,"h":385,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":175,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目进度概览","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":145,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":165,"y":28,"w":1097,"h":10,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"fill","borderRadius":0}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":25,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10101,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"进行中项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":206,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10103,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"产品个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"进展顺利项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":387,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10105,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"进度滞后项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":568,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10107,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"已延期项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":749,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10109,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":42,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"未完成","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":58,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求条目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":930,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10111,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":42,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"未完成","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":58,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"计划个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"需求规模数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":25,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10102,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"项目个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"进行中迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":206,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10104,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"执行个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"进展顺利迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":387,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10106,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"任务个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"进度滞后迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":568,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10108,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文档个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"已延期迭代数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":749,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10110,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"未完成任务数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":169,"h":159,"x":930,"y":390,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":169,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10112,"isGroup":false,"attr":{"x":0,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"发布个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"剩余工时数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":159,"h":370,"x":1111,"y":250,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":159,"h":267,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":10113,"isGroup":false,"attr":{"x":0,"y":80,"w":159,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":25,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":130,"w":159,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"投入的","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":0,"y":150,"w":159,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"用户个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"总人次","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1260,"y":186,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"顺利:进度百分比 ≥ (当前日期-计划开始日期)\\/(计划工期)或者 长期项目\\n滞后:进度百分比 <(当前日期-计划开始日期)\\/(计划工期)\\n延期:计划结束日期 < 当前日期","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":647,"h":500,"x":0,"y":562,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"需求年度新增和完成趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":647,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"需求年度新增和完成趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"4ocyn7hip9k000","sourceID":10114,"isGroup":false,"attr":{"x":10,"y":50,"w":600,"h":410,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"饼图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"top":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":"10%"},"center":["50%","55%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":15,"y":22,"w":600,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"需求年度新增和完成趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目进度分布图","fontSize":14,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":647,"h":500,"x":653,"y":562,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"BUG年度新增和解决趋势图","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":647,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"BUG年度新增和解决趋势图","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"4ocyn7hip9k000","sourceID":10115,"isGroup":false,"attr":{"x":10,"y":50,"w":600,"h":410,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"饼图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/pie-9620f191.png"},"option":{"legend":{"show":true,"top":"5%","textStyle":{"color":"#B9B8CE"}},"type":"nomal","tooltip":{"show":true,"trigger":"item"},"dataset":{"dimensions":["product","data1"],"source":[{"product":"Mon","data1":120},{"product":"Tue","data1":200},{"product":"Wed","data1":150},{"product":"Thu","data1":80},{"product":"Fri","data1":70},{"product":"Sat","data1":110},{"product":"Sun","data1":130}]},"series":[{"type":"pie","radius":["30%","30%"],"label":{"show":true,"width":120,"formatter":"{b}\\n{d}%","lineHeight":20,"color":"#ffffff","position":"outside","alignTo":"edge","margin":"10%"},"center":["50%","55%"],"roseType":false,"emphasis":{"itemStyle":{"shadowBlur":20,"shadowOffsetX":2,"shadowColor":"rgba(0, 0, 0, 0)"}}}]}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":15,"y":22,"w":600,"h":50,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"BUG年度新增和解决趋势图","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"迭代进度分布图","fontSize":14,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1068,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1068,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目进度透视图","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":167,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":187,"y":28,"w":1083,"h":10,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10116,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1597,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1597,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"迭代进度透视表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":165,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":185,"y":28,"w":1090,"h":10,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10117,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":2129,"w":647,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":647,"h":120,"x":0,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目剩余工作量透视表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":28,"w":380,"h":8,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10118,"isGroup":false,"attr":{"x":17,"y":57,"w":610,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":["120","100","90","130","80","90"],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":653,"y":2129,"w":647,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":647,"h":120,"x":653,"y":2129,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"迭代剩余工作量透视表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":225,"y":26,"w":14,"h":11,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_left.png","borderRadius":0}},{"id":"3xjom2cw2b2000","isGroup":false,"attr":{"x":245,"y":28,"w":380,"h":8,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/line_right.png","fit":"fill","borderRadius":0}},{"id":"1zhfrmecpnxc00","sourceID":10119,"isGroup":false,"attr":{"x":17,"y":57,"w":610,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":["140","120","90","130","80","90"],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(8, 3, '公司质量数据盘点大屏', '关于公司质量数据的大屏,整体把握公司生产质量', 'open', NULL, 'static/images/screen6.png', '{"editCanvasConfig":{"projectName":"2","width":1366,"height":3740,"size":0,"lockScale":false,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#0B0F18FF","selectColor":true,"chartThemeColor":"3wvajowr6l8000","chartThemeSetting":{},"previewScaleType":"scrollY","globalFilter":[],"chartCustomThemeColorInfo":[]},"componentList":[{"id":"55ojhdng6xc00","isGroup":false,"attr":{"x":1128,"y":"202","w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"3frl1vyqmta000","isGroup":false,"attr":{"x":932,"y":"202","w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"2ags77k2ww7w00","isGroup":false,"attr":{"x":734,"y":"202","w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"50nt2l84n38000","isGroup":false,"attr":{"x":516,"y":202,"w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"5mc1lzqkgtg00","isGroup":false,"attr":{"x":284,"y":202,"w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"1i58n5kxophc00","isGroup":false,"attr":{"x":60,"y":202,"w":180,"h":102,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"边框-03","category":"Borders","categoryName":"边框","package":"Decorates","image":"border03.png","chartFrame":"static"},"option":{"colors":["#00AAFF82","#2CF7FE00"],"backgroundColor":"#1089FF12"}},{"id":"3mnttqgyc4o000","isGroup":false,"attr":{"x":253,"y":46,"w":860,"h":32,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"4nir9d6n138000","isGroup":false,"attr":{"x":20,"y":106,"w":1326,"h":500,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3sdxo2ffqi0000","isGroup":false,"attr":{"x":50,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"研发完成需求数 ","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":34,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":4,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4nyo2dxv5yi000","isGroup":false,"attr":{"x":60,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"研发完成需求数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"19033","sourceID":"10201"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"19033","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10201","title":"研发完成需求数","type":"card"},{"id":"2ev27p00xbpc00","isGroup":false,"attr":{"x":274,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"研发完成需求规模数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":12,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"lzaj0yorolc00","isGroup":false,"attr":{"x":506,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"研发完成需求用例数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":12,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"4jogna07yk8000","isGroup":false,"attr":{"x":922,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"有效Bug数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":40,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"15j805dkq4ik00","isGroup":false,"attr":{"x":1118,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"修复Bug数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":48,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"ltddmmh5kkw00","isGroup":false,"attr":{"x":-1232,"y":613,"w":153,"h":84,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目数","fontSize":12,"fontColor":"#ffffff","paddingX":20,"paddingY":20,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF12"}},{"id":"6p4ckgbvmx400","isGroup":false,"attr":{"x":-1232,"y":613,"w":153,"h":84,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目数","fontSize":12,"fontColor":"#ffffff","paddingX":20,"paddingY":20,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF12"}},{"id":"5nkv71g8l9o000","isGroup":false,"attr":{"x":-1232,"y":613,"w":153,"h":84,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"完成项目数","fontSize":12,"fontColor":"#ffffff","paddingX":20,"paddingY":20,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF12"}},{"id":"4l83s1sqlek000","isGroup":false,"attr":{"x":724,"y":226,"w":200,"h":100,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug总数","fontSize":12,"fontColor":"#B2D5E5FF","paddingX":54,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"}},{"id":"5f6dr2y034w000","isGroup":false,"attr":{"x":284,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"研发完成需求规模数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"62482","sourceID":"10202"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"62482","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10202","title":"研发完成需求规模数","type":"card"},{"id":"1gw11ho3ev4w00","isGroup":false,"attr":{"x":516,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"研发完成需求用例数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"2208","sourceID":"10203"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"2208","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10203","title":"研发完成需求用例数","type":"card"},{"id":"4ljohxdlzfs000","isGroup":false,"attr":{"x":734,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"Bug总数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"19799","sourceID":"10204"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"19799","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10204","title":"Bug总数","type":"card"},{"id":"2dsxvobrqdes00","isGroup":false,"attr":{"x":931,"y":191,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"有效Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"17341","sourceID":"10205"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"17341","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10205","title":"有效Bug数","type":"card"},{"id":"25j01jdzmrts00","isGroup":false,"attr":{"x":1128,"y":192,"w":180,"h":80,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"修复Bug数","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common","dataset":"13886","sourceID":"10206"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"13886","fontSize":18,"fontColor":"#ffffff","paddingX":56,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":0,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#1089FF00"},"sourceID":"10206","title":"修复Bug数","type":"card"},{"id":"3rrf13x8aig000","isGroup":false,"attr":{"x":58,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"研发完成需求用例覆盖率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2fj8shp4iww000","isGroup":false,"attr":{"x":352,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"研发完成需求用例密度","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"7c0kw504pfo00","isGroup":false,"attr":{"x":660,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug密度","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3tdqudx15lm000","isGroup":false,"attr":{"x":972,"y":528,"w":332,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug修复率","fontSize":16,"fontColor":"#ffffff","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"15v07f9mllz400","isGroup":false,"attr":{"x":"23","y":120,"w":201,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"质量数据盘点","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"12pr64gobork00","isGroup":false,"attr":{"x":"232","y":120,"w":1075,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5rscm33a7a0000","isGroup":false,"attr":{"x":916,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":false}},{"id":"48vgwd3xywc000","isGroup":false,"attr":{"x":2,"y":8,"w":450,"h":75,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates04","chartConfig":{"key":"Decorates04","chartKey":"VDecorates04","conKey":"VCDecorates04","title":"装饰-04","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates04.png","chartFrame":"static"},"option":{"colors":["#1dc1f5","#1dc1f5"],"reverse":true}},{"id":"34gsoca72ak000","isGroup":false,"attr":{"x":450,"y":55,"w":466,"h":50,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates05","chartConfig":{"key":"Decorates05","chartKey":"VDecorates05","conKey":"VCDecorates05","title":"装饰-05","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates05.png","chartFrame":"static"},"option":{"colors":["#00c2ff","#00c2ff4d"],"dur":3}},{"id":"5emz0hdi03k000","isGroup":false,"attr":{"x":1,"y":1,"w":1365,"h":45,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#1089FF42","#1089FF00"],"backgroundColor":"#00000000"}},{"id":"afw1xcxn3ug00","isGroup":false,"attr":{"x":456,"y":4,"w":454,"h":64,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司质量数据盘点大屏","fontSize":28,"fontColor":"#b2d5e5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"58c9hdcwi5s000","isGroup":false,"attr":{"x":660,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"Bug密度","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.04","sourceID":"10209"},"option":{"dataset":"0.04","title":{"show":false,"titleShow":false},"series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.040000000000000000832667268468867405317723751068115234375],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":24,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10209","title":"Bug密度","type":"waterpolo"},{"id":"172yoxa90vb400","isGroup":false,"attr":{"x":972,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"Bug修复率","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.10","sourceID":"10210"},"option":{"dataset":"0.10","title":{"show":false,"titleShow":false},"series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.1000000000000000055511151231257827021181583404541015625],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":24,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10210","title":"Bug修复率","type":"waterpolo"},{"id":"3w4daidjqdi000","isGroup":false,"attr":{"x":58,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"研发完成需求用例覆盖率","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.309625","sourceID":"10207"},"option":{"dataset":"0.309625","title":{"show":false,"titleShow":false},"series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.309999999999999997779553950749686919152736663818359375],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":24,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10207","title":"研发完成需求用例覆盖率","type":"waterpolo"},{"id":"4bn4v0qaocw000","isGroup":false,"attr":{"x":352,"y":348,"w":332,"h":180,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"WaterPolo","chartConfig":{"key":"WaterPolo","chartKey":"VWaterPolo","conKey":"VCWaterPolo","title":"研发完成需求用例密度","category":"Mores","categoryName":"更多","package":"Charts","chartFrame":"common","image":"water_WaterPolo.png","dataset":"0.7013","sourceID":"10208"},"option":{"dataset":"0.7013","title":{"show":false,"titleShow":false},"series":[{"type":"liquidFill","shape":"circle","radius":"90%","data":[0.6999999999999999555910790149937383830547332763671875],"center":["50%","50%"],"color":[{"type":"linear","x":0,"y":0,"x2":0,"y2":1,"colorStops":[{"offset":0,"color":"#4992ff"},{"offset":1,"color":"#7cffb2"}],"globalCoord":false}],"backgroundStyle":{"borderWidth":1,"color":"rgba(68, 181, 226, 0.3)"},"label":{"normal":{"textStyle":{"fontSize":24,"color":"#fff"}}},"outline":{"show":false,"borderDistance":10,"itemStyle":{"borderWidth":2,"borderColor":"#112165"}}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10208","title":"研发完成需求用例密度","type":"waterpolo"},{"id":"27f0de7xfqfw00","isGroup":false,"attr":{"x":510,"y":1646,"w":833,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"kp909j6ffg000","isGroup":false,"attr":{"x":18,"y":1645,"w":477,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3vsciuh0hrs000","isGroup":false,"attr":{"x":"154","y":"1648","w":200,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug类型分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2mqp7xv959400","isGroup":false,"attr":{"x":"354","y":"1648","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4n4yq7lcev4000","isGroup":false,"attr":{"x":"32","y":"1648","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"1d271h0v8mqo00","isGroup":false,"attr":{"x":"782","y":"1648","w":280,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug严重程度堆积图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"5mrgc6eqt90000","isGroup":false,"attr":{"x":1057,"y":"1648","w":260,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"254g36lcv2io00","isGroup":false,"attr":{"x":539,"y":"1648","w":254,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"5ip3xc3pes0000","isGroup":false,"attr":{"x":511,"y":2156,"w":835,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"p5v6om0y7gg00","isGroup":false,"attr":{"x":20,"y":2156,"w":472,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"ktbwgyibuz400","isGroup":false,"attr":{"x":"136","y":"2160","w":240,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug解决方案分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"517812ddp18000","isGroup":false,"attr":{"x":"374","y":"2160","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2ubeu8arz66000","isGroup":false,"attr":{"x":"40","y":"2160","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"dwud1obtioo00","isGroup":false,"attr":{"x":"778","y":"2160","w":280,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug密度年度趋势图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2zef39rtski000","isGroup":false,"attr":{"x":1048,"y":"2160","w":266,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"44fwuqancr0000","isGroup":false,"attr":{"x":533,"y":"2160","w":260,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2uws0ytah1s000","isGroup":false,"attr":{"x":512,"y":626,"w":834,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5nyrxc5w010000","isGroup":false,"attr":{"x":20,"y":626,"w":475,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5jlquwudqjc000","isGroup":false,"attr":{"x":"154","y":"632","w":200,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug状态分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"gpiyfioye2800","isGroup":false,"attr":{"x":"354","y":"632","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"54c0xx57r24000","isGroup":false,"attr":{"x":"32","y":"632","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2sphsycadhc000","isGroup":false,"attr":{"x":"664","y":"632","w":512,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug总数、有效Bug数与修复Bug数近30天统计图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1k6hl6r7tygw00","isGroup":false,"attr":{"x":1188,"y":"632","w":"120","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4hnhyvnfq5g000","isGroup":false,"attr":{"x":536,"y":"632","w":120,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"1jeaitz0lrr400","isGroup":false,"attr":{"x":512,"y":1136,"w":834,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"1hwn0jcj6uio00","isGroup":false,"attr":{"x":20,"y":1136,"w":475,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"pw93bwp425c00","isGroup":false,"attr":{"x":"136","y":"1140","w":240,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"Bug严重程度分布图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4zzvvpybfdc000","isGroup":false,"attr":{"x":"374","y":"1140","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"2my1y33oe22000","isGroup":false,"attr":{"x":40,"y":"1140","w":"102","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"53axbaefjh8000","isGroup":false,"attr":{"x":"784","y":"1140","w":280,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"有效Bug率年度趋势图","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3dn99i3ync4000","isGroup":false,"attr":{"x":1062,"y":"1140","w":"260","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4nwwxcg1bt4000","isGroup":false,"attr":{"x":533,"y":"1140","w":260,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"4ogg3298z1q000","isGroup":false,"attr":{"x":"528","y":"708","w":798,"h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarCommon","chartConfig":{"key":"BarCommon","chartKey":"VBarCommon","conKey":"VCBarCommon","title":"Bug总数、有效Bug与解决Bug数近30天统计柱形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_x.png","sourceID":"10211"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"Bug总数、有效Bug与解决Bug数近30天统计柱形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":[],"series":[{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":2}},{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":2}},{"type":"bar","barWidth":15,"label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":2}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10211","title":"Bug总数、有效Bug与解决Bug数近30天统计柱形图","type":"cluBarX"},{"id":"3g6xki3tayi000","isGroup":false,"attr":{"x":"528","y":"1216","w":"798","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"有效Bug率年度趋势图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"line.png","sourceID":"10212"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"有效Bug率年度趋势图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":[],"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10212","title":"有效Bug率年度趋势图","type":"line"},{"id":"1lk7rgc6je5c00","isGroup":false,"attr":{"x":"528","y":"1720","w":"798","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarStacked","chartConfig":{"key":"BarStacked","chartKey":"VBarStacked","conKey":"VCBarStacked","title":"Bug严重程度堆积柱状图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_stacked_x.png","sourceID":"10214"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"Bug严重程度堆积柱状图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"series":[{"type":"bar","stack":"total","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}},{"type":"bar","stack":"total","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}},{"type":"bar","stack":"total","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)","dataset":[]},"sourceID":"10214","title":"Bug严重程度堆积柱状图","type":"stackedBar"},{"id":"25mmk8o5duo000","isGroup":false,"attr":{"x":"528","y":"2236","w":"798","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"Bug密度年度趋势图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"line.png","sourceID":"10213"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":90,"right":"10%","bottom":"60"},"title":{"text":"Bug密度年度趋势图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":[],"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10213","title":"Bug密度年度趋势图","type":"line"},{"id":"53verjpnwh8000","isGroup":false,"attr":{"x":20,"y":3214,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"5rg2qtyfzno000","isGroup":false,"attr":{"x":693,"y":3216,"w":653,"h":490,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"1j96xfpflgw000","isGroup":false,"attr":{"x":1152,"y":"3230","w":"160","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"d47gaf5trhk00","isGroup":false,"attr":{"x":734,"y":"3230","w":"160","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"50iv7knqqtk000","isGroup":false,"attr":{"x":"920","y":"3230","w":200,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品Bug数量统计","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"4xtycre64bw000","isGroup":false,"attr":{"x":"220","y":"3230","w":240,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品用例数量统计","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"2o3vh7bn0k6000","isGroup":false,"attr":{"x":465,"y":"3230","w":160,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"gkc4fwuus2o0","isGroup":false,"attr":{"x":60,"y":"3230","w":160,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"penzroyxpao00","isGroup":false,"attr":{"x":20,"y":2666,"w":1326,"h":528,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Border06","chartConfig":{"key":"Border06","chartKey":"VBorder06","conKey":"VCBorder06","title":"边框-06","category":"Borders","categoryName":"边框","package":"Decorates","image":"border06.png","chartFrame":"static"},"option":{"colors":["#3140AD00","#1089FF12"],"backgroundColor":"#1089FF12"}},{"id":"3kx9bltlzts000","isGroup":false,"attr":{"x":"2800","y":"26800","w":1023,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"1igpxgk2mv6o00","isGroup":false,"attr":{"x":"32","y":"2680","w":242,"h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"文字","category":"Texts","categoryName":"文本","package":"Informations","image":"text_static.png","chartFrame":"common"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品缺陷数据汇总表","fontSize":20,"fontColor":"#B2D5E5FF","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":2,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"3oqvmqrcqfg000","isGroup":false,"attr":{"x":50,"y":2750,"w":1262,"h":413,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"TableMergeCell","chartConfig":{"key":"TableMergeCell","chartKey":"VTableMergeCell","conKey":"VCTableMergeCell","title":"产品缺陷数据汇总表","category":"Tables","categoryName":"列表","package":"Tables","chartFrame":"common","image":"table_scrollboard.png","sourceID":"1002"},"option":{"header":[],"dataset":[],"index":true,"columnWidth":[],"align":["center","center","center","center","center","center","center","center","center","center","center","center","center","center"],"rowNum":5,"waitTime":2,"headerHeight":35,"carousel":"single","headerBGC":"#4498EC85","oddRowBGC":"#1089FF1A","evenRowBGC":"#FFFFFF00","rowspan":[],"colspan":[]},"sourceID":"1002","title":"产品缺陷数据汇总表","type":"table"},{"id":"23hxn88hrwm800","isGroup":false,"attr":{"x":56,"y":"3300","w":574,"h":"380","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"产品用例数量统计条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10215"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"产品用例数量统计条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":[],"series":[{"type":"bar","label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10215","title":"产品用例数量统计条形图","type":"cluBarY"},{"id":"zu2vtfsd1z400","isGroup":false,"attr":{"x":"732","y":"3300","w":"574","h":"380","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"BarCrossrange","chartConfig":{"key":"BarCrossrange","chartKey":"VBarCrossrange","conKey":"VCBarCrossrange","title":"产品Bug数量统计条形图","category":"Bars","categoryName":"柱状图","package":"Charts","chartFrame":"echarts","image":"bar_y.png","sourceID":"10216"},"option":{"legend":{"show":true,"top":40,"textStyle":{"color":"#B9B8CE"},"left":"center"},"xAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"yAxis":{"show":true,"name":"","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"grid":{"show":false,"left":"10%","top":70,"right":"10%","bottom":"60"},"title":{"text":"产品Bug数量统计条形图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"show":true,"type":"shadow"}},"dataset":[],"series":[{"type":"bar","label":{"show":true,"position":"right","color":"#fff","fontSize":12},"itemStyle":{"borderRadius":0}}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10216","title":"产品Bug数量统计条形图","type":"cluBarY"},{"id":"38a8owutx4m000","isGroup":false,"attr":{"x":"280","y":2680,"w":"1030","h":60,"offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"Decorates02","chartConfig":{"key":"Decorates02","chartKey":"VDecorates02","conKey":"VCDecorates02","title":"装饰-02","category":"Decorates","categoryName":"装饰","package":"Decorates","image":"decorates02.png","chartFrame":"static"},"option":{"colors":["#A9CDF3FF","#1DC1F5FF"],"dur":3,"lineHeight":3}},{"id":"p8d55xj3za800","isGroup":false,"attr":{"x":"34","y":"708","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug状态分布图","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10217"},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#B9B8CE"},"left":"center"},"title":{"text":"Bug状态分布图","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"dataset":[],"series":[{"type":"pie","radius":"70%","center":["50%","60%"],"label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"roseType":false}],"backgroundColor":"rgba(0,0,0,0)"},"sourceID":"10217","title":"Bug状态分布图","type":"pie"},{"id":"11322hw5hcf40","isGroup":false,"attr":{"x":"34","y":"1216","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug严重程度分布","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10219"},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#fff"},"left":"center","type":"scroll"},"title":{"text":"Bug严重程度分布","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"series":[{"type":"pie","label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"radius":"70%","roseType":false}],"backgroundColor":"rgba(0,0,0,0)","dataset":[]},"sourceID":"10219","title":"Bug严重程度分布","type":"pie"},{"id":"1bw4mu8kjfi800","isGroup":false,"attr":{"x":"34","y":"1720","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug类型分布","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10218"},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#fff"},"left":"center","type":"scroll"},"title":{"text":"Bug类型分布","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"series":[{"type":"pie","label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"radius":"70%","roseType":false}],"backgroundColor":"rgba(0,0,0,0)","dataset":[]},"sourceID":"10218","title":"Bug类型分布","type":"pie"},{"id":"14ns3t0es7k000","isGroup":false,"attr":{"x":"34","y":"2236","w":"446","h":"392","offsetX":0,"offsetY":0,"lockScale":false,"zIndex":-1},"preview":{"overFlowHidden":false},"key":"PieCommon","chartConfig":{"key":"PieCommon","chartKey":"VPieCommon","conKey":"VCPieCommon","title":"Bug解决方案分布","category":"Pies","categoryName":"饼图","package":"Charts","chartFrame":"echarts","image":"pie.png","sourceID":"10220"},"option":{"legend":{"show":false,"top":30,"textStyle":{"color":"#fff"},"left":"center","type":"scroll"},"title":{"text":"Bug解决方案分布","show":false,"textStyle":{"color":"#BFBFBF","fontSize":18},"subtextStyle":{"color":"#A2A2A2","fontSize":14},"top":10,"x":"center"},"type":"nomal","tooltip":{"show":true,"trigger":"item","formatter":"{b} {d}%"},"grid":{"top":70},"series":[{"type":"pie","label":{"show":true,"formatter":"{b} {d}%","fontSize":12,"color":"#fff","shadowColor":"transparent"},"radius":"70%","roseType":false}],"backgroundColor":"rgba(0,0,0,0)","dataset":[]},"sourceID":"10220","title":"Bug解决方案分布","type":"pie"}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); +INSERT INTO zt_screen (id, dimension, name, `desc`, acl, whitelist, cover, scheme, status, builtin, createdBy, createdDate, editedBy, editedDate, deleted) VALUES(1001, 1, '禅道月度应用健康度体检大屏', '公司级禅道应用健康度体检大屏,促进项目管理持续改进。', 'open', NULL, '', '{"editCanvasConfig":{"width":1300,"height":4355,"filterShow":false,"hueRotate":0,"saturate":1,"contrast":1,"brightness":1,"opacity":1,"rotateZ":0,"rotateX":0,"rotateY":0,"skewX":0,"skewY":0,"blendMode":"normal","background":"#001028","selectColor":true,"chartThemeColor":"dark","previewScaleType":"scrollY"},"componentList":[{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":0,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/screen_header.png","borderRadius":10}},{"id":"2nws38440fq000","isGroup":false,"attr":{"x":400,"y":36,"w":500,"h":66,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"title","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"禅道月度应用健康度体检大屏","fontSize":20,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"5scfjzqsbzo000","isGroup":true,"attr":{"w":300,"h":120,"x":0,"y":95,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"2xjom2cw2b2000","type":"year","filterCharts":[{"chart":20001,"field":"t1.`year`"},{"chart":20002,"field":"t1.`year`"},{"chart":20003,"field":"t1.`year`"},{"chart":20004,"field":"t1.`year`"},{"chart":20005,"field":"t1.`year`"},{"chart":20006,"field":"t1.`year`"},{"chart":20007,"field":"t1.`year`"},{"chart":20008,"field":"t1.`year`"},{"chart":20009,"field":"t1.`year`"},{"chart":20010,"field":"t1.`year`"},{"chart":20011,"field":"t1.`year`"},{"chart":20012,"field":"t1.`year`"},{"chart":20013,"field":"t1.`year`"}],"isGroup":false,"attr":{"x":0,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"选择","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"请选择","value":""},{"label":"河北","value":"18700"},{"label":"徐州","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20}},{"id":"2xjom2cw2b2000","type":"month","filterCharts":[{"chart":20001,"field":"t1.`month`"},{"chart":20002,"field":"t1.`month`"},{"chart":20003,"field":"t1.`month`"},{"chart":20004,"field":"t1.`month`"},{"chart":20005,"field":"t1.`month`"},{"chart":20006,"field":"t1.`month`"},{"chart":20007,"field":"t1.`month`"},{"chart":20008,"field":"t1.`month`"},{"chart":20009,"field":"t1.`month`"},{"chart":20010,"field":"t1.`month`"},{"chart":20011,"field":"t1.`month`"},{"chart":20012,"field":"t1.`month`"},{"chart":20013,"field":"t1.`month`"}],"isGroup":false,"attr":{"x":100,"y":0,"w":100,"h":120,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Select","chartConfig":{"key":"Select","chartKey":"VSelect","conKey":"VCSelect","title":"选择","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/select-c616737a.png"},"option":{"dataset":[{"label":"请选择","value":""},{"label":"河北","value":"18700"},{"label":"徐州","value":"17800"}],"value":"","borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","background":"none","borderRadius":6,"color":"#ffffff","textAlign":"center","fontWeight":"normal","backgroundColor":"transparent","fontSize":20}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":150,"w":1300,"h":220,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":80,"x":0,"y":150,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"使用数据分析","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":25,"y":220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20014,"isGroup":false,"attr":{"x":110,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":110,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"当前版本","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":448,"y":220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20015,"isGroup":false,"attr":{"x":110,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":110,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"上线时间","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":870,"y":220,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1028,"isGroup":false,"attr":{"x":110,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":110,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"后台账号数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":375,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":375,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"活跃账号数项目间对比","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20002,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"3hqq7oh18ra000","isGroup":true,"attr":{"w":1300,"h":500,"x":0,"y":905,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"公司账号日活跃度趋势统计","image":""},"groupList":[{"id":"1dlpgwe8wwe800","isGroup":false,"attr":{"x":0,"y":0,"w":1300,"h":500,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"公司账号日活跃度趋势统计","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#0a1c3700","#042b4d00"],"backgroundColor":"#0a1c38"}},{"id":"obhxxjnin3400","sourceID":20003,"isGroup":false,"attr":{"x":0,"y":60,"w":1250,"h":416,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"LineCommon","chartConfig":{"key":"LineCommon","chartKey":"VLineCommon","conKey":"VCLineCommon","title":"折线图","category":"Lines","categoryName":"折线图","package":"Charts","chartFrame":"echarts","image":"static\\/png\\/line.png"},"option":{"legend":{"show":true,"bottom":"5%","textStyle":{"color":"#B9B8CE"}},"xAxis":{"show":true,"name":"(日期)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"bottom","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":false,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"category"},"yAxis":{"show":true,"name":"(个数)","nameGap":15,"nameTextStyle":{"color":"#B9B8CE","fontSize":12},"inverse":false,"axisLabel":{"show":true,"fontSize":12,"color":"#B9B8CE","rotate":0},"position":"left","axisLine":{"show":true,"lineStyle":{"color":"#B9B8CE","width":1},"onZero":true},"axisTick":{"show":true,"length":5},"splitLine":{"show":true,"lineStyle":{"color":"#484753","width":1,"type":"solid"}},"type":"value"},"grid":{"show":false,"left":"10%","top":"30","right":"10%","bottom":"60"},"tooltip":{"show":true,"trigger":"axis","axisPointer":{"type":"line"}},"dataset":{"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130},{"product":"Tue","data1":200,"data2":130},{"product":"Wed","data1":150,"data2":312},{"product":"Thu","data1":80,"data2":268},{"product":"Fri","data1":70,"data2":155},{"product":"Sat","data1":110,"data2":117},{"product":"Sun","data1":130,"data2":160}]},"series":[{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}},{"type":"line","label":{"show":true,"position":"top","color":"#fff","fontSize":12},"symbolSize":5,"itemStyle":{"borderRadius":0},"lineStyle":{"type":"solid","width":3}}],"backgroundColor":"rgba(0,0,0,0)"}},{"id":"2u3zlsz5kk4000","isGroup":false,"attr":{"x":17,"y":0,"w":250,"h":72,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"公司账号日活跃度趋势统计","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"公司账号日活跃度趋势统计","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1405,"w":1300,"h":400,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":80,"x":0,"y":1400,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品数据","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":25,"y":1470,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1020,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"当前产品数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":448,"y":1470,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20004,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"活跃产品数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":870,"y":1470,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":390,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20005,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"本月新增产品数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":1300,"h":159,"x":25,"y":1630,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1240,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20006,"isGroup":false,"attr":{"x":110,"y":20,"w":1000,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":525,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"本月新增产品名","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":2855,"w":1300,"h":400,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":80,"x":0,"y":2855,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":230,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目数据","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":25,"y":2925,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":370,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":1019,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"当前项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":448,"y":2925,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":370,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20007,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"活跃项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":180,"h":159,"x":870,"y":2925,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":370,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20008,"isGroup":false,"attr":{"x":100,"y":20,"w":169,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":100,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"本月新增项目数","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"z3gs9qz8hq800","isGroup":true,"attr":{"w":1300,"h":159,"x":25,"y":3080,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"文档个数","image":""},"groupList":[{"id":"2xjom2cw2b2000","isGroup":false,"attr":{"x":0,"y":0,"w":1215,"h":127,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Image","chartConfig":{"key":"Image","chartKey":"VImage","conKey":"VCImage","title":"header","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/photo-637bc05d.png"},"option":{"dataset":"static\\/images\\/card.png","borderRadius":0}},{"id":"3ef3nnqh7gu00","sourceID":20009,"isGroup":false,"attr":{"x":100,"y":20,"w":1000,"h":48,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"100","fontSize":15,"fontColor":"#ffffff","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"normal","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"52mwo993eaw000","isGroup":false,"attr":{"x":515,"y":50,"w":169,"h":78,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"一级项目集个数","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"本月新增项目名","fontSize":15,"fontColor":"#9abdcd","paddingX":0,"paddingY":0,"textAlign":"center","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":1,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":3780,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":3780,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目任务概况表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20010,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":3255,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":3255,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"项目需求概况表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20013,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":2330,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":2330,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品测试表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20011,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"1cfwp95aiif400","isGroup":false,"attr":{"x":0,"y":1805,"w":1300,"h":525,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"Border03","chartConfig":{"key":"Border03","chartKey":"VBorder03","conKey":"VCBorder03","title":"summary","category":"Borders","categoryName":"边框","package":"Decorates","image":""},"option":{"colors":["#00102800","#00102800"],"backgroundColor":"#0a1c38"}},{"id":"6scfjzqsbzo000","isGroup":true,"attr":{"w":1300,"h":120,"x":0,"y":1805,"offsetX":0,"offsetY":0,"zIndex":-1},"chartConfig":{"key":"group","chartKey":"group","conKey":"group","category":"group","categoryName":"group","package":"group","chartFrame":"common","title":"标题","image":""},"groupList":[{"id":"57r67ykkwxk000","isGroup":false,"attr":{"x":15,"y":0,"w":277,"h":68,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TextCommon","chartConfig":{"key":"TextCommon","chartKey":"VTextCommon","conKey":"VCTextCommon","title":"summary_top","category":"Texts","categoryName":"文本","package":"Informations","image":"static\\/png\\/text_static-b2721032.png"},"option":{"link":"","linkHead":"http:\\/\\/","dataset":"产品需求概况表","fontSize":14,"fontColor":"#b2d5e5","paddingX":10,"paddingY":10,"textAlign":"left","fontWeight":"bold","borderWidth":0,"borderColor":"#ffffff","borderRadius":5,"letterSpacing":5,"writingMode":"horizontal-tb","backgroundColor":"#00000000"}},{"id":"1zhfrmecpnxc00","sourceID":20012,"isGroup":false,"attr":{"x":25,"y":57,"w":1250,"h":446,"offsetX":0,"offsetY":0,"zIndex":-1},"key":"TableScrollBoard","chartConfig":{"key":"TableScrollBoard","chartKey":"VTableScrollBoard","conKey":"VCTableScrollBoard","title":"轮播列表","category":"Tables","categoryName":"表格","package":"Tables","chartFrame":"common","image":"static\\/png\\/table_scrollboard-fb642e78.png"},"option":{"header":["列1","列2","列3"],"dataset":[["行1列1","行1列2","行1列3"],["行2列1","行2列2","行2列3"],["行3列1","行3列2","行3列3"],["行4列1","行4列2","行4列3"],["行5列1","行5列2","行5列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"],["行6列1","行6列2","行6列3"]],"index":false,"columnWidth":[],"align":["center","center","center","center","center","center","center","center"],"rowNum":8,"waitTime":3,"headerHeight":45,"carousel":"single","headerBGC":"#165896FF","oddRowBGC":"#042b4dFF","evenRowBGC":"#0a1c37FF"}}],"key":"group","option":[]},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":173,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"上线时间:管理员首次登录禅道的时间。\\n后台账号数:系统所有账号个数求和,过滤已删除的账号。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":395,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"某月团队账号数:团队所有账号数求和,加入时间<=某月,过滤已删除的账号数。\\n某月活跃账号数:团队账号中,在某月有过登录行为的账号数求和,过滤已删除的账号。\\n某月活跃账号比:某月活跃账号比=某月活跃账号数\\/某月团队账号数。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":925,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"在某月,公司每日有登录行为的账号数求和。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":1419,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"当前产品数:系统中所有产品个数求和,过滤已删除的产品。\\n某月活跃产品数:系统中某月有过动态的产品个数求和,过滤已删除的产品。\\n某月新增产品数:系统中某月新增的产品个数求和,过滤已删除的产品。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":1820,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"按产品统计的月度新增研发需求数:产品中研发需求的个数求和,创建时间为某年某月,过滤已删除的研发需求,过滤已删除的产品。\\n按产品统计的月度交付研发需求数:产品中研发需求个数求和,所处阶段为已发布且发布时间为某年某月或关闭原因为已完成且关闭时间为某年某月,过滤已删除的研发需求,过滤已删除的产品。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":2356,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"按产品统计的月度新增用例数:产品中用例的个数求和,创建时间为某年某月,过滤已删除的用例,过滤已删除的产品。\\n按产品统计的月度用例平均Bug数:按产品统计的月度新增用例数关联的Bug数\\/按产品统计的月度新增用例数。\\n按产品统计的月度新增Bug数:产品中Bug个数求和,创建时间为某年某月,过滤已删除的Bug,过滤已删除的产品。\\n按产品统计的月度修复Bug数:产品中Bug个数求和,关闭时间为某年某月,解决方案为已解决,过滤已删除的Bug,过滤已删除的产品。\\n按产品统计的bug平均修复时间:按产品统计的月度修复Bug的修复周期\\/按产品统计的月度修复Bug数。\\n修复周期:修复日期-创建日期。\\n修复:已关闭,关闭原因为已解决。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":2872,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"当前项目数:系统中所有项目个数求和,过滤已删除的项目。\\n某月活跃项目数:项目中某月有过动态的项目个数求和,过滤已删除的项目。\\n某月新增项目数:项目中某月新增的项目个数求和,过滤已删除的项目。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":3278,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"按项目统计的月度新增研发需求数:项目中研发需求的个数求和,创建时间为某年某月,过滤已删除的研发需求,过滤已删除的产品。\\n按项目统计的月度交付研发需求数:项目中研发需求个数求和,所处阶段为已发布且发布时间为某年某月或关闭原因为已完成且关闭时间为某年某月,过滤已删除的研发需求,过滤已删除的项目,过滤已删除的产品。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}},{"id":"fc4u6zmi58w00","isGroup":false,"attr":{"x":1250,"y":3800,"w":20,"h":20,"offsetX":0,"offsetY":0,"zIndex":1},"key":"Hint","chartConfig":{"key":"Hint","chartKey":"VHint","conKey":"VCHint","title":"提示","category":"Mores","categoryName":"更多","package":"Informations","chartFrame":"common","image":"static\\/png\\/hint-2cbf6381.png"},"option":{"text":"","icon":"","textSize":15,"textColor":"#ffffff","textWeight":"bold","placement":"left-top","distance":8,"hint":"按项目统计的月度新增任务数:项目中任务的个数求和,创建时间为某年某月,过滤已删除的任务,过滤已删除的项目。\\n按项目统计的月度贡献任务人数:项目中任务的创建人的个数求和,创建时间为某年某月,过滤已删除的任务,过滤已删除的项目,人员去重。\\n按项目统计的月度完成任务数:项目中任务个数求和,完成时间为某年某月,过滤已删除的任务,过滤已删除执行的任务,过滤已删除的项目。","width":0,"height":0,"paddingX":16,"paddingY":8,"borderWidth":1,"borderStyle":"solid","borderColor":"#1a77a5","borderRadius":6,"color":"#ffffff","textAlign":"left","fontWeight":"normal","backgroundColor":"rgba(8, 40, 80, 0.9)","fontSize":16}}]}', 'published', '1', 'system', '2025-06-05 14:49:08', '', NULL, '0'); \ No newline at end of file diff --git a/test/lib/coverage.php b/test/lib/coverage.php index 05c3ad9dba..f1d751f028 100644 --- a/test/lib/coverage.php +++ b/test/lib/coverage.php @@ -23,7 +23,7 @@ class coverage $this->traceFile = ''; $this->backtrace = debug_backtrace()[count(debug_backtrace())-1]; $this->runFile = $this->backtrace['file']; - $this->moduleName = basename(dirname(dirname(dirname($this->runFile)))); + $this->moduleName = $this->getModuleByFilePath($this->runFile); $this->testType = basename(dirname($this->runFile)); $this->unfilteredTraces = array('control.php', 'zen.php', 'model.php', 'tao.php'); $this->edition = $this->getEdition(); @@ -395,6 +395,7 @@ class coverage $fileName = basename($filePath, '.php'); $groupedTraces['module'] = $this->moduleName; $groupedTraces['type'] = $this->testType; + if(empty(get_object_vars($this->getMethodInfo()))) continue; $groupedTraces['method'] = $this->getMethodInfo()->getName(); if($moduleName == $this->moduleName && $fileName == $this->testType) $groupedTraces['executeLines'] = $fileTrace; @@ -443,7 +444,7 @@ class coverage if(!$moduleName) { preg_match('/extension\/[^\/]+\/([^\/]+)/', $filePath, $extMatches); - $moduleName = $extMatches[1]; + $moduleName = empty($extMatches[1]) ? '' : $extMatches[1]; } return $moduleName; diff --git a/test/lib/init.php b/test/lib/init.php index 2dd90fe794..6466672714 100644 --- a/test/lib/init.php +++ b/test/lib/init.php @@ -314,3 +314,33 @@ function su($account, $initRights = true) return true; } + +/** + * 初始化反射类。 + * Initialize reflection class. + * + * @param int $moduleName + * @param string $type + * @access public + * @return bool|ReflectionClass + */ +function initReference($moduleName, $type = 'zen') +{ + global $tester; + helper::import($tester->app->getModulePath('', $moduleName) . 'control.php'); + $tester->app->control = new $moduleName(); + $class = ''; + if($type == 'zen') + { + helper::import($tester->app->getModulePath('', $moduleName) . 'zen.php'); + $class = $moduleName . 'Zen'; + } + else + { + helper::import($tester->app->getModulePath('', $moduleName) . 'model.php'); + $class = $moduleName . 'Model'; + } + + if(!$class || !class_exists($class)) return false; + return new ReflectionClass($class); +} diff --git a/test/lib/ui.php b/test/lib/ui.php index f8cde9c806..568eeae0bd 100644 --- a/test/lib/ui.php +++ b/test/lib/ui.php @@ -241,16 +241,17 @@ class tester extends result * Switch a zentao vision. * * @param string $vision + * @param int $refreshTime * @access public * @return object */ - public function switchVision($vision) + public function switchVision($vision, $refreshTime = 2) { $currentVision = $this->page->getCookie('vision'); if($currentVision) $this->page->deleteCookie('vision'); $this->page->addCookie(array('name' => 'vision', 'value' => $vision)); - $this->page->wait(1)->refresh(); + $this->page->wait($refreshTime)->refresh(); return $this; } diff --git a/test/lib/webdriver/webdriver.class.php b/test/lib/webdriver/webdriver.class.php index 0131968228..fa6e3137d1 100644 --- a/test/lib/webdriver/webdriver.class.php +++ b/test/lib/webdriver/webdriver.class.php @@ -1060,7 +1060,7 @@ class dom $pickerInput = $picker->findElement(WebDriverBy::xpath('//*[@class="picker-multi-selections"]//input')); $pickerInput->click(); $pickerInput->sendKeys(trim($value)); - sleep(1); + sleep(3); $this->driver->findElement(WebDriverBy::xpath("//*[@id='pick-pop-$pickerID']//span[@class='is-match-keys']"))->click(); $pickerInput->clear(); diff --git a/www/js/zui3/icons/ZentaoIcon.eot b/www/js/zui3/icons/ZentaoIcon.eot index 959094d5af..5e7d185706 100755 Binary files a/www/js/zui3/icons/ZentaoIcon.eot and b/www/js/zui3/icons/ZentaoIcon.eot differ diff --git a/www/js/zui3/icons/ZentaoIcon.svg b/www/js/zui3/icons/ZentaoIcon.svg index b1cc418687..cc2f7995e9 100755 --- a/www/js/zui3/icons/ZentaoIcon.svg +++ b/www/js/zui3/icons/ZentaoIcon.svg @@ -61,7 +61,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -97,15 +97,15 @@ - + - - - + + + @@ -125,11 +125,11 @@ - + - - + + @@ -148,8 +148,8 @@ - - + + @@ -164,7 +164,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -292,7 +292,7 @@ - + @@ -307,6 +307,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/js/zui3/icons/ZentaoIcon.ttf b/www/js/zui3/icons/ZentaoIcon.ttf index 9d17f1d377..33e3b0c0f8 100755 Binary files a/www/js/zui3/icons/ZentaoIcon.ttf and b/www/js/zui3/icons/ZentaoIcon.ttf differ diff --git a/www/js/zui3/icons/ZentaoIcon.woff b/www/js/zui3/icons/ZentaoIcon.woff index 95386d4faa..40fd268a7b 100755 Binary files a/www/js/zui3/icons/ZentaoIcon.woff and b/www/js/zui3/icons/ZentaoIcon.woff differ diff --git a/www/js/zui3/zen-editor/index.esm.js b/www/js/zui3/zen-editor/index.esm.js index c0365080ee..9f2416c0ac 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-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; \ No newline at end of file +export{M as MonacoEditor,Z as ZenEditor}from"./p-99deb4a6.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-0a0c3f37.js b/www/js/zui3/zen-editor/p-018b9303.js similarity index 98% rename from www/js/zui3/zen-editor/p-0a0c3f37.js rename to www/js/zui3/zen-editor/p-018b9303.js index cbaf9daf93..3fec8f9c01 100644 --- a/www/js/zui3/zen-editor/p-0a0c3f37.js +++ b/www/js/zui3/zen-editor/p-018b9303.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-653d3561.js b/www/js/zui3/zen-editor/p-150041c4.js similarity index 98% rename from www/js/zui3/zen-editor/p-653d3561.js rename to www/js/zui3/zen-editor/p-150041c4.js index 04013f9dae..4a8eed2243 100644 --- a/www/js/zui3/zen-editor/p-653d3561.js +++ b/www/js/zui3/zen-editor/p-150041c4.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-ca2d167a.entry.js b/www/js/zui3/zen-editor/p-1591e205.entry.js similarity index 61% rename from www/js/zui3/zen-editor/p-ca2d167a.entry.js rename to www/js/zui3/zen-editor/p-1591e205.entry.js index 8793e00982..b321c280dc 100644 --- a/www/js/zui3/zen-editor/p-ca2d167a.entry.js +++ b/www/js/zui3/zen-editor/p-1591e205.entry.js @@ -1 +1 @@ -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=>{var t;const A=null!==(t=e.getAttribute("colwidth"))&&void 0!==t?t:e.style.width;return Boolean(A)?[parseInt(A,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=>{var t;const A=null!==(t=e.getAttribute("colwidth"))&&void 0!==t?t:e.style.width;return Boolean(A)?[parseInt(A,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-99deb4a6.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 s,E as o,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:s}=r,o=!i.textBetween(A,n).length&&E(t.selection),B=this.element.contains(document.activeElement);return!(!e.hasFocus()&&!B||s||o||!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,s;const{state:o,composing:E}=e,{selection:a}=o;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:o,oldState:n,from:l,to:Q}))?(null===(r=this.tippy)||void 0===r||r.setProps({getReferenceClientRect:(null===(s=this.tippyOptions)||void 0===s?void 0:s.getReferenceClientRect)||(()=>{if(B(o.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 s(e.pluginKey):e.pluginKey,view:t=>new ee({view:t,...e})}),Ae=o.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=o.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 s=(null===(r=A.marks.find((e=>"textStyle"===e.type.name)))||void 0===r?void 0:r.attrs.fontSize)||13,o=ie.reduce(((e,t)=>Math.abs(t-s)({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:se.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:s}=t,o=!Boolean(r.textBetween(A,n).length)&&E(s);return!(!e.hasFocus()||s.empty||o)})}=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,s=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 st{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 ot=e=>new Error(e),Et=()=>{throw ot("Method unimplemented")},Bt=()=>{throw ot("Unexpected case")},ct=ot("Unexpected end of array"),at=ot("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(),sA=eA(),oA=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"),[sA]:Kt("color","red"),[oA]: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],s=r.clock;if(s<=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:s=!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=s,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 o=()=>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=o()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=o()}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 s=r();if(null===s)return null;const o=new En,E=new Map,B=(e,t)=>{const A=E.get(e);(null==A||A>t)&&E.set(e,t)};let c=s.refs[s.i++];const a=new Map,g=()=>{for(const e of n){const t=e.id.client,n=A.get(t);n?(n.i--,o.clients.set(t,n.refs.slice(n.i)),A.delete(t),n.i=0,n.refs=[]):o.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!==s&&s.i0){const e=new TA;return HA(e,o,new Map),Le(e.restEncoder,0),{missing:E,update:e.toUint8Array()}}return null})(e,i,r),o=i.pendingStructs;if(o){for(const[e,A]of o.missing)if(At)&&o.missing.set(e,t)}o.update=Nn([o.update,s.update])}}else i.pendingStructs=s;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 sn=(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),on=(e,t)=>{const A=we(e.meta,on,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 s=Ce(t/(r+i.length-1)*n);for(;A<=n;){if(i=e[s],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 s,o=Qn(e,t,A);do{s=t[o++],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],s=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=s.length-1;e>=0;e--){const{client:t,clock:A}=s[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,sA,"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:o,subdocsLoaded:E,subdocsRemoved:B}=A;(o.size>0||B.size>0||E.size>0)&&(o.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:o,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,s=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{s=t(e._transaction)}finally{if(r){const t=e._transaction===i[0];e._transaction=null,t&&kn(i,0)}}return s};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,s=t.pop(),o=new Set,E=[];let B=!1;wA(A,s.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,s.deletions,(e=>{e instanceof Er&&r.some((t=>WA(t,e)))&&!MA(s.insertions,e.id)&&o.add(e)})),o.forEach((t=>{B=null!==or(A,t,o,s.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?s: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:s=(ke(e)?e[0].doc:e.doc)}={}){super(),this.scope=[],this.doc=s,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 s=!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)),s=!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(s?"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 s=new A,o=new mn(s);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(o,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(o,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(o,r.struct,r.offset),r={struct:A,offset:0}}null!==r&&(pn(o,r.struct,r.offset),r=null),Tn(o);const E=n.map((e=>fA(e))),B=IA(E);return CA(s,B),s.toUint8Array()},bn=(e,t,A=NA,n=TA)=>{const i=zA(t),r=new n,s=new mn(r),o=new A(lt(e)),E=new Yn(o,!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(s,e,Fe(A-e.id.clock,0)),E.next();E.curr&&E.curr.id.client===t;)pn(s,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(s);const B=fA(o);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),s=new n,o=new mn(s);for(let e=r.curr;null!==e;e=r.next())pn(o,t(e),0);Tn(o);const E=fA(i);return CA(s,E),s.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 ot(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 ot(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&&sn(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,s=r.clientID,o=r.store,E=null===A?t._start:A.right;let B=[];const c=()=>{B.length>0&&(i=new Er(_A(s,cn(o,s)),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(s,cn(o,s)),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(s,cn(o,s)),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(s,cn(o,s)),i,i&&i.lastId,E,E&&E.id,t,null,new Ar(A)),i.integrate(e,0)}}})),c()},Ai=()=>ot("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 s=t._start;for(null!==r&&(s=r.p,0==(A-=r.index)&&(s=s.prev,A+=s&&s.countable&&!s.deleted?s.length:0));null!==s;s=s.right)if(!s.deleted&&s.countable){if(A<=s.length){A{if(0===n)return;const i=A,r=n,s=Pn(t,A);let o=t._start;for(null!==s&&(o=s.p,A-=s.index);null!==o&&A>0;o=o.right)!o.deleted&&o.countable&&(A0&&null!==o;)o.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)},si=(e,t,A,n)=>{const i=t._map.get(A)||null,r=e.doc,s=r.clientID;let o;if(null==n)o=new Vi([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:o=new Vi([n]);break;case Uint8Array:o=new zi(n);break;case YA:o=new Zi(n);break;default:if(!(n instanceof On))throw new Error("Unexpected content type");o=new Ar(n)}new Er(_A(s,cn(r.store,s)),i,i&&i.lastId,null,null,t,A,o).integrate(e,0)},oi=(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=>{si(A,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return oi(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,s)=>{const o=A.left,E=A.right,B=new Er(_A(r,cn(i.store,r)),o,o&&o.lastId,E,E&&E.id,t,null,new Pi(s,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,s=new Map;for(const o in n){const E=n[o],B=A.currentAttributes.get(o)??null;if(!hi(B,E)){s.set(o,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(o,E)),A.right.integrate(e,0),A.forward()}}return s},Gi=(e,t,A,n,i)=>{A.currentAttributes.forEach(((e,t)=>{void 0===i[t]&&(i[t]=null)}));const r=e.doc,s=r.clientID;di(A,i);const o=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(s,cn(r.store,s)),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,o)},Ci=(e,t,A,n,i)=>{const r=e.doc,s=r.clientID;di(A,i);const o=ki(e,t,A,i);e:for(;null!==A.right&&(n>0||o.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,s=i[t];if(void 0!==s){if(hi(s,r))o.delete(t);else{if(0===n)break e;o.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(s,cn(r.store,s)),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,o)},fi=(e,t,A,n,i)=>{let r=t;const s=he();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Pi){const e=r.content;s.set(e.key,e)}r=r.right}let o=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;s.get(r)===A&&c!==B||(t.delete(e),o++,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 o},Di=e=>{let t=0;return Gn(e.doc,(A=>{let n=e._start,i=e._start,r=he();const s=ue(r);for(;i;)!1===i.deleted&&(i.content.constructor===Pi?Ii(s,i.content):(t+=fi(A,n,i,r,s),r=ue(s),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 s={};let o="",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 o||o.length>0)&&(t={insert:o},A.size>0&&(t.attributes={},A.forEach(((e,A)=>{null!==e&&(t.attributes[A]=e)})))),o="";break;case"retain":E>0&&(t={retain:E},(e=>{for(const t in e)return!1;return!0})(s)||(t.attributes=pt({},s))),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",o=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"),o+=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:o}=i.content;if(this.adds(i)){if(!this.deletes(i)){const E=A.get(e)??null;hi(E,o)?null!==o&&i.delete(t):("retain"===r&&c(),hi(o,n.get(e)??null)?delete s[e]:s[e]=o)}}else if(this.deletes(i)){n.set(e,o);const t=A.get(e)??null;hi(t,o)||("retain"===r&&c(),s[e]=t)}else if(!i.deleted){n.set(e,o);const A=s[e];void 0!==A&&(hi(A,o)?null!==A&&i.delete(t):("retain"===r&&c(),null===o?delete s[e]:s[e]=o))}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,s,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="",s=this._start;function o(){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!==s;){if(sn(s,e)||void 0!==t&&sn(s,t))switch(s.content.constructor){case Oi:{const n=i.get("ychange");void 0===e||sn(s,e)?void 0===t||sn(s,t)?void 0!==n&&(o(),i.delete("ychange")):void 0!==n&&n.user===s.id.client&&"added"===n.type||(o(),i.set("ychange",A?A("added",s.id):{type:"added"})):void 0!==n&&n.user===s.id.client&&"removed"===n.type||(o(),i.set("ychange",A?A("removed",s.id):{type:"removed"})),r+=s.content.str;break}case Ar:case vi:{o();const e={insert:s.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:sn(s,e)&&(o(),Ii(i,s.content))}s=s.right}o()};return e||t?Gn(this.doc,(A=>{e&&on(A,e),t&&on(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=>{si(A,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return oi(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 ot("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=>{si(A,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return oi(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&&sn(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},sr=(e,t)=>(e=>{for(let A=0;A{const s=e.doc,o=s.store,E=s.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===or(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)||sr(r.undoStack,g.right.id)||sr(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(o,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,s,o){super(e,o.getLength()),this.origin=A,this.left=t,this.right=n,this.rightOrigin=i,this.parent=r,this.parentSub=s,this.redone=null,this.content=o,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=o.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 s("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"),s=document.createElement("span"),o=document.createElement("input"),E=document.createElement("div");return r.contentEditable="false",o.type="checkbox",o.addEventListener("change",(t=>{if(!n.isEditable&&!this.options.onReadOnlyChecked)return void(o.checked=!o.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)||(o.checked=!o.checked))})),Object.entries(this.options.HTMLAttributes).forEach((([e,t])=>{i.setAttribute(e,t)})),i.dataset.checked=e.attrs.checked,e.attrs.checked&&o.setAttribute("checked","checked"),r.append(o,s),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?o.setAttribute("checked","checked"):o.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=o.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,s=n.parent.textContent.endsWith("\n\n");return!(!r||!s)&&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 s=i.after();return void 0!==s&&(!n.nodeAt(s)&&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 s("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:s}=e.state;return e.state.selection.from===e.state.doc.nodeSize-(1+2*e.state.selection.$to.depth)?s.insert(e.state.selection.from-1,this.type.create({language:r})):s.replaceSelectionWith(this.type.create({language:r})),s.setSelection(G.near(s.doc.resolve(Math.max(0,s.selection.from-2)))),s.insertText(A.replace(/\r\n?/g,"\n")),s.setMeta("paste",!0),e.dispatch(s),!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},es=$r("//","$"),ts=$r("/\\*","\\*/"),As=$r("#","$");var ns=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:es,C_BLOCK_COMMENT_MODE:ts,HASH_COMMENT_MODE:As,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 is(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function rs(e){void 0!==e.className&&(e.scope=e.className,delete e.className)}function ss(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=is,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function os(e){Array.isArray(e.illegal)&&(e.illegal=jr(...e.illegal))}function Es(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 Bs(e){void 0===e.relevance&&(e.relevance=1)}const cs=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},as=["of","and","for","in","not","or","if","then","parent","list","value"],gs="keyword";function ls(e,t,A=gs){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,ls(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,Qs(A[0],A[1])]}))}}function Qs(e,t){return t?Number(t):function(e){return as.includes(e.toLowerCase())}(e)?0:1}const hs={},us=e=>{console.error(e)},ws=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ms=(e,t)=>{hs[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),hs[`${e}/${t}`]=!0)},Rs=new Error;function Is(e,t,{key:A}){let n=0;const i=e[A],r={},s={};for(let e=1;e<=t.length;e++)s[e+n]=i[e],r[e+n]=!0,n+=Zr(t[e-1]);e[A]=s,e[A]._emit=r,e[A]._multi=!0}function ds(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 us("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Rs;if("object"!=typeof e.beginScope||null===e.beginScope)throw us("beginScope must be object"),Rs;Is(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 us("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Rs;if("object"!=typeof e.endScope||null===e.endScope)throw us("endScope must be object"),Rs;Is(e,e.end,{key:"endScope"}),e.end=Pr(e.end,{joinWith:""})}}(e)}function ks(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 s=i;if(i.isCompiled)return s;[rs,Es,ds,cs].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),i.__beforeBegin=null,[ss,os,Bs].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),o=i.keywords.$pattern,delete i.keywords.$pattern),o=o||/\w+/,i.keywords&&(i.keywords=ls(i.keywords,e.case_insensitive)),s.keywordPatternRe=t(o,!0),r&&(i.begin||(i.begin=/\B|\b/),s.beginRe=t(s.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(s.endRe=t(s.end)),s.terminatorEnd=Tr(s.end)||"",i.endsWithParent&&r.terminatorEnd&&(s.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),i.illegal&&(s.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:Gs(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,s)})),i.starts&&A(i.starts,r),s.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}(s),s}(e)}function Gs(e){return!!e&&(e.endsWithParent||Gs(e.starts))}class Cs extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const fs=mr,Ds=Ur,Fs=Symbol("nomatch");var Ys=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?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let o={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 o.noHighlightRe.test(e)}function B(e,t,A){let n="",i="";"object"==typeof t?(n=e,A=t.ignoreIllegals,i=t.language):(Ms("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ms("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 s=r.result?r.result:c(r.language,r.code,A);return s.code=r.code,M("after:highlight",s),s}function c(e,A,n,s){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 Fs;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 s=r&&r[0];if(F+=t,null==s)return g(),0;if("begin"===R.type&&"end"===r.type&&R.index===r.index&&""===s){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 "'+s+'" for mode "'+(C.scope||"")+'"');throw e.mode=C,e}if("end"===r.type){const e=M(r);if(e!==Fs)return e}if("illegal"===r.type&&""===s)return 1;if(U>1e5&&U>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return F+=s,s.length}const d=h(e);if(!d)throw us(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const k=ks(d);let G="",C=s||k;const f={},D=new o.__emitter(o);!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:fs(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:fs(A),illegal:!1,relevance:0,errorRaised:t,_emitter:D,_top:C};throw t}}function a(e,A){A=A||o.languages||Object.keys(t);const n=function(e){const t={value:fs(e),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};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=o.languageDetectRe.exec(t);if(A){const t=h(A[1]);return t||(ws(r.replace("{}",A[1])),ws("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&&(o.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)),o.throwUnescapedHTML))throw new Cs("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const i=t.textContent,s=n?B(i,{language:n,ignoreIllegals:!0}):a(i);e.innerHTML=s.value,function(e,t,n){const i=t&&A[t]||n;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,n,s.language),e.result={language:s.language,re:s.relevance,relevance:s.relevance},s.secondBest&&(e.secondBest={language:s.secondBest.language,relevance:s.secondBest.relevance}),M("after:highlightElement",{el:e,result:s,text:i})}let l=!1;function Q(){"loading"!==document.readyState?document.querySelectorAll(o.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 Ms("10.7.0","highlightBlock will be removed entirely in v12.0"),Ms("10.7.0","Please use highlightElement now."),g(e)},configure:function(e){o=Ds(o,e)},initHighlighting:()=>{Q(),Ms("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){Q(),Ms("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(A,n){let r=null;try{r=n(e)}catch(e){if(us("Language definition for '{}' could not be registered.".replace("{}",A)),!i)throw e;us(e),r=s}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:Ds,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 ns)"object"==typeof ns[e]&&Dr.exports(ns[e]);return Object.assign(e,ns),e}({}),ms=Ys;Ys.HighlightJS=Ys,Ys.default=Ys;var Us=ms;function Ss(e,t=[]){return e.map((e=>{const A=[...t,...e.properties?e.properties.className:[]];return e.children?Ss(e.children,A):{text:e.value,classes:A}})).flat()}function Ns(e){return e.value||e.children||[]}function bs({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,s=A.listLanguages();Ss(r&&(s.includes(r)||Boolean(Us.getLanguage(r)))?Ns(A.highlight(r,e.node.textContent)):Ns(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 ys({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 s("lowlight"),state:{init:(n,{doc:i})=>bs({doc:i,name:e,lowlight:t,defaultLanguage:A}),apply:(n,i,r,s)=>{const o=r.selection.$head.parent.type.name,E=s.selection.$head.parent.type.name,B=f(r.doc,(t=>t.type.name===e)),c=f(s.doc,(t=>t.type.name===e));return n.docChanged&&([o,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)))))?bs({doc:n.doc,name:e,lowlight:t,defaultLanguage:A}):i.map(n.mapping,n.doc)}},props:{decorations:e=>n.getState(e)}});return n}const ps=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))||[],ys({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});const Ts=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("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={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(o,{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,s,A,e.C_BLOCK_COMMENT_MODE,E,o],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:[o,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,o,E,s,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,o,E,s]}]},s,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",s]},{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 Hs=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("<[^<>]+>")+")",s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},o={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(o,{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,s,A,e.C_BLOCK_COMMENT_MODE,E,o],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,o,E,s,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,o,E,s]}]},s,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:o,keywords:g}}};const xs=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("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={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(o,{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,s,A,e.C_BLOCK_COMMENT_MODE,E,o],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:[o,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,o,E,s,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,o,E,s]}]},s,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",s]},{begin:e.IDENT_RE+"::",keywords:g},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}};const zs=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/}),s={className:"subst",begin:/\{/,end:/\}/,keywords:t},o=e.inherit(s,{illegal:/\n/}),E={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,o]},B={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},c=e.inherit(B,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]});s.contains=[B,E,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE],o.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]}},Js=["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"],js=["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"],Zs=["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"],vs=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Ps=["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 Ls=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:":("+Zs.join("|")+")"},{begin:":(:)?("+vs.join("|")+")"}]},A.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ps.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:js.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...n,A.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Js.join("|")+")\\b"}]}};const Vs=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 Os=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:"eo(e,t,A-1)))}const to=function(e){const t=e.regex,A="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=A+eo("(?:<"+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"]}]},s={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:[s,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,$s,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},$s,r]}},Ao="[A-Za-z$_][0-9A-Za-z$_]*",no=["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"],io=["true","false","null","undefined","NaN","Infinity"],ro=["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"],so=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],oo=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Eo=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Bo=[].concat(oo,ro,so);const co=function(e){const t=e.regex,A=Ao,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 ao=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 go="[0-9](_*[0-9])*",lo=`\\.(${go})`,Qo="[0-9a-fA-F](_*[0-9a-fA-F])*",ho={className:"number",variants:[{begin:`(\\b(${go})((${lo})|\\.)?|(${lo}))[eE][+-]?(${go})[fFdD]?\\b`},{begin:`\\b(${go})((${lo})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${lo})[fFdD]?\\b`},{begin:`\\b(${go})[fFdD]\\b`},{begin:`\\b0[xX]((${Qo})\\.?|(${Qo})?\\.(${Qo}))[pP][+-]?(${go})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Qo})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};const uo=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 s={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]},E=ho,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,s,o,{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,s,o,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},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},E]}},wo=["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"],Mo=["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"],Ro=["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"],Io=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ko=["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(),Go=Ro.concat(Io);const Co=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=Go,n="[\\w-]+",i="("+n+"|@\\{"+n+"\\})",r=[],s=[],o=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:Mo.join(" ")},c={begin:"\\(",end:"\\)",contains:s,keywords:B,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),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=s.concat({begin:/\{/,end:/\}/,contains:r}),g={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},l={begin:i+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ko.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},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:s,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("+wo.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:":("+Ro.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Io.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 fo=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:[]}),s=e.inherit(i,{contains:[]});n.contains.push(s),i.contains.push(r);let o=[t,A];return[n,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)})),o=o.concat(n,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:o}]}]},t,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},n,i,{className:"quote",begin:"^>\\s+",contains:o,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 Do=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:/\}/},s={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},o=[e.BACKSLASH_ESCAPE,i,s],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=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),r,{className:"string",contains:o,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 Fo=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},s={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},o=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(s)}),o,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(s),"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 Yo=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:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},o={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,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{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,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,o,s]},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 s.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 mo=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 Uo=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"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">"},E=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],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(o,E),relevance:0}].concat(o,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(o),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(Q).concat(E).concat(l)}};const So=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]}},No=["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"],bo=["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"],yo=["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"],To=["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 Ho=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=po,n=yo,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("+No.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("+To.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:bo.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 xo=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"],s=["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"],o=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(...o),/\s*\(/),relevance:0,keywords:{built_in:o}};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(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:E.concat(s),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 zo(e){return e?"string"==typeof e?e:e.source:null}function Jo(e){return jo("(?=",e,")")}function jo(...e){return e.map((e=>zo(e))).join("")}function Zo(...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=>zo(e))).join("|")+")"}const vo=e=>jo(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Po=["Protocol","Type"].map(vo),Lo=["init","self"].map(vo),Vo=["Any","Self"],Oo=["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"],_o=["false","nil","true"],Ko=["assignment","associativity","higherThan","left","lowerThan","none","right"],Wo=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],Xo=["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"],qo=Zo(/[/=\-+!*%<>&|^~?]/,/[\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]/),$o=Zo(qo,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),eE=jo(qo,$o,"*"),tE=Zo(/[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=Zo(tE,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),nE=jo(tE,AE,"*"),iE=jo(/[A-Z]/,AE,"*"),rE=["autoclosure",jo(/convention\(/,Zo("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",jo(/objc\(/,nE,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],sE=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];const oE=function(e){const t={match:/\s+/,relevance:0},A=e.COMMENT("/\\*","\\*/",{contains:["self"]}),n=[e.C_LINE_COMMENT_MODE,A],i={match:[/\./,Zo(...Po,...Lo)],className:{2:"keyword"}},r={match:jo(/\./,Zo(...Oo)),relevance:0},s=Oo.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{className:"keyword",match:Zo(...Oo.filter((e=>"string"!=typeof e)).concat(Vo).map(vo),...Lo)}]},E={$pattern:Zo(/\b\w+/,/#\w+/),keyword:s.concat(Wo),literal:_o},B=[i,r,o],c=[{match:jo(/\./,Zo(...Xo)),relevance:0},{className:"built_in",match:jo(/\b/,Zo(...Xo),/(?=\()/)}],a={match:/->/,relevance:0},g=[a,{className:"operator",relevance:0,variants:[{match:eE},{match:`\\.(\\.|${$o})+`}]}],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:jo(/\\/,e,/[0\\tnr"']/)},{match:jo(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),w=(e="")=>({className:"subst",match:jo(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),M=(e="")=>({className:"subst",label:"interpol",begin:jo(/\\/,e,/\(/),end:/\)/}),R=(e="")=>({begin:jo(e,/"""/),end:jo(/"""/,e),contains:[u(e),w(e),M(e)]}),I=(e="")=>({begin:jo(e,/"/),end:jo(/"/,e),contains:[u(e),M(e)]}),d={className:"string",variants:[R(),R("#"),R("##"),R("###"),I(),I("#"),I("##"),I("###")]},k={match:jo(/`/,nE,/`/)},G=[k,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${AE}+`}],C=[{match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:sE,contains:[...g,h,d]}]}},{className:"keyword",match:jo(/@/,Zo(...rE))},{className:"meta",match:jo(/@/,nE)}],f={match:Jo(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:jo(/(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:jo(/\s+&\s+/,Jo(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:jo(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:Zo(Jo(jo(nE,/\s*:/)),Jo(jo(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+/,Zo(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:[...Ko,..._o],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]},s={$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},o={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,s),t.exports.PARAMS_CONTAINS.push(o),t.contains=t.contains.concat([o,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}/,s={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),/ *#/)}]},o=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:/""/}]},s,{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+:/},o,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:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:"string"}),o=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,o,s,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,r,o,s]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},n,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[o]},{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},s=[{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],o=[...s];return o.pop(),o.push(i),r.contains=o,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:s}};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"],sB="keyword";function oB(e,t,A=sB){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,oB(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={},s={};for(let e=1;e<=t.length;e++)s[e+n]=i[e],r[e+n]=!0,n+=TE(t[e-1]);e[A]=s,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 s=i;if(i.isCompiled)return s;[$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 o=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),o=i.keywords.$pattern,delete i.keywords.$pattern),o=o||/\w+/,i.keywords&&(i.keywords=oB(i.keywords,e.case_insensitive)),s.keywordPatternRe=t(o,!0),r&&(i.begin||(i.begin=/\B|\b/),s.beginRe=t(s.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(s.endRe=t(s.end)),s.terminatorEnd=UE(s.end)||"",i.endsWithParent&&r.terminatorEnd&&(s.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),i.illegal&&(s.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,s)})),i.starts&&A(i.starts,r),s.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}(s),s}(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?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let o={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 o.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 s=r.result?r.result:c(r.language,r.code,A);return s.code=r.code,M("after:highlight",s),s}function c(e,A,n,s){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 s=r&&r[0];if(Y+=t,null==s)return g(),0;if("begin"===I.type&&"end"===r.type&&I.index===r.index&&""===s){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 "'+s+'" 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&&""===s)return 1;if(S>1e5&&S>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return Y+=s,s.length}const k=h(e);if(!k)throw cB(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const G=uB(k);let C="",f=s||G;const D={},F=new o.__emitter(o);!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||o.languages||Object.keys(t);const n=function(e){const t={value:RB(e),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};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=o.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&&(o.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)),o.throwUnescapedHTML))throw new MB("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const i=t.textContent,s=n?B(i,{language:n,ignoreIllegals:!0}):a(i);e.innerHTML=s.value,function(e,t,n){const i=t&&A[t]||n;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,n,s.language),e.result={language:s.language,re:s.relevance,relevance:s.relevance},s.secondBest&&(e.secondBest={language:s.secondBest.language,relevance:s.secondBest.relevance}),M("after:highlightElement",{el:e,result:s,text:i})}let l=!1;function Q(){"loading"!==document.readyState?document.querySelectorAll(o.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){o=IB(o,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=s}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,s=[].slice.call(arguments),o=0,E=e.length,B="",c=!1,a=!1,g=function(){return s[r++]},l=function(){for(var A="";/\d/.test(e[o]);)A+=e[o++],t=e[o];return A.length>0?parseInt(A):null};ot?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=s)}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",Ts),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 s={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},o=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:[o,e.SHEBANG(),E,s,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},r,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}})),yB.registerLanguage("c",Hs),yB.registerLanguage("cpp",xs),yB.registerLanguage("csharp",zs),yB.registerLanguage("css",Ls),yB.registerLanguage("diff",Vs),yB.registerLanguage("go",Os),yB.registerLanguage("graphql",_s),yB.registerLanguage("ini",Ks),yB.registerLanguage("java",to),yB.registerLanguage("javascript",co),yB.registerLanguage("json",ao),yB.registerLanguage("kotlin",uo),yB.registerLanguage("less",Co),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",Do),yB.registerLanguage("php",Fo),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",Yo),yB.registerLanguage("python-repl",(function(){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),yB.registerLanguage("r",mo),yB.registerLanguage("ruby",Uo),yB.registerLanguage("rust",So),yB.registerLanguage("scss",Ho),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",xo),yB.registerLanguage("swift",oE),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}(s.t,n),A);WB(r,e,n)}else A&&WB(r,A,n);s.t=r}return i.j[e]=s,s}};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",sc="UTLD",oc="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:sc,SCHEME:oc,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 s=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:oa,formatHref:oa,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function sa(e,t){void 0===t&&(t=null);let A=xB({},ra);e&&(A=xB(A,e instanceof sa?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),s={},o=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 s.href=n,o&&(s.class=o),E&&(s.target=E),B&&(s.rel=B),c&&xB(s,c),{tagName:i,attributes:s,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 s=$B(A,Xc,cc,{[_B]:!0});tc(A,qc,ac,{[_B]:!0}),tc(s,qc),$B(s,Xc,s);const o=$B(A,Kc,Pc,{[LB]:!0});$B(o,Kc,o),tc(o,$c,o);const E=tc(o,ea);$B(E,Kc,o);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,s)),s=[]),i-=g,c-=g;const e=a.t,n=A.slice(i-c,i);r.push(ha(e,t,n))}}return s.length>0&&r.push(ha(aa,t,s)),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(s),n+=s.length}return t}(t.replace(/[A-Z]/g,(e=>e.toLowerCase()))),n=A.length,i=[];let r=0,s=0;for(;s=0&&(a+=A[s].length,g++),B+=A[s].length,r+=A[s].length,s++;r-=a,s-=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 sa(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 s("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:s}=n,o=F(A.doc,[...e]);return Y(o).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===(o=B).length?o[0].isLink:3===o.length&&o[1].isLink&&["()","[]"].includes(o[0].value+o[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))||s.addMark(e.from,e.to,t.type.create({href:e.href}))}))}var o})),s.steps.length?s:void 0}}))),this.options.openOnClick&&e.push(function(e){return new r({key:new s("handleClickLink"),props:{handleClick:(t,A,n)=>{var i,r;if(e.whenNotEditable&&t.editable)return!1;if(0!==n.button)return!1;let s=n.target;const o=[];for(;"DIV"!==s.nodeName;)o.push(s),s=s.parentNode;if(!o.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 s("handlePasteLink"),props:{handlePaste:(t,A,n)=>{const{state:i}=t,{selection:r}=i,{empty:s}=r;if(s)return!1;let o="";n.content.forEach((e=>{o+=e.textContent}));const E=Ia(o).find((e=>e.isLink&&e.value===o));return!(!o||!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=o.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=o.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 s("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:s}=e.content,o=!!this.options.considerAnyAsEmpty||s&&s.type.name===(null===(A=e.type.contentMatch.defaultType)||void 0===A?void 0:A.name),E=e.content.childCount<=1&&s&&o&&s.nodeSize<=2&&(!(s&&s.type.isLeaf)||!(s&&s.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=o.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=o.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=o.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 s=e.doc.resolve(n);if(Oa.valid(s))return s}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 s=e.doc.resolve(n);if(Oa.valid(s))return s}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,s=t>0?r.$to:r.$from,o=r.empty;if(r instanceof G){if(!i.endOfTextblock(A)||0==s.depth)return!1;o=!1,s=e.doc.resolve(t>0?s.after():s.before())}let E=Oa.findGapCursorFrom(s,t,o);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=o.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:s}=n.extensionManager,o=i||e.$to.parentOffset&&e.$from.marks();return t().insertContent({type:this.name}).command((({tr:e,dispatch:t})=>{if(t&&o&&r){const t=o.filter((e=>s.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 sg=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 og{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,s,o=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&&o.maybeStep(i).doc&&(t=o.mapping.maps[o.mapping.maps.length-1],E.push(new Eg(t,void 0,void 0,E.length+B.length))),n--,t&&A.appendMap(t,n)}else o.maybeStep(e.step);return e.selection?(r=A?e.selection.map(A.slice(n)):e.selection,s=new og(this.items.slice(0,i).append(B.reverse().concat(E)),this.eventCount-1),!1):void 0}),this.items.length,0),{remaining:s,transform:o,selection:r}}addTransform(e,t,A,n){let i=[],r=this.eventCount,s=this.items,o=!n&&s.length?s.get(s.length-1):null;for(let A=0;Acg&&(s=function(e,t){let A;return e.forEach(((e,n)=>{if(e.selection&&0==t--)return A=n,!1})),e.slice(A)}(s,E),r-=E),new og(s.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 og(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,s=this.eventCount;this.items.forEach((e=>{e.selection&&s--}),n);let o=t;this.items.forEach((t=>{let n=i.getMirror(--o);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(o+1,n));B&&s++,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,s)=>{if(s>=e)n.push(r),r.selection&&i++;else if(r.step){let e=r.step.map(t.slice(A)),s=e&&e.getMap();if(A--,s&&t.appendMap(s,A),e){let o=r.selection&&r.selection.map(t.slice(A));o&&i++;let E,B=new Eg(s.invert(),e,o),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 og(ig.from(n.reverse()),i)}}og.empty=new og(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(og.empty,og.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 s=A.getMeta("appendedTransaction");if(0==A.steps.length)return e;if(s&&s.getMeta(ug))return s.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")||s&&!1===s.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||!s&&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)),o=s?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)),og.empty,o,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 s=r.selection.resolve(r.transform.doc),o=(A?e.done:e.undone).addTransform(r.transform,t.selection.getBookmark(),i,n),E=new Bg(A?o:r.remaining,A?r.remaining:o,null,0,-1);return r.transform.setSelection(s).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=o.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=o.create({name:"starterKit",addExtensions(){var e,t,A,n,i,r,s,o,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===(s=this.options)||void 0===s?void 0:s.dropcursor)),!1!==this.options.gapcursor&&M.push(eg.configure(null===(o=this.options)||void 0===o?void 0:o.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 s("y-sync"),vg=new s("y-undo"),Pg=new s("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)}},s=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)),o=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(s),0,0));this.prosemirrorView.dispatch(o.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 s=A.get(e);if(void 0===s){if(e instanceof bi)return Xg(e,t,A,n,i,r);throw Et()}return s},Xg=(e,t,A,n,i,r)=>{const s=[],o=e=>{if(e.constructor===bi){const o=Wg(e,t,A,n,i,r);null!==o&&s.push(o)}else{const o=qg(e,t,A,n,i,r);null!==o&&o.forEach((e=>{null!==e&&s.push(e)}))}};void 0===n||void 0===i?e.toArray().forEach(o):Wn(e,new nn(i.ds,n.sv)).forEach(o);try{const o=e.getAttributes(n);void 0!==n&&(Lg(e._item,n)?Lg(e._item,i)||(o.ychange=r?r("added",e._item.id):{type:"added"}):o.ychange=r?r("removed",e._item.id):{type:"removed"});const E=t.node(e.nodeName,o,s);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 s=[],o=e.toDelta(n,i,r);try{for(let e=0;e{e._item.delete(t)}),Zg),null}return s},$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)),sl=(e,t,A)=>{const n=e.toArray(),i=Al(t),r=i.length,s=n.length,o=De(s,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:s,remove:o,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,o),e.insert(E,s),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,s=t.toArray(),o=s.length,E=De(r,o);let B=0,c=0;for(;B{for(;o-B-c>0&&r-B-c>0;){const A=s[B],E=i[B],a=s[o-c-1],g=i[r-c-1];if(A instanceof Ti&&E instanceof Array)nl(A,E)||ol(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=sl(A,E,n),t=sl(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,s=e.tname,o=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+(o>=0?0:1);let A=t.left;for(;null!==A;)!A.deleted&&A.countable&&(B+=A.length),A=A.left}}else{if(null!==s)E=t.get(s);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=o>=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,s=0;if(r.constructor===Ti)s=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),s=r.doc,o=[];return null!=r.snapshot||null!=r.prevSnapshot||null===r.binding?C.create(e.doc,[]):(t.getStates().forEach(((t,E)=>{if(A(s.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(s,r.type,qA(t.cursor.anchor),r.binding.mapping),c=hl(s,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),o.push(D.widget(c,(()=>n(A)),{key:E+"",side:10}));const r=De(B,c),s=Fe(B,c);o.push(D.inline(r,s,i(A),{inclusiveEnd:!0,inclusiveStart:!1}))}}})),C.create(e.doc,o))},dl=(e,{awarenessStateFilter:t=ul,cursorBuilder:A=wl,selectionBuilder:n=Ml,getSelection:i=(e=>e.selection)}={},s="cursor")=>new r({key:Pg,state:{init:(i,r)=>Il(r,e,t,A,n),apply(i,r,s,o){const E=Zg.getState(o),B=i.getMeta(Pg);return E&&E.isChangeOrigin||B&&B.awarenessUpdated?Il(o,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),o=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),o)&&An(qA(n.cursor.head),E)||e.setLocalStateField(s,{anchor:o,head:E})}else null!=n.cursor&&null!==hl(A.doc,A.type,qA(n.cursor.anchor),A.binding.mapping)&&e.setLocalStateField(s,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(s,null)}}}}),kl=new Set(["paragraph"]),Gl=o.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),s=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:s,prevSel:null,hasUndoOps:s.undoStack.length>0,hasRedoOps:s.redoStack.length>0}},apply:(e,t,A,n)=>{const i=Zg.getState(n).binding,r=t.undoManager,s=r.undoStack.length>0,o=r.redoStack.length>0;return i?{undoManager:r,prevSel:_g(i,A),hasUndoOps:s,hasRedoOps:o}:s!==t.hasUndoOps||o!==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,s=((e,{colors:t=Vg,colorMapping:A=new Map,permanentUserData:n=null,onFirstRender:i=(()=>{})}={})=>{let s=!1;const o=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=o.getState(t.state);if(null==e.snapshot&&null==e.prevSnapshot&&(s||null!==t.state.doc.content.findDiffStart(t.state.doc.type.createAndFill().content))){if(s=!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 o})(e,{...n?{...n}:{},...i?{onFirstRender:i}:{}});return[s,t]}}),Cl=e=>Array.from(e.entries()).map((([e,t])=>({clientId:e,...t.user}))),fl=()=>null,Dl=o.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)<(s=t.length)?r:s;var r,s;const o=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*A,o)),e.cbuf.set(t.subarray(i)),e.cpos=o)})(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)<(s=t.length)?r:s;var r,s;const o=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*A,o)),e.cbuf.set(t.subarray(i)),e.cpos=o)})(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=sQ?e=>sQ.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=[],s=[],o=[],E=[];null===e?E.push(t):null==i?null!=e&&r.push(t):(s.push(t),lQ(i,e)||o.push(t)),(r.length>0||o.length>0||E.length>0)&&this.emit("change",[{added:r,updated:o,removed:E},"local"]),this.emit("update",[{added:r,updated:s,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 s=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(s),t(e)})).catch((e=>{clearTimeout(s),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))},sh=(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)}},oh=sh;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:sh(e,A,n);break;case 2:oh(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=[],s=[],o=[],E=[],B=jQ(n);for(let t=0;t0||o.length>0||E.length>0)&&e.emit("change",[{added:r,updated:o,removed:E},A]),(r.length>0||s.length>0||E.length>0)&&e.emit("update",[{added:r,updated:s,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&&s<=57343){if(s>=55296&&s<=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 s=Fh.exec(r);if(s&&(s=s[0],A=s.toLowerCase(),this.protocol=s,r=r.substr(s.length)),(t||s||r.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i="//"===r.substr(0,2),!i||s&&Th[s]||(r=r.substr(2),this.slashes=!0)),!Th[s]&&(i||s&&!Hh[s])){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),s=A.match(ph);s&&(n.push(s[1]),i.unshift(s[2])),i.length&&(r=i.join(".")+r),this.hostname=n.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),s&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const o=r.indexOf("#");-1!==o&&(this.hash=r.substr(o),r=r.slice(0,o));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(s===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 s=A.write(e,r+1);if(s<0){i=r+A.end();break}i=r+s,r=0===s?i+1:i}const s=t+e.slice(i);return t="",s}}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 s=A,o=s+i-1;for(;s<=o;){const t=s+o>>>1,A=e[t];if(An))return e[t+i];o=t-1}}return-1}const ru=nu(Vh);function su(e,t=eu.Legacy){return ru(e,t)}function ou(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=su(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:ou,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,s;const o=e.posMax,E=e.pos;for(e.pos=t+1,n=1;e.pos32))return r;if(41===n){if(0===s)break;s--}i++}return t===i||0!==s||(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 s={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(n)s.str=n.str,s.marker=n.marker;else{if(r>=A)return s;let n=e.charCodeAt(r);if(34!==n&&39!==n&&40!==n)return s;t++,r++,40===n&&(n=41),s.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],s=r.info?uu(r.info).trim():"";let o,E="",B="";if(s){const e=s.split(/(\s+)/g);E=e[0],B=e.slice(2).join("")}if(o=A.highlight&&A.highlight(r.content,E,B)||du(r.content),0===o.indexOf("${o}\n`}return`
${o}
\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,s=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<=s);A--);if(n.length=A+1,"text"!==r.type)continue;let o=r.content,E=0,B=o.length;e:for(;E=0)Q=o.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 s=n[r];if("link_close"!==s.type){if("html_inline"===s.type&&(/^\s]/i.test(s.content)&&i>0&&i--,/^<\/a\s*>/i.test(s.content)&&i++),!(i>0)&&"text"===s.type&&e.md.linkify.test(s.content)){const i=s.content;let o=e.md.linkify.match(i);const E=[];let B=s.level,c=0;o.length>0&&0===o[0].index&&r>0&&"text_special"===n[r-1].type&&(o=o.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 s=new e.Token("link_open","a",1);s.attrs=[["href",A]],s.level=B++,s.markup="linkify",s.info="auto",E.push(s);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=o[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,s=e;sA?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]],sw=[["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 s=e.src.charCodeAt(r++);if(124!==s&&45!==s&&58!==s)return!1;if(r>=e.eMarks[i])return!1;const o=e.src.charCodeAt(r++);if(124!==o&&45!==o&&58!==o&&!Gu(o))return!1;if(45===s&&Gu(o))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 s=e.src.charCodeAt(i);if(126!==s&&96!==s)return!1;let o=i;i=e.skipChars(i,s);let E=i-o;if(E<3)return!1;const B=e.src.slice(o,i),c=e.src.slice(i,r);if(96===s&&c.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;let a=t,g=!1;for(;!(a++,a>=A||(i=o=e.bMarks[a]+e.tShift[a],r=e.eMarks[a],i=4||(i=e.skipChars(i,s),i-o=4)return!1;if(62!==e.src.charCodeAt(i))return!1;if(n)return!0;const o=[],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 s=n;for(o.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]=s-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=s,e.parentType=g,w[1]=e.line;for(let A=0;A=4)return!1;let r=e.bMarks[t]+e.tShift[t];const s=e.src.charCodeAt(r++);if(42!==s&&45!==s&&95!==s)return!1;let o=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,s=e.bMarks[E]+e.tShift[E],a=Number(e.src.slice(s,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?(o=e.push("ordered_list_open","ol",1),1!==a&&(o.attrs=[["start",a]])):o=e.push("bullet_list_open","ul",1);const u=[E,0];o.map=u,o.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;o=e.push("list_item_open","li",1),o.markup=String.fromCharCode(Q);const u=[E,0];o.map=u,c&&(o.info=e.src.slice(s,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,o=e.push("list_item_close","li",-1),o.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 o(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,s=n.length;i=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(i))return!1;let s=e.src.slice(i,r),o=0;for(;o=4)return!1;let s=e.src.charCodeAt(i);if(35!==s||i>=r)return!1;let o=1;for(s=e.src.charCodeAt(++i);35===s&&i6||ii&&Gu(e.src.charCodeAt(E-1))&&(r=E),e.line=t+1;const B=e.push("heading_open","h"+String(o),1);B.markup="########".slice(0,o),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(o),-1).markup="########".slice(0,o),!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,s=0,o=t+1;for(;o3)continue;if(e.sCount[o]>=e.blkIndent){let t=e.bMarks[o]+e.tShift[o];const A=e.eMarks[o];if(t=A))){s=61===r?1:2;break}}if(e.sCount[o]<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,s=n.length;i=A))&&!(e.sCount[s]=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=!o,e.isEmpty(e.line-1)&&(o=!0),s=e.line,s0&&(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 s;i%2&&(s=e.push("text","",0),s.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,s=String.fromCharCode(n.marker),o=e.tokens[n.token];o.type=r?"strong_open":"em_open",o.tag=r?"strong":"em",o.nesting=1,o.markup=r?s+s:s,o.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?s+s:s,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 s=0;so;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[s]=s-E+n,r[E]=n,A.open=!1,t.end=s,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 s=r.url;if(s.length<=i.length)return!1;s=s.replace(/\*+$/,"");const o=e.md.normalizeLink(s);if(!e.md.validateLink(o))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="linkify",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(s);const A=e.push("link_close","a",-1);A.markup="linkify",A.info="auto"}return e.pos+=s.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 s="\\"+r;if(!t){const t=e.push("text_special","",0);t.content=i<256&&0!==aw[i]?r:s,t.markup=s,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(s=e.md.normalizeLink(i.str),e.md.validateLink(s)?Q=i.pos:s="",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;s=r.href,o=r.title}if(!t){e.pos=g,e.posMax=l;const t=[["href",s]];e.push("link_open","a",1).attrs=t,o&&t.push(["title",o]),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,s,o,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,o=e.md.helpers.parseLinkDestination(e.src,r,e.posMax),o.ok&&(c=e.md.normalizeLink(o.str),e.md.validateLink(c)?r=o.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)),s=e.env.references[Fu(i)],!s)return e.pos=a,!1;c=s.href,E=s.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=su(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;s||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(s){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(""),s=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 s=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+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","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,s,o,E,B;if(this.re.schema_test.test(e))for(o=this.re.schema_search,o.lastIndex=0;null!==(t=o.exec(e));)if(i=this.testSchemaAt(e,t[2],o.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,s=n.index+n[0].length,(this.__index__<0||rthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=r,this.__last_index__=s))),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,s=e.lastIndexOf("-");s<0&&(s=0);for(let A=0;A=128&&Pw("not-basic"),t.push(e.charCodeAt(A));for(let E=s>0?s+1:0;E=A&&Pw("invalid-input");const s=(o=e.charCodeAt(E++))>=48&&o<58?o-48+26:o>=65&&o<91?o-65:o>=97&&o<123?o-97:Hw;s>=Hw&&Pw("invalid-input"),s>Zw((Tw-n)/t)&&Pw("overflow"),n+=s*t;const B=i<=r?1:i>=r+26?26:i-r;if(sZw(Tw/c)&&Pw("overflow"),t*=c}const B=t.length+1;r=_w(n-s,B,0==s),Zw(n/B)>Tw-i&&Pw("overflow"),i+=Zw(n/B),n%=B,t.splice(n++,0,i)}var o;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 s=t.length;let o=s;for(s&&t.push("-");o=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||ou(e)||(t=e||{},e="default"),this.inline=new Gw,this.block=new ow,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(ou(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 sM=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 oM{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 oM(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()}}(sM,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 s=t?t.marks:[];t&&t.type.name===this.options.hardBreakNodeName&&(s=s.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 o=n;if(n="",t&&t.isText&&s.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&&(o+=n,(t=i?t.withText(i):null)||(s=A))}if(t&&t.isText&&s.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)||(s=A))}let E=s.length?s[s.length-1]:null,B=E&&!1===this.marks[E.type.name].escape,c=s.length-(B?1:0);e:for(let e=0;en?s=s.slice(0,n).concat(t).concat(s.slice(n,e)).concat(s.slice(e+1,c)):n>e&&(s=s.slice(0,e).concat(s.slice(e+1,n)).concat(t).concat(s.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,s)=>{s&&n&&this.flushClose(1),this.wrapBlock(t,A(s),e,(()=>this.render(i,e,s)))})),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=o.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,s=e.repeat(" ",r+2),o=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=o%2?") ":". ";e.renderList(t,s,(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,s;const A=e.firstElementChild,{nextElementSibling:o}=A,E=null!==(n=null===(i=t.match(/^\s+/))||void 0===i?void 0:i[0])&&void 0!==n?n:"",B=o?"":null!==(r=null===(s=t.match(/\s+$/))||void 0===s?void 0:s[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 sR=o.create({name:"markdownClipboard",addOptions:()=>({transformPastedText:!1,transformCopiedText:!1}),addProseMirrorPlugins(){return[new r({key:new s("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}})]}}),oR=o.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}),sR.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=o.create({name:"trailingNode",addOptions:()=>({node:"paragraph",notAfter:["paragraph"]}),addProseMirrorPlugins(){const e=new s(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:s}=n;if(e.getState(n))return r.insert(i.content.size,s.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,s;const o={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),r=i.length;r-- >0;)s=i[r],n&&!n(s,e,t)||o[s]||(t[s]=e[s],o[s]=!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 s=Object.create(VR);return PR.toFlatObject(e,s,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),LR.call(s,e.message,t,A,n,i),s.cause=e,s.name=e.name,r&&Object.assign(s,r),s};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,s=A.indexes,o=(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(!o&&PR.isBlob(e))throw new LR("Blob is not supported. Use a Buffer instead.");return PR.isArrayBuffer(e)||PR.isTypedArray(e)?o&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function B(e,A,i){let o=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,"[]"))&&(o=PR.toArray(e)))return A=KR(A),o.forEach((function(e,n){!PR.isUndefined(e)&&null!==e&&t.append(!0===s?WR([A],n,r):null===s?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},sI={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"]},oI="undefined"!=typeof window&&"undefined"!=typeof document,EI=(BI="undefined"!=typeof navigator&&navigator.product,oI&&["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:oI,hasStandardBrowserWebWorkerEnv:cI,hasStandardBrowserEnv:EI}),...sI};function gI(e){function t(e,A,n,i){let r=e[i++];if("__proto__"===r)return!0;const s=Number.isFinite(+r),o=i>=e.length;return r=!r&&PR.isArray(n)?n.length:r,o?(n[r]=PR.hasOwnProp(n,r)?[n[r],A]:A,!s):(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 s=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,A)=>t.toUpperCase()+A))}(i):String(i).trim();s!==i&&delete t[i],t[s]=MI(n),A[s]=!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 s=[e+"="+encodeURIComponent(t)];PR.isNumber(A)&&s.push("expires="+new Date(A).toGMTString()),PR.isString(n)&&s.push("path="+n),PR.isString(i)&&s.push("domain="+i),!0===r&&s.push("secure"),document.cookie=s.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,s=0;return t=void 0!==t?t:1e3,function(o){const E=Date.now(),B=n[s];i||(i=E),A[r]=o,n[r]=E;let c=s,a=0;for(;c!==r;)a+=A[c++],c%=e;if(r=(r+1)%e,r===s&&(s=(s+1)%e),E-i{const r=i.loaded,s=i.lengthComputable?i.total:void 0,o=r-A,E=n(o);A=r;const B={loaded:r,total:s,progress:s?r/s:void 0,bytes:o,rate:E||void 0,estimated:E&&s&&r<=s?(s-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,s,{responseType:o,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!==(s=i.getContentType())){const[e,...t]=s?s.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:o&&"text"!==o&&"json"!==o?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),o&&"json"!==o&&(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 s(e,t){return PR.isUndefined(t)?PR.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function o(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:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:o,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,s=r(e[n],t[n],n);PR.isUndefined(s)&&r!==o||(A[n]=s)})),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],s=t[r];if(s){const t=e[r],A=void 0===t||s(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 s=[];let o=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(o=o&&e.synchronous,s.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(!o){const e=[pI.bind(this),void 0];for(e.unshift.apply(e,s),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=o.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 s("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=o.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 s=A.tr;return e.forEach((e=>{e.steps.forEach((e=>{e.getMap().forEach(((e,t,n,o)=>{A.doc.nodesBetween(n,o,((e,t)=>{"heading"===e.type.name&&e.forEach(((e,A)=>{e.isText&&!Boolean(e.marks.find((e=>"textStyle"===e.type.name)))&&(s=s.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)))&&(s=s.addMark(t+A,t+A+e.nodeSize+1,r))}))}))}))}))})),s}})]});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 s=[];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 od(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=sd(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),s=i.nextCell(e.pos-r,t,A);return null==s?null:e.node(0).resolve(r+s)}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));o.unshift(t.pos-i);const E=o.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(s.resolve(n),s.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)),o.leftn.bottom){const e={...E.attrs,rowspan:Math.min(o.bottom,n.bottom)-Math.max(o.top,n.top)};E=o.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),s=i.findCell(t.pos-r),o=i.findCell(A.pos-r),E=t.node(0);return s.top<=o.top?(s.top>0&&(t=E.resolve(r+i.map[s.left])),o.bottom0&&(A=E.resolve(r+i.map[o.left])),s.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),s=i.findCell(t.pos-r),o=i.findCell(A.pos-r),E=t.node(0);return s.left<=o.left?(s.left>0&&(t=E.resolve(r+i.map[s.top*i.width])),o.right0&&(A=E.resolve(r+i.map[o.top*i.width])),s.right{t.push(D.node(A,A+e.nodeSize,{class:"selectedCell"}))})),C.create(e.doc,t)}var wd=new s("fix-tables");function Md(e,t,A,n){const i=e.childCount,r=t.childCount;e:for(let s=0,o=0;s{"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==o.header_cell;c.push(i?B||(B=o.header_cell.createAndFill()):E||(E=o.cell.createAndFill()))}const a=o.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 s=Nd(i,e,t);if(null==s)return!1;if("horiz"==e)return fd(A,n,b.near(A.doc.resolve(r.head+t),t));{const i=A.doc.resolve(s),r=ad(i,e,t);let o;return o=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,o)}}}function Fd(e,t){return(A,n,i)=>{if(!i)return!1;const r=A.selection;let s;if(r instanceof Qd)s=r;else{const n=Nd(i,e,t);if(null==n)return!1;s=new Qd(A.doc.resolve(n))}const o=ad(s.$headCell,e,t);return!!o&&fd(A,n,new Qd(s.$anchorCell,o))}}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=sd(e.state.doc.resolve(t));return!!A&&(e.dispatch(e.state.tr.setSelection(new Qd(A))),!0)}function Ud(e,t,A){if(!od(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,s=i.type.schema,o=[];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&&(o=o.type.createChecked(gd(o.attrs,o.attrs.colspan,A+o.attrs.colspan-n),o.content)),s.push(o),A+=o.attrs.colspan;for(let A=1;Ai&&(t=t.type.create({...t.attrs,rowspan:Math.max(1,i-t.attrs.rowspan)},t.content)),s.push(t)}e.push(H.from(s))}A=e,t=i}return{width:e,height:t,rows:A}}(n,s.right-s.left,s.bottom-s.top),Gd(e.state,e.dispatch,r,s,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=sd(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 s(){e.root.removeEventListener("mouseup",s),e.root.removeEventListener("dragstart",s),e.root.removeEventListener("mousemove",o),null!=rd.getState(e.state)&&e.dispatch(e.state.tr.setMeta(rd,-1))}function o(A){const i=A,o=rd.getState(e.state);let E;if(null!=o)E=e.state.doc.resolve(o);else if(bd(e,i.target)!=n&&(E=yd(e,t),!E))return s();E&&r(E,i)}e.root.addEventListener("mouseup",s),e.root.addEventListener("dragstart",s),e.root.addEventListener("mousemove",o)}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?sd(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 s;let o=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 s=-1;if(n){const{left:i,right:r}=n.getBoundingClientRect();t.clientX-i<=A?s=Jd(e,t,"left",A):r-t.clientX<=A&&(s=Jd(e,t,"right",A))}if(s!=r.activeHandle){if(!i&&-1!==s){const t=e.state.doc.resolve(s),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,s)}}}(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 s=e.state.doc.nodeAt(r.activeHandle),o=function(e,t,{colspan:A,colwidth:n}){const i=n&&n[n.length-1];if(i)return i;const r=e.domAtPos(t);let s=r.node.childNodes[r.offset].offsetWidth,o=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),s=n.start(-1),o=r.colCount(n.pos-s)+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,s=sd(e.state.doc.resolve(r));if(!s)return-1;if("right"==A)return s.pos;const o=Ad.get(s.node(-1)),E=s.start(-1),B=o.map.indexOf(s.pos-E);return B%o.width==0?-1:E+o.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[o-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[s-t.width]){const t=A.nodeAt(B).attrs;e.setNodeMarkup(e.mapping.slice(o).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,s;if(i instanceof Qd){if(i.$anchorCell.pos!=i.$headCell.pos)return!1;r=i.$anchorCell.nodeAfter,s=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;s=null==(A=sd(i.$from))?void 0:A.pos}if(null==r||null==s)return!1;if(1==r.attrs.colspan&&1==r.attrs.rowspan)return!1;if(t){let A=r.attrs;const o=[],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(!od(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,s;if(n instanceof p&&(s=n.node.type.spec.tableRole)){if("cell"==s||"header_cell"==s)r=Qd.create(i,n.from);else if("row"==s){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 s=0,o=!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)},sk=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,s=0;e({insertTable:({rows:e=3,cols:t=3,withHeaderRow:A=!0}={})=>({tr:n,dispatch:i,editor:r})=>{const s=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),s=[],o=[];for(let e=0;e({state:e,dispatch:t})=>function(e,t){if(!od(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(!od(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(!od(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(!od(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(!od(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(!od(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(!od(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}))})}),ok=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=ok.extend({addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{var t;const A=null!==(t=e.getAttribute("colwidth"))&&void 0!==t?t:e.style.width;return Boolean(A)?[parseInt(A,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=>{var t;const A=null!==(t=e.getAttribute("colwidth"))&&void 0!==t?t:e.style.width;return Boolean(A)?[parseInt(A,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=sk.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:s}=e,o=q(A),E=new RegExp(`\\s${o}$`),B=r?"^":"",c=n?new RegExp(`${B}${o}.*?(?=\\s${o}|$)`,"gm"):new RegExp(`${B}(?:^)?${o}[^\\s${o}]*`,"gm"),a=(null===(t=s.nodeBefore)||void 0===t?void 0:t.isText)&&s.nodeBefore.text;if(!a)return null;const g=s.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=s.pos?{range:{from:u,to:w},query:l[0].slice(A.length),text:l[0]}:null}const wk=new s("suggestion");function Mk({pluginKey:e=wk,editor:t,char:A="@",allowSpaces:n=!1,allowedPrefixes:i=[" "],startOfLine:s=!1,decorationTag:o="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,s,o,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===(s=null==h?void 0:h.onBeforeUpdate)||void 0===s||s.call(h,Q)),(I||R)&&(Q.items=await c({editor:t,query:k.query})),d&&(null===(o=null==h?void 0:h.onExit)||void 0===o||o.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,o,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:s,$position:a.$from}),o=`id_${Math.floor(4294967295*Math.random())}`;e&&g({editor:t,state:E,range:e.range})?(u.active=!0,u.decorationId=r.decorationId?r.decorationId:o,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:o,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=o.create({name:Rk,addProseMirrorPlugins(){return[Mk({pluginKey:new s(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,s="/"===(null===(A=n.parent.textContent)||void 0===A?void 0:A.charAt(0));return i&&r&&s},command:({editor:e,props:t})=>{var A,n,i;const{view:r,state:s}=e,{$head:o,$from:E}=s.selection,B=E.pos,c=Boolean(null==o?void 0:o.nodeBefore)?B-(null!==(i=null===(A=o.nodeBefore.text)||void 0===A?void 0:A.substring(null===(n=o.nodeBefore.text)||void 0===n?void 0:n.indexOf("/")).length)&&void 0!==i?i:0):E.start(),a=s.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:s,height:o}=t.attrs;i.src=r,i.style.width=Number.isInteger(s)?`${s}px`:s,i.style.height=Number.isInteger(o)?`${o}px`:o,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(s)?s:"auto"} × ${Number.isInteger(o)?o:"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 s=i.width,o=i.height,E=r.clientX,c=e=>{const t=s+(e.clientX-E),A=t/(s/o);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:s}=i;if(B.textContent=`${r} × ${s}`,"function"==typeof A){const{view:n}=e,i=n.state.tr.setNodeMarkup(A(),null,Object.assign(Object.assign({},t.attrs),{width:r,height:s}));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,s]=e;return{src:A,alt:t,title:n,height:i,width:r,isDraggable:s}}})]},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:s}=e,{lowlight:o}=pB,E=[];E.push(zg.configure(Object.assign({history:!1,codeBlock:!1},t?{}:{hardBreak:!1})),Mr,kr,ps.configure({lowlight:o}),gk.configure({resizable:!0,cellMinWidth:48}),Bk,ak,ck,Ck.configure({inline:!0}),qI.configure({uploadUrl:i}),da,BR,fa.configure({placeholder:r}),Ae,...s?[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(oR.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"]}),oe,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.cssSrc=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())}onCssSrcChange(){if(Boolean(this.cssSrc&&this.element.shadowRoot)){const e=document.createElement("link");e.rel="stylesheet",e.href=this.cssSrc,e.setAttribute("data-zen-editor-css",""),this.element.shadowRoot.prepend(e)}}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]),this.onCssSrcChange()}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"],cssSrc:["onCssSrcChange"]}}};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",this.menuContent.classList.add("zen-editor-menu-submenu"),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:s,isDisabled:o=null,isActive:E=null,flip:B="none"}=this.itemProps;return t(i,{key:"e638ab45f15bdac0e2299bb27e8471960771cadf"},t("button",{key:"ad6d91c4671375fbc9252265728e3523846e539d",class:`menu-item${o&&o()?" is-disabled":""}${E&&E()?" is-active":""}${"none"!==B?` flip-${B}`:""}${(null==e?void 0:e.flip)?` flip-${e.flip}`:""}${s&&r?" has-submenu":""}`,onClick:o&&o()?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:"8bc8e84b932fd5263dd1a8325994f729222d97f5",class:"label"},A),s&&!r?t("i",{class:"coolicons ci-caret_down_sm"}):null),s&&r&&t("button",{key:"1c4d019a331a3c2f4bf91345f723ab8fce17e22a",class:"menu-item",ref:e=>this.menuTippyTarget=e},t("i",{key:"280de3dced155e6daba5f885057c2f4db5b60068",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-b50c412c.js b/www/js/zui3/zen-editor/p-37ea4164.js similarity index 95% rename from www/js/zui3/zen-editor/p-b50c412c.js rename to www/js/zui3/zen-editor/p-37ea4164.js index 2c68d87ee4..12c6ac08b5 100644 --- a/www/js/zui3/zen-editor/p-b50c412c.js +++ b/www/js/zui3/zen-editor/p-37ea4164.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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,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 + *-----------------------------------------------------------------------------*/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 diff --git a/www/js/zui3/zen-editor/p-f7ffc9dd.js b/www/js/zui3/zen-editor/p-389a100a.js similarity index 99% rename from www/js/zui3/zen-editor/p-f7ffc9dd.js rename to www/js/zui3/zen-editor/p-389a100a.js index fe8e4fc78e..8eb605df26 100644 --- a/www/js/zui3/zen-editor/p-f7ffc9dd.js +++ b/www/js/zui3/zen-editor/p-389a100a.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-1779e198.js b/www/js/zui3/zen-editor/p-5734a016.js similarity index 89% rename from www/js/zui3/zen-editor/p-1779e198.js rename to www/js/zui3/zen-editor/p-5734a016.js index 2c5fa65ee2..31ca85843f 100644 --- a/www/js/zui3/zen-editor/p-1779e198.js +++ b/www/js/zui3/zen-editor/p-5734a016.js @@ -1,4 +1,4 @@ -import{conf as e,language as t}from"./p-468cbb6a.js";import"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{conf as e,language as t}from"./p-846e6fb1.js";import"./p-99deb4a6.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-6e41e876.js b/www/js/zui3/zen-editor/p-6a06dace.js similarity index 98% rename from www/js/zui3/zen-editor/p-6e41e876.js rename to www/js/zui3/zen-editor/p-6a06dace.js index ad7fd104b2..0bf1fec250 100644 --- a/www/js/zui3/zen-editor/p-6e41e876.js +++ b/www/js/zui3/zen-editor/p-6a06dace.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-468cbb6a.js b/www/js/zui3/zen-editor/p-846e6fb1.js similarity index 98% rename from www/js/zui3/zen-editor/p-468cbb6a.js rename to www/js/zui3/zen-editor/p-846e6fb1.js index 179136d042..b02dcc86ee 100644 --- a/www/js/zui3/zen-editor/p-468cbb6a.js +++ b/www/js/zui3/zen-editor/p-846e6fb1.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-86068437.js b/www/js/zui3/zen-editor/p-8c90a6d8.js similarity index 99% rename from www/js/zui3/zen-editor/p-86068437.js rename to www/js/zui3/zen-editor/p-8c90a6d8.js index 572c55f5dc..6cb023fcc2 100644 --- a/www/js/zui3/zen-editor/p-86068437.js +++ b/www/js/zui3/zen-editor/p-8c90a6d8.js @@ -1,4 +1,4 @@ -import{t,m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{t,m as e}from"./p-99deb4a6.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-aa688caf.js b/www/js/zui3/zen-editor/p-99deb4a6.js similarity index 90% rename from www/js/zui3/zen-editor/p-aa688caf.js rename to www/js/zui3/zen-editor/p-99deb4a6.js index c7c4d83b1b..d7048e0a74 100644 --- a/www/js/zui3/zen-editor/p-aa688caf.js +++ b/www/js/zui3/zen-editor/p-99deb4a6.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:"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()}} +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.cssSrc=void 0,this.editor=null,this.isFullscreen=!1,this.rendered=!1}onCssSrcChange(){const t=this.element.shadowRoot;if(t&&(this.cssLinkEl&&this.cssLinkEl.parentNode&&(this.cssLinkEl.parentNode.removeChild(this.cssLinkEl),this.cssLinkEl=void 0),this.cssSrc)){const i=document.createElement("link");i.rel="stylesheet",i.href=this.cssSrc,i.setAttribute("data-zen-editor-css",""),t.prepend(i),this.cssLinkEl=i}}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)})),this.onCssSrcChange()}render(){var t,i,n;return"full"===this.size&&(this.resizable=!1),e(s,{key:"a4dfca77a86728f99fde6dceb803595394e57415"},Boolean(this.editor)?null:e("div",{class:`editor-skeleton ${this.size}`}),this.rendered&&e("zen-editor-core",{key:"4789f5c564555d02107cefaaf1197b127c6eb412",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,cssSrc:this.cssSrc,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{cssSrc:["onCssSrcChange"],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-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))}), +lG({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>import("./p-150041c4.js").then((t=>t.TagAutoInterpolationDollar))}),lG({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>import("./p-150041c4.js").then((t=>t.TagAngleInterpolationDollar))}),lG({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>import("./p-150041c4.js").then((t=>t.TagBracketInterpolationDollar))}),lG({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>import("./p-150041c4.js").then((t=>t.TagAngleInterpolationBracket))}),lG({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>import("./p-150041c4.js").then((t=>t.TagBracketInterpolationBracket))}),lG({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>import("./p-150041c4.js").then((t=>t.TagAutoInterpolationDollar))}),lG({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>import("./p-150041c4.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-b50c412c.js")}), +lG({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>import("./p-37ea4164.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-bb08ba1a.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-b02a2f4c.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-1779e198.js")}), +lG({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>import("./p-5734a016.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-9db7a80f.js")}), +lG({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>import("./p-db8ed172.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-69409066.js")}), +lG({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>import("./p-becce7d9.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-0a0c3f37.js")}), +lG({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>import("./p-018b9303.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-f7ffc9dd.js")}), +lG({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>import("./p-389a100a.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-468cbb6a.js")}), +lG({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>import("./p-846e6fb1.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-eca4d606.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-fd612a36.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-6e41e876.js")}); +lG({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>import("./p-6a06dace.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-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)))})); +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-ffd3719d.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-6aacc7a8.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-db5338bb.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-13eec5c0.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-e7a3a0af.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-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 +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-8c90a6d8.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-bb08ba1a.js b/www/js/zui3/zen-editor/p-b02a2f4c.js similarity index 98% rename from www/js/zui3/zen-editor/p-bb08ba1a.js rename to www/js/zui3/zen-editor/p-b02a2f4c.js index b39b4df7b7..68efc87f9c 100644 --- a/www/js/zui3/zen-editor/p-bb08ba1a.js +++ b/www/js/zui3/zen-editor/p-b02a2f4c.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-69409066.js b/www/js/zui3/zen-editor/p-becce7d9.js similarity index 90% rename from www/js/zui3/zen-editor/p-69409066.js rename to www/js/zui3/zen-editor/p-becce7d9.js index caefe4cf6c..a5420f81c0 100644 --- a/www/js/zui3/zen-editor/p-69409066.js +++ b/www/js/zui3/zen-editor/p-becce7d9.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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,s=(e,s,r,p)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let d of o(s))i.call(e,d)||d===r||t(e,d,{get:()=>s[d],enumerable:!(p=n(s,d))||p.enumerable});return e},r={};s(r,e,"default");var p={comments:{blockComment:["{/*","*/}"]},brackets:[["{","}"]],autoClosingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"“",close:"”"},{open:"‘",close:"’"},{open:"`",close:"`"},{open:"{",close:"}"},{open:"(",close:")"},{open:"_",close:"_"},{open:"**",close:"**"},{open:"<",close:">"}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:r.languages.IndentAction.None,appendText:"- "}},{beforeText:/^\s*\+ .+/,action:{indentAction:r.languages.IndentAction.None,appendText:"+ "}},{beforeText:/^\s*\* .+/,action:{indentAction:r.languages.IndentAction.None,appendText:"* "}},{beforeText:/^> /,action:{indentAction:r.languages.IndentAction.None,appendText:"> "}},{beforeText:/<\w+/,action:{indentAction:r.languages.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:r.languages.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:r.languages.IndentAction.Outdent}},...Array.from({length:100},((e,t)=>({beforeText:new RegExp(`^${t}\\. .+`),action:{indentAction:r.languages.IndentAction.None,appendText:`${t+1}. `}})))]},d={defaultToken:"",tokenPostfix:".mdx",control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:"meta.content",next:"@frontmatter",nextEmbedded:"yaml"}],[/^\s*import/,{token:"keyword",next:"@import",nextEmbedded:"js"}],[/^\s*export/,{token:"keyword",next:"@export",nextEmbedded:"js"}],[/<\w+/,{token:"type.identifier",next:"@jsx"}],[/<\/?\w+>/,"type.identifier"],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:"white"},{token:"comment"},{token:"keyword",next:"@header"}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,["white","comment","keyword","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,["white","comment","keyword"]],[/`{3,}(\s.*)?$/,{token:"string",next:"@codeblock_backtick"}],[/~{3,}(\s.*)?$/,{token:"string",next:"@codeblock_tilde"}],[/`{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_backtick",nextEmbedded:"$1"}],[/~{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_tilde",nextEmbedded:"$1"}],[/^(\s*)(-{4,})$/,["white","comment"]],[/^(\s*)(>+)/,["white","comment"]],{include:"content"}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,["","string.link","","type.identifier","string.link",""]],[/(\[)(.+)(]\()(.+)(\))/,["","type.identifier","","string.link",""]],[/(\[)(.+)(]\[)(.+)(])/,["","type.identifier","","type.identifier",""]],[/(\[)(.+)(]:\s+)(\S*)/,["","type.identifier","","string.link"]],[/(\[)(.+)(])/,["","type.identifier",""]],[/`.*`/,"variable.source"],[/_/,{token:"emphasis",next:"@emphasis_underscore"}],[/\*(?!\*)/,{token:"emphasis",next:"@emphasis_asterisk"}],[/\*\*/,{token:"strong",next:"@strong"}],[/{/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}]],import:[[/'\s*(;|$)/,{token:"string",next:"@pop",nextEmbedded:"@pop"}]],expression:[[/{/,{token:"delimiter.bracket",next:"@expression"}],[/}/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],export:[[/^\s*$/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],jsx:[[/\s+/,""],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,["attribute.name","operator","string"]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,["attribute.name","operator","string"]],[/(\w+(?=\s|>|={|$))/,["attribute.name"]],[/={/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}],[/>/,{token:"type.identifier",next:"@pop"}]],header:[[/.$/,{token:"keyword",next:"@pop"}],{include:"content"},[/./,{token:"keyword"}]],strong:[[/\*\*/,{token:"strong",next:"@pop"}],{include:"content"},[/./,{token:"strong"}]],emphasis_underscore:[[/_/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],emphasis_asterisk:[[/\*(?!\*)/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],frontmatter:[[/^---$/,{token:"meta.content",nextEmbedded:"@pop",next:"@pop"}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]]}};export{p as conf,d as language} \ No newline at end of file + *-----------------------------------------------------------------------------*/var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s=(e,s,r,d)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let p of o(s))i.call(e,p)||p===r||t(e,p,{get:()=>s[p],enumerable:!(d=n(s,p))||d.enumerable});return e},r={};s(r,e,"default");var d={comments:{blockComment:["{/*","*/}"]},brackets:[["{","}"]],autoClosingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"“",close:"”"},{open:"‘",close:"’"},{open:"`",close:"`"},{open:"{",close:"}"},{open:"(",close:")"},{open:"_",close:"_"},{open:"**",close:"**"},{open:"<",close:">"}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:r.languages.IndentAction.None,appendText:"- "}},{beforeText:/^\s*\+ .+/,action:{indentAction:r.languages.IndentAction.None,appendText:"+ "}},{beforeText:/^\s*\* .+/,action:{indentAction:r.languages.IndentAction.None,appendText:"* "}},{beforeText:/^> /,action:{indentAction:r.languages.IndentAction.None,appendText:"> "}},{beforeText:/<\w+/,action:{indentAction:r.languages.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:r.languages.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:r.languages.IndentAction.Outdent}},...Array.from({length:100},((e,t)=>({beforeText:new RegExp(`^${t}\\. .+`),action:{indentAction:r.languages.IndentAction.None,appendText:`${t+1}. `}})))]},p={defaultToken:"",tokenPostfix:".mdx",control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:"meta.content",next:"@frontmatter",nextEmbedded:"yaml"}],[/^\s*import/,{token:"keyword",next:"@import",nextEmbedded:"js"}],[/^\s*export/,{token:"keyword",next:"@export",nextEmbedded:"js"}],[/<\w+/,{token:"type.identifier",next:"@jsx"}],[/<\/?\w+>/,"type.identifier"],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:"white"},{token:"comment"},{token:"keyword",next:"@header"}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,["white","comment","keyword","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,["white","comment","keyword"]],[/`{3,}(\s.*)?$/,{token:"string",next:"@codeblock_backtick"}],[/~{3,}(\s.*)?$/,{token:"string",next:"@codeblock_tilde"}],[/`{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_backtick",nextEmbedded:"$1"}],[/~{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_tilde",nextEmbedded:"$1"}],[/^(\s*)(-{4,})$/,["white","comment"]],[/^(\s*)(>+)/,["white","comment"]],{include:"content"}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,["","string.link","","type.identifier","string.link",""]],[/(\[)(.+)(]\()(.+)(\))/,["","type.identifier","","string.link",""]],[/(\[)(.+)(]\[)(.+)(])/,["","type.identifier","","type.identifier",""]],[/(\[)(.+)(]:\s+)(\S*)/,["","type.identifier","","string.link"]],[/(\[)(.+)(])/,["","type.identifier",""]],[/`.*`/,"variable.source"],[/_/,{token:"emphasis",next:"@emphasis_underscore"}],[/\*(?!\*)/,{token:"emphasis",next:"@emphasis_asterisk"}],[/\*\*/,{token:"strong",next:"@strong"}],[/{/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}]],import:[[/'\s*(;|$)/,{token:"string",next:"@pop",nextEmbedded:"@pop"}]],expression:[[/{/,{token:"delimiter.bracket",next:"@expression"}],[/}/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],export:[[/^\s*$/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],jsx:[[/\s+/,""],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,["attribute.name","operator","string"]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,["attribute.name","operator","string"]],[/(\w+(?=\s|>|={|$))/,["attribute.name"]],[/={/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}],[/>/,{token:"type.identifier",next:"@pop"}]],header:[[/.$/,{token:"keyword",next:"@pop"}],{include:"content"},[/./,{token:"keyword"}]],strong:[[/\*\*/,{token:"strong",next:"@pop"}],{include:"content"},[/./,{token:"strong"}]],emphasis_underscore:[[/_/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],emphasis_asterisk:[[/\*(?!\*)/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],frontmatter:[[/^---$/,{token:"meta.content",nextEmbedded:"@pop",next:"@pop"}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]]}};export{d as conf,p as language} \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-6aacc7a8.js b/www/js/zui3/zen-editor/p-db5338bb.js similarity index 99% rename from www/js/zui3/zen-editor/p-6aacc7a8.js rename to www/js/zui3/zen-editor/p-db5338bb.js index aeba40dbf3..1727ac9628 100644 --- a/www/js/zui3/zen-editor/p-6aacc7a8.js +++ b/www/js/zui3/zen-editor/p-db5338bb.js @@ -1,4 +1,4 @@ -import{m as t}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as t}from"./p-99deb4a6.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-9db7a80f.js b/www/js/zui3/zen-editor/p-db8ed172.js similarity index 98% rename from www/js/zui3/zen-editor/p-9db7a80f.js rename to www/js/zui3/zen-editor/p-db8ed172.js index b4a48e4e20..769638174f 100644 --- a/www/js/zui3/zen-editor/p-9db7a80f.js +++ b/www/js/zui3/zen-editor/p-db8ed172.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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-13eec5c0.js b/www/js/zui3/zen-editor/p-e7a3a0af.js similarity index 99% rename from www/js/zui3/zen-editor/p-13eec5c0.js rename to www/js/zui3/zen-editor/p-e7a3a0af.js index f8051b8eaf..0962de16e3 100644 --- a/www/js/zui3/zen-editor/p-13eec5c0.js +++ b/www/js/zui3/zen-editor/p-e7a3a0af.js @@ -1,4 +1,4 @@ -import{m as t}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as t}from"./p-99deb4a6.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-eca4d606.js b/www/js/zui3/zen-editor/p-fd612a36.js similarity index 88% rename from www/js/zui3/zen-editor/p-eca4d606.js rename to www/js/zui3/zen-editor/p-fd612a36.js index f8bf4fc9f5..8a91158de5 100644 --- a/www/js/zui3/zen-editor/p-eca4d606.js +++ b/www/js/zui3/zen-editor/p-fd612a36.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-99deb4a6.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,a=Object.prototype.hasOwnProperty,i=(e,i,m,r)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of o(i))a.call(e,c)||c===m||t(e,c,{get:()=>i[c],enumerable:!(r=n(i,c))||r.enumerable});return e},m={};i(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=u.content;if(n&&h.assetsIds.length){const v=new Set(h.assetsIds),b=new Map;a.assets.entries().forEach(([C,x])=>{x.name&&b.set(x.name,{file:x,id:C})}),p.querySelectorAll("img").forEach(C=>{const x=C.getAttribute("alt")??"";let D=x.split(".").shift(),E;if(D&&v.has(D))E=a.assets.get(D);else{const A=b.get(x);A&&(D=A.id,E=A.file)}if(E){const A=we(n,{gid:btoa(`g-${D}`),title:btoa(D),extra:"editor"});C.src=A.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}=Fe.Module;e||(e=new t.DocCollection({schema:Fe.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 Fe.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 Fe.loadModule(),{store:i}=n;try{t=t||new i.DocCollection({schema:Fe.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 Fe.loadModule();try{t=t||new n.DocCollection({schema:Fe.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 Fe.loadModule();t=t||new n.DocCollection({schema:Fe.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}=Fe.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 Ls()}};un.NAME="Editor",un.DEFAULT={mode:"page",contentType:"snapshot"},un.slashMenuSettings=[],un.iframe=cw,un.confluenceBlockMatcherMap={},un.registerConfluenceBlockMatcher=(s,e)=>{if(un.Module)un.Module.blocks.ConfluenceAdapter.registerBlockMatcher(s,e);else if(typeof s=="object")for(const t in s)un.confluenceBlockMatcherMap[t]=s[t];else un.confluenceBlockMatcherMap[s]=e};let dn=un;const mm=Pe.getCode();y.registerLib("blocksuite",{src:[`editor/blocksuite/editor${mm!=="zh_cn"?`.${mm}`:""}.umd.cjs`,"editor/blocksuite/editor.css"],check:"BlockSuite"}),dn.register();let{maxUploadSize:zs}=window.config||{};zs&&(zs=typeof zs=="string"?yn(zs):zs,dn.setGlobalConfig({maxFileSize:zs,maxImageSize:zs}));const hw=Lt("file","read","fileID={fileID}","{viewType}");dn.setGlobalConfig({imageSrcGetter:s=>{if(s.startsWith("{")&&s.endsWith("}")){const e=s.slice(1,-1),[t,n]=e.split(".");return hw.replace("{fileID}",t).replace("{viewType}",n)}return s}});class Ea extends dn{}Ea.NAME="PageEditor",Ea.DEFAULT={mode:"page"},Ea.register(),Object.assign(window,{Editor:dn});class ki extends ve{constructor(){super(...arguments),this._ref=pe()}get element(){return this._ref.current}get $(){return this._editor}init(e){var u;const{className:t,style:n,rootProps:i,ref:r,children:o,jsx:a,key:l,autoInit:c,...h}=this.props;return e={...h,...e},(u=this._editor)==null||u.destroy(),y(this.element).empty(),this._editor=new dn(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:K("editor",t),style:n,...i},r)}}ki.defaultProps={autoInit:!0};const gm=class Ny extends ve{constructor(e){super(e),this._editorRoot=pe(),this._titleEle=pe(),this._handleChange=()=>{var t,n;(n=(t=this.props).onChange)==null||n.call(t,this.data)},this._uid=e.uid??Ls(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,h,u;customElements.get("zen-editor")||((c=(l=this.props).onLoadingLibChange)==null||c.call(l,!0),await this._loadLib(),(u=(h=this.props).onLoadingLibChange)==null||u.call(h,!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(` -`))}async getData(){return Promise.resolve(this.data)}update(e){this.init(e)}componentDidMount(){this.props.autoInit&&this.init()}componentWillUnmount(){const e=this._editorRoot.current;e&&(e.innerHTML="")}_renderTitle(e){const{readonly:t,title:n,mode:i}=e;return i!=="full"?null:t?_("h1",{class:"zen-editor-title",style:"font-size: 40px"},n):_("input",{ref:this._titleEle,class:"zen-editor-title w-full font-bold",style:"font-size: 40px",defaultValue:n,onChange:this._handleChange})}render(e){const{className:t,readonly:n,children:i}=e;return _("div",{className:K("zen-editor-container relative",t)},this._renderTitle(e),_("div",{ref:this._editorRoot,className:K("zen-editor p-px mt-px rounded relative",n?"is-readonly":""),onChange:this._handleChange}),i)}static injectCSS(){return[".editor {border: unset; border-radius: unset; color: var(--color-fore)}",".editor.size-auto {min-height: 0;}","zen-editor-menu-item > .menu-item {color: #9ea3b0!important;}","zen-editor-menu-item > .menu-item:hover {color: var(--color-primary-400)!important; background-color: var(--color-gray-200)!important;}","zen-editor-menu-item > .menu-item.is-active {color: var(--color-primary-400)!important; background-color: transparent!important; box-shadow: inset 0 0 0 1px var(--color-primary-300);}","zen-editor-menu-item > .menu-item.is-active:hover {background-color: var(--color-gray-200)!important;}","zen-editor-menu-item > .menu-item.is-active:not(:hover) {background-color: transparent!important;}","zen-editor-menu-item > .menu-item:has(.color):hover, zen-editor-menu-item > .menu-item:has(.color).is-active {background-color: transparent!important; box-shadow: inset 0 0 0 1px var(--color-primary-300)!important;}",".menubar {border-bottom: 1px solid #d8dbde!important; padding: 0.125rem;}",".editor__content {padding: 0!important}",".tippy-content > div {border: 1px solid #d8dbde!important;}",".tippy-content zen-editor-menu-item {line-height: normal;}",".tippy-content zen-editor-menu-item .label {all: unset;}",".tiptap.ProseMirror {padding-top: 0.5rem;}",".tiptap.ProseMirror p {margin: 0;}"].join(` -`)}};gm.defaultProps={autoInit:!0};let uw=gm;y.registerLib("zeneditor",{src:"zen-editor/zen-editor.esm.js",type:"module"});function ym(s,e="yyyy年M月d日 hh:mm",t="M月d日 hh:mm"){const n=Ye(s);return Vi(n,new Date)?nt(n,t):nt(n,e)}const dw=(s,e)=>{if(!e)return;const t=[];for(const n of e)t.includes(n.account)||t.push(n.account);return t.map(n=>s.getUserInfo(n))},fw=s=>s.map(t=>({account:t.account,realname:t.name,avatar:t.avatar})),pw=(s,e=!0)=>s?s.length<=3?s:e?[s[0],"more",s[s.length-1]]:[s[0],s[1],"more"]:null;function vm(s){const{createDate:e,app:t,editors:n,creator:i}=s,r=t.getUserInfo(i),o=We(()=>{var h;const{editingUsers:c}=t.signals;return(h=c.value)!=null&&h.length?fw(c.value):null}),a=o.value||dw(t,n),l=pw(a,!o.value);return _("div",{className:"doc-users-bar flex flex-nowrap gap-2"},_("div",{className:"flex flex-nowrap gap-1"},_("div",{title:e?t.getLang("createdByUserAt",[{name:r.realname,time:ym(e)}],"由 {name} 创建于 {time}"):r.realname},_(Si,{size:"xs",user:r})),_("span",null,r.realname),_("span",null,t.getLang("created"))),l!=null&&l.length?_("div",{className:"flex flex-nowrap gap-1"},_("div",{className:"avatar-group",title:a==null?void 0:a.map(c=>c.realname).join("、")},l.map(c=>typeof c=="string"?_(Si,{size:"xs",className:"rotate-90",icon:"ellipsis-v"}):_(Si,{size:"xs",user:c}))),_("span",null,t.getLang(o.value?"editing":"edited"))):null)}function Ma(){return _("span",{className:"inline-block w-px h-3 bg-gray-400"})}const mw=()=>document.documentElement.lang.includes("zh"),Lh=s=>{const e=Ye(s);if(mw())return ym(e,"yyyy年MM月dd日","MM月dd日");const[,t,n,i]=e.toDateString().split(" "),r=new Date().getFullYear();return e.getFullYear()===r?`${t} ${n} `:`${t} ${n} ${i} `};function gw(s){var i;const{doc:e,app:t}=s;if(!e.status)return _("div",{className:"doc-editor-info flex text-gray gap-2 items-center py-2.5"},_(vm,{app:t,createDate:e.addedDate,editors:e.editors,creator:e.addedBy}),_(Ma,null),_("span",null,t.getLang("notSaved")));const n=!!t.editingUsers.length;return _("div",{className:"doc-editor-info flex text-gray gap-2 items-center py-2.5"},_(vm,{app:t,createDate:e.addedDate,editors:e.editors,creator:e.addedBy}),_(Ma,null),_("span",null,e.status==="draft"?t.getLang("draft"):t.getLang("released")),_(Ma,null),_("span",{className:"hint","data-hint":Ye(e.addedDate).toLocaleString()},Lh(e.addedDate),t.getLang("created")),n?_("span",{className:"-px-2"},t.getLang("autoSaveHint","所有编辑内容都会自动保存")):null,n?_("span",null,Lh(new Date),t.getLang("edited")):e.editedDate?_("span",{className:"hint","data-hint":Ye(e.editedDate).toLocaleString()},Lh(e.editedDate),t.getLang("edited")):null,_(Ma,null),_("div",{key:"views",className:"text-sm hint flex items-center gap-1","data-hint":t.getLang("viewsCount","阅读次数")},_(Ie,{icon:"eye"}),e.views||0),e.api||((i=t.props.privs)==null?void 0:i.collect)==="no"?null:_("div",{key:"star",className:`text-sm hint cursor-pointer ${e.isCollector?"text-warning":"text-gray"} flex items-center gap-1`,"data-hint":t.getLang(e.isCollector?"cancelCollection":"collect"),"zui-command":`collectDoc/${e.id}`},_(be,{size:"xs",type:"ghost",icon:e.isCollector?"star":"star-empty",text:e.collects||0})))}class _m extends ve{constructor(){super(...arguments),this._toolbarState={bold:!1,italic:!1,underline:!1,strikethrough:!1,bulleted:!1,numbered:!1,fontSize:"text",color:"",background:""},this.colorPickerRef=null,this.colorPicker=null,this.bgColorPickerRef=null,this.bgColorPicker=null,this.formatButtons=[{key:"bold",icon:"format-bold",command:"toggleBold",hint:"加粗"},{key:"italic",icon:"format-italic",command:"toggleItalic",hint:"斜体"},{key:"underline",icon:"underline",command:"toggleUnderline",hint:"下划线"},{key:"strikethrough",icon:"strikethrough",command:"toggleStrike",hint:"删除线"}],this.listButtons=[{key:"bulleted",icon:"format-list-bulleted",slashName:"Bulleted List",hint:"无序列表"},{key:"numbered",icon:"format-list-numbers",slashName:"Numbered List",hint:"有序列表",iconClass:"text-lg"}],this.otherButtons=[{key:"todo",icon:"check-sign",slashName:"To-do List",hint:"待办事项"},{key:"link",icon:"text-link",command:"toggleLink",hint:"链接",iconClass:"text-lg"},{key:"image",icon:"file-image",slashName:"Image",hint:"插入图片"},{key:"file",icon:"file",slashName:"Attachment",hint:"上传附件"}],this.colorList=[{key:"default",value:"#30394A"},{key:"red",value:"#C62222"},{key:"orange",value:"#D34F0B"},{key:"yellow",value:"#B67C04"},{key:"green",value:"#149343"},{key:"teal",value:"#0782A0"},{key:"blue",value:"#2159D3"},{key:"purple",value:"#842ED3"},{key:"grey",value:"#7A7A7A"}],this.fontSizeItems=[{text:"文本",value:"text",slashName:"Text"},{text:"标题 1",value:"h1",slashName:"Heading 1"},{text:"标题 2",value:"h2",slashName:"Heading 2"},{text:"标题 3",value:"h3",slashName:"Heading 3"},{text:"标题 4",value:"h4",slashName:"Heading 4"},{text:"标题 5",value:"h5",slashName:"Heading 5"},{text:"标题 6",value:"h6",slashName:"Heading 6"}],this.moreItems=[{text:"基础",type:"heading",className:"text-gray-400 text-sm"},{text:"代码块",value:"code",slashName:"Code Block"},{text:"引用",value:"quote",slashName:"Quote"},{text:"分割线",value:"divider",slashName:"Divider"},{text:"内嵌公式",value:"inLineEquation",slashName:"Inline equation"},{text:"公式",value:"equation",slashName:"Equation"},{text:"数据库",type:"heading",className:"text-gray-400 text-sm"},{text:"表格视图",value:"table",slashName:"Table View"},{text:"看板视图",value:"kanban",slashName:"Kanban View"}],this.syncSelectionRange=()=>{var t;const e=this.checkEditor(!0);e&&e.selection.std.range.syncTextSelectionToRange((t=e.selection.value)==null?void 0:t[0])},this.checkEditor=e=>{var n;const{editor:t}=this.props;if(t)try{const i=t.editor;if(!i)return;const r=i.host;return!r||e&&!((n=r.selection.value)!=null&&n.length)?void 0:r}catch{return}},this.handleColorChange=e=>{const t=this.checkEditor(!0);if(!t)return;const n=this.colorList.find(i=>i.value===e);t.selection.std.command.exec("formatText",{textSelection:t.selection.value[0],styles:{color:`var(--affine-text-highlight-foreground-${n==null?void 0:n.key})`}}),this.updateToolbarState()},this.handleBackgroundChange=e=>{const t=this.checkEditor(!0);if(!t)return;const n=this.colorList.find(i=>i.value===e);t.selection.std.command.exec("formatText",{textSelection:t.selection.value[0],styles:{background:`var(--affine-text-highlight-${n==null?void 0:n.key})`}}),this.updateToolbarState()},this.handleFormat=e=>{var n,i;const t=this.checkEditor();if(t){if(e=="toggleLink")if(!((i=(n=t.selection.value[0])==null?void 0:n.from)!=null&&i.length))this.callSlashMenuAction("Link");else{t.selection.std.command.exec(e);return}t.selection.std.command.exec(e),this.updateToolbarState()}},this.callSlashMenuAction=e=>{var t;return(t=this.props.editor)==null?void 0:t.callSlashMenuAction(e)},this.renderButton=e=>{const{key:t,icon:n,command:i,hint:r,slashName:o,iconClass:a}=e,l=this._toolbarState[t];return _(be,{key:n,className:K("ghost",l?"text-primary":""),icon:n,iconClass:a,hint:r,onClick:()=>{o?this.callSlashMenuAction(o):i&&this.handleFormat(i)}})}}componentDidMount(){this.initColorPicker(),this.initSelectionListener()}componentDidUpdate(e){e.editor!==this.props.editor&&this.initSelectionListener()}componentWillUnmount(){this.colorPicker&&this.colorPicker.destroy(),this.bgColorPicker&&this.bgColorPicker.destroy(),this.removeSelectionListener()}async ensureEditor(){await qn(500);const{editor:e}=this.props;return e?await e.ensureEditor():null}initColorPicker(){this.colorPickerRef&&(this.colorPicker=new pi(this.colorPickerRef,{className:"btn ghost px-2",icon:"icon-font",hint:"文字颜色",colors:["#30394A","#C62222","#D34F0B","#B67C04","#149343","#0782A0","#2159D3","#842ED3","#7A7A7A"],onChange:e=>this.handleColorChange(e),onClick:()=>this.syncSelectionRange()})),this.bgColorPickerRef&&(this.bgColorPicker=new pi(this.bgColorPickerRef,{className:"btn ghost px-2",icon:"icon-pencil-alt",hint:"文字背景颜色",colors:["#C62222","#D34F0B","#B67C04","#149343","#0782A0","#2159D3","#842ED3","#7A7A7A"],onChange:e=>this.handleBackgroundChange(e),onClick:()=>this.syncSelectionRange()}))}initSelectionListener(){this.ensureEditor().then(e=>{if(!e)return;const t=e.host;t==null||t.selection.slots.changed.on(()=>{this.updateToolbarState()})})}getColor(e){const t=this._toolbarState[e],n=e=="color"?/var\(--affine-text-highlight-foreground-(.*?)\)/:/var\(--affine-text-highlight-(.*?)\)/,i=t.match(n),r=i?i[1]:"";return this.colorList.find(o=>o.key===r)}updataColorPicker(){if(this.colorPicker){const e=this.getColor("color");this.colorPicker.$.setValue((e==null?void 0:e.value)||"")}if(this.bgColorPicker){const e=this.getColor("background");this.bgColorPicker.$.setValue((e==null?void 0:e.value)||"")}}removeSelectionListener(){const e=this.checkEditor();e==null||e.selection.slots.changed.dispose()}updateToolbarState(){const e=this.checkEditor();if(!e){this._toolbarState={bold:!1,italic:!1,underline:!1,strikethrough:!1,bulleted:!1,numbered:!1,fontSize:"text",color:"",background:""};return}const n=e.selection.std.command.exec("getTextStyle").textStyle,{selectedModels:i}=e.selection.std.command.exec("getSelectedModels"),r=i==null?void 0:i[0],o=(r==null?void 0:r.flavour)==="affine:list",a=o?r==null?void 0:r.type:null,c=(r==null?void 0:r.flavour)==="affine:paragraph"&&["h1","h2","h3","h4","h5","h6"].includes(r==null?void 0:r.type)?r==null?void 0:r.type:"text";this._toolbarState={bold:n.bold||!1,italic:n.italic||!1,underline:n.underline||!1,strikethrough:n.strike||!1,bulleted:o&&a==="bulleted",numbered:o&&a==="numbered",fontSize:c,color:(n==null?void 0:n.color)||"",background:(n==null?void 0:n.background)||""},this.forceUpdate(),this.updataColorPicker()}render(){this.fontSizeItems.forEach(n=>{n.onClick=this.callSlashMenuAction.bind(this,n.slashName)});const e=this._toolbarState.fontSize,t=this.fontSizeItems.filter(n=>n.value==e);return this.moreItems.forEach(n=>{n.onClick=this.callSlashMenuAction.bind(this,n.slashName)}),_("div",{className:"doc-toolbar flex items-center flex-wrap gap-1 absolute top-0 left-0 w-full bg-white border-b z-10",style:"min-height: 40px;"},_(is,{className:"w-20",type:"ghost",text:t[0].text,trigger:"hover",items:this.fontSizeItems}),_("div",{className:"divider",style:"height: unset; margin-left: -4px;"}),this.formatButtons.map(this.renderButton),_("div",{className:"divider",style:"height: unset;"}),_("div",{ref:n=>this.colorPickerRef=n}),_("div",{ref:n=>this.bgColorPickerRef=n}),_("div",{className:"divider",style:"height: unset;"}),this.listButtons.map(this.renderButton),_("div",{className:"divider",style:"height: unset;"}),this.otherButtons.map(this.renderButton),_(is,{type:"ghost",icon:"plus",trigger:"hover",items:this.moreItems}))}}_m.defaultProps={className:""};class yw extends ve{constructor(e){super(e),this._editor=pe(),this._titleEle=pe(),this._isLoadingLib=tt(!1),this._convertedToNewDoc=tt(0),this._gid=Ls(),this._saveTimer=0,this._dataTime=0,this._cacheDataTime=0,this._isLoadingFile=tt(!1),this._loadFileTimer=0,this._handleChange=t=>{const n=t.content;(n!==this._data.content||t.html!==this._data.html)&&(this._data.content=n,this._data.contentType=t.contentType,this._data.html=t.html,this._dataTime=Date.now(),this._callChange()),this.trySaveCache()},this._handleKeywordsChange=t=>{const i=t.target.value.split(/,|,/).map(r=>r.trim()).filter(Boolean).join(", ");i!==this._data.keywords&&(this._data.keywords=i,this._callChange())},this._handleTitleChange=t=>{var i;const n=t.target.value;if(n!==this._data.title){this._data.title=n;const{editor:r}=this;r instanceof ki&&((i=r.$)==null||i.updateTitle(n)),this._callChange()}},this._handleConvertDoc=async()=>{const{app:t}=this.props;await ze.confirm({title:t.getLang("convertToNewDoc","转换文档"),content:t.getLang("convertToNewDocConfirm","确定要将此文档转换为新文档格式吗?")})&&await this._switchDoc(!0)},this._switchDoc=async t=>{const{doc:n}=this.props,i=n.$html;i&&this.triggerChange({content:i,contentType:"html",html:i}),await qn(100),this._convertedToNewDoc.value=t?n.id:0},this._switchToOldDoc=()=>{this._switchDoc(!1)},this._handleLoadingLibChange=t=>{this._isLoadingLib.value=t},this._toggleFileLoading=t=>{this._loadFileTimer&&clearTimeout(this._loadFileTimer),t?(this._isLoadingFile.value=!0,this._loadFileTimer=0):this._loadFileTimer=window.setTimeout(()=>{this._isLoadingFile.value=!1,this._loadFileTimer=0},1500)},this._handleAwarenessUpdate=t=>{const{states:n}=t,{app:i}=this.props,r=Array.from(new Map(n.map(o=>o.user).map(o=>[o.id,o])).values());i.changeState({editingUsers:r})},this._handleDownload=async t=>{const{downloadUrl:n}=this.props,i=this.props.app.getDownloadUrl(t.key,n);this._toggleFileLoading(!0);let r=null;try{r=await(await fetch(i)).blob()}catch(o){console.error("[ZUI - DocEditor] download file failed",o)}return this._toggleFileLoading(!1),{blob:r}},this._handleUpload=async t=>{const{uploadUrl:n}=this.props,{key:i,blob:r,editorID:o}=t;await y.post(we(n,{uid:encodeURIComponent(o),extra:"editor",field:"imgFile",gid:btoa(i)}),{imgFile:r,"labels[]":[r.name]},"json")},this._data={title:e.doc.title,content:e.doc.content??""}}get gid(){return this._gid}get editor(){return this._editor.current}get cacheID(){return`doc-${this.props.mode==="edit"?this.props.doc.id:"new"}-${this._gid}`}async getData(e){const t=this._editor.current;if(t instanceof ki){const r={...await t.getData(),contentType:"doc"};return e!=null&&e.getHtml&&(r.html=await t.getHtml()),r}return await(t==null?void 0:t.getData())}focusTitle(){var e;(e=this._titleEle.current)==null||e.focus()}setTitle(e){this._data.title=e;const t=this._titleEle.current;t&&(t.value=e,this.triggerChange())}async triggerChange(e,t){var i;const n=await this.getData(t);!n&&!e||((i=this._handleChange)==null||i.call(this,{...n,...e}),this.saveCache())}saveCache(){this._cacheDataTime!==this._dataTime&&(y.db.setCacheData(this.cacheID,this._data,0,"docAppCache"),this._cacheDataTime=this._dataTime)}trySaveCache(){this._saveTimer&&clearTimeout(this._saveTimer),this._saveTimer=window.setTimeout(()=>{this.saveCache(),this._saveTimer=0},1e3)}removeCache(){y.db.deleteCacheData(this.cacheID,"docAppCache")}_callChange(){var t,n;const{doc:e}=this.props;(n=(t=this.props).onChange)==null||n.call(t,{id:e.id,...this._data})}_renderTitle(e){const{doc:{title:t,deleted:n},mode:i,app:r}=e;return i==="view"?n?_("div",{class:"flex gap-2 items-center"},_("h1",{key:"title",class:"doc-editor-title",style:"font-size: 40px"},t),_("span",{class:"label danger"},r.getLang("deleted","已删除"))):_("h1",{key:"title",class:"doc-editor-title",style:"font-size: 40px"},t):_("input",{key:"title",ref:this._titleEle,type:"text",class:"doc-editor-title w-full font-bold",style:"font-size: 40px",defaultValue:t,onChange:this._handleTitleChange,placeholder:r.getLang("docTitlePlaceholder","请输入文档标题")})}_renderInfo(e){return _(gw,{...e})}_renderKeywords(e){const{doc:{keywords:t},mode:n,app:i}=e,r=(t==null?void 0:t.split(/,|,/).map(a=>a.trim()).filter(Boolean))??[];if(n==="view")return _("div",{key:"kw",title:i.getLang("keywords","关键字"),class:`doc-editor-keywords row gap-2 px-1 my-2${r.length?"":" hidden"}`},r.map(a=>_("span",{className:"label label-sm secondary-outline"},a.trim())));const o=`doc-app-kw-${this._gid}`;return _("div",{key:"kw",className:"input-control has-prefix-icon my-2 doc-editor-keywords"},_("input",{key:"kw",type:"text",id:o,class:"form-control ring-0 shadow-none",defaultValue:r.join(", "),onChange:this._handleKeywordsChange,placeholder:i.getLang("keywordsPlaceholder","关键字,使用逗号分隔")}),_("label",{for:o,class:"input-control-prefix"},_("i",{className:"icon icon-tag"})))}componentDidMount(){this.props.mode==="edit"&&this.focusTitle()}render(e){var Q,ie,me,Se,Ne,Re;const{className:t,doc:n,belowTitle:i,mode:r,uploadUrl:o,downloadUrl:a,app:l}=e,c=n.contentType==="doc"?"doc":n.contentType==="markdown"?"markdown":"html",h=c==="doc"&&!n.$convert,u=c==="markdown",p=r==="view",m=r==="edit",v=l.props.autoConvertDoc||n.status==="draft",b=this._convertedToNewDoc.value,C=m&&(n.contentType==="html"||n.contentType==="attachment"||n.$convert),x=!(n.content??"").trim().length,D=x&&r==="view",E=m&&C&&b===n.id,A=u||h||E||x,F=A?ki:uw,G=n.content===void 0||n.content===null,Y=this._isLoadingLib.value,Z=G||Y;let{useHocuspocus:ee}=l.props;ee=typeof ee=="function"?ee(l):ee;const fe=l.mode==="edit"&ⅇreturn _("div",{class:K("doc-editor col",t,p?"is-readonly":"is-editing",D?"is-empty":"flex-auto")},(Q=l.props)!=null&&Q.showToolbar&&l.mode!="view"?_(_m,{editor:(ie=this._editor.current)==null?void 0:ie.$}):null,this._renderTitle(e),this._renderInfo(e),this._renderKeywords(e),v&&E&&A&&m?_("div",{className:"center mb-3"},_("div",{class:"row gap-2 items-center primary-pale pl-2 rounded-full"},_("p",{className:"text-gray"},l.getLang("oldDocEditingTip","此文档为旧版本编辑器创建,已启用新版编辑器编辑,保存后将转换为新版文档")),_(be,{text:l.getLang("switchToOldEditor","切换回旧编辑器"),size:"sm",type:"ghost",rounded:"full",className:"underline",onClick:this._switchToOldDoc}))):null,i,Z?_("div",{className:"load-indicator loading relative h-48","data-loading":G?l.getLang("loadingDocTip","正在加载文档内容..."):Y?l.getLang("loadingEditorTip","正在加载编辑器..."):""}):null,!Z&&!D&&_(F,{ref:this._editor,key:`editor-${n.id}-${r}-${n.currentVersion||n.version}`,className:"doc-editor-control flex-auto",mode:h?"full":"page",autoInit:!0,readonly:p,downloadUrl:a,uploadUrl:o,onDownload:a?this._handleDownload:void 0,onUpload:this._handleUpload,uid:n.uid??`doc${n.id}`,content:n.content??"",title:n.title,contentType:c,placeholder:o?l.getLang("pasteImageTip","可以在编辑器直接贴图。"):"",onChange:this._handleChange,onLoadingLibChange:this._handleLoadingLibChange,token:l.props.token,docID:vw(l.docID),useHocuspocus:fe,hocuspocusUrls:l.props.hocuspocusUrls,awarenessUser:l.props.awarenessUser,onAwarenessUpdate:this._handleAwarenessUpdate,onAuthenticationFailed:(me=l.props.onAuthenticationFailed)==null?void 0:me.bind(null,l),onConnect:(Se=l.props.onHocuspocusConnect)==null?void 0:Se.bind(null,l),onDisconnect:(Ne=l.props.onHocuspocusDisconnect)==null?void 0:Ne.bind(null,l),onClose:(Re=l.props.onHocuspocusClose)==null?void 0:Re.bind(null,l)},v&&C&&!E?_("div",{className:"absolute right-0 top-1"},_(be,{type:"primary-pale",size:"md",onClick:this._handleConvertDoc},l.getLang("convertToNewDoc","转换为新文档格式"))):null))}}function vw(s){if(typeof s=="number")return s;const e=s.match(/\d+/);return e?+e:0}let Rh=class extends Xe{get actions(){return this.state.actions||this.props.actions||[]}getDefaultState(e){e=e||this.props;let{preserve:t,defaultReversed:n}=e;return t===!0&&(t=""),n===void 0&&typeof t=="string"&&(this._preserveID=`HistoryPanel.reversed${t.length?`:${t}`:""}`,n=Qe.get(this._preserveID)),e.actions&&(this._currentLoadID=[e.objectType,e.objectID].join()),{actions:e.actions,expandMap:{},reversed:n}}resetState(e,t){const n=this.getDefaultState(e);t?this.state=n:this.changeState(n)}componentDidMount(){y.on(`load.HistoryPanel.${this.gid}.zt`,(e,{objectType:t,objectID:n})=>{t===this.props.objectType&&String(n)===String(this.props.objectID)&&this.load()}),this.state.actions||this.load()}componentWillUnmount(){y.off(`.HistoryPanel.${this.gid}.zt`)}componentDidUpdate(){(!this.state.actions||this._currentLoadID!==[this.props.objectType,this.props.objectID].join())&&!this.state.loading&&this.load()}async load(){const{objectType:e,objectID:t}=this.props;let n=this.props.fetcher;n||(n=Lt("action","ajaxGetList",`objectType=${e}&objectID=${t}`));const i=[e,t].join();if(this.state.loading)return;await this.changeState({loading:!0});const o={actions:await dt(n,[{objectType:e,objectID:t}])||[],loading:!1},a=[this.props.objectType,this.props.objectID].join();a!==i?delete o.actions:this._currentLoadID=a,await this.changeState(o)}reverse(e){return e===void 0&&(e=!this.state.reversed),this.changeState({reversed:e},()=>{typeof this._preserveID=="string"&&Qe.set(this._preserveID,e)})}toggle(e,t){return this.changeState(n=>{const{expandMap:i}=n;return t===void 0&&(t=!i[e]),{expandMap:{...i,[e]:t}}})}isAllExpanded(){const{expandMap:e}=this.state;return this.actions.every(t=>{const{history:n,historyChanges:i}=t;return!(n&&n.length||typeof i=="string"&&i.length)||e[t.id]})}toggleAll(e){return e===void 0&&(e=!this.isAllExpanded()),this.changeState({expandMap:e?this.actions.reduce((t,n)=>({...t,[n.id]:e}),{}):{}})}_getClassName(e){return[super._getClassName(e),"history-panel",e.panel?"panel":""]}_getChildren(e){const t=this._buildHeader(e),n=this._buildBody(e);return e.panel?[t?_("div",{key:"heading",className:"panel-heading"},t):null,_("div",{key:"body",className:"panel-body"},n)]:[t,n]}_buildFiles(e){let t=e.files;return Array.isArray(t)&&(t={items:t}),!t||!t.items?null:_(Ps,{key:"files",className:"bg-primary-50 py-1 px-1.5",...this.props.fileListProps,...t})}_buildAction(e,t,n,i){const{history:r,historyChanges:o}=e,a=r&&r.length||typeof o=="string"&&o.length,l=typeof e.comment=="string"&&e.comment.length,c=`${t+1}`,h={component:"li",key:String(e.id),"data-id":e.id,"data-action":e.action,className:["history-panel-action list-item item",a?n?"is-expanded":"is-collapsed":""],innerClass:"item-inner list-item-inner",avatar:{className:"text-gray ring canvas",background:"",size:16,circle:!0,...e.action==="finished"?{icon:{icon:"check",className:"text-success"}}:{children:_("span",{style:c.length>1?{transform:`scale(${1-c.length*.1})`}:void 0},c)}},title:{html:e.content},text:a?_(be,{icon:n?"minus":"plus",type:"ghost",size:"xs",className:"history-panel-action-toggle ring text-gray scale-75",onClick:this.toggle.bind(this,e.id,void 0)}):null,children:a&&n||l?_("div",{className:"history-panel-action-content pl-6 col gap-1 mb-1"},a&&n?typeof o=="string"&&o.length?_("div",{key:"history",className:"history-panel-action-history pl-1",dangerouslySetInnerHTML:{__html:o}}):_("ul",{key:"history",className:"history-panel-action-history col pl-1"},r.map(u=>_("li",{key:u.id,className:"history-panel-history-item",dangerouslySetInnerHTML:{__html:u.content}}))):null,e.comment?_("div",{key:"comment",className:`history-panel-action-comment py-2 surface relative ${e.commentEditable?"pl-3 pr-6":"px-3"}`},e.commentEditable?_(be,{key:"btn",type:"ghost",icon:"pencil",size:"sm",className:"comment-btn hover:text-primary absolute top-1 right-1","data-toggle":"comment","data-action-ID":e.id,url:i.editCommentUrl?i.editCommentUrl.replace("{actionID}",String(e.id)):void 0}):null,_("div",{className:"article",key:"comment",dangerouslySetInnerHTML:{__html:e.comment}})):null,this._buildFiles(e)):null};return _(_n,{...h})}_buildBody(e){const{actions:t}=this,{loading:n,expandMap:i,reversed:r}=this.state;return _("ul",{key:"actions",className:K("list history-panel-body load-indicator",{loading:n},r?"col-reverse":"col",e.bodyClass)},t.map((o,a)=>this._buildAction(o,a,i[o.id],e)))}_buildHeader(e){let{header:t}=e;if(!t)return null;const{title:n="History",toolbar:i=!0,commentBtn:r=!0}=e,o=[];if(i){const{reversed:a}=this.state,l=this.isAllExpanded(),{actions:c}=this,h={key:"toolbar",className:"history-panel-toolbar",gap:1,items:[c.length>1?{icon:a?"arrow-down":"arrow-up",type:"ghost",size:"xs",className:"ring text-gray scale-75",onClick:this.reverse.bind(this,void 0)}:null,c.some(u=>{const{history:p,historyChanges:m}=u;return p&&p.length||typeof m=="string"&&m.length})?{icon:l?"minus":"plus",type:"ghost",size:"xs",className:"ring text-gray scale-75",onClick:this.toggleAll.bind(this,void 0)}:null].filter(Boolean)};typeof i=="object"&&Object.assign(h,i),h.items&&(!Array.isArray(h.items)||h.items.length)&&o.push(_(je,{...h}))}if(r){const a={key:"commentBtn",type:"ghost",className:"comment-btn text-gray",size:"sm",url:e.commentUrl,icon:{icon:"message",className:"icon-sm text-primary"},"data-toggle":"comment","data-object-ID":e.objectID,"data-object-type":e.objectType};typeof r=="object"?Object.assign(a,r):typeof r=="string"&&(a.text=r),o.push(_(be,{...a}))}return t={key:"header",className:"history-panel-header",title:n,titleClass:"font-bold mr-1",content:o,contentClass:"flex items-center flex-auto gap-2",...typeof t=="object"?t:{}},_(_n,{...t})}};Rh.defaultProps={header:!0,panel:!0,preserve:!0};class Sr extends ve{constructor(){super(...arguments),this._ref=pe(),this._timer=0,this._editorSelector="page-editor,affine-page-root,zen-editor,.doc-editor-content",this.state={},this._getItem=e=>{var t;return e.innerClass=(t=e.text)!=null&&t.length?"":"hidden",e},this._handleClickItem=e=>{var t;(t=e.event.target)!=null&&t.closest(".tree-toggle")||this.scrollIntoDoc(e.item)}}update(){var l,c;const e=this.props.container||((l=this._ref.current)==null?void 0:l.closest(".doc-view"));if(!e)return;this._container!==e&&(this._container&&y(this._container).off(".doc-outline"),this._container=e,y(e).on("docChange.doc-outline",()=>{this.tryUpdate()}));const n=y(e).find(this._editorSelector)[0];if(!n)return;const i=n.tagName.toLowerCase(),r=i==="zen-editor"?"zen":i==="page-editor"||i==="affine-page-root"?"blocksuite":"html";this._editorType=r;const o=r==="blocksuite"?Sr.getBlocksuiteHeadings(n):Sr.getEditorHeadings(n),a=Sr.formHeadings(o);this._lastDocID=(c=this.props.doc)==null?void 0:c.id,this.setState({items:a})}tryUpdate(){var e;this._timer&&clearTimeout(this._timer),this._lastDocID!==((e=this.props.doc)==null?void 0:e.id)&&this.setState({items:void 0}),this._timer=window.setTimeout(()=>{this.update(),this._timer=0},1e3)}scrollIntoDoc(e){var i,r,o,a;const t=this._container;if(!t)return;const n=y(t).find(this._editorSelector)[0];if(n)if(this._editorType==="blocksuite")(i=n.querySelector(`affine-paragraph[data-block-id="${e.id}"]`))==null||i.scrollIntoView({behavior:"smooth",block:"start"});else{const c=(((a=(o=(r=n.shadowRoot)==null?void 0:r.querySelector("zen-editor-core"))==null?void 0:o.shadowRoot)==null?void 0:a.querySelector("zen-editor-content"))||n).querySelectorAll("h1,h2,h3,h4,h5,h6");if(!c)return;const{text:h,level:u}=e;let p=e.index!==void 0?c[e.index]:void 0;(!p||p.textContent!==h||p.tagName!==`H${u}`)&&(p=Array.from(c).find(m=>m.textContent===h&&m.tagName===`H${u}`)),p&&p.scrollIntoView({behavior:"smooth",block:"start"})}}componentDidMount(){this.tryUpdate()}componentDidUpdate(e){this.props.doc!==e.doc&&this.tryUpdate()}componentWillUnmount(){this._container&&y(this._container).off(".doc-outline"),this._timer&&clearTimeout(this._timer)}render(e,t){const{items:n}=t;return _("div",{className:"doc-outline",ref:this._ref},n?n.length?_(Nt,{items:n,defaultNestedShow:!0,getItem:this._getItem,nestedToggle:".tree-toggle",onClickItem:this._handleClickItem}):_("div",{className:"text-gray p-2"},e.app.getLang("noOutline","没有大纲")):_("div",{className:"text-gray p-1"},e.app.getLang("loading","加载中...")))}static formHeadings(e){let t,n=e.reduce((i,r)=>{r.text=r.text.trim();const{level:o}=r;if(!r.text.length&&(o===1||t&&t.level===o))return i;if(o>1){t||(t={level:1,text:"",id:""},i.push(t));let a;if(t.level===o-1)a=t;else if(t.level>=o){for(;t.level>=o;)t.parent&&(t=t.parent);a=t}else{for(;t.level{var a;const o=((a=i.querySelector("v-text"))==null?void 0:a.textContent)??"";t.push({id:i.closest("affine-paragraph").dataset.blockId??`${r}_${o}`,text:o,level:r})};return e.querySelectorAll(".affine-paragraph-rich-text-wrapper").forEach(i=>{const r=i.classList;let o=0;r.contains("h1")?o=1:r.contains("h2")?o=2:r.contains("h3")?o=3:r.contains("h4")?o=4:r.contains("h5")?o=5:r.contains("h6")&&(o=6),o&&n(i,o)}),t}static getEditorHeadings(e){var i,r,o;const t=[],n=((o=(r=(i=e.shadowRoot)==null?void 0:i.querySelector("zen-editor-core"))==null?void 0:r.shadowRoot)==null?void 0:o.querySelector("zen-editor-content"))||e;return n&&n.querySelectorAll("h1,h2,h3,h4,h5,h6").forEach(a=>{const l=a.textContent||"",c=a.id,h=parseInt(a.tagName[1]);l.length&&h<7&&t.push({index:t.length,level:h,text:l,id:c})}),t}}const bm=class cd extends ve{constructor(e){super(e),this._ref=pe();const{defaultStatus:t=cd.defaultProps.defaultStatus}=e;this._status=e.status||tt(t)}toggleTab(e){e===void 0?this._status.value=this._status.value?!1:cd.defaultProps.defaultStatus:this._status.value=e===!1||this._status.value===e?!1:e}_renderContent(e,t,n){var o;if(!e||!n)return null;const{doc:i,app:r}=t;if(n.render)return _(ye,{content:n.render(i)});if(e==="info"){const{creator:a,modifier:l}=t,c=[{label:r.getLang("docStatus","状态"),content:i.status==="draft"?_("div",{key:"status",className:"label special-pale size-sm rounded-full ml-1"},r.getLang("draft","草稿")):r.getLang("released","已发布")},{label:r.getLang("creator","创建者"),content:a.realname},{label:r.getLang("createDate","创建时间"),content:nt(i.addedDate)},{label:r.getLang("modifier","修改者"),content:l==null?void 0:l.realname},i.editedDate?{label:r.getLang("editDate","修改时间"),content:nt(i.editedDate)}:null,{label:r.getLang("viewsCount","阅读次数"),content:i.views},{label:r.getLang("collectCount","收藏次数"),content:[i.collects,i.isCollector?_("span",{className:"label side-sm rounded-full warning-pale"},r.getLang("collected","已收藏")):null]}].filter(Boolean);return _("div",{className:"col gap-2"},_("div",{className:"font-bold px-1"},r.getLang("docInfo","文档信息")),_(Up,{items:c}))}if(e==="outline")return _("div",{className:"col gap-2"},_("div",{className:"font-bold px-1"},n.title??r.getLang("docOutline","文档大纲")),_(Sr,{app:r,container:(o=this._ref.current)==null?void 0:o.closest(".doc-view"),doc:i}));if(e==="history")return um(i.rawID)?null:_("div",{style:"margin-top: -6px"},_(Rh,{panel:!1,title:n.title??r.getLang("history","历史记录"),objectType:i.api?"api":"doc",objectID:i.rawID,fetcher:t.historyFetcher,...t.historyPanel}))}_renderNav(e,t,n){const{app:i}=t;return _("menu",{key:"nav",className:"doc-view-sidebar-nav nav nav-stacked gap-1 p-1 flex-none rounded-lg"},n.map(({icon:r,title:o,key:a})=>_("li",{class:"nav-item item hint-left","data-hint":o,key:a},_("a",{className:`rounded-lg${e===a?" active":""}`,"zui-command":`toggleViewSideTab/${a}`},_(Ie,{icon:r})))),n.length?_("li",{key:"divider",class:"nav-divider divider"}):null,_("li",{class:"nav-item item hint-left","data-hint":i.fullscreen?i.getLang("exitFullscreen","退出全屏"):i.getLang("enterFullscreen","进入全屏")},_("a",{className:"rounded-lg","zui-command":"toggleFullscreen"},_(Ie,{icon:i.fullscreen?"fullscreen-exit":"fullscreen"}))),e?_("li",{class:"nav-item item hint-left","data-hint":i.getLang("collapse","收起")},_("a",{className:"rounded-lg","zui-command":"toggleViewSideTab/false"},_(Ie,{icon:"icon-menu-arrow-right"}))):null)}render(e){var h;const{className:t,app:n,doc:i,showTabsNav:r}=e;let o=this._status.value;const a=um(+i.id);o&&a&&(o="outline");const l=((h=n.props.getDocViewSidebarTabs)==null?void 0:h.call(n,i,{isNewDoc:a,mode:n.mode}))||[{icon:"list-box",title:n.getLang("docOutline","文档大纲"),key:"outline"}],c=l==null?void 0:l.find(u=>u.key===o);return c||(o=""),!r&&!o?null:_("div",{className:K("doc-view-sidebar flex-none z-50 sticky top-3 right-1 self-start",t,`is-${o?"opened":"closed"}`,`is-${o}`,r?`has-tabs-nav-${r}`:""),ref:this._ref},_("div",{className:"doc-view-sidebar-container border shadow rounded-lg row items-stretch mb-3"},_("div",{key:"content",className:"doc-view-sidebar-content p-2 border-r flex-auto overflow-y-auto scrollbar-hover"},this._renderContent(o,e,c)),r?this._renderNav(o,e,l):_(be,{type:"ghost",size:"sm",icon:"close text-gray",className:"absolute top-1.5 right-1.5 z-10",command:"toggleViewSideTab/false"})))}};bm.defaultProps={defaultStatus:"outline",showTabsNav:"right"};let _w=bm;class bw extends ve{constructor(e){super(e),this._editorRef=pe(),this._ref=pe(),this._sidebarRef=pe(),this._currentDocID=tt(""),this._modeChangeEffect=Yt(()=>{this.props.app.mode!=="view"&&(this._currentDocID.value="")}),this._docChangeEffect=Yt(()=>{const{docID:i,docVersion:r}=this.props.app.signals,o=[i,r].join();o!==this._currentDocID.value&&(this._currentDocID.value=o,this.tryLoadDoc())}),this._handleChange=i=>{const{doc:r,mode:o="view",onChange:a}=this.props;a==null||a(i,o,r),y(this.element).trigger("docChange",[i,o,r])};const{preserve:t}=e,n=t?`${t}-expanded`:null;this._status=tt(n?Qe.get(n,!1):!1),n&&this._status.subscribe(i=>{Qe.set(n,i)})}get editor(){return this._editorRef.current}get element(){return this._ref.current}get sidebar(){return this._sidebarRef.current}tryLoadDoc(){const e=this._currentDocID.value;if(e){const[t,n]=e.split(",").map(Rs);this.props.app.loadDoc(t,n)}}componentWillUnmount(){this._modeChangeEffect(),this._docChangeEffect()}_renderEditor(e){const{doc:t,mode:n="view",uploadUrl:i,downloadUrl:r,app:o}=e,a=o.renderCustom("editor");return a!==void 0?a:_(yw,{app:o,ref:this._editorRef,mode:n,doc:t,uploadUrl:i?we(i,{objectID:n==="create"?0:t.id,objectType:"doc",api:t.contentType==="doc"?"true":"",extra:t.contentType==="doc"?"editor":""}):void 0,downloadUrl:r?we(r,{id:t.id,objectID:t.id,objectType:"doc"}):void 0,onChange:this._handleChange})}render(e){var v,b;const{doc:t,fileActions:n,fileIcon:i,fileUrl:r,creator:o,modifier:a,onGetUser:l,historyFetcher:c,highlight:h,app:u}=e,p=this._status.value,m=(v=u.props)!=null&&v.showToolbar&&u.mode!="view"?"pt-8":"";return _("div",{className:K("doc-view absolute inset-0 canvas z-10 row",m,`is-sidebar-${p?"opened":"closed"}`,h?"highlight":""),ref:this._ref},_("div",{class:"doc-view-content col gap-4 flex-auto overflow-auto scrollbar-hover"},this._renderEditor(e),(b=t.files)!=null&&b.length?_(Ps,{className:"doc-files my-4 px-3 py-2 surface rounded-lg",heading:{icon:"paper-clip",title:u.getLang("attachment","附件")},items:t.files,fileActions:n,fileIcon:i,fileUrl:r,itemProps:{target:"_blank"},hoverItemActions:!0}):null),_(_w,{ref:this._sidebarRef,app:u,doc:t,creator:o,modifier:a,status:this._status,historyFetcher:c,historyPanel:u.props.historyPanel,onGetUser:l,showTabsNav:!1}))}}function wm(s,e){const{page:t,recPerPage:n}={page:1,recTotal:s.length,pageTotal:Math.ceil(s.length/20),recPerPage:20,...e},i=(t-1)*n,r=t*n;return s.slice(i,r)}class ww extends ve{constructor(e){var n;super(e),this._libsMap=tt({}),this._filterType=tt(),this._loading=tt(!1),this._currentFilterType=We(()=>{const{app:i}=this.props,r=this._filterType.value,o=i.spaceType;return r||(o==="product"||o==="project"?"mine":"all")}),this._spaceList=We(()=>{const{app:i}=this.props;let r=i.signals.spaces.value;const o=this._currentFilterType.value,a=i.spaceType,l=i.props.isMatchFilter;return o&&l&&(r=r.filter(c=>l.call(i,a,o,c))),r.sort((c,h)=>c.order-h.order)}),this._pagedSpaceList=We(()=>{const i=this._spaceList.value;return wm(i,this.props.app.signals.pager.value)}),this._autoLoadLibs=Yt(()=>{const i=this._spaceList.value;this.loadLibs(i.map(r=>r.id))}),this._handleFilterTypeClick=i=>{const o=i.target.getAttribute("data-type");o&&(this._filterType.value=o)},this._handleLibClick=i=>{const r=y(i.target);if(r.closest(".toolbar").length)return;const o=r.closest("[z-lib]").z("lib"),a=r.closest("[z-space]").z("space");!o||!a||this.props.app.selectSpace(a,+o)},this._handleChangePager=i=>{this.props.app.resetPager("home",{...i})};const t=e.app.getFilterTypes("home")||[];this._filterType.value=(n=t[0])==null?void 0:n[0]}get app(){return this.props.app}async loadLibs(e){e=e||this._spaceList.value.map(r=>r.id);const{libSummariesFetcher:t}=this.app.props;if(!t)return;const n=typeof t=="object"&&(t.method||"").toLowerCase()==="post"?{data:JSON.stringify(e.join(",")),processData:!1}:void 0;this._loading.value=!0;const i=await dt(t,[{spaceList:e,spaceType:this.app.spaceType}],n);Yi(()=>{this._libsMap.value={...this._libsMap.value,...e.reduce((r,o)=>(r[o]=[],r),{}),...i},this._loading.value=!1})}_getToolbarActions(e){return e.app.getActions("home",{ui:"toolbar"})}_renderHeader(e){const{app:t}=e,i=this._spaceList.value.length,r=t.getFilterTypes("home")||[],o=this._currentFilterType.value;return _("div",{key:"header",class:"doc-app-header flex-none surface-light row items-center border-b py-2 pl-1 pr-2 flex-none"},_("menu",{className:"nav nav-compact ml-2",style:"--nav-active-bg: var(--color-primary-100); --nav-active-color: var(--color-fore); --nav-item-height: 24px; --nav-divider-margin: 8px",onClick:this._handleFilterTypeClick},r.map(([a,l])=>_("li",{key:a,className:"nav-item item"},_("a",{className:a===o?"active rounded":"rounded","data-type":a},l,a===o&&i?_("span",{className:"label size-sm canvas ring-0 rounded-md"},i):null)))),_("div",{className:"flex-auto"}),_(je,{className:"doc-app-toolbar",gap:2,size:"md",items:this._getToolbarActions(e)}))}_getSpaceLibs(e){const{app:t}=this.props,i=this._libsMap.value[e];if(i)return i;const r=[],o=t.signals.docs.value,a=t.signals.libs.value,{maxHomeLibsOfSpace:l=5}=t.props,c=new Map;for(const h of o){const u=h.lib,p=c.get(u)||0;c.set(u,p+1)}for(let h=0;h=l))break}return r}_renderSpace(e,t){var c;const{app:n}=t,i=n.getItemActions("space",e,"space-card"),r=[{text:n.getLang("enterSpace","进入空间"),textClass:"text-primary",command:`selectSpace/${e.id}/true`},...i];let o=this._getSpaceLibs(e.id);const a=n.props.libColors;let l;return o?o.length?(o.length>5&&(o=o.slice(0,5)),l=_("div",{class:"row flex-wrap"},o.map(h=>{const u=n.getItemActions("lib",h,"space-card");return _("div",{className:"doc-space-card-lib p-1.5 w-1/5 group"},_("div",{class:"canvas border rounded py-2 px-3 col gap-1 hover:shadow-lg hover:border-primary relative cursor-pointer",onClick:this._handleLibClick,"z-lib":h.id,"z-space":e.id},_(Ie,{icon:"doclib text-2xl",style:a?{color:a[h.id%a.length]}:null}),_("div",{class:"font-bold text-clip",title:h.name},h.name),_("div",{class:"text-gray text-sm"},h.docs?n.getLang("docsTotalInfo",[h.docs],"共 {0} 个文档"):n.getLang("noDocs","没有文档")),u!=null&&u.length?je.render({items:u},[],{size:"sm",type:"ghost",className:"absolute top-1 right-1 opacity-0 group-hover:opacity-100"}):null))}))):l=_("div",{className:"center gap-4 py-3"},_("div",{className:"text-gray"},n.getLang("noLibs","没有文档库")),(c=n.props.privs)!=null&&c.createLib?_(be,{type:"primary-pale",icon:"plus",command:`createLib/${e.id}`},n.getLang("createLib","创建文档库")):null):l=_("div",{className:"relative load-indicator loading center gap-4 h-4 py-3"}),_("div",{class:"doc-space-card ring rounded surface-light",key:e.id},_("header",{class:"row items-center justify-between gap-2 px-2.5 py-1 border-b"},_("div",{class:"row items-center gap-2 flex-none cursor-pointer hover:text-primary","zui-command":`selectSpace/${e.id}/true`},_(Ie,{icon:"docspace",className:"w-4 h-4 center rounded-md text-gray-600 flex-none"}),_("div",{className:"min-w-0 flex-auto"},_("strong",null,e.name))),_(je,{size:"md",items:r})),_("div",{class:"doc-space-card-libs p-1.5",style:"min-height: 118px"},l))}_renderBody(e){const t=this._pagedSpaceList.value;return _("div",{key:"body",class:"doc-app-body flex-auto min-h-0 col gap-4 p-4 items-stretch overflow-auto scrollbar-hover"},t.map(n=>this._renderSpace(n,e)),t.length===0?_("div",{className:"center text-gray h-full"},e.app.getLang("noDataYet","暂无数据")):null)}_renderFooter(e){const t=e.app.getPagerOptions({className:"flex-none",...e.app.signals.pager.value,recTotal:this._spaceList.value.length,onChangePageInfo:this._handleChangePager},{type:"home"});return _("div",{key:"footer",class:"doc-app-footer surface-light row items-center border-t py-1.5 px-2"},_("div",{class:"flex-auto"}),_(gr,{...t}))}componentDidMount(){this.props.app.resetPager("home",{recTotal:this._spaceList.value.length})}componentWillUnmount(){this._autoLoadLibs()}render(e){return this._loading.value?_("div",{key:"loading",class:"doc-loading relative center h-full load-indicator loading tex-gray","data-loading":e.app.getLang("loadingDocsData","正在加载文档数据...")}):[this._renderHeader(e),this._renderBody(e),this._renderFooter(e)]}}const Cw=s=>{var t,n;s=JSON.parse(JSON.stringify(s));const e=new Map;for(const i of s){const r=String(i.id);e.has(r)?i.items&&((n=(t=e.get(r))==null?void 0:t.items)==null||n.push(...i.items)):e.set(r,i)}return Array.from(e.values())};class Sw extends ve{constructor(e){super(e),this._libsMap=tt({}),this._filterType=tt(),this._programData=tt(),this._hasDocsOnly=tt(!1),this._showClosed=tt(!1),this._otherPrograms=We(()=>{var n;if(!this._programData.value)return[];const t=[];if(t.push(...this._programData.value.data.other),this._showClosed.value){const i=this._programData.value.data.closed;for(const r of i){const o={...r,items:(n=r.items)==null?void 0:n.filter(a=>!a.isPO&&!a.involved)};t.push(o)}}return t}),this._myPrograms=We(()=>{var n;if(!this._programData.value)return[];const t=[];if(t.push(...this._programData.value.data.my),this._showClosed.value){const i=this._programData.value.data.closed;for(const r of i){const o={...r,items:(n=r.items)==null?void 0:n.filter(a=>a.isPO||a.involved)};t.push(o)}}return t}),this._currentFilterType=We(()=>{const t=this._filterType.value;return t||"mine"}),this._programList=We(()=>{const n=this._currentFilterType.value==="mine"?this._myPrograms.value:this._otherPrograms.value;return Cw(n)}),this._pagedProgramList=We(()=>{const t=this._programList.value;return wm(t,this.app.signals.pager.value)}),this._spaceList=We(()=>{const{app:t}=this.props;let n=t.signals.spaces.value;const i=this._currentFilterType.value,r=t.spaceType,o=t.props.isMatchFilter;return i&&o&&(n=n.filter(a=>o.call(t,r,i,a))),n.sort((a,l)=>a.order-l.order)}),this._autoLoadLibs=Yt(()=>{const t=this._spaceList.value;this.loadLibs(t.map(n=>n.id))}),this._handleFilterTypeClick=t=>{const i=t.target.getAttribute("data-type");i&&(this._filterType.value=i)},this._handleSpaceClick=t=>{const n=y(t.target);if(n.closest(".toolbar").length)return;const i=n.closest("[z-space]").z("space");i!=null&&this.props.app.selectSpace(i,!0)},this._handleChangePager=t=>{this.props.app.resetPager("home",{...t})},this._filterType.value="mine"}get app(){return this.props.app}async loadLibs(e){e=e||this._spaceList.value.map(r=>r.id);const{libSummariesFetcher:t}=this.app.props;if(!t)return;const n=typeof t=="object"&&(t.method||"").toLowerCase()==="post"?{data:JSON.stringify(e.join(",")),processData:!1}:void 0,i=await dt(t,[{spaceList:e,spaceType:this.app.spaceType}],n);this._libsMap.value={...this._libsMap.value,...e.reduce((r,o)=>(r[o]=[],r),{}),...i}}_getToolbarActions(e){return e.app.getActions("home",{ui:"toolbar"})}_renderHeader(e){const{app:t}=e,n=this._programList.value.length,i=t.spaceType==="product"?[["mine",t.getLang("productMine")],["other",t.getLang("productOther")]]:[["mine",t.getLang("projectMine")],["other",t.getLang("projectOther")]],r=this._currentFilterType.value;return _("div",{key:"header",class:"doc-app-header flex-none surface-light row gap-2 items-center border-b py-2 pl-1 pr-2 flex-none"},_("menu",{className:"nav nav-compact ml-2",style:"--nav-active-bg: var(--color-primary-100); --nav-active-color: var(--color-fore); --nav-item-height: 24px; --nav-divider-margin: 8px",onClick:this._handleFilterTypeClick},i.map(([o,a])=>_("li",{key:o,className:"nav-item item"},_("a",{className:o===r?"active rounded":"rounded","data-type":o},a,o===r&&n?_("span",{className:"label size-sm canvas ring-0 rounded-md"},n):null)))),_(oi,{id:"show-no-doc",name:"show-no-doc",defaultChecked:this._hasDocsOnly.value,label:t.getLang(t.spaceType==="product"?"showHasDocsOnlyProduct":"showHasDocsOnlyProject"),onChange:(o,a)=>{typeof a=="boolean"&&(this._hasDocsOnly.value=a)}}),_(oi,{id:"show-closed",name:"show-closed",defaultChecked:this._showClosed.value,label:t.getLang(t.spaceType==="product"?"showClosedProduct":"showClosedProject"),onChange:(o,a)=>{typeof a=="boolean"&&(this._showClosed.value=a)}}),_("div",{className:"flex-auto"}),_(je,{className:"doc-app-toolbar",gap:2,size:"md",items:this._getToolbarActions(e)}))}_getSpaceLibs(e){const{app:t}=this.props,i=this._libsMap.value[e];if(i)return i;const r=[],o=t.signals.docs.value,a=t.signals.libs.value,{maxHomeLibsOfSpace:l=5}=t.props,c=new Map;for(const h of o){const u=h.lib,p=c.get(u)||0;c.set(u,p+1)}for(let h=0;h=l))break}return r}_getSpaceDocSum(e){var t;return((t=this._getSpaceLibs(e))==null?void 0:t.map(n=>n.docs).reduce((n,i)=>n+i,0))||0}_renderProgram(e,t){var a;const{app:n}=t,i=this._hasDocsOnly.value?(a=e.items)==null?void 0:a.filter(l=>this._getSpaceDocSum(Number(l.id))>0):e.items,r=n.props.libColors;let o;return e?i!=null&&i.length?o=_("div",{class:"row flex-wrap"},i.map(l=>{const c=this._getSpaceDocSum(l.id);return _("div",{className:"doc-space-card-lib p-1.5 w-1/5 group",key:l.id},_("div",{class:"canvas border rounded py-2 px-3 col gap-1 hover:shadow-lg hover:border-primary relative cursor-pointer",onClick:this._handleSpaceClick,"z-space":l.id},_(Ie,{icon:"doclib text-2xl",style:r?{color:r[Number(l.id)%r.length]}:null}),_("div",{class:"font-bold text-clip",title:l.text},l.text),_("div",{class:"text-gray text-sm"},c?n.getLang("docsTotalInfo",[c],"共 {0} 个文档"):n.getLang("noDocs","没有文档"))))})):o=_("div",{className:"center gap-4 py-3"},_("div",{className:"text-gray"},n.getLang(n.spaceType==="product"?"noProducts":"noProjects"))):o=_("div",{className:"relative load-indicator loading center gap-4 h-4 py-3"}),_("div",{class:"doc-space-card ring rounded surface-light",key:e.id},_("header",{class:"row items-center justify-between gap-2 px-2.5 py-1 border-b"},_("div",{class:"row items-center gap-2 flex-none cursor-pointer hover:text-primary","zui-command":`selectSpace/${e.id}/true`},_(Ie,{icon:"docspace",className:"w-4 h-4 center rounded-md text-gray-600 flex-none"}),_("div",{className:"min-w-0 flex-auto"},_("strong",null,e.text)))),_("div",{class:"doc-space-card-libs p-1.5",style:"min-height: 118px"},o))}_renderBody(e){const t=this._pagedProgramList.value;return _("div",{key:"body",class:"doc-app-body flex-auto min-h-0 col gap-4 p-4 items-stretch overflow-auto scrollbar-hover"},t.map(n=>this._renderProgram(n,e)),t.length===0?_("div",{className:"center text-gray h-full"},e.app.getLang("noDataYet","暂无数据")):null)}_renderFooter(e){const t=e.app.getPagerOptions({className:"flex-none",...e.app.signals.pager.value,recTotal:this._programList.value.length,onChangePageInfo:this._handleChangePager},{type:"home"});return _("div",{key:"footer",class:"doc-app-footer surface-light row items-center border-t py-1.5 px-2"},_("div",{class:"flex-auto"}),_(gr,{...t}))}componentDidMount(){var t,n;this.props.app.resetPager("home",{recTotal:this._programList.value.length,recPerPage:5});const e=(n=(t=this.props.app.props).getSpaceFetcher)==null?void 0:n.call(t,this.props.app.spaceType);e&&dt(e).then(i=>void(this._programData.value=i))}componentWillUnmount(){this._autoLoadLibs()}render(e){return[this._renderHeader(e),this._renderBody(e),this._renderFooter(e)]}}class xw extends ve{constructor(){super(...arguments),this._dtable=pe(),this._handleCellClick=(e,t)=>{var i;const n=(i=t.rowInfo)==null?void 0:i.data;this.props.app.selectDoc(n)}}_getCols(){return[{name:"title",onRenderCell:function(e,t){const n=t.row.data;return[{className:`api-list-item row items-center my-0.5 mx-1 gap-2 flex-auto is-${n.method} cursor-pointer rounded`,html:[`
    ${n.method}
    `,`
    ${n.path}
    `,`
    ${n.originTitle}
    `].join("")}]}}]}_getTableOptions(e){var h;const{app:t,docs:n}=e,i=t.lib,r=i==null?void 0:i.data.orderBy;let o="",a="";typeof r=="string"&&r&&([o,a]=r.split("_"));const l=n.map(u=>u.data);["order","id"].includes(o)&&a&&(a==="asc"?l.sort((u,p)=>u.order-p.order):l.sort((u,p)=>p.order-u.order));const c={width:"100%",height(u){var m;const p=(m=this.element)==null?void 0:m.parentElement;return p?Math.min(u,p.clientHeight):u},cols:this._getCols(),data:l,header:!1,checkable:!1,footer:["flex","pager"],localPager:!0,emptyTip:_("div",{className:"center gap-4"},_("div",{className:"text-gray"},t.getLang("noApi","没有 API")),je.render({items:t.getActions("doc-list",{ui:"doc-list-empty"})},[])),footPager:{items:t.getPagerItems()},onCellClick:this._handleCellClick};return((h=t.getTableOptions)==null?void 0:h.call(t,c,{type:"api-list"}))??c}render(e){return _("div",{class:K("doc-list doc-api-list h-full col",e.className)},_(xi,{ref:this._dtable,...this._getTableOptions(e)}))}}const Wx="";class Ti extends Ce{static update(e){y.trigger("load.HistoryPanel",e)}}Ti.NAME="HistoryPanel",Ti.Component=Rh,Ti.replace=!0,Ti.register();function zh(s){const{objectType:e,objectID:t,actionID:n,url:i,...r}=s;let o=i;return!o&&(n||e&&t)&&(o=Lt("action",n?"editComment":"comment",n?`actionID=${n}`:`objectType=${e}&objectID=${t}`)),ze.open({id:`modal-comment-${n?`edit-${n}`:`${e}-${t}`}`,url:o,hideOthers:!1,...r})}y(document).on("click.zt",'[data-toggle="comment"]',s=>{s.preventDefault();const e=y(s.currentTarget);if(e.is(".disabled,:disabled"))return;const t=e.data();if(e.is("a")){const n=e.attr("href");n&&(t.url=n)}t.objectId?(t.objectID=+t.objectId,delete t.objectId):t.actionId&&(t.actionID=+t.actionId,delete t.actionId),delete t.toggle,zh(t)}),Object.assign(ze,{comment:zh});const Vx="";let Oh=class extends Mo{constructor(e){var t;super(e),this._loadingDocs=new Map,this._viewRef=pe(),this._homeRef=pe(),this._treeMap=We(()=>{const{spaceID:n,libs:i,modules:r,docs:o}=this.signals;return Zb(n.value,{libs:i.value,modules:r.value,docs:o.value},!!this.props.noSpace)}),this._space=We(()=>{const{spaces:n,spaceID:i}=this.signals,r=i.value;return n.value.find(o=>o.id===r)}),this._spaceList=We(()=>{const{spaces:n,spaceType:i}=this.signals,r=i.value;return n.value.filter(o=>!o.deleted&&o.type===r)}),this._libList=We(()=>this._treeMap.value.libList),this._docList=We(()=>{const{lib:n,module:i,doc:r}=this;return(r==null?void 0:r.data.type)==="chapter"?this._filterDocs(br(r,[],!0),{api:(n==null?void 0:n.data.type)==="api"}):i||n?this._filterDocs(br(i||n,[],!0),{api:(n==null?void 0:n.data.type)==="api"}):this._filterDocs(void 0,{api:!1})}),this._doc=We(()=>this._treeMap.value.docs.get(this.signals.docID.value)),this._viewingDoc=We(()=>{const n=this._doc.value,i=this.signals.docVersion.value;return!n||!i||i===n.data.version||!n.data.versions?n:{...n,data:{...n.data,...n.data.versions[i]||{content:null},currentVersion:i}}}),this._module=We(()=>{var i;const n=((i=this._doc.value)==null?void 0:i.data.module)||this.signals.moduleID.value;return this._treeMap.value.modules.get(n)}),this._lib=We(()=>{var i;const n=((i=this._module.value)==null?void 0:i.data.lib)||this.signals.libID.value;return this._treeMap.value.libs.get(n)}),this._viewType=We(()=>this._viewInfo.value[0]),this._viewInfo=We(()=>{var a;const n=this.signals.mode.value;let i;const r=this.signals.creatingDoc.value,o=this.signals.editingDoc.value;if(n==="create")i=r;else if(n==="edit"){const l=this.getDoc(o==null?void 0:o.id);i=o,l&&i&&(i={...i,collects:l.collects,isCollector:l.isCollector,views:l.views,files:l.files})}else n==="view"&&(i=((a=this._viewingDoc.value)==null?void 0:a.data)||this._getLocalDoc(this.signals.docID.value));return[n,i]}),this._docUsers=We(()=>{const n=this._doc.value;if(!n)return[];const{addedBy:i,editedBy:r}=n.data;return[this.getUserInfo(i),r?this.getUserInfo(r):void 0]}),this._hasEditingDoc=We(()=>!!this._editingDoc.value),this._editingDoc=We(()=>{const[n,i]=this._viewInfo.value;return n==="edit"||n==="create"?i:void 0}),this._canShowLibFiles=We(()=>{const n=this.signals.spaceType.value;let{showLibFiles:i}=this.props;return typeof i=="function"?i=i.call(this,n):Array.isArray(i)&&(i=i.includes(n)),i}),this._location=We(()=>{var m;const{spaceType:n,spaceID:i,libID:r,moduleID:o,docID:a,pager:l,searchKeys:c,docVersion:h,mode:u,params:p}=this.signals;return{mode:u.value,spaceType:n.value,spaceID:i.value,libID:r.value,moduleID:o.value,docID:a.value,docVersion:h.value,search:(m=c.value)==null?void 0:m.join(" "),filterType:this.filterType,pager:l.value,noSpace:this.props.noSpace,orderBy:"",params:p.value}}),this._filterType=We(()=>this.signals.filterType.value[this.signals.mode.value]??"all"),this._viewEffect=Yt(()=>{var c,h,u,p;const{libID:n,moduleID:i,docID:r}=this.signals,o=r.value?"doc":i.value?"module":n.value?"lib":"space",a=r.value?(c=this._doc.value)==null?void 0:c.data:i.value?(h=this._module.value)==null?void 0:h.data:n.value?(u=this._lib.value)==null?void 0:u.data:this._space.value,l=this.signals.mode.value;(p=this.props.onSwitchView)==null||p.call(this,l,this._location.value,{type:o,title:a?o==="doc"?a.title:a.name:"",data:a})}),this._modeEffect=Yt(()=>{var o,a;const{mode:n}=this.signals;let{useHocuspocus:i}=this.props;const{onModeChange:r}=this.props;i=typeof i=="function"?i(this):i,i&&((a=(o=this.editor)==null?void 0:o.destroyHocuspocusProvider)==null||a.call(o)),r==null||r(this,n.value)}),this._handleDocChange=(n,i)=>{if(i==="create"){const r=this.signals.creatingDoc.value;r&&(r.title!==n.title||r.content!==n.content||r.keywords!==n.keywords||r.html!==n.html)&&(this.signals.creatingDoc.value={...r,...n,changed:!0,contentType:n.contentType||r.contentType})}else if(i==="edit"){const r=this.signals.editingDoc.value;r&&(r.title!==n.title||r.content!==n.content||r.keywords!==n.keywords||r.html!==n.html)&&(this.signals.editingDoc.value={...r,...n,changed:!0,contentType:n.contentType||r.contentType})}},this._getFileActions=n=>{var i;return this.getActions("file",{ui:"doc-view",data:n,doc:(i=this.doc)==null?void 0:i.data})},this._handleSearch=n=>{this.signals.searchKeys.value=pt.getSearchKeys(n)},this._handleFilterTypeClick=n=>{const i=n.target,r=i.getAttribute("data-type");if(r){const o=i.getAttribute("data-view");this.setFilterType(r,o)}},this._preserve=e.preserve??((t=this.element)==null?void 0:t.closest(".modal"))?"":`docapp_${window.config.currentModule}_${window.config.currentMethod}`,this.selectSpace=this.selectSpace.bind(this),this.selectDoc=this.selectDoc.bind(this),this.selectLib=this.selectLib.bind(this),this.selectModule=this.selectModule.bind(this),this.getUserInfo=this.getUserInfo.bind(this),this.selectDocVersion=this.selectDocVersion.bind(this),this.showFiles=this.showFiles.bind(this),this.getActions=this.getActions.bind(this),this.getItemActions=this.getItemActions.bind(this),this.executeCommand=this.executeCommand.bind(this),this.getTableOptions=this.getTableOptions.bind(this),this.toggleFullscreen=this.toggleFullscreen.bind(this)}get preserve(){return this._preserve}get spaceType(){return this.signals.spaceType.value}get spaceID(){return this.signals.spaceID.value}get libID(){return this.signals.libID.value}get moduleID(){return this.signals.moduleID.value}get docID(){return this.signals.docID.value}get docVersion(){return this.signals.docVersion.value}get space(){return this._space.value}get lib(){return this._lib.value}get module(){return this._module.value}get doc(){return this._doc.value}get treeMap(){return this._treeMap.value}get docList(){return this._docList.value}get docUsers(){return this._docUsers.value}get viewInfo(){return this._viewInfo.value}get libList(){return this._libList.value}get spaceList(){return this._spaceList.value}get mode(){return this.signals.mode.value}get canShowLibFiles(){return this._canShowLibFiles.value}get hasEditingDoc(){return this._hasEditingDoc.value}get location(){return this._location.value}get filterType(){return this._filterType.value}get editor(){var e,t;return(t=(e=this._viewRef.current)==null?void 0:e.editor)==null?void 0:t.editor}get fullscreen(){return this.signals.fullscreen.value}get editingDoc(){return this._editingDoc.value}get editingUsers(){var e;return((e=this.signals.editingUsers)==null?void 0:e.value)||[]}_filterDocs(e,t){if(e=e||this.signals.docs.value,e.length){const n=t==null?void 0:t.api,i=t==null?void 0:t.chapter,r=this.signals.searchKeys.value||[],o=this.filterType,a="key"in e[0],{currentUser:l,isMatchFilter:c,noSpace:h}=this.props,u=c?c.bind(this,"doc",o):b=>o==="createdByMe"?b.addedBy===l:o==="editedByMe"?b.editedBy===l:o==="draft"?b.status==="draft":o==="collected"?b.isCollector:!0;if(a&&!r.length)return o!=="all"&&o?e.filter(b=>u(b.data)):e;const p=this.signals.spaceID.value,m=this._treeMap.value,v=["id","title","keywords","addedBy","editedBy",b=>this.getUserInfo(b.addedBy).realname,b=>{const C=b.editedBy;return C?this.getUserInfo(C).realname:void 0}];return e.reduce((b,C)=>{const x=a?C.data:C;if(x.deleted||!i&&x.type==="chapter"||n!==void 0&&!!x.api!==n||o&&!u(x)||r.length&&!pt.isItemMatch(x,r,v))return b;const D=m.libs.get(x.lib);return(h||x.lib===p||D&&D.data.space===p)&&b.push(a?C:m.docs.get(x.id)),b},[])}return[]}_getLocalDoc(e){if(e)return{id:e,type:"text",rawID:cm(e),parent:0,contentType:"doc",content:"",title:"",addedBy:"",lib:this.libID,module:this.moduleID,addedDate:nt(new Date),order:0,local:!0}}loadHomeLibs(){var e;(e=this._homeRef.current)==null||e.loadLibs()}toggleFullscreen(){y.toggleFullscreen({target:document.body,afterEnter:()=>{this.signals.fullscreen.value=!0,y("body").addClass("has-doc-app-fullscreen")},afterExit:()=>{y("body").removeClass("has-doc-app-fullscreen"),this.signals.fullscreen.value=!1}})}toggleViewSideTab(e){var t,n,i;return(i=(n=(t=this._viewRef)==null?void 0:t.current)==null?void 0:n.sidebar)==null?void 0:i.toggleTab(e)}getDefaultState(e){e=e||this.props;const{data:t,fetcher:n,mode:i="home",filterType:r="all",pager:o,search:a,docVersion:l=0,defaultState:c,params:h}=e,u=this.formatData({libTypes:e.libTypes||[],...t},e);return{loading:!!(!t&&n),editingDoc:void 0,creatingDoc:void 0,searchKeys:pt.getSearchKeys(a),fullscreen:!1,filterType:{[i]:r},docVersion:l,mode:i,highlightView:!1,editingUsers:[],pager:o,params:h,...c,...u}}resetState(e){super.resetState(e),requestAnimationFrame(()=>this.reload())}getDataSignal(e){const{signals:t}=this;return e==="doc"?t.docs:e==="module"?t.modules:e==="lib"?t.libs:t.spaces}getCurrentItem(e){var t,n,i;return e==="doc"?(t=this._doc.value)==null?void 0:t.data:e==="module"?(n=this._module.value)==null?void 0:n.data:e==="lib"?(i=this._lib.value)==null?void 0:i.data:this._space.value}getSpace(e){return e?this.signals.spaces.value.find(t=>t.id===e):this._space.value}getLib(e){return e?this.treeMap.libs.get(e):this._lib.value}getDoc(e){var t,n;return e=e||((t=this._doc.value)==null?void 0:t.data),typeof e!="object"&&(e=e?(n=this._treeMap.value.docs.get(e))==null?void 0:n.data:void 0),e}getUserInfo(e){const{userMap:t={}}=this.props,n=t[e];return n?typeof n=="string"?{account:e,realname:n}:{...n,account:e}:{account:e,realname:e}}getDownloadUrl(e,t){if(t=t||this.props.downloadUrl,!t)return;let n="";if(e.startsWith("data:"))n=e;else if(/https?:\/\//.test(e)){const i=window.EDITOR_IMAGE_PROXY_ENDPOINT;n=i?`${i}?url=${encodeURIComponent(e)}`:e}else if(e.startsWith("attachment:")){const i=e.substring(11).split("/")[0];n=we(t,{objectType:"doc",objectID:this.docID,gid:"",title:btoa(i),extra:""})}else n=we(t,{objectType:"doc",objectID:this.docID,gid:btoa(`g-${e}`),title:"",extra:"editor"});return n}downloadFile(e,t){const n=this.getDownloadUrl(e);if(n)return!t&&e.startsWith("attachment:")&&(t=decodeURIComponent(e.substring(11).split("/")[0])),Ds(n,t)}async switchView(e,t){if(!await this.checkEditingDoc())return;t=t||this.mode;const{spaceType:n,spaceID:i,libID:r,moduleID:o,docID:a,params:l,filterType:c,pager:h}=e,{fetchOnChangeSpace:u,fetcher:p}=this.props,m=n&&this.signals.spaceType.value!==n||i!==void 0&&this.signals.spaceID.value!==i,v=u&&p&&m,b={...n?{spaceType:n}:null,...i!==void 0?{spaceID:i}:null,...r!==void 0?{libID:r}:null,...o!==void 0?{moduleID:o}:null,...a!==void 0?{docID:a}:null,...l!==void 0?{params:l}:null,...c!==void 0?{filterType:{...this.signals.filterType.value,[t]:c}}:null,...h!==void 0?{pager:{...this.signals.pager.value,...h}}:null,mode:t};return this.changeState(b,async()=>{v&&await this.load(p,this.signals.spaceType.value,i),a&&t==="edit"?this.startEditDoc(a):t==="create"?this.startCreateDoc():t==="files"?this.showFiles():t==="home"&&this.goHome()})}setFilterType(e,t){this.signals.filterType.value={...this.signals.filterType.value,[t||this.mode]:e}}exportDoc(e="pdf",t){var i;const n=this.editor;if(n instanceof ki)return(i=n.$)==null?void 0:i.export(e,t)}importDoc(e,t,n){var r,o,a;const i=this.editor;i instanceof ki&&((r=i.$)==null||r.updateDoc(e,t==="json"?"snapshot":t,n),typeof n=="string"&&((a=(o=this._viewRef.current)==null?void 0:o.editor)==null||a.setTitle(n)))}getLang(e,t=[],n){const{langData:i}=this.props;let r;if(typeof t=="string"?(n=t,r=[]):r=Array.isArray(t)?t:[t],!i)return n??(Array.isArray(e)?e.join("."):e);const o=Array.isArray(e)?Bi(i,e):i[e]??n;return typeof o=="function"?o.call(this,...r):typeof o=="string"&&r.length?we(o,...r):o}getActions(e,t){const{getActions:n}=this.props,i=n?n.call(this,e,t):[];return i!=null&&i.length&&t.ui?i.filter(r=>r&&(!r.ui||r.ui.split(",").includes(t.ui))):i||[]}getFilterTypes(e){const{getFilterTypes:t}=this.props;return t?t.call(this,e)||[]:[["all","All"]]}getTableOptions(e,t){const{getTableOptions:n}=this.props;return n?n.call(this,e,t):e}getPagerItems(){return[{type:"info",text:this.getLang("recTotalFormat","共 {recTotal} 项")},{type:"size-menu",text:this.getLang("recPerPageFormat","每页 {recPerPage} 项"),placement:"top",caret:"up"},{type:"link",page:"first",hint:this.getLang("firstPage","第一页"),icon:"icon-first-page"},{type:"link",page:"prev",hint:this.getLang("prevPage","上一页"),icon:"icon-angle-left"},{type:"info",text:"{page}/{pageTotal}"},{type:"link",page:"next",hint:this.getLang("nextPage","icon-angle-right"),icon:"icon-angle-right"},{type:"link",page:"last",hint:this.getLang("lastPage","最后一页"),icon:"icon-last-page"}]}getPagerOptions(e,t){const{getPagerOptions:n}=this.props,i=n?n.call(this,e,t):e;return i.items||(i.items=this.getPagerItems()),i}getSortableOptions(e){const{getSortableOptions:t}=this.props;return t==null?void 0:t.call(this,e)}getItemActions(e,t,n){const i=t==="current"?this.getCurrentItem(e):typeof t=="number"?this.getDataSignal(e).value.find(r=>r.id===t):t;return i?this.getActions(e,{ui:n,data:i}):(console.warn(`[ZUI] getItemActions: ${e} data with ID "${t}" not found.`),[])}async selectSpace(e,t,n){var a,l;if(!await this.checkEditingDoc())return;e==="_first"&&(e=((a=this.spaceList[0])==null?void 0:a.id)??0);const{fetchOnChangeSpace:i,fetcher:r,autoSelectLib:o}=this.props;if(n===void 0&&(n=!!(i&&r&&(this.signals.spaceID.value!==e||typeof t=="number"&&t!==this.signals.libID.value))),!(this.signals.spaceID.value===e&&!t))return this.changeState({spaceID:e,mode:"list",...t?{libID:typeof t=="number"?t:o&&!n?((l=this.libList[0])==null?void 0:l.data.id)??0:0,moduleID:0,docID:0}:null,...n?{data:void 0,loading:!0}:null},()=>{n&&this.load(r,this.signals.spaceType.value,e)})}async selectDoc(e,t){if(!await this.checkEditingDoc())return;typeof e!="object"&&(e=this.getDoc(e));const n=e?e.id:0;return this.changeState({mode:(e==null?void 0:e.type)==="chapter"?"list":"view",docID:n,...n!==this.signals.docID.value?{docVersion:0}:null,...e?{libID:e.lib,moduleID:e.module}:null,...t!==void 0?{docVersion:+t}:null})}async goHome(){if(await this.checkEditingDoc())return this.changeState({libID:0,moduleID:0,docID:0,mode:"home"})}getDefaultPager(e){const{getDefaultPager:t}=this.props,n=this._preserve?Qe.get(`${this._preserve}:pager:${e}`):null;return t?t.call(this,e):{page:1,recTotal:0,recPerPage:typeof n=="number"?n:20,pageTotal:0}}resetPager(e,t){const n={...this.getDefaultPager(e),...this.signals.pager.value,...t};this.signals.pager.value=n;const{preserve:i}=this;i&&Qe.set(`${i}:pager:${e}`,n.recPerPage)}async showFiles(){if(this.canShowLibFiles&&await this.checkEditingDoc())return this.changeState({libID:0,moduleID:0,docID:0,mode:"files",pager:this.getDefaultPager("files")})}async selectLib(e,t){if(!await this.checkEditingDoc())return;const n=this._module.value;n&&t===void 0&&n.data.lib!==e&&(t=0),t===void 0&&(t=this.signals.moduleID.value);const i=e?this.treeMap.libs.get(e):null;if(!(e&&!i||t&&!this.treeMap.modules.get(t)))return this.changeState({libID:e,moduleID:t,mode:"list",docID:0})}selectDocVersion(e,t){const n=this.signals.docID.value;t=t||n;const i=this.getDoc(t);i&&(e=Math.max(0,Math.min(+e,i.version??0)),!(t===n&&e===this.signals.docVersion.value)&&this.changeState({docID:t,docVersion:e}))}async selectModule(e,t){if(!await this.checkEditingDoc())return;const n=this._doc.value;return this.changeState({moduleID:e,...t||n&&e!==n.data.id?{docID:0,mode:"list"}:null})}setData(e,t){var r;const{signals:n}=this,i=this.formatData(e,{spaceType:n.spaceType.value,spaceID:n.spaceID.value,libID:n.libID.value,moduleID:n.moduleID.value,docID:n.docID.value});return this.changeState({...i,...t,libTypes:(r=i.libTypes)!=null&&r.length?i.libTypes:n.libTypes.value})}async checkEditingDoc(){if(this._hasEditingDoc.value){const[,e]=this._viewInfo.value;if(e!=null&&e.changed){this.signals.highlightView.value=!0;const t=await ze.confirm(this.getLang("leaveEditingConfirm","文档编辑中,确定要离开吗?"));if(this.signals.highlightView.value=!1,!t)return!1}await this.changeState({editingDoc:void 0,creatingDoc:void 0,docVersion:0})}return!0}async load(e,t,n,i){var r,o;if(e=e||this.props.fetcher,e){const{signals:a}=this;t=t||a.spaceType.value,n=n||a.spaceID.value;const{noLoading:l=!1,picks:c=[]}=i||{},h=typeof c=="string"?[c]:c;await this.changeState({loading:!l,spaceType:t,spaceID:n});const u=await dt(e,[{spaceType:t,spaceID:n,picks:h,noSpace:!!this.props.noSpace}],void 0,this);await this.setData(h?{spaces:a.spaces.value,libs:a.libs.value,modules:a.modules.value,docs:a.docs.value,spaceID:a.spaceID.value,libTypes:a.libTypes.value,...this.props.autoSelectLib?{libID:((o=(r=u.libs)==null?void 0:r[0])==null?void 0:o.id)??0}:{},...u}:u,l?void 0:{loading:!1})}}isLoadingDoc(e){return this._loadingDocs.has(e)}async loadDoc(e,t,n){var l;let i=this.getDoc(e)||this._getLocalDoc(e);if(!i||((l=this.props.privs)==null?void 0:l.view)===!1)return;if(n=n||this.props.docFetcher,!n){if(i.api)return;n=()=>t?{id:e,content:"",version:t}:{id:e,content:""}}const r=this._loadingDocs;if(r.has(e))return new Promise(c=>{r.get(e).push(c)});r.set(e,[]),t=t||i.version||0;const o=!t||t===i.version||!i.version,a=await dt(n,[{docID:e,version:t}],void 0,this);if(a){const c=o?this.formatDataItem("doc",{...i,...a,id:e,local:!1}):{...i,...a.version?{version:a.version}:null,...a.privs?{privs:a.privs}:null,...a.editable!==void 0?{editable:a.editable}:null,versions:{...i.versions,[t]:this.formatDataItem("doc",a)},local:!1};if(this.props.autoConvertDoc||c.status==="draft")if(c.contentType==="html"&&c.content&&i.$convert===void 0){const h=await dn.htmlToSnap(c.content);c.$convert=!!h}else c.$convert=!1;i=this.update("doc",c,{keepDeleted:!0})}return r.get(e).forEach(c=>c(i)),r.delete(e),i}formatDataItem(e,t,n,i){if(e==="module")t.lib=+(t.lib??t.root),t.parent=+(t.parent??0);else if(e==="lib"){const o=t;o.space=o.space??n,o.space=String(+o.space)===String(o.space)?+o.space:o.space}else e==="space"&&(t.type=t.type??i);if(t.id=Rs(t.id),t.deleted=typeof t.deleted=="string"?!!JSON.parse(t.deleted):t.deleted,e==="doc"){const o=t;if(o.files){!Array.isArray(o.files)&&typeof o.files=="object"&&(o.files=Object.values(o.files));for(const a of o.files)a.id=+a.id,a.size=+a.size,a.downloads=a.downloads?+a.downloads:0,a.deleted=typeof a.deleted=="string"?!!JSON.parse(a.deleted):a.deleted}o.api===void 0&&(o.api=typeof t.id=="string"&&t.id.startsWith("api.")),o.rawID=cm(t.id),o.product=+(o.product??0),o.project=+(o.project??0),o.execution=+(o.execution??0),o.version=+(o.version??0),o.views=+(o.views??0),o.module=+(o.module??0),o.lib=+(o.lib??0),o.collects=+(o.collects??0),o.contentVersion&&(o.contentVersion=+o.contentVersion,Number.isNaN(o.contentVersion)||(o.currentVersion=o.contentVersion)),o.editable!==void 0&&(o.privs={...o.privs,edit:o.editable}),o.contentType==="attachment"&&(o.contentType="html"),o.parent&&(o.parent=Rs(o.parent)),o.draft&&(typeof o.draft=="string"?o.draft=o.status==="draft"?{id:0,doc:o.id,content:o.content,contentType:o.contentType,title:o.title,version:0,addedBy:o.addedBy,addedDate:o.addedDate}:null:(o.draft.type&&(o.draft.contentType=o.draft.type),o.draft.rawContent&&(o.draft.content=o.draft.rawContent,delete o.draft.rawContent),o.status==="draft"&&(o.contentType=o.draft.contentType,o.content=o.draft.content))),o.rawContent&&(o.content=o.rawContent,delete o.rawContent),!o.collects&&o.isCollector&&(o.collects=1),o.editedBy===o.addedBy&&o.editedDate===o.addedDate&&(delete o.editedBy,delete o.editedDate)}typeof t.order!="number"&&typeof t.id=="number"&&(t.order=t.id);const{formatDataItem:r}=this.props;return r?r.call(this,e,t,n,i):t}formatData(e,t){let{libID:n=0,moduleID:i=0,docID:r,spaceID:o=0}=t;n&&(n=+n),i&&(i=+i),r&&(r=Rs(r));const{spaceType:a}=t,{libs:l=[],modules:c=[],docs:h=[],spaces:u=[],spaceID:p,libTypes:m=[]}=e||{};let v,b,C,x;return p&&(o=p),o=Rs(o),l.forEach(D=>{this.formatDataItem("lib",D,p)}),l.sort((D,E)=>(D.order??D.id)-(E.order??E.id)),u.forEach(D=>{this.formatDataItem("space",D,p,a)}),c.forEach(D=>{this.formatDataItem("module",D,p)}),h.forEach(D=>{this.formatDataItem("doc",D,p)}),r?v=h.find(D=>D.id===r):r=0,v&&!i&&(i=v.module??0),i&&(b=c.find(D=>D.id===i)),n=b?b.lib:n,!n&&this.props.autoSelectLib&&(C=l[0],n=C?C.id:0),n&&(!C||C.id!==n)&&(C=l.find(D=>D.id===n)),o=C?C.space:o,!this.props.noSpace&&u.length&&(x=u.find(D=>D.id===o)),o||(x=u[0],o=x?x.id:o),!o&&l.length&&(o=l[0].space),{spaceType:(x?x.type:a)||"mine",libs:l,modules:c,docs:h,spaces:u,spaceID:o,libID:n,moduleID:i,docID:r,libTypes:m}}batchUpdate(e,t){Yi(()=>{Object.keys(e).forEach(n=>{const i=e[n];this.update(n,i)}),t&&this.changeState(t)})}update(e,t,n){const i=!Array.isArray(t),r=i?[t]:t,o=this.getDataSignal(e),a=[],l=o.value,c=this.signals.spaceID.value,h=n==null?void 0:n.keepDeleted;return r.forEach(u=>{const p=Rs(u.id),m=l.findIndex(b=>b.id===p),v=m>=0?{...l[m],...u}:u;if(this.formatDataItem(e,v,c),v.deleted&&!h)m>=0&&(l[m]=v);else if(m>=0){if(e==="doc"){const b=l[m],C=v,x=C.contentVersion??C.version;b.version!==x&&Object.assign(v,{version:Math.max(b.version,x),versions:{...b.versions,[b.version]:b,[x]:v}}),Ti.update({objectType:"doc",objectID:+v.id})}l[m]=v}else l.push(v);a.push(v)}),o.value=[...l],i?a[0]:a}delete(e,t){Array.isArray(t)||(t=[t]);const n=new Set(t);if(!n.size)return!1;const i=this.getDataSignal(e),r=i.value;return!r||!Array.isArray(r)||!r.length?!1:(Yi(()=>{const o=new Set;e==="module"||e==="lib"?t.forEach(l=>{const c=e==="module"?this.treeMap.modules.get(l):this.treeMap.libs.get(l);c&&c.docs.forEach(h=>o.add(h.data.id))}):e==="doc"&&t.forEach(l=>{const c=this.treeMap.docs.get(l);c!=null&&c.docs.length&&br(c,[],!0).forEach(h=>o.add(h.id))}),i.value=r.filter(l=>!n.has(l.id)),o.size&&this.delete("doc",[...o]);const a=this.docID;(e==="doc"&&t.includes(a)||o.has(a))&&this.selectDoc(0)}),!0)}startCreateDoc(e,t,n){e=e??this.signals.libID.value,t=t??this.signals.moduleID.value;const i=this.signals.creatingDoc.value;if(!(i&&i.lib===e&&i.module===t))return this.changeState({creatingDoc:this._getCreatingDoc(n),mode:"create"})}cancelCreateDoc(){return this.changeState({creatingDoc:void 0,mode:"list"})}async saveNewDoc(e){var c,h,u,p,m,v,b;await((h=(c=this._viewRef.current)==null?void 0:c.editor)==null?void 0:h.triggerChange(void 0,{getHtml:!0}));const{signals:t}=this,n=t.creatingDoc.value;if(!n)return;if(n.title.trim()===""){await ze.alert(this.getLang("docTitleRequired","文档标题不能为空。")),(p=(u=this._viewRef.current)==null?void 0:u.editor)==null||p.focusTitle();return}const i=t.spaceID.value,r=t.libID.value,o=t.moduleID.value,a=await((m=this.props.onCreateDoc)==null?void 0:m.call(this,{...n,status:e||"normal",lib:t.libID.value,module:t.moduleID.value},i,r,o));if(!a)return ze.alert(this.getLang("saveDocFailed","文档保存失败,请稍后重试"));const l=+a.space.split(".")[1];return l!==i&&l===l?(await this.changeState({creatingDoc:void 0}),await this.selectSpace(l,a.lib),this.selectDoc(a)):(a.rawContent&&(a.content=a.rawContent),(b=(v=this._viewRef.current)==null?void 0:v.editor)==null||b.removeCache(),this.changeState({docs:[...t.docs.value,a],docID:a.id,libID:a.lib,moduleID:a.module,creatingDoc:void 0,mode:"view"}))}async startEditDoc(e,t){var l,c;if(e=e||((l=this._doc.value)==null?void 0:l.data),typeof e!="object"&&(e=this.getDoc(e)),!e)return;const n=t==null?void 0:t.loadDoc;if((n===!0||n!==!1&&!e.api&&(e.content===void 0||e.content===null))&&(e=await this.loadDoc(e.id),!e))return;if(e.editable===!1||((c=e.privs)==null?void 0:c.edit)===!1)return ze.alert(this.getLang("needEditable","您没有当前文档的编辑权限。"));const i=!!((t==null?void 0:t.convert)??e.$convert),{content:r,contentType:o,title:a=""}=e.draft||e;await this.changeState({docID:e.id,libID:e.lib,moduleID:e.module,editingDoc:{...e,title:a,contentType:o,content:r,...t==null?void 0:t.template,changed:!1,$convert:i,$html:i?e.content:void 0},mode:"edit"})}async restoreDoc(e,t){var l,c,h;let n=this.getDoc(e);if(!n)return;t=+t;const i=await this.loadDoc(e,t);if(n={...n,...i},((l=n.privs)==null?void 0:l.edit)===!1||n.editable===!1)return ze.alert(this.getLang("needEditable","您没有当前文档的编辑权限。"));const r=(c=n.versions)==null?void 0:c[t];if(!r)return;const o=await((h=this.props.onSaveDoc)==null?void 0:h.call(this,{...n,content:r.content,contentType:r.contentType,title:r.title,fromVersion:t}));if(o===!1)return;const a=typeof o=="object"?o.version:n.version+1;if(typeof o=="object"){const u={...n,version:a,contentVersion:a,...o};this.update("doc",u)}this.selectDoc(e,a)}cancelEditDoc(e){return this.changeState({mode:"view",editingDoc:void 0,docVersion:0,...e})}async saveDoc(e){var o,a,l,c,h;await((a=(o=this._viewRef.current)==null?void 0:o.editor)==null?void 0:a.triggerChange(void 0,{getHtml:!0}));const t=this.signals.editingDoc.value;if(!t)return this.cancelEditDoc();const n=this.getDoc(t.id);let i={...n,...t,status:e||"normal"};i.contentType==="doc"&&(i.$convert=!1);const r=await((l=this.props.onSaveDoc)==null?void 0:l.call(this,i));if(r!==!1){if((h=(c=this._viewRef.current)==null?void 0:c.editor)==null||h.removeCache(),r&&(r!==!0&&Object.assign(i,r),i=this.update("doc",i),i.lib!==(n==null?void 0:n.lib))){this.cancelEditDoc(),this.selectDoc(i);return}this.cancelEditDoc()}}reload(e=!1){const{fetcher:t,data:n,mode:i,docID:r}=this.props,o=()=>{i==="edit"&&r?this.startEditDoc(r):i==="create"?this.startCreateDoc():i==="files"?this.showFiles():i==="view"&&r===this.docID&&this.loadDoc(r,this.doc.data.version)};e||t&&!n?this.load().then(o):o()}componentDidMount(){var e;super.componentDidMount(),this.reload(),(e=this.props.onMounted)==null||e.call(this)}componentDidUpdate(e){var o;const{fetcher:t,data:n,spaceID:i,spaceType:r}=this.props;t&&!n&&(e.spaceType!==r||e.spaceID!==i)&&this.load(),(o=this.props.onUpdated)==null||o.call(this)}componentWillUnmount(){var e;this._viewEffect(),this._modeEffect(),(e=this.props.onUnmounted)==null||e.call(this)}_getCreatingDoc(e="doc"){const t=Qb();return{id:t,rawID:t,type:"text",parent:0,lib:this.signals.libID.value,module:this.signals.moduleID.value,title:"",content:"",contentType:e,addedBy:this.props.currentUser||"",addedDate:nt(new Date,"yyyy-MM-dd hh:mm:ss"),uid:Ls(13).replaceAll("-","_"),order:0}}_getClassName(e){return["doc-app",e.className,this._viewType.value!=="list"?"has-show-view":"",this.signals.fullscreen.value?"is-enter-fullscreen":"",`doc-app-mode-${this.mode}`]}_getProps(e){var t;return{...super._getProps(e),style:{width:qe(e.width),height:qe(e.height)},"data-view":this._viewType.value,"data-lib-type":(t=this._lib.value)==null?void 0:t.data.type,"data-space-type":this.spaceType}}_renderSidebar(e){var c,h;const{libIcon:t,apiLibIcon:n,moduleIcon:i,docIcon:r,chapterIcon:o,currentUser:a}=e,l=this.spaceType;return _(Yb,{key:"sidebar",app:this,className:"surface-light",preserve:this._preserve?`${this._preserve}-sidebar`:void 0,currentUser:a,libIcon:t,apiLibIcon:n,moduleIcon:i,docIcon:r,chapterIcon:o,spaceType:l,space:this._space.value,libs:this._libList.value,lib:this._lib.value,libTypes:this.signals.libTypes.value,showFiles:this.signals.mode.value==="files",moduleID:((c=this._module.value)==null?void 0:c.data.id)||0,docID:((h=this._doc.value)==null?void 0:h.data.id)||0,getActions:this.getItemActions,onSelectDoc:this.selectDoc,onSelectLib:this.selectLib,onShowFiles:this.canShowLibFiles?this.showFiles:void 0})}_renderFiles(){const e=this.renderCustom("files");if(e!==void 0)return e;const{currentUser:t,fileUrl:n,filesFetcher:i,userMap:r}=this.props;return _(Eh,{key:"files",app:this,userMap:r,objectType:this.spaceType,objectID:this.spaceID,filterType:this.filterType,currentUser:t,onGetUser:this.getUserInfo,fileUrl:n,searchKeys:this.signals.searchKeys.value,filesFetcher:i})}_renderList(e){var c,h;if(this.signals.mode.value==="files")return this._renderFiles();const t=this.renderCustom("list");if(t!==void 0)return t;if(((c=this.lib)==null?void 0:c.data.type)==="api")return _(xw,{app:this,docs:this._docList.value});const{libIcon:n,moduleIcon:i,docIcon:r,userMap:o,canMoveDoc:a}=e,l=this.signals.searchKeys.value;return _(Gb,{key:"list",app:this,libIcon:n,moduleIcon:i,docIcon:r,userMap:o,searchKeys:l,docs:this._docList.value,canMoveDoc:a,getActions:this.getActions,getTableOptions:this.getTableOptions,orderBy:(h=this._lib.value)==null?void 0:h.data.orderBy})}_renderView(e){const t=this.renderCustom("view");if(t!==void 0)return t;const[n,i]=this._viewInfo.value;if(!i||i.type==="chapter")return null;const{fileIcon:r,fileUrl:o,historyFetcher:a,uploadUrl:l,downloadUrl:c}=e,[h,u]=this._docUsers.value;return _(bw,{ref:this._viewRef,app:this,key:n,doc:i,mode:n,onChange:this._handleDocChange,fileIcon:r,fileActions:this._getFileActions,fileUrl:o,creator:h,modifier:u,uploadUrl:l,downloadUrl:c,preserve:this._preserve?`${this._preserve}-view`:void 0,onGetUser:this.getUserInfo,historyFetcher:a,highlight:this.signals.highlightView.value})}_renderMain(e){const t=this._renderView(e);return _("div",{key:"main",className:`doc-main flex-auto relative min-w-0${t?" show-view":""}`},this._renderList(e),t)}_renderSearchBox(e){let t={rootClass:"doc-app-search w-40 ml-1 mr-3",defaultValue:(this.signals.searchKeys.value||[]).join(" "),onChange:this._handleSearch,placeholder:this.getLang("searchPlaceholder","搜索")};const{getSearchBoxOptions:n}=this.props;return n&&(t=n.call(this,t,{type:e})),_(Is,{...t})}_renderFilters(){var a;const e=this.renderCustom("filters");if(e!==void 0)return e;const t=this._viewType.value;if(t!=="list"&&t!=="files")return null;const n=this.getFilterTypes(t),i=t==="list",r=this.filterType,o=i?(a=this._docList.value)==null?void 0:a.length:0;return _("div",{className:"row items-center flex-auto justify-end"},n.length?_("menu",{className:"nav nav-compact",style:"--nav-active-bg: var(--color-primary-100); --nav-active-color: var(--color-fore); --nav-item-height: 24px; --nav-divider-margin: 8px",onClick:this._handleFilterTypeClick},n.map(([l,c])=>_("li",{key:l,className:"nav-item item"},_("a",{className:l===r?"active rounded-full":"rounded-full","data-type":l,"data-view":t},c,l===r&&o?_("span",{className:"label size-sm canvas ring-0 rounded-full"},o):null)))):null,this._renderSearchBox(t))}_renderToolbar(){var r;const e=this.renderCustom("toolbar");if(e!==void 0)return e;const t=this._viewType.value,n=[],i="toolbar";if(t==="list")n.push(...this.getActions("doc-list",{ui:i}));else if(t==="view"){const o=(r=this._doc.value)==null?void 0:r.data;o&&(o.deleted||n.push(...this.getActions("doc",{ui:i,data:o})))}else t==="edit"?n.push(...this.getActions("doc-edit",{ui:i,data:this.signals.editingDoc.value})):t==="create"&&n.push(...this.getActions("doc-create",{ui:i,data:this.signals.creatingDoc.value}));return _(je,{className:"doc-app-toolbar",gap:2,size:"md",items:n})}_renderHeader(e){const t=this.renderCustom("header");return t!==void 0?t:_("div",{key:"header",class:"doc-app-header surface-light row items-center border-b py-1.5 pl-1 pr-2"},_(rw,{app:this,spaceIcon:e.spaceIcon,libIcon:e.libIcon,apiLibIcon:e.apiLibIcon,moduleIcon:e.moduleIcon,libFilesIcon:e.libFilesIcon,noSpace:e.noSpace,docIcon:e.docIcon,spaces:this._spaceList.value,space:this._space.value,libs:this._libList.value,lib:this._lib.value,doc:this._doc.value,docVersion:this.signals.docVersion.value,creatingDoc:this.signals.creatingDoc.value,editingDoc:this.signals.editingDoc.value,showFiles:this.signals.mode.value==="files",module:this._module.value,libPlaceholder:"所有库",onSelectDocVersion:this.selectDocVersion,onSelectLib:this.selectLib,onSelectSpace:this.selectSpace,onSelectModule:this.selectModule,onSelectDoc:this.selectDoc,homeName:e.homeName,getSpaceFetcher:e.getSpaceFetcher,spaceType:this.spaceType,spaceID:this.spaceID},this._renderFilters()),this._renderToolbar())}_renderBody(e){return _("div",{key:"body",class:"doc-app-body flex-auto min-h-0 row items-stretch"},this._renderSidebar(e),this._renderMain(e))}_renderHome(){const e=this.renderCustom("home");return e!==void 0?e:this.spaceType==="product"||this.spaceType==="project"&&window.config.vision!=="lite"?_(Sw,{ref:this._homeRef,app:this}):_(ww,{ref:this._homeRef,app:this})}_getChildren(e){return this.signals.mode.value==="home"?this._renderHome():this.signals.loading.value?_("div",{key:"loading",class:"doc-loading relative center h-full load-indicator loading tex-gray","data-loading":this.getLang("loadingDocsData","正在加载文档数据...")}):this._space.value?[this._renderHeader(e),this._renderBody(e)]:_("div",{key:"empty-tip",class:"doc-empty-tip center h-full gap-8"},_("div",{className:"relative text-primary"},_(Ie,{icon:"file-alt",className:"opacity-10",style:"font-size: 72px; transform: rotate(-30deg); transform-origin: 0 72px;"}),_(Ie,{icon:"file-alt",className:"opacity-30 absolute left-0 top-0",style:"font-size: 72px; transform: rotate(-15deg); transform-origin: 0 72px;"}),_(Ie,{icon:"file-text",className:"absolute left-0 top-0",style:"font-size: 72px; transform: rotate(0deg); transform-origin: 0 72px;"})),_("div",{className:"text-gray text-lg"},this.getLang("noSpaceTip","这里什么也没有,先创建一个空间再使用吧!")),je.render({size:"lg",items:this.getActions("home",{ui:"home-no-space"})},[]))}getCustomRender(e){var t;return(t=this.props.customRenders)==null?void 0:t[e]}renderCustom(e,...t){let n=this.getCustomRender(e);if(typeof n=="function"&&(n=n.call(this,...t)),n!==void 0)return typeof n=="string"?n:_(ye,{key:e,content:n,generatorArgs:t,generatorThis:this})}};Oh.NAME="DocApp",Oh.defaultProps={spaceIcon:"docspace",libIcon:"doclib",apiLibIcon:"interface-lib",moduleIcon:"folder-o",docIcon:"doc",libFilesIcon:"annex-lib",chapterIcon:"list-box",fetchOnChangeSpace:!0,autoConvertDoc:!0,commands:{},showLibFiles:["product","project","execution"],libColors:["secondary","primary","warning","success","special"].map(s=>`var(--color-${s}-500)`),showToolbar:!1};async function Cm(s,e){const t=await dt(e.docFetcher,[{docID:s,version:0}]);if(!(t!=null&&t.content))return!1;let n="";if(e.type==="html"){if(!await dn.htmlToSnap(t.content))return!1}else try{n=await dn.convertToHtml(t.content,void 0,e.downloadUrl)}catch(o){console.warn("[ZUI] Convert doc to html failed:",o)}const i={content:n};let r;return await y.post(we(e.migrateUrl,{docID:s}),i,o=>{const a=o;r=a.result==="success"?!0:a.message},"json"),r}async function Sm(s){try{s=s||Lt("doc","ajaxGetMigrateDocs");const e=await dt(s);return Array.isArray(e)?{doc:e,html:[]}:e}catch{return{}}}async function xm(s,e){await dn.loadModule();const{onProgress:t,migrateUrl:n=Lt("doc","ajaxMigrateDoc","docID={docID}"),docFetcher:i=Lt("doc","ajaxGetDoc","docID={docID}"),downloadUrl:r=Lt("file","ajaxQuery","fileID={gid}")}=e||{},o={migrateUrl:n,docFetcher:i,downloadUrl:r};let a=0;const l=s.doc.length+s.html.length,c=["doc","html"];for(const h of c)for(const u of s[h])t==null||t(a,l),await Cm(u,{...o,type:h}),await qn(50),a++;return t==null||t(a,l),s}class Fh extends ve{constructor(){super(...arguments),this._current=tt(0)}migrate(){const{idList:e,docFetcher:t,downloadUrl:n,migrateUrl:i}=this.props;return xm(e,{docFetcher:t,downloadUrl:n,migrateUrl:i,onProgress:r=>{this._current.value=r}})}componentDidMount(){this.migrate()}render(e){var o;const t=this._current.value,n=e.idList,i=n.doc.length+n.html.length,r=t===i;return _("div",{className:"col gap-4 p-6"},_("div",{class:"row gap-2 items-center"},_("div",{class:`progress progress-striped flex-auto ${r?"":"active"}`},_("div",{class:"progress-bar",style:`width: ${Math.floor(t*100/i)}%`})),_("div",{class:"text-gray"},Math.floor(t*100/i),"%")),r?_("div",{className:"text-center mt-2"},_("button",{type:"button",class:"btn primary",onClick:(o=e.onFinish)==null?void 0:o.bind(this,n)},e.finishText)):_("div",null,we(e.progressTip,{current:t,total:i})))}static async open(e){let t;const n=pe();return await ze.open({type:"custom",ref:n,size:400,content:_(Fh,{...e,onFinish:i=>{var r;t=i,(r=n.current)==null||r.hide()}}),custom:{closeBtn:!1}}),t}}async function kw(s){const{preserve:e="DocApp:migratedDocs:v2"}=s||{};if(Qe.get(e))return;const{doc:t=[],html:n=[]}=await Sm(s==null?void 0:s.migrateUrl),i=t.length+n.length;if(!i)return;const r={zh_cn:{confirm:"检查到有 {0} 个文档数据需要迁移,是否进行迁移操作?你也可以下次进入文档应用时再进行迁移。",progressTip:"正在迁移文档数据...({current}/{total})",finish:"迁移完成"},zh_tw:{confirm:"檢查到有 {0} 个文檔數據需要遷移,是否進行遷移操作?你也可以下次進入文檔應用時再進行遷移。",progressTip:"正在遷移文檔數據...({current}/{total})",finish:"遷移完成"},en:{confirm:"There are {0} documents need to be migrated, do you want to migrate them now? You can also migrate them next time when you enter the document application.",progressTip:"Migrating documents...({current}/{total})",finish:"Migrate finished"}},o=r[Od()]||r.en,a=(s==null?void 0:s.confirm)||o.confirm;if(a&&!await ze.confirm(we(a,i)))return;const l=(s==null?void 0:s.progressTip)||o.progressTip,c=(s==null?void 0:s.finishText)||o.finish,h=await Fh.open({idList:{doc:t,html:n},...s,progressTip:l,finishText:c});return h&&Qe.set(e,Date.now()),h}const Tw=Object.freeze(Object.defineProperty({__proto__:null,getMigrateDocs:Sm,migrateDoc:Cm,migrateDocs:xm,tryMigrateDocs:kw},Symbol.toStringTag,{value:"Module"}));class xr extends Ce{afterInit(){super.afterInit(),this.$element.on("skipMorph",()=>{var e;(e=this.$)==null||e.reload(!0)})}destroy(){this.$element.off("skipMorph"),super.destroy()}}xr.NAME="DocApp",xr.Component=Oh,Object.assign(xr,Tw),xr.register();const Kx="",qx="",Gx="",Yx="",Xx="",Zx="",Jx="",Qx="",ek="";class jh extends Ce{}jh.NAME="Dropmenu",jh.Component=wr;class km extends Ge{init(){const{echarts:e}=window;if(!e){console.warn("ZUI: ECharts is not loaded.");return}const{responsive:t=!0,theme:n,...i}=this.options,r=e.init(this.element,n);r.setOption(i),t&&y(window).on(`resize.${this.gid}.ECharts.zt`,r.resize),this.chart=r}destroy(){var n;const{echarts:e}=window;if(!e){super.destroy();return}const{responsive:t=!0}=this.options;t&&y(window).off(`resize.${this.gid}.ECharts.zt`),(n=this.chart)==null||n.dispose(),super.destroy()}}km.NAME="ECharts";let Bh=class extends Ce{};Bh.NAME="FileList",Bh.Component=Ps;const tk="",Tm=s=>s.replace(/([[\]])/g,"\\$1");class Aa extends Ge{constructor(){super(...arguments),this._disabled=!1,this._timer=0}init(){if(this.$element.on("submit",this.onSubmit.bind(this)).on("input mousedown change",this.onInput.bind(this)),this.options.checkOnCloseModal){const e=ze.query(this.$element);if(!e||e.options.onHide)return;e.setOptions({onHide:this._handleModalHide.bind(this,e)})}}_handleModalHide(e){const{checkOnCloseModal:t}=this.options;if(t&&typeof t=="function"){const n=t.call(this,e);return typeof n=="string"?(ze.alert(n),!1):n}}enable(e=!0,t=0){if(this._resetTimer(),t){this._timer=window.setTimeout(()=>{this.enable(e),this._timer=0},t);return}this.$element.toggleClass("loading",!e),this.$element.find('.btn-submit,button[type="submit"]').toggleClass("disabled",!e).prop("disabled",!e),this._disabled=!e}disable(){this.enable(!1)}onInput(e){const t=y(e.target).closest(".has-error");if(!t.length)return;let n=t.attr("name");n||(n=t.find(".pick-value").attr("name"));const i=n?`#${n.split("[")[0]}Tip,#${Tm(n)}Tip`:".form-tip";t.removeClass("has-error"),t.closest(".form-group,.form-batch-control").find(i).remove()}onSubmit(e){var o;if(e.preventDefault(),this._disabled)return;const{element:t}=this,n=y.extend({},this.options);this.emit("before",e,t,n);const i=()=>{this.$element.find(".ajax-form-tip").each(function(){const c=y(this);c.closest(".form-group,.form-batch-control").find(".has-error").removeClass("has-error"),c.remove()}),this.disable();let a=this.getFormData();const{beforeSend:l}=n;if(l){const c=l(a);c instanceof FormData&&(a=c)}this.emit("send",a),this._send(a)},r=(o=n.beforeSubmit)==null?void 0:o.call(n,e,t,n);if(r!==!1){if(r instanceof Promise){r.then(a=>a&&i());return}i()}}submit(){this.element.submit()}reset(){this.element.reset()}destroy(){this._resetTimer()}_resetTimer(){this._timer&&(window.clearTimeout(this._timer),this._timer=0)}getFormData(){const{$element:e,options:t}=this,n=new FormData(this.element);let{submitEmptySelectValue:i="",submitNoValueChecks:r}=t;const{submitDisabledValue:o=!0}=t;return i!==!1&&(typeof i!="boolean"&&(i=""),e.find("select").each((a,l)=>{const c=y(l),h=c.attr("name");c.is("[disabled]")&&!o||n.has(h)||n.append(h,typeof i=="object"?i[h]:i)})),o&&e.find("[disabled][name]").each((a,l)=>{const c=y(l);if(c.hasClass("not-submit-disabled-value"))return;const h=c.attr("name");n.has(h)||n.append(h,c.val())}),r&&(r=typeof r=="string"?r:"",e.find('[type="checkbox"],[type="radio"]').not(":checked").each((a,l)=>{const c=y(l),h=c.attr("name");n.has(h)||c.is("[disabled]")&&!o||n.append(h,c.data("notCheckedValue")??r)})),n}_send(e){const{$element:t,options:n}=this;let i,r;const o=n.url||t.attr("action"),a={method:t.attr("method")||"POST",data:e,headers:t.closest(".modal").length?{"X-ZUI-Modal":"true"}:void 0,dataType:"json",jsonParser:JSON.parse},{optionsModifiers:l}=this.constructor;l.length&&l.forEach(h=>{const u=h.call(this,a);u&&u!==a&&y.extend(!0,a,u)});const c=y.ajax(o,a).success((h,u,p)=>{var m,v,b;h instanceof Blob?(Ds(h,(b=(v=(m=p.headers.get("Content-Disposition"))==null?void 0:m.split(";")[1])==null?void 0:v.split("=")[1])==null?void 0:b.replace(/"/g,"")),r={result:"success"}):(r=h,(!r||typeof r!="object")&&(i=new Error("Invalid json format")))}).fail(h=>{i=h}).complete(()=>{var h,u;if(i)this.emit("error",i),console.warn("ZUI: send ajax form failed",i),n.onError?n.onError(i):ze.showError({size:"lg",error:[`POST: ${o}`,`Error: ${i.message.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}`,`Response: ${c.data}`].join("
    ")});else{const p=(h=n.onResult)==null?void 0:h.call(this,r);if(p===!1)return;p&&(r=y.extend(r,p)),this._handleResult(r)}this.emit("complete",r,i),(u=n.onComplete)==null||u.call(n,r,i),this.enable(!0,i||(r==null?void 0:r.result)!=="success"?0:5e3)})}_showValidateMessage(e){var n;let t;Object.entries(e).forEach(([i,r])=>{Array.isArray(r)&&(r=r.join(""));const o=Tm(i),{$element:a}=this;let l=a.find(`#${o}`);if(l.length||(l=a.find(`[data-form-name="${o}"]`)),l.length||(l=a.find(`[name="${o}"]`)),!l.length&&!i.includes("[")&&(l=a.find(`[name="${o}[]"]`)),!l.length){ze.alert(r);return}l.hasClass("pick-value")&&(l=l.closest(".pick")),l.addClass("has-error");const c=l.closest(".form-group,.form-batch-control,td");if(c.length){let h=c.find(`#${o}Tip`);h.length||(h=c.find(".form-tip")),h.length||(h=y(`
    `).appendTo(c)),h.removeClass("hidden").text(r)}else ze.alert(r);t||(t=l)}),t&&((n=t[0])==null||n.focus())}_handleResult(e){var l,c;const{options:t}=this;let{message:n}=e;const i=e.result==="success";if(i){if(this.emit("success",e),((l=t.onSuccess)==null?void 0:l.call(t,e))===!1)return;typeof n=="string"&&n.length&&Qn.show({content:n,type:"success"})}else{if(this.emit("fail",e),((c=t.onFail)==null?void 0:c.call(t,e))===!1)return;n&&(Array.isArray(n)&&(n=n.join(` -`)),typeof n=="string"&&n.length?ze.alert(n):typeof n=="object"&&this._showValidateMessage(n))}const r=t.closeModal??e.closeModal;r&&(r!=="onlySuccess"||i)&&ze.hide(typeof r=="string"&&r!=="onlySuccess"?r:void 0);const o=t.callback??e.callback;if(o){const h=[["options",t],["result",e]];if(typeof o=="string"){const u=y.runJS(o,...h);typeof u=="function"&&!o.endsWith(";")&&u(e)}else if(typeof o=="object"){const u=y.runJS(o.name,...h);typeof u=="function"&&u.apply(this,Array.isArray(o.params)?o.params:[o.params])}}const a=t.load??e.load??e.locate;a&&this.$element.trigger("locate.zt",a)}}Aa.NAME="AjaxForm",Aa.optionsModifiers=[];function Hh(s,e){var a,l;const t=s.result==="success";if(t){if(((a=e.onSuccess)==null?void 0:a.call(e,s))===!1)return}else if(((l=e.onFail)==null?void 0:l.call(e,s))===!1)return;const{message:n}=s;n&&(e.onMessage?e.onMessage(n,s):typeof n=="string"&&n.length&&(t?Qn.show({content:n,type:"success"}):ze.alert(n)));const i=e.closeModal??s.closeModal;i&&ze.hide(typeof i=="string"?i:void 0);const r=e.callback??s.callback;if(r){const c=[["options",e],["result",s]];if(typeof r=="string"){const h=y.runJS(r,...c);typeof h=="function"&&!r.endsWith(";")&&h(s)}else if(typeof r=="object"){const h=y.runJS(r.name,...c);typeof h=="function"&&h.apply(null,Array.isArray(r.params)?r.params:[r.params])}}const o=e.load??s.load??s.locate;o&&y(e.element||document).trigger("locate.zt",o)}function Dm(s){return typeof s=="string"&&(s=s.split(",").reduce((e,t)=>{const[n,i]=t.trim().split(":");return e[n.trim()]=i.trim(),e},{})),Object.keys(s).reduce((e,t)=>{const n=t.endsWith("?"),i=n?t.substring(0):t;let r=s[i];if(typeof r=="string"){const[o,a]=r.split("~"),l=y(o);if(!l.length)return e;a==="checkedIDList"?r=l.closest("[data-zui-dtable]").dtable("getChecks"):l[0].hasAttribute("data-map-value")?r=l.dataset("mapValue"):l.closest(".pick").length?r=l.closest(".pick").find(".pick-value").val():l.is("input,select,textarea")?r=l.val():r=l.text()}return(n||r!=null&&r!==""&&(!Array.isArray(r)||r.length))&&(e[i]=r),e},{})}async function Os(s){if(s.confirm)return await ze.confirm(s.confirm)?Os({...s,confirm:void 0}):[void 0,new Error("canceled")];if(s={...Aa.DEFAULT,...s},s.beforeSubmit&&await s.beforeSubmit(s)===!1)return[void 0,new Error("canceled")];const{loadingClass:e,element:t}=s;t&&e&&y(t).addClass(e);const{data:n,dataMap:i}=s;let r;n&&(r=co(n)),i&&(r=co(Dm(i),r));const{beforeSend:o}=s;if(o){const h=o(r);h instanceof FormData&&(r=h)}let a,l;return await new qi({url:s.url,method:s.method||"POST",body:r,headers:s.headers,dataType:"json"}).success((h,u,p)=>{var m,v,b;h instanceof Blob?(Ds(h,(b=(v=(m=p.headers.get("Content-Disposition"))==null?void 0:m.split(";")[1])==null?void 0:v.split("=")[1])==null?void 0:b.replace(/"/g,"")),l={result:"success"}):(l=h,(!l||typeof l!="object")&&(a=new Error("Invalid json format")))}).fail(h=>{a=h,console.warn("ZUI: cannot submit ajax form",h)}).complete(()=>{var h,u,p;if(a)(h=s.onError)==null||h.call(s,a);else{const m=(u=s.onResult)==null?void 0:u.call(null,l);if(m===!1)return;m&&(l=y.extend(l,m)),Hh(l,s)}(p=s.onComplete)==null||p.call(s,l,a),t&&e&&y(t).removeClass(e)}).send(),[l,a]}y.extend(y,{ajaxSubmit:Os}),y(document).on("click.ajaxSubmit.zui",".ajax-submit",function(s){s.preventDefault();const e=y(this);if(e.is("[disabled],.disabled"))return;const t=e.data();!t.url&&e.is("a")&&(t.url=e.attr("href")||""),t.url&&(t.element=this[0],Os(t))});class Dw extends ve{constructor(e){super(e),this.state={pinnedList:e.pinnedList||[]}}_handlePinnedChange(e){const{pinnedList:t}=this.state;t.includes(e)?t.splice(t.indexOf(e),1):t.push(e),this.setState({pinnedList:t})}_handleSave(){var e,t;(t=(e=this.props).onSave)==null||t.call(e,this.state.pinnedList)}render(e,t){const{tip:n,items:i,saveText:r=Pe.getLang("save"),resetText:o=Pe.getLang("reset"),cancelText:a=Pe.getLang("cancel"),pinnedIcon:l="pinned",unpinnedIcon:c="unpinned"}=e,{pinnedList:h}=t,u=new Set(h);return _("form",{className:"form-setting-form w-80 col gap-3"},_("div",{className:"text-gray mt-2"},n),_("div",{className:"divider opacity-5"}),_("div",{className:"row flex-wrap"},i.map(({text:p,value:m})=>{const v=u.has(m);return _("label",{className:"state size-sm ghost w-1/2 pl-1 pr-2 py-1 flex flex-nowrap gap-2 items-center rounded",onClick:this._handlePinnedChange.bind(this,m)},_(Ie,{icon:v?l:c,className:v?"text-primary":"text-gray-400"}),_("div",{className:`flex-auto text-clip${v?"":" text-gray"}`},p))})),_("div",{className:"row flex-nowrap gap-4 mt-2"},_(be,{size:"md",className:"btn-wide",type:"primary",onClick:this._handleSave.bind(this)},r),_(be,{size:"md",className:"btn-wide","data-dismiss":"popover"},a),_(be,{size:"md",type:"primary-ghost",disabled:!h.length,onClick:()=>this.setState({pinnedList:[]})},o)))}}class $m extends Ut{_getFormItems(){const e=this.$element.closest("form"),t=[],n=[];return e.find(".form-group.is-foldable[data-name]").each((i,r)=>{if(y(r).hasClass("hidden"))return;const o=y(r),a=o.data("name"),l=o.find(".form-label").first();let c=o.data("label");if(c===void 0){const h=l.find(".text");h.length&&(c=h.text())}c===void 0&&(c=l.text().trim()),t.push({value:a,text:c||a}),o.hasClass("is-pinned")&&n.push(a)}),{items:t,pinnedList:n}}_handleSave(e){const{customUrl:t,onSave:n}=this.options,i=()=>{(n==null?void 0:n(e))!==!1&&this.hide();const r=this.$element.closest("form");r.find(".form-group.is-foldable[data-name]").each((o,a)=>{const l=y(a),c=l.data("name");l.toggleClass("is-pinned",e.includes(c))}),r.toggleClass("no-foldable-items",!r.find(".form-group.is-foldable").not(".is-pinned,.hidden").length)};t?Os({url:t,data:{"fields[]":e},onSuccess:r=>{delete r.callback,i()}}):i()}_getRenderOptions(){const{title:e,tip:t,className:n,saveText:i,resetText:r,cancelText:o}=this.options,{items:a,pinnedList:l}=this._getFormItems();return{...super._getRenderOptions(),title:e,headingClass:"popover-heading transparent px-4 pt-4",contentClass:"px-4 pb-4",titleClass:"text-lg font-bold",content:_(Dw,{tip:t,saveText:i,resetText:r,cancelText:o,items:a,pinnedList:l,onSave:this._handleSave.bind(this),onCancel:this.hide.bind(this)}),className:K("form-setting-popover",n)}}}$m.NAME="FormSetting";class Im extends Ge{get mode(){return this.$container.hasClass("is-full")?"full":"lite"}get shownFoldItems(){return this.$container.hasClass("show-fold-items")}get $container(){let e=this._$container;if(!e){const{$element:t}=this;e=t.closest(".panel-form,.page-form"),e.length||(e=t),this._$container=e}return e}afterInit(){super.afterInit();const e=[],{$element:t}=this;t.children(".form-group[data-name]").each((a,l)=>{e.push(y(l).attr("data-name"))}),this._fields=e;const{fullModeOrders:n}=this.options;this._fullModefields=typeof n=="string"?[n]:n;let{preserve:i}=this.options;(i===!0||i===void 0)&&(i=t.attr("id")),this._preserveID=i||!1;const r=this.options.mode||(this._preserveID?Qe.get(`FormGrid:${this._preserveID}:mode`,this.mode):this.mode);this.toggleMode(r,!1,!0);const{namespace:o}=this;this.$container.on(`click${o}`,".btn-full-form",()=>this.toggleMode("full")).on(`click${o}`,".btn-lite-form",()=>this.toggleMode("lite")).on(`click${o}`,".btn-toggle-fold",()=>this.toggleFold()),t.on(`change${o}`,"[name]",this._handleChange.bind(this)),t.toggleClass("no-foldable-items",!t.find(".form-group.is-foldable").not(".is-pinned,.hidden").length)}getField(e){const{$element:t}=this;let n=t.children(`.form-group[data-name="${e}"]`);if(!n.length)return;const i=t.children(`[data-wrap-before="${e}"]`),r=t.children(`[data-wrap-after="${e}"]`);let o=y();return i.length&&(o=o.add(i)),n.find("script").remove(),n=t.children(`.form-group[data-name="${e}"]`),o=o.add(n),r.length&&(o=o.add(r)),{name:e,wrapBefore:!!i.length,wrapAfter:!!r.length,foldable:n.hasClass("is-foldable"),$ele:n,$group:o}}destroy(){super.destroy(),this.$container.off(this.namespace)}toggleFold(e){e=e??!this.shownFoldItems,this.$container.toggleClass("show-fold-items",e)}openSetting(){this.$container.find(".btn-custom-form").trigger("click")}toggleMode(e,t,n){const i=this.mode;e=e||(i==="full"?"lite":"full"),!(i===e&&!t)&&(this.$container.toggleClass("is-full",e==="full").toggleClass("is-lite",e==="lite"),!n&&this._preserveID&&Qe.set(`FormGrid:${this._preserveID}:mode`,e),this.updateOrders())}updateOrders(e,t){e&&(this._fields=e),t&&(this._fullModefields=typeof t=="string"?[t]:t);const{mode:n}=this;n==="full"?(t=this._fullModefields,Array.isArray(t)&&t.forEach(i=>{this.sortFields(i)})):this.sortFields()}sortFields(e){e=e||this._fields,typeof e=="string"&&(e=e.split(","));let t;e.forEach(r=>{const o=this.getField(r);if(o){if(t){const a=t.$group.last();if(o.$group.first()[0]===a[0])return;o.$group.insertAfter(a)}t=o}});const n=this.$element.children(".form-group.is-foldable").first(),i=this.$element.children(`[data-wrap-before="${n.attr("data-name")}"]`);this.$element.children(".panel-form-divider").insertBefore(i.length?i:n)}_handleChange(e){const{autoLoad:t,loadUrl:n}=this.options;if(!t)return;const i=y(e.target).closest("[name]");Object.keys(t).forEach(r=>{const o=t[r];".[#".includes(r[0])||(r=`[name="${r}"]`),i.closest(r).length&&window.loadForm(y.extend({url:n,target:i},typeof o=="string"?{items:o}:o))})}}Im.NAME="FormGrid";const nk="";var Nm=11;function $w(s,e){var t=e.attributes,n,i,r,o,a;if(!(e.nodeType===Nm||s.nodeType===Nm)){for(var l=t.length-1;l>=0;l--)n=t[l],i=n.name,r=n.namespaceURI,o=n.value,r?(i=n.localName||i,a=s.getAttributeNS(r,i),a!==o&&(n.prefix==="xmlns"&&(i=n.name),s.setAttributeNS(r,i,o))):(a=s.getAttribute(i),a!==o&&s.setAttribute(i,o));for(var c=s.attributes,h=c.length-1;h>=0;h--)n=c[h],i=n.name,r=n.namespaceURI,r?(i=n.localName||i,e.hasAttributeNS(r,i)||s.removeAttributeNS(r,i)):e.hasAttribute(i)||s.removeAttribute(i)}}var Pa,Iw="http://www.w3.org/1999/xhtml",Rt=typeof document>"u"?void 0:document,Nw=!!Rt&&"content"in Rt.createElement("template"),Ew=!!Rt&&Rt.createRange&&"createContextualFragment"in Rt.createRange();function Mw(s){var e=Rt.createElement("template");return e.innerHTML=s,e.content.childNodes[0]}function Aw(s){Pa||(Pa=Rt.createRange(),Pa.selectNode(Rt.body));var e=Pa.createContextualFragment(s);return e.childNodes[0]}function Pw(s){var e=Rt.createElement("body");return e.innerHTML=s,e.childNodes[0]}function Lw(s){return s=s.trim(),Nw?Mw(s):Ew?Aw(s):Pw(s)}function La(s,e){var t=s.nodeName,n=e.nodeName,i,r;return t===n?!0:(i=t.charCodeAt(0),r=n.charCodeAt(0),i<=90&&r>=97?t===n.toUpperCase():r<=90&&i>=97?n===t.toUpperCase():!1)}function Rw(s,e){return!e||e===Iw?Rt.createElement(s):Rt.createElementNS(e,s)}function zw(s,e){for(var t=s.firstChild;t;){var n=t.nextSibling;e.appendChild(t),t=n}return e}function Uh(s,e,t){s[t]!==e[t]&&(s[t]=e[t],s[t]?s.setAttribute(t,""):s.removeAttribute(t))}var Em={OPTION:function(s,e){var t=s.parentNode;if(t){var n=t.nodeName.toUpperCase();n==="OPTGROUP"&&(t=t.parentNode,n=t&&t.nodeName.toUpperCase()),n==="SELECT"&&!t.hasAttribute("multiple")&&(s.hasAttribute("selected")&&!e.selected&&(s.setAttribute("selected","selected"),s.removeAttribute("selected")),t.selectedIndex=-1)}Uh(s,e,"selected")},INPUT:function(s,e){Uh(s,e,"checked"),Uh(s,e,"disabled"),s.value!==e.value&&(s.value=e.value),e.hasAttribute("value")||s.removeAttribute("value")},TEXTAREA:function(s,e){var t=e.value;s.value!==t&&(s.value=t);var n=s.firstChild;if(n){var i=n.nodeValue;if(i==t||!t&&i==s.placeholder)return;n.nodeValue=t}},SELECT:function(s,e){if(!e.hasAttribute("multiple")){for(var t=-1,n=0,i=s.firstChild,r,o;i;)if(o=i.nodeName&&i.nodeName.toUpperCase(),o==="OPTGROUP")r=i,i=r.firstChild;else{if(o==="OPTION"){if(i.hasAttribute("selected")){t=n;break}n++}i=i.nextSibling,!i&&r&&(i=r.nextSibling,r=null)}s.selectedIndex=t}}},kr=1,Mm=11,Am=3,Pm=8;function os(){}function Ow(s){if(s)return s.getAttribute&&s.getAttribute("id")||s.id}function Fw(s){return function(t,n,i){if(i||(i={}),typeof n=="string")if(t.nodeName==="#document"||t.nodeName==="HTML"||t.nodeName==="BODY"){var r=n;n=Rt.createElement("html"),n.innerHTML=r}else n=Lw(n);else n.nodeType===Mm&&(n=n.firstElementChild);var o=i.getNodeKey||Ow,a=i.onBeforeNodeAdded||os,l=i.onNodeAdded||os,c=i.onBeforeElUpdated||os,h=i.onElUpdated||os,u=i.onBeforeNodeDiscarded||os,p=i.onNodeDiscarded||os,m=i.onBeforeElChildrenUpdated||os,v=i.skipFromChildren||os,b=i.addChild||function(de,te){return de.appendChild(te)},C=i.childrenOnly===!0,x=Object.create(null),D=[];function E(de){D.push(de)}function A(de,te){if(de.nodeType===kr)for(var Te=de.firstChild;Te;){var xe=void 0;te&&(xe=o(Te))?E(xe):(p(Te),Te.firstChild&&A(Te,te)),Te=Te.nextSibling}}function F(de,te,Te){u(de)!==!1&&(te&&te.removeChild(de),p(de),A(de,Te))}function G(de){if(de.nodeType===kr||de.nodeType===Mm)for(var te=de.firstChild;te;){var Te=o(te);Te&&(x[Te]=te),G(te),te=te.nextSibling}}G(t);function Y(de){l(de);for(var te=de.firstChild;te;){var Te=te.nextSibling,xe=o(te);if(xe){var Oe=x[xe];Oe&&La(te,Oe)?(te.parentNode.replaceChild(Oe,te),ee(Oe,te)):Y(te)}else Y(te);te=Te}}function Z(de,te,Te){for(;te;){var xe=te.nextSibling;(Te=o(te))?E(Te):F(te,de,!0),te=xe}}function ee(de,te,Te){var xe=o(te);if(xe&&delete x[xe],!Te){var Oe=c(de,te);if(Oe===!1||(Oe instanceof HTMLElement&&(de=Oe),s(de,te),h(de),m(de,te)===!1))return}de.nodeName!=="TEXTAREA"?fe(de,te):Em.TEXTAREA(de,te)}function fe(de,te){var Te=v(de,te),xe=te.firstChild,Oe=de.firstChild,xn,gt,wt,Qt,Ct;e:for(;xe;){for(Qt=xe.nextSibling,xn=o(xe);!Te&&Oe;){if(wt=Oe.nextSibling,xe.isSameNode&&xe.isSameNode(Oe)){xe=Qt,Oe=wt;continue e}gt=o(Oe);var kn=Oe.nodeType,he=void 0;if(kn===xe.nodeType&&(kn===kr?(xn?xn!==gt&&((Ct=x[xn])?wt===Ct?he=!1:(de.insertBefore(Ct,Oe),gt?E(gt):F(Oe,de,!0),Oe=Ct,gt=o(Oe)):he=!1):gt&&(he=!1),he=he!==!1&&La(Oe,xe),he&&ee(Oe,xe)):(kn===Am||kn==Pm)&&(he=!0,Oe.nodeValue!==xe.nodeValue&&(Oe.nodeValue=xe.nodeValue))),he){xe=Qt,Oe=wt;continue e}gt?E(gt):F(Oe,de,!0),Oe=wt}if(xn&&(Ct=x[xn])&&La(Ct,xe))Te||b(de,Ct),ee(Ct,xe);else{var W=a(xe);W!==!1&&(W&&(xe=W),xe.actualize&&(xe=xe.actualize(de.ownerDocument||Rt)),b(de,xe),Y(xe))}xe=Qt,Oe=wt}Z(de,Oe,gt);var oe=Em[de.nodeName];oe&&oe(de,te)}var Q=t,ie=Q.nodeType,me=n.nodeType;if(!C){if(ie===kr)me===kr?La(t,n)||(p(t),Q=zw(t,Rw(n.nodeName,n.namespaceURI))):Q=n;else if(ie===Am||ie===Pm){if(me===ie)return Q.nodeValue!==n.nodeValue&&(Q.nodeValue=n.nodeValue),Q;Q=n}}if(Q===n)p(t);else{if(n.isSameNode&&n.isSameNode(Q))return;if(ee(Q,n,C),D)for(var Se=0,Ne=D.length;Se{const{name:D,value:E}=x;D==="class"?b.addClass(E):p.getAttribute(D)!==E&&((D==="zui-create"||D.startsWith("zui-create-"))&&(C=!1),p.setAttribute(D,E))}),C&&u.add(p)}return!1}return!0},onBeforeElChildrenUpdated(p,m){const v=l==null?void 0:l(p,m);return v!==void 0?v:p.classList.contains("no-morph")?!1:!p.tagName.includes("-")},onElUpdated(p){if(o==null||o(p),p.tagName!=="SCRIPT"){p.hasAttribute(i)&&p.removeAttribute(i);const m=Hi(p);Object.keys(m).forEach(v=>{const b=m[v];if(v==="zui.commands"&&b)p.setAttribute("z-commands",","+Object.keys(b).join());else if(b instanceof Ge){const{ATTR_KEY:C,DATA_KEY:x}=b.constructor;p.setAttribute(C,""),p.setAttribute(x,`${b.gid}`)}})}}}),n.zuiInit({update:"reset",beforeCreate:p=>!u.has(p)}),u.forEach(p=>{y(p).trigger("skipMorph")}),c&&n.find("script:not(.zui-js-run)").each((p,m)=>{const v=m.textContent;v&&n.runJS(v)})}y.fn.morph=function(s,e){return this.each((t,n)=>{Wh(n,s,e)})},y.fn.morphInner=function(s,e){return this.each((t,n)=>{Wh(n,s,{...e,childrenOnly:!0})})};const Bw=Object.freeze(Object.defineProperty({__proto__:null,zentao:{name:"zentao",plugins:{marker:!0,critical_path:!0,tooltip:!0},config(s){const t=this.options.showFields,n=new Set(t),i=[{name:"text",tree:!0,resize:!0,min_width:120,width:200},n.has("PM")?{name:"owner_id",align:"left",resize:!0,width:80,template:function(o){const l=s.serverList("userList").find(c=>c.key===o.owner_id);return(l==null?void 0:l.label)??o.owner_id}}:null,n.has("status")?{name:"status",align:"center",resize:!0,width:80}:null,{name:"begin",align:"center",resize:!0,width:80},{name:"duration",align:"center",resize:!0,width:60},n.has("estimate")?{name:"estimate",align:"center",resize:!0,width:60}:null,n.has("progress")?{name:"percent",align:"center",resize:!0,width:70,template:function(o){if(o.percent)return Math.round(o.percent)+"%"}}:null,n.has("taskProgress")?{name:"taskProgress",align:"center",resize:!0,width:60}:null,n.has("realBegan")?{name:"realBegan",align:"center",resize:!0,width:80}:null,n.has("realEnd")?{name:"realEnd",align:"center",resize:!0,width:80}:null,n.has("consumed")?{name:"consumed",align:"center",resize:!0,width:60}:null,n.has("delay")?{name:"delay",align:"center",resize:!0,width:60,template:function(o){return o.delayDays>0?"
    "+o.delay+"
    ":o.delay}}:null,n.has("delayDays")?{name:"delayDays",align:"center",resize:!1,width:60}:null].filter(Boolean);i[i.length-1].resize=!1;const r=[{unit:"year",step:1,format:"%Y"},{unit:"day",step:1,format:"%m-%d"}];return{columns:i,readonly:!0,details_on_dblclick:!1,order_branch:!1,drag_progress:!1,drag_links:!1,drag_move:!1,drag_resize:!1,smart_rendering:!0,smart_scales:!0,static_background:!0,show_task_cells:!1,row_height:32,details_on_create:!1,duration_unit:"day",show_chart:!0,scales:r,min_column_width:70,scale_height:22*r.length}},serverListMap(){return{userList:this.options.userList}},templates(s){return{grid_date_format:function(e,t){const n=s.date.date_to_str("%Y-%m-%d");return n(t==="end_date"?new Date(e.valueOf()-1):e)}}},onInit(s){s.locale.labels={...s.locale.labels,...this.options.ganttFields},this.options.showDate=new Date}}},Symbol.toStringTag,{value:"Module"})),Ra=class hd extends Ge{get gantt(){return this._gantt}setOptions(e,t){const n=super.setOptions(e,t);return this._exts=n.exts?(typeof n.exts=="string"?n.exts.split(","):n.exts).map(i=>typeof i=="string"?hd.extensions[i]:i).filter(Boolean):[],n}async afterInit(){const{getGanttInstance:e}=await hd.loadModule();this._gantt=e(),this._exts.forEach(t=>{var n;(n=t.onCreate)==null||n.call(this,this._gantt)}),this._initGantt(),this.render()}_initGantt(){const{templates:e={},events:t={},plugins:n={},serverListMap:i={},markers:r=[],config:o={},onInit:a}=this.options;this.$element.addClass("gantt-container"),this._gantt.init(this.element),this.setTemplates(e),this.attachEvents(t),this.setPlugins(n),this.setServerListMap(i),this.addMarkers(r),this.setConfig(o),this._exts.forEach(l=>{var c;l.config&&this.setConfig(l.config),l.templates&&this.setTemplates(l.templates),l.events&&this.attachEvents(l.events),l.plugins&&this.setPlugins(l.plugins),l.markers&&this.addMarkers(l.markers),l.serverListMap&&this.setServerListMap(l.serverListMap),(c=l.onInit)==null||c.call(this,this._gantt)}),a==null||a.call(this,this._gantt)}setPlugins(e){this._gantt.plugins(typeof e=="function"?e.call(this,this._gantt):e)}setTemplate(e,t){this._gantt.templates[e]=t}setTemplates(e){y.extend(this._gantt.templates,typeof e=="function"?e.call(this,this._gantt):e)}setServerListMap(e){Object.entries(typeof e=="function"?e.call(this,this._gantt):e).forEach(([t,n])=>{this._gantt.serverList(t,n)})}setServerList(e,t){this._gantt.serverList(e,t)}setConfig(e,t){e=typeof e=="function"?e.call(this,this._gantt):e,typeof e=="string"?this._gantt.config[e]=t:y.extend(this._gantt.config,e)}addMarker(e){this._gantt.addMarker(e)}addMarkers(e){typeof e=="function"&&(e=e.call(this,this._gantt)),Array.isArray(e)?e.forEach(t=>{this.addMarker(t)}):Object.entries(e).forEach(([t,n])=>{this.addMarker({id:t,...n})})}attachEvent(e,t){this._gantt.attachEvent(e,t)}attachEvents(e){Object.entries(typeof e=="function"?e.call(this,this._gantt):e).forEach(([t,n])=>{this._gantt.attachEvent(t,n)})}async render(e,t){super.render(e,t);const{data:n=[],links:i=[],resources:r=[],assignments:o=[],collections:a={},showDate:l,width:c,height:h,onRender:u,beforeRender:p,fetcher:m}=this.options;let v={data:n,links:i,resources:r,assignments:o,collections:a};m&&(this.$element.addClass("loading"),v=await dt(m,[],{},this),this.$element.removeClass("loading")),p==null||p.call(this,this._gantt,v),c&&this.$element.css("width",qe(c)),h&&this.$element.css("height",qe(h)),this._gantt.clearAll(),this._gantt.parse(v),l&&this._gantt.showDate(l),this._gantt.render(),u==null||u.call(this,this._gantt)}destroy(){var e;super.destroy(),(e=this._gantt)==null||e.destructor()}static async loadModule(){if(!this.Module&&!this.Module){const e=await y.getLib("dhxgantt");this.Module=e}return this.Module}static registerExtension(e){this.extensions[e.name]=e}};Ra.NAME="Gantt",Ra.DEFAULT={width:"100%",height:400},Ra.extensions=Bw;let Lm=Ra;Lm.register();const Rm=(Bg=window.config)==null?void 0:Bg.version;y.registerLib("dhxgantt",{src:Rm?["dhtmlxgantt/min.js","dhtmlxgantt/min.css",`dhtmlxgantt/lang/${Pe.getCode().replace("_","-")}.js`]:["gantt/dhtmlxgantt/min.js","gantt/dhtmlxgantt/min.css",`gantt/dhtmlxgantt/lang/${Pe.getCode().replace("_","-")}.js`],root:Rm?`${window.config.webRoot}js/`:void 0,check:"Gantt"});const ik="",rk="";rt(Fb);const ok="";let zm=class extends ot{constructor(){super(...arguments),this._searchBox=pe(),this._menu=pe(),this._handleChange=e=>{this.setState({value:e.trim()})},this._handleFocus=()=>{this.toggle(!0)},this._handleEenter=()=>{var t;const e=(t=this._menu.current)==null?void 0:t.getActiveKey();e&&this.search(e)},this._handleClickItem=e=>{this.search(e.item.key)}}search(e){var t,n;(t=this.props.onSearch)==null||t.call(this,e,this.state.value),this.toggle(!1,{value:""}),(n=this._searchBox.current)==null||n.blur()}componentDidUpdate(e,t){var i;super.componentDidUpdate(e,t);const n=this._menu.current;this.state.open&&n&&!((i=this._types)!=null&&i.has(n.getActiveKey()))&&n.activeNext()}_getHotkeys(){return this._hotkeys||(this._hotkeys={activeNext:{keys:"ArrowDown",handler:()=>{var e;return(e=this._menu.current)==null?void 0:e.activeNext()}},activePrev:{keys:"ArrowUp",handler:()=>{var e;return(e=this._menu.current)==null?void 0:e.activePrev()}},enter:!0}),this._hotkeys}_renderTrigger(e){return _(Is,{delay:0,ref:this._searchBox,placeholder:e.searchHint,onChange:this._handleChange,onFocus:this._handleFocus,hotkeys:this._getHotkeys(),onEnter:this._handleEenter,...e.searchBox})}_getItems(e,t){const{items:n,getObjectID:i,getSearchType:r}=e,{value:o}=t;let a=r==null?void 0:r.call(this,o);const l=a&&a[0]==="!";l&&(a=a.slice(1));const c=i?i.call(this,o):Number.isInteger(+o)?+o:!1,h=Number.isInteger(c),u=[],p=n.reduce((b,C)=>(b.set(C.key,C),b),new Map),m="search",v=b=>{var C;return{html:((C=b.text)==null?void 0:C.replace("{0}",o))??o}};if(a&&h){const b=p.get(a);b&&u.push({...b,className:K(b.className,"w-full"),text:v(b)})}if(!l){const b=p.get(m);u.push({...b,className:K(b==null?void 0:b.className,"w-full"),text:b?v(b):o})}return h&&n.forEach(b=>{b.key===m||b.key===a||l||u.push({...b,className:K(b.className,"w-1/2"),text:v(b)})}),this._types=new Set(u.map(b=>b.key)),u}_renderPop(e,t){return _(Pt,{className:"row flex-wrap overflow-auto scrollbar-hover",items:this._getItems(e,t),onClickItem:this._handleClickItem,ref:this._menu,activeOnHover:!0,...e.menu})}};zm.defaultProps={...ot.defaultProps,pickerName:"global-search",hidePopWhenEmpty:!0};class za extends Ce{}za.NAME="GlobalSearch",za.Component=zm,za.replace=!0;function Hw(s,e=1e3){let t=null;return(...n)=>{t&&clearTimeout(t),t=setTimeout(()=>{s(...n),t=null},e)}}const Om=class Ey extends Ge{static async loadModule(){return this.Module||(this.Module=await y.getLib("g6")),this.Module}async afterInit(){const e=await Ey.loadModule();if(this.destroyed)return;const{type:t="TreeGraph",width:n=this.$element.width(),height:i=this.$element.height()||500,responsive:r=!1,data:o,nodeFn:a,edgeFn:l,comboFn:c,...h}=this.options,u=new e[t]({container:this.element,width:n,height:i,...h});a&&u.node(a),l&&u.edge(l),c&&u.combo(c),u.data(o),u.render(),this.instance=u,r&&this.initResizeObserver()}initResizeObserver(){const e=Hw(()=>{this.instance.changeSize(this.$element.width(),this.$element.height()),this.instance.render()},500);this.resizeObserver=new ResizeObserver(()=>{e()}),this.resizeObserver.observe(this.element)}destroy(){var e;this.options.responsive&&((e=this.resizeObserver)==null||e.disconnect()),this.instance.destroy(),super.destroy()}};Om.NAME="Graph";let Fm=Om;y.registerLib("g6",{src:"graph/g6.min.js",check:"G6"}),Fm.register();const ak="";class Vh extends Ge{init(){this.clipWidth=this.options.defaultWidth,this.clipHeight=this.options.defaultHeight,this.initDom(),this.initSize(),this.bindEvents()}initDom(){this.$canvas=this.$element.find(".canvas"),this.$img=this.$canvas.find("img"),this.$btn=this.$element.find("button");const e=this.$img.prop("src"),{coverColor:t,coverOpacity:n}=this.options;this.$canvas.append([`
    `,`
    `,["top","right","bottom","left","top-left","top-right","bottom-left","bottom-right"].map(i=>`
    `).join(""),"
    ",'
    ',``,"
    "].join("")),this.$controller=this.$canvas.find(".controller"),this.$cliper=this.$canvas.find(".cliper"),this.$chipImg=this.$cliper.find("img")}resetImage(e){this.$img.prop("src",e),this.$chipImg.prop("src",e),this.imgWidth=0,this.left=-1,this.initSize()}initSize(){const{minWidth:e,minHeight:t,ready:n,onSizeError:i}=this.options;if(this.imgWidth)return;const r=a=>{this.imgWidth=a.width,this.imgHeight=a.height,(a.width{r(o)}}refreshSize(e){const{minWidth:t,minHeight:n,fixedRatio:i,defaultWidth:r,defaultHeight:o}=this.options;this.clipWidth=Math.max(t,Math.min(this.width,this.clipWidth)),this.clipHeight=Math.max(n,Math.min(this.height,this.clipHeight)),i&&(e&&e==="height"?(this.clipWidth=Math.max(t,Math.min(this.width,this.clipHeight*r/o)),this.clipHeight=this.clipWidth*o/r):(this.clipHeight=Math.max(n,Math.min(this.height,this.clipWidth*o/r)),this.clipWidth=this.clipHeight*r/o)),this.left=Math.min(this.width-this.clipWidth,Math.max(0,this.left)),this.top=Math.min(this.height-this.clipHeight,Math.max(0,this.top)),this.right=this.left+this.clipWidth,this.bottom=this.top+this.clipHeight,this.$controller.css({left:this.left,top:this.top,width:this.clipWidth,height:this.clipHeight}),this.$cliper.css("clip",`rect(${this.top}px, ${this.left+this.clipWidth}px, ${this.top+this.clipHeight}px, ${this.left}px)`)}getData(){return{originWidth:this.imgWidth,originHeight:this.imgHeight,scaleWidth:this.width,scaleHeight:this.height,width:this.right-this.left,height:this.bottom-this.top,left:this.left,top:this.top,right:this.right,bottom:this.bottom,scaled:this.imgWidth!==this.width||this.imgHeight!==this.height}}bindEvents(){this.$element.on("resize",this.initSize.bind(this)),this.$btn.on("click",e=>{var t,n;(n=(t=this.options).handleBtnClick)==null||n.call(t,e,this.getData())}),this.moveable=new rr(this.$controller,{selector:".control,.controller",move:!1,onMoveStart:()=>{this.startLeft=this.left,this.startTop=this.top,this.startClipWidth=this.clipWidth,this.startClipHeight=this.clipHeight},onMove:(e,t)=>{const n=y(t.target);if(n.is(".controller"))this.left=this.startLeft+t.deltaX,this.top=this.startTop+t.deltaY,this.refreshSize();else{const i=n.data("type");let r=!1;const{minWidth:o,minHeight:a}=this.options;switch(i){case"left":case"top-left":case"bottom-left":this.left=Math.min(this.right-o,Math.max(0,this.startLeft+t.deltaX)),this.clipWidth=this.right-this.left;break;case"right":case"top-right":case"bottom-right":this.clipWidth=Math.min(this.width-this.left,Math.max(o,this.startClipWidth+t.deltaX));break}switch(i){case"top":case"top-left":case"top-right":this.top=Math.min(this.bottom-a,Math.max(0,this.startTop+t.deltaY)),this.clipHeight=this.bottom-this.top,r=!0;break;case"bottom":case"bottom-left":case"bottom-right":this.clipHeight=Math.min(this.height-this.top,Math.max(a,this.startClipHeight+t.deltaY)),r=!0;break}this.refreshSize(r)}}})}destroy(){var e;(e=this.moveable)==null||e.destroy(),super.destroy()}}Vh.NAME="ImgCutter",Vh.DEFAULT={coverColor:"#000",coverOpacity:.6,defaultWidth:128,defaultHeight:128,minWidth:48,minHeight:48,fixedRatio:!0};const Fs=class{static get images(){var e;return(e=this.Module)==null?void 0:e.images}static async loadModule(){return this.Module||(this.Module=await y.getLib("mammoth")),this.Module}};Fs.convertToHtml=async function(s,e){const{convertToHtml:t}=await Fs.loadModule();return t(s,e)},Fs.extractRawText=async function(s){const{extractRawText:e}=await Fs.loadModule();return e(s)},Fs.embedStyleMap=async function(s,e){const{embedStyleMap:t}=await Fs.loadModule();return t(s,e)};let Uw=Fs;y.registerLib("mammoth",{src:["mammoth/mammoth.browser.min.js"],check:"mammoth",type:"module"});const lk="";Object.assign(Qn.TypeOptions,{success:{key:"zt-messager-success",icon:"check-circle",type:"success",close:!1},danger:{icon:"exclamation-sign",type:"danger",close:!1}}),Object.assign(Qn,{success(s){return Qn.show(s,"success")},fail(s){return Qn.show(s,"danger")}}),Object.assign(Qn.DEFAULT,{time:3e3,className:"messager-lite"});const ck="";function Ww(s){return ze.confirm({iconClass:"warning rounded-full center w-8 h-8 flex-none",type:"custom",custom:{className:"modal-reconfirm",closeBtn:!1},...s})}async function Vw(s){const{sortable:e={},onSort:t,items:n,itemProps:i={icon:"move muted",innerClass:"border rounded px-2 canvas cursor-move hover:shadow"},list:r,header:o,message:a,footer:l,...c}=s;let h;const u=(m,v)=>{h=v,t==null||t(m,v)};if(await ze.confirm({type:"custom",content:_("div",{className:"modal-body sort-view col gap-2"},_(ye,{className:"sort-view-header",content:o}),_(ye,{className:"sort-view-message muted",content:a}),_(or,{className:"space-y-2",sortable:e,items:n,itemProps:i,onSort:u,...r}),_(ye,{className:"sort-view-footer",content:l})),...c}))return h}Pe.addLang({zh_cn:{occurredError:"发生了错误"},zh_tw:{occurredError:"發生了錯誤"},en:{occurredError:"An error occurred"}});async function Kw(s){const{title:e,mono:t,html:n=!0,copyBtn:i=!0,basePath:r,contentClass:o,error:a,...l}=s;let c=typeof a=="string"?a:(a==null?void 0:a.message)??"",h=t,u=e;n&&(r&&(c=c.split(r).join('/')),c.startsWith(`
    +var rd=(I,lt,Ft)=>{if(!lt.has(I))throw TypeError("Cannot "+Ft)};var Ot=(I,lt,Ft)=>(rd(I,lt,"read from private field"),Ft?Ft.call(I):lt.get(I)),Xt=(I,lt,Ft)=>{if(lt.has(I))throw TypeError("Cannot add the same private member more than once");lt instanceof WeakSet?lt.add(I):lt.set(I,Ft)},sn=(I,lt,Ft,Tl)=>(rd(I,lt,"write to private field"),Tl?Tl.call(I,Ft):lt.set(I,Ft),Ft);var od=(I,lt,Ft)=>(rd(I,lt,"access private method"),Ft);(function(I,lt){typeof exports=="object"&&typeof module<"u"?lt(exports):typeof define=="function"&&define.amd?define(["exports"],lt):(I=typeof globalThis<"u"?globalThis:I||self,lt(I.zui={}))})(this,function(I){var Xa,Ja,Or,Fr,jr,Br,Hr,Ur,Qa,$y,el,Iy,cs,hs,Hg;"use strict";const lt="",Ft="",Tl="",KC="",qC="",GC="",YC="",ZC="",XC="",JC="",QC="",eS="",$l="3.0.0",Py="production",ud="dbfbb687b24b8b45426d25391631bbea224e051d",In=document,so=window,dd=In.documentElement,vs=In.createElement.bind(In),fd=vs("div"),Il=vs("table"),Ly=vs("tbody"),pd=vs("tr"),{isArray:io,prototype:md}=Array,{concat:Ry,filter:Nl,indexOf:gd,map:yd,push:zy,slice:vd,some:El,splice:Oy}=md,Fy=/^#(?:[\w-]|\\.|[^\x00-\xa0])*$/,jy=/^\.(?:[\w-]|\\.|[^\x00-\xa0])*$/,By=/<.+>/,Hy=/^\w+$/;function Ml(s,e){const t=Uy(e);return!s||!t&&!_s(e)&&!ut(e)?[]:!t&&jy.test(s)?e.getElementsByClassName(s.slice(1).replace(/\\/g,"")):!t&&Hy.test(s)?e.getElementsByTagName(s):e.querySelectorAll(s)}class ro{constructor(e,t){if(!e)return;if(Al(e))return e;let n=e;if($t(e)){const i=t||In;if(n=Fy.test(e)&&_s(i)?i.getElementById(e.slice(1).replace(/\\/g,"")):By.test(e)?kd(e):Al(i)?i.find(e):$t(i)?y(i).find(e):Ml(e,i),!n)return}else if(bs(e))return this.ready(e);(n.nodeType||n===so)&&(n=[n]),this.length=n.length;for(let i=0,r=this.length;i{for(;e.firstChild;)e.removeChild(e.firstChild)})};function oo(...s){const e=Vy(s[0])?s.shift():!1,t=s.shift(),n=s.length;if(!t)return{};if(!n)return oo(e,y,t);for(let i=0;i{ut(r)&&_t(t,(o,a)=>{n?e?r.classList.add(a):r.classList.remove(a):r.classList.toggle(a)})})},ae.addClass=function(s){return this.toggleClass(s,!0)},ae.removeAttr=function(s){const e=ao(s);return this.each((t,n)=>{ut(n)&&_t(e,(i,r)=>{n.removeAttribute(r)})})};function qy(s,e){if(s){if($t(s)){if(arguments.length<2){if(!this[0]||!ut(this[0]))return;const t=this[0].getAttribute(s);return Hi(t)?void 0:t}return jt(e)?this:Hi(e)?this.removeAttr(s):this.each((t,n)=>{ut(n)&&n.setAttribute(s,e)})}for(const t in s)this.attr(t,s[t]);return this}}ae.attr=qy,ae.removeClass=function(s){return arguments.length?this.toggleClass(s,!1):this.attr("class","")},ae.hasClass=function(s){return!!s&&El.call(this,e=>ut(e)&&e.classList.contains(s))},ae.get=function(s){return jt(s)?vd.call(this):(s=Number(s),this[s<0?s+this.length:s])},ae.eq=function(s){return y(this.get(s))},ae.first=function(){return this.eq(0)},ae.last=function(){return this.eq(-1)};function Gy(s){return jt(s)?this.get().map(e=>ut(e)||Wy(e)?e.textContent:"").join(""):this.each((e,t)=>{ut(t)&&(t.textContent=s)})}ae.text=Gy;function Nn(s,e,t){if(!ut(s))return;const n=so.getComputedStyle(s,null);return t?n.getPropertyValue(e)||void 0:n[e]||s.style[e]}function mn(s,e){return parseInt(Nn(s,e),10)||0}function bd(s,e){return mn(s,`border${e?"Left":"Top"}Width`)+mn(s,`padding${e?"Left":"Top"}`)+mn(s,`padding${e?"Right":"Bottom"}`)+mn(s,`border${e?"Right":"Bottom"}Width`)}const Ll={};function Yy(s){if(Ll[s])return Ll[s];const e=vs(s);In.body.insertBefore(e,null);const t=Nn(e,"display");return In.body.removeChild(e),Ll[s]=t!=="none"?t:"block"}function wd(s){return Nn(s,"display")==="none"}function Cd(s,e){const t=s&&(s.matches||s.webkitMatchesSelector||s.msMatchesSelector);return!!t&&!!e&&t.call(s,e)}function lo(s){return $t(s)?(e,t)=>Cd(t,s):bs(s)?s:Al(s)?(e,t)=>s.is(t):s?(e,t)=>t===s:()=>!1}ae.filter=function(s){const e=lo(s);return y(Nl.call(this,(t,n)=>e.call(t,n,t)))};function Un(s,e){return e?s.filter(e):s}ae.detach=function(s){return Un(this,s).each((e,t)=>{t.parentNode&&t.parentNode.removeChild(t)}),this};const Zy=/^\s*<(\w+)[^>]*>/,Xy=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,Sd={"*":fd,tr:Ly,td:pd,th:pd,thead:Il,tbody:Il,tfoot:Il};function kd(s){if(!$t(s))return[];if(Xy.test(s))return[vs(RegExp.$1)];const e=Zy.test(s)&&RegExp.$1,t=Sd[e]||Sd["*"];return t.innerHTML=s,y(t.childNodes).detach().get()}y.parseHTML=kd,ae.has=function(s){const e=$t(s)?(t,n)=>Ml(s,n).length:(t,n)=>n.contains(s);return this.filter(e)},ae.not=function(s){const e=lo(s);return this.filter((t,n)=>(!$t(s)||ut(n))&&!e.call(n,t,n))};function En(s,e,t,n){const i=[],r=bs(e),o=n&&lo(n);for(let a=0,l=s.length;ae.selected&&!e.disabled&&!e.parentNode.disabled),"value"):s.value||""}function Jy(s){return arguments.length?this.each((e,t)=>{const n=t.multiple&&t.options;if(n||Rd.test(t.type)){const i=io(s)?yd.call(s,String):Hi(s)?[]:[String(s)];n?_t(t.options,(r,o)=>{o.selected=i.indexOf(o.value)>=0},!0):t.checked=i.indexOf(t.value)>=0}else t.value=jt(s)||Hi(s)?"":s}):this[0]&&xd(this[0])}ae.val=Jy,ae.is=function(s){const e=lo(s);return El.call(this,(t,n)=>e.call(t,n,t))},y.guid=1;function gn(s){return s.length>1?Nl.call(s,(e,t,n)=>gd.call(n,e)===t):s}y.unique=gn,ae.add=function(s,e){return y(gn(this.get().concat(y(s,e).get())))},ae.children=function(s){return Un(y(gn(En(this,e=>e.children))),s)},ae.parent=function(s){return Un(y(gn(En(this,"parentNode"))),s)},ae.index=function(s){const e=s?y(s)[0]:this[0],t=s?this:y(e).parent().children();return gd.call(t,e)},ae.closest=function(s){const e=this.filter(s);if(e.length)return e;const t=this.parent();return t.length?t.closest(s):e},ae.siblings=function(s){return Un(y(gn(En(this,e=>y(e).parent().children().not(e)))),s)},ae.find=function(s){return y(gn(En(this,e=>Ml(s,e))))};const Qy=/^\s*\s*$/g,ev=/^$|^module$|\/(java|ecma)script/i,tv=["type","src","nonce","noModule"];function nv(s,e){const t=y(s);t.filter("script").add(t.find("script")).each((n,i)=>{if(ev.test(i.type)&&dd.contains(i)){const r=vs("script");r.text=i.textContent.replace(Qy,""),_t(tv,(o,a)=>{i[a]&&(r[a]=i[a])}),e.head.insertBefore(r,null),e.head.removeChild(r)}})}function sv(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&&nv(e,s.ownerDocument)}function Wn(s,e,t,n,i,r,o,a){return _t(s,(l,c)=>{_t(y(c),(h,d)=>{_t(y(e),(p,m)=>{const v=t?d:m,b=t?m:d,C=t?h:p;sv(v,C?b.cloneNode(!0):b,n,i,!C)},a)},o)},r),e}ae.after=function(){return Wn(arguments,this,!1,!1,!1,!0,!0)},ae.append=function(){return Wn(arguments,this,!1,!1,!0)};function iv(s){if(!arguments.length)return this[0]&&this[0].innerHTML;if(jt(s))return this;const e=/]/.test(s);return this.each((t,n)=>{ut(n)&&(e?y(n).empty().append(s):n.innerHTML=s)})}ae.html=iv,ae.appendTo=function(s){return Wn(arguments,this,!0,!1,!0)},ae.wrapInner=function(s){return this.each((e,t)=>{const n=y(t),i=n.contents();i.length?i.wrapAll(s):n.append(s)})},ae.before=function(){return Wn(arguments,this,!1,!0)},ae.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)},ae.wrap=function(s){return this.each((e,t)=>{const n=y(s)[0];y(t).wrapAll(e?n.cloneNode(!0):n)})},ae.insertAfter=function(s){return Wn(arguments,this,!0,!1,!1,!1,!1,!0)},ae.insertBefore=function(s){return Wn(arguments,this,!0,!0)},ae.prepend=function(){return Wn(arguments,this,!1,!0,!0,!0,!0)},ae.prependTo=function(s){return Wn(arguments,this,!0,!0,!0,!1,!1,!0)},ae.contents=function(){return y(gn(En(this,s=>s.tagName==="IFRAME"?[s.contentDocument]:s.tagName==="TEMPLATE"?s.content.childNodes:s.childNodes)))},ae.next=function(s,e,t){return Un(y(gn(En(this,"nextElementSibling",e,t))),s)},ae.nextAll=function(s){return this.next(s,!0)},ae.nextUntil=function(s,e){return this.next(e,!0,s)},ae.parents=function(s,e){return Un(y(gn(En(this,"parentElement",!0,e))),s)},ae.parentsUntil=function(s,e){return this.parents(e,s)},ae.prev=function(s,e,t){return Un(y(gn(En(this,"previousElementSibling",e,t))),s)},ae.prevAll=function(s){return this.prev(s,!0)},ae.prevUntil=function(s,e){return this.prev(e,!0,s)},ae.map=function(s){return y(Ry.apply([],yd.call(this,(e,t)=>s.call(e,t,e))))},ae.clone=function(){return this.map((s,e)=>e.cloneNode(!0))},ae.offsetParent=function(){return this.map((s,e)=>{let t=e.offsetParent;for(;t&&Nn(t,"position")==="static";)t=t.offsetParent;return t||dd})},ae.slice=function(s,e){return y(vd.call(this,s,e))};const rv=/-([a-z])/g;function Rl(s){return s.replace(rv,(e,t)=>t.toUpperCase())}ae.ready=function(s){const e=()=>setTimeout(s,0,y);return In.readyState!=="loading"?e():In.addEventListener("DOMContentLoaded",e),this},ae.unwrap=function(){return this.parent().each((s,e)=>{if(e.tagName==="BODY")return;const t=y(e);t.replaceWith(t.children())}),this},ae.offset=function(){const s=this[0];if(!s)return;const e=s.getBoundingClientRect();return{top:e.top+so.pageYOffset,left:e.left+so.pageXOffset}},ae.position=function(){const s=this[0];if(!s)return;const e=Nn(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)&&Nn(i,"position")==="static";)i=i.parentNode;if(i!==s&&ut(i)){const r=y(i).offset();t.top-=r.top+mn(i,"borderTopWidth"),t.left-=r.left+mn(i,"borderLeftWidth")}}return{top:t.top-mn(s,"marginTop"),left:t.left-mn(s,"marginLeft")}};const Dd={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};ae.prop=function(s,e){if(s){if($t(s))return s=Dd[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}},ae.removeProp=function(s){return this.each((e,t)=>{delete t[Dd[s]||s]})};const ov=/^--/;function zl(s){return ov.test(s)}const Ol={},{style:av}=fd,lv=["webkit","moz","ms"];function cv(s,e=zl(s)){if(e)return s;if(!Ol[s]){const t=Rl(s),n=`${t[0].toUpperCase()}${t.slice(1)}`,i=`${t} ${lv.join(`${n} `)}${n}`.split(" ");_t(i,(r,o)=>{if(o in av)return Ol[s]=o,!1})}return Ol[s]}const hv={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 Td(s,e,t=zl(s)){return!t&&!hv[s]&&_d(e)?`${e}px`:e}function uv(s,e){if($t(s)){const t=zl(s);return s=cv(s,t),arguments.length<2?this[0]&&Nn(this[0],s,t):s?(e=Td(s,e,t),this.each((n,i)=>{ut(i)&&(t?i.style.setProperty(s,e):i.style[s]=e)})):this}for(const t in s)this.css(t,s[t]);return this}ae.css=uv;function $d(s,e){try{return s(e)}catch{return e}}const dv=/^\s+|\s+$/;function Id(s,e){const t=s.dataset[e]||s.dataset[Rl(e)];return dv.test(t)?t:$d(JSON.parse,t)}function fv(s,e,t){t=$d(JSON.stringify,t),s.dataset[Rl(e)]=t}function pv(s,e){if(!s){if(!this[0])return;const t={};for(const n in this[0].dataset)t[n]=Id(this[0],n);return t}if($t(s))return arguments.length<2?this[0]&&Id(this[0],s):jt(e)?this:this.each((t,n)=>{fv(n,s,e)});for(const t in s)this.data(t,s[t]);return this}ae.data=pv;function Nd(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}`])}_t([!0,!1],(s,e)=>{_t(["Width","Height"],(t,n)=>{const i=`${e?"outer":"inner"}${n}`;ae[i]=function(r){if(this[0])return Js(this[0])?e?this[0][`inner${n}`]:this[0].document.documentElement[`client${n}`]:_s(this[0])?Nd(this[0],n):this[0][`${e?"offset":"client"}${n}`]+(r&&e?mn(this[0],`margin${t?"Top":"Left"}`)+mn(this[0],`margin${t?"Bottom":"Right"}`):0)}})}),_t(["Width","Height"],(s,e)=>{const t=e.toLowerCase();ae[t]=function(n){if(!this[0])return jt(n)?void 0:this;if(!arguments.length)return Js(this[0])?this[0].document.documentElement[`client${e}`]:_s(this[0])?Nd(this[0],e):this[0].getBoundingClientRect()[t]-bd(this[0],!s);const i=parseInt(n,10);return this.each((r,o)=>{if(!ut(o))return;const a=Nn(o,"boxSizing");o.style[t]=Td(t,i+(a==="border-box"?bd(o,!s):0))})}});const Ed="___cd";ae.toggle=function(s){return this.each((e,t)=>{if(!ut(t))return;const n=wd(t);(jt(s)?n:s)?(t.style.display=t[Ed]||"",wd(t)&&(t.style.display=Yy(t.tagName))):n||(t[Ed]=Nn(t,"display"),t.style.display="none")})},ae.hide=function(){return this.toggle(!1)},ae.show=function(){return this.toggle(!0)};const Md="___ce",Fl=".",jl={focus:"focusin",blur:"focusout"},Ad={mouseenter:"mouseover",mouseleave:"mouseout"},mv=/^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;function Bl(s){return Ad[s]||jl[s]||s}function Hl(s){const e=s.split(Fl);return[e[0],e.slice(1).sort()]}ae.trigger=function(s,e){if($t(s)){const[n,i]=Hl(s),r=Bl(n);if(!r)return this;const o=mv.test(r)?"MouseEvents":"HTMLEvents";s=In.createEvent(o),s.initEvent(r,!0,!0),s.namespace=i.join(Fl),s.___ot=n}s.___td=e;const t=s.___ot in jl;return this.each((n,i)=>{t&&bs(i[s.___ot])&&(i[`___i${s.type}`]=!0,i[s.___ot](),i[`___i${s.type}`]=!1),i.dispatchEvent(s)})};function Pd(s){return s[Md]=s[Md]||{}}function gv(s,e,t,n,i){const r=Pd(s);r[e]=r[e]||[],r[e].push([t,n,i]),s.addEventListener(e,i)}function Ld(s,e){return!e||!El.call(e,t=>s.indexOf(t)<0)}function co(s,e,t,n,i){const r=Pd(s);if(e)r[e]&&(r[e]=r[e].filter(([o,a,l])=>{if(i&&l.guid!==i.guid||!Ld(o,t)||n&&n!==a)return!0;s.removeEventListener(e,l)}));else for(e in r)co(s,e,t,n,i)}ae.off=function(s,e,t){if(jt(s))this.each((n,i)=>{!ut(i)&&!_s(i)&&!Js(i)||co(i)});else if($t(s))bs(e)&&(t=e,e=""),_t(ao(s),(n,i)=>{const[r,o]=Hl(i),a=Bl(r);this.each((l,c)=>{!ut(c)&&!_s(c)&&!Js(c)||co(c,a,o,e,t)})});else for(const n in s)this.off(n,s[n]);return this},ae.remove=function(s){return Un(this,s).detach().off(),this},ae.replaceWith=function(s){return this.before(s).remove()},ae.replaceAll=function(s){return y(s).replaceWith(this),this};function yv(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)||(jt(e)||Hi(e)?e="":jt(t)?(t=e,e=""):(n=t,t=e,e="")),bs(n)||(n=t,t=void 0),n?(_t(ao(s),(r,o)=>{const[a,l]=Hl(o),c=Bl(a),h=a in Ad,d=a in jl;c&&this.each((p,m)=>{if(!ut(m)&&!_s(m)&&!Js(m))return;const v=function(b){if(b.target[`___i${b.type}`])return b.stopImmediatePropagation();if(b.namespace&&!Ld(l,b.namespace.split(Fl))||!e&&(d&&(b.target!==m||b.___ot===c)||h&&b.relatedTarget&&m.contains(b.relatedTarget)))return;let C=m;if(e){let T=b.target;for(;!Cd(T,e);)if(T===m||(T=T.parentNode,!T))return;C=T}Object.defineProperty(b,"currentTarget",{configurable:!0,get(){return C}}),Object.defineProperty(b,"delegateTarget",{configurable:!0,get(){return m}}),Object.defineProperty(b,"data",{configurable:!0,get(){return t}});const k=n.call(C,b,b.___td);i&&co(m,c,l,e,v),k===!1&&(b.preventDefault(),b.stopPropagation())};v.guid=n.guid=n.guid||y.guid++,gv(m,c,l,e,v)})}),this):this}ae.on=yv;function vv(s,e,t,n){return this.on(s,e,t,n,!0)}ae.one=vv;const _v=/\r?\n/g;function bv(s,e){return`&${encodeURIComponent(s)}=${encodeURIComponent(e.replace(_v,`\r +`))}`}const wv=/file|reset|submit|button|image/i,Rd=/radio|checkbox/i;ae.serialize=function(){let s="";return this.each((e,t)=>{_t(t.elements||[t],(n,i)=>{if(i.disabled||!i.name||i.tagName==="FIELDSET"||wv.test(i.type)||Rd.test(i.type)&&!i.checked)return;const r=xd(i);if(!jt(r)){const o=io(r)?r:[r];_t(o,(a,l)=>{s+=bv(i.name,l)})}})}),s.slice(1)},window.$=y;function zd(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&&a1?i[r-2]:s,e[e.length-1]),o===void 0?t:o}catch{return t}}function Vn(s,e,t,n){let i;const r=Ui(s,e,void 0,o=>{i=o});return typeof r=="function"?r.apply(n??i,t):r}function Cv(s){return typeof s=="string"&&s!==""}function ke(s,...e){if(e.length===0)return s;if(e.length===1&&typeof e[0]=="object"&&e[0]){const t=e[0];return Object.keys(t).forEach(n=>{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))(Ul||{});function ct(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/Ul[t]).toFixed(e)+t)}const yn=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)*Ul[n]};let Wl=(document.documentElement.getAttribute("lang")||"zh_cn").toLowerCase().replace("-","_"),Mn;function Od(){return Wl}function Sv(s){Wl=s.toLowerCase().replace("-","_")}function Fd(s,e){Mn||(Mn={}),typeof s=="string"&&(s={[s]:e??{}}),y.extend(!0,Mn,s)}function Pe(s,e,t,n,i,r){Array.isArray(s)?Mn&&s.unshift(Mn):s=Mn?[Mn,s]:[s],typeof t=="string"&&(r=i,i=n,n=t,t=void 0);const o=i||Wl;let a;for(const l of s){if(!l)continue;const c=l[o]||l.default;if(!c)continue;const h=r&&l===Mn?`${r}.${e}`:e;if(a=Ui(c,h),a!==void 0)break}return a===void 0?n:t?ke(a,...Array.isArray(t)?t:[t]):a}function kv(s,e,t,n){return Pe(void 0,s,e,t,n)}Pe.addLang=Fd,Pe.getLang=kv,Pe.getCode=Od,Pe.setCode=Sv,Pe.map=Mn,Fd({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 ws(s,e,t){t!=null&&(Array.isArray(t)?t.forEach(n=>ws(s,e,n)):!(t instanceof Blob)&&y.isPlainObject(t)?Object.entries(t).forEach(([n,i])=>{ws(s,`${e}[${n}]`,i)}):s.append(e,t instanceof Blob?t:String(t)))}function ho(s,e){const t=e||new FormData;return s&&(typeof s=="string"&&(s=new URLSearchParams(s)),s instanceof URLSearchParams?s.forEach((n,i)=>{ws(t,i,n)}):Array.isArray(s)?s.forEach(([n,i])=>{ws(t,n,i)}):s instanceof FormData?s.forEach((n,i)=>{ws(t,i,n)}):typeof s=="object"&&s&&Object.entries(s).forEach(([n,i])=>{ws(t,n,i)})),t}function St(){return y.guid++}function uo(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 Cs?n.value!==t[i]:uo(n,t[i])))&&(this._value=this._compute(),this._lastDependencies=e.map(n=>n instanceof Cs?n.cache:n)),this._value}}function Vl(...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)?Vl(...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 q=(...s)=>Vl(...s).reduce((e,[t,n])=>(n&&e.push(t),e),[]).join(" ");y.classes=q,y.fn.setClass=function(s,...e){return this.each((t,n)=>{const i=y(n);s===!0?i.attr("class",q(i.attr("class"),...e)):i.addClass(q(s,...e))})};const Qs=new WeakMap;function fo(s,e,t){const n=Qs.has(s),i=n?Qs.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),Qs.set(s,i)):Qs.delete(s)}function Wi(s,e,t){let n=Qs.get(s)||{};return t&&s instanceof Element&&(n=Object.assign({},y(s).dataset(),n)),e===void 0?n:n[e]}function xv(s){Qs.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?Wi(this[0],e,!0):void 0:this.each((n,i)=>fo(i,e,t))},y.fn.removeData=function(s=null){return this.each((e,t)=>fo(t,s))};function Ss(s,...e){return s.includes("RAWJS")&&(s=s.split('"RAWJS<').join("").split('>RAWJS"').join("").split("").join('"').split("").join(` +`)),new Function(`return ${s}`)(...e)}function po(s,...e){return s.includes("RAWJS")?Ss(s,...e):JSON.parse(s)}function Dv(s){return JSON.stringify(s,(e,t)=>{if(typeof t=="function")return`RAWJS<${t.toString().split('"').join("").split(` +`).join("")}>RAWJS`})}function ei(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,h)=>{let{name:d}=h;const{value:p}=h;let m=p;if(d.startsWith(n)){if(d=d.slice(n.length).replace(/-([a-z])/g,v=>v[1].toUpperCase()),i)m=i(d,p);else try{r&&(!l||l.has(d))||r===void 0&&p.includes("RAWJS")?m=Ss(p,...a):o&&(m=JSON.parse(p))}catch{}c[d]=m}return c},{})}function Kl(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 Tv(...s){var t;const e=s.length;if(!e)return ei(this);if(e===1){const[n]=s;return typeof n=="string"?(t=ei(this))==null?void 0:t[n]:(y.isPlainObject(n)&&Kl(this,n),this)}return Kl(this,{[s[0]]:s[1]}),this}y.fn.z=Tv,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 Kn=(s,e)=>new Promise(t=>{const n=window.setTimeout(t,s);e&&e(n)}),jd={};y.share=jd;var mo,qe,Bd;I.isValidElement=void 0;var ks,Hd,Ud,ql,Gl,Yl,Zl,Vi={},Wd=[],$v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,go=Array.isArray;function qn(s,e){for(var t in e)s[t]=e[t];return s}function Vd(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?mo.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 yo(s,o,n,i,null)}function yo(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&&qe.vnode!=null&&qe.vnode(r),r}function me(){return{current:null}}function An(s){return s.children}function _e(s,e){this.props=s,this.context=e}function ti(s,e){if(e==null)return s.__?ti(s.__,s.__i+1):null;for(var t;ee&&ks.sort(ql));vo.__r=0}function Gd(s,e,t,n,i,r,o,a,l,c,h){var d,p,m,v,b,C=n&&n.__k||Wd,k=e.length;for(t.__d=l,Iv(t,e,C),l=t.__d,d=0;d0?yo(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=Nv(i,t,o,h))!==-1&&(h--,(r=t[a])&&(r.__u|=131072)),r==null||r.__v===null?(a==-1&&d--,typeof i.type!="function"&&(i.__u|=65536)):a!==o&&(a==o-1?d--:a==o+1?d++:(a>o?d--:d++,i.__u|=65536))):i=s.__k[n]=null;if(h)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=[..._o(r),..._o(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 Ql(s){return Object.keys(s).forEach(e=>{s[e]===void 0&&delete s[e]}),s}function ef(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)=>{ef(t,s)})},y.fn.enableScroll=function(s=!0){return this.disableScroll(!s)};function ec(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)?Ui(window,l):a(l):c=l,typeof c=="function"){const h=[],d=t.params;t.params=h,typeof d=="string"&&d.length?d[0]==="["?h.push(...r(d)):h.push(...d.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(d)?h.push(...d):h.push(d),c(...h)}}t.do&&a(t.do)}function Av(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)&&ec(e,s,y.extend({on:o},a?a.startsWith("{")?Ss(a):{do:a}:ei(e,{prefix:"data-",evalValue:["call","if","do"]})))}const i=e.attr(`zui-on-${t}`);i&&ec(e,s,y.extend({on:t},i.startsWith("{")?Ss(i):{do:i}));const r=e.attr("data-on");r&&r.split(" ").includes(t)&&ec(e,s,ei(e,{prefix:"data-",evalValue:["call","if","do"]}))}function tf(s){y(document).off(".zui.global").on(s.map(e=>`${e}.zui.global`).join(" "),`[zui-on],${s.map(e=>`[zui-on-${e}]`)},[data-on]`,Av)}y(()=>{tf(["click","change","inited"])});function Gn(s,e){if(typeof s=="function")return Gn(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 Ue(s,e){if(s==null)return null;const[t,n="px"]=Gn(s,e);return Number.isNaN(t)?typeof s=="string"?s:null:`${t}${n}`}async function Ds(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,"")),Ds(o,e)}const t=await fetch(s);return Ds(t)}class nf{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 vn=new nf(document);y.bus=vn,y.on=vn.on.bind(vn),y.one=vn.one.bind(vn),y.off=vn.off.bind(vn),y.trigger=vn.trigger.bind(vn);var Pv=["Shift","Meta","Alt","Control"],sf=typeof navigator=="object"?navigator.platform:"",rf=/Mac|iPod|iPhone|iPad/.test(sf),Lv=rf?"Meta":"Control",Rv=sf==="Win32"?["Control","Alt"]:rf?["Alt"]:[];function tc(s,e){return typeof s.getModifierState=="function"&&(s.getModifierState(e)||Rv.includes(e)&&s.getModifierState("AltGraph"))}function zv(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"?Lv:i}),n]})}function of(s,e){var t;e===void 0&&(e={});var n=(t=e.timeout)!=null?t:1e3,i=Object.keys(s).map(function(a){return[zv(a),s[a]]}),r=new Map,o=null;return function(a){a instanceof KeyboardEvent&&(i.forEach(function(l){var c=l[0],h=l[1],d=r.get(c)||c;(function(p,m){return!(m[1].toUpperCase()!==p.key.toUpperCase()&&m[1]!==p.code||m[0].find(function(v){return!tc(p,v)})||Pv.find(function(v){return!m[0].includes(v)&&m[1]!==v&&tc(p,v)}))})(a,d[0])?d.length>1?r.set(c,d.slice(1)):(r.delete(c),h(a)):tc(a,a.key)||r.delete(c)}),o&&clearTimeout(o),o=setTimeout(r.clear.bind(r),n))}}function Ov(s,e,t){var n;t===void 0&&(t={});var i=(n=t.event)!=null?n:"keydown",r=of(e,t);return s.addEventListener(i,r),function(){s.removeEventListener(i,r)}}function nc(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 sc(s,e,t){const{timeout:n,event:i="keydown",scope:r,when:o}=t||{},a=of(e,{timeout:n}),l=`.zui.hotkeys${r?`.${r}`:""}`,c="zui-hotkeys-composing";return y(s).on(`${i}${l}`,function(h){o&&o(h)===!1||y(h.target).data(c)||a(h)}).on(`compositionstart${l}`,h=>{y(h.target).data(c,!0)}).on(`compositionend${l}`,h=>{y(h.target).removeData(c)})}function ic(s,e){return y(s).off(`.zui.hotkeys${e?`.${e}`:""}`)}const Fv=Ov;y.fn.hotkeys=function(s,e){return sc(this,s,e)},y.fn.unbindHotkeys=function(s){return ic(this,s)},y.hotkeys=function(s,e){sc(window,s,e)},y.unbindHotkeys=function(s){ic(window,s)};function wo(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement}async function af(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 h=wo();let d=h;h?y(h).addClass("is-in-fullscreen"):(d=y(document).find(".is-in-fullscreen")[0]||document,y(d).removeClass("is-in-fullscreen")),y("body").toggleClass("has-in-fullscreen",!!h);const p={event:c,target:d,fullscreenElement:h};y(d).trigger(h?"enterFullscreen":"exitFullscreen",p).trigger("toggleFullscreen",p)}))}async function rc(s){const e=wo();return s===!1&&!!e===s?s:e?(document.exitFullscreen(),!1):(await af(s),!0)}y.fn.fullscreen=function(s){return rc({target:this,...s})},y.getFullscreenElement=wo,y.toggleFullscreen=rc;function Yn(s){return!s||s.parentNode===document?!1:s.parentNode?Yn(s.parentNode):!0}y.isDetached=Yn,y.fn.isDetached=function(){const s=this[0];return!s||Yn(s)};const Ts=class Cy{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 h=y(e);if(h.data(n)&&!r)throw new Error(`[ZUI] The component "${o}" has been initialized on element.`);const d=h[0];if(!d)throw new Error(`[ZUI] Invalid selector "${e}" for component "${o}", can not find the element matched.`);const p=St();this._gid=p,this._element=d,this.resetOptions(t),this._key=this.options.key??`__${p}`;let m=l.get(d);if(m?m.add(this):(m=new Set([this]),l.set(d,m)),c.has(o)?c.get(o).add(this):c.set(o,new Set([this])),h.data(n,this).attr(a,"").attr(i,`${p}`).attr("z-use",[...new Set([...m].map(b=>b.constructor.NAME))].join(",")),r){const b=`${n}:ALL`;let C=h.data(b);C||(C=new Map,h.data(b,C)),C.set(this._key,this)}this.init(),(v=this.options.$onCreate)==null||v.call(this),requestAnimationFrame(async()=>{var C;const{$fetcher:b}=this.options;if(b){const k=await dt(b,[],{dataType:"js"});if(this.destroyed)return;k&&this.setOptions(k)}this._inited=!0,await this.afterInit(),this.emit("inited",this.options),(C=this.options.$onInited)==null||C.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 b=v.values().next().value;l.data(e,b).attr(t,String(b==null?void 0:b.gid))}}const h=n.get(c);h&&(h.delete(this),h.size===0&&n.delete(c));const d=i.get(r);d&&(d.delete(this),d.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,Yn(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 Pe(i,e,t,n,this.options.lang,this.constructor.NAME)??Pe(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,h)=>{var d;(d=i.get(h))==null||d.forEach(a)}):this!==Cy?(l=r.get(this.NAME))==null||l.forEach(a):i.forEach(c=>{c.forEach(a)}),o.sort((c,h)=>c.gid-h.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,h)=>{let d=n.get(h);if(d)o&&d.render(o);else{if(a)return;d=new n(h,o)}if(a){let p=d[a],m=d;p===void 0&&(m=d.$,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)}};Ts.DEFAULT={},Ts.MULTI_INSTANCE=!1,Ts.ALL=new Map,Ts.TYPED_ALL=new Map,Ts.map=new Map,Ts.toggleMap=new Map;let Ge=Ts;function Ki(s){return Ge.map.get(s.toLowerCase())}function Co(s,e,t={}){let n=Ki(s);if(n||(n=oc(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 jv(s,e,t={}){requestAnimationFrame(()=>Co(s,e,t))}function lf(s,e){Ge.register(s,e)}function oc(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)&&(Ge.map.has(t.toLowerCase())||lf(i),n))return i}}}function Bv(s){var e;s?(e=Ki(s))==null||e.defineFn():window._zuiDefined||(oc(),Ge.map.forEach(t=>{t.defineFn()}),Object.assign(window,{_zuiDefined:!0}))}function Hv(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 h=r(a,l);if(h===!1)return;h&&(l=h)}const c=l.$lib;if(c){delete l.$lib,y.getLib(c).then(()=>Co(a,s,l));return}jv(a,s,l)};if(typeof n=="string"){n=n.trim();const a=n.length?n.split(",").map(h=>h.trim()):[],l=ei(s,{prefix:"zui-create-",evalValue:!0}),c=Object.keys(l);if(!c.length&&a.length===1)o(a[0],t.dataset());else{const h=new Set;[...a,...c].forEach(d=>{if(h.has(d))return;const p=l[d];o(d,p),delete l[d],h.add(d)})}}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 Uv(){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=Ge.toggleMap.get(t)||Ki(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:h,setOptions:d=!0,getOptions:p,prevent:m=!0,handler:v,onToggle:b,convertHref:C}=i;let k=e.dataset();const T=e.attr(`zui-toggle-${t}`);if(T&&(k=y.extend(k,Ss(T))),C&&e.is("a")){const A=e.attr("href");if(A){const O=C===!0?{selector:"target",url:"url"}:C;"#.".includes(A[0])?O.selector&&k[O.selector]===void 0&&(k[O.selector]=A):O.url&&k[O.url]===void 0&&(k[O.url]=A)}}if(p&&(k=p.call(n,this,k,s)),v){v.call(n,this,k,l,s),m&&s.preventDefault();return}let M=c?c.call(n,this):n.get(this);if(M)d&&M.setOptions(k);else{const A=h?h.call(n,this,s,k):new n(this,k);if(!A)return;M=A}if(b){if(b.call(n,M,this,s)===!1)return}else{const{shown:A,show:O,hide:G,toggle:Y}=M;let X;if(Y?X=Y:O&&G?A?X=G:X=O:O&&(X=O),X)X.call(M);else return}m&&s.preventDefault()})}function Wv(s,e){const t=Wi(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 So=0;function cf(s=100){if(So&&clearTimeout(So),s){So=window.setTimeout(()=>cf(0),s);return}So=0,Ge.ALL.forEach(e=>{e.forEach(t=>t.autoDestroy())})}function Vv(){if(!document.body||Wi(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&&cf()});s.observe(document.body,{childList:!0,subtree:!0}),fo(document.body,"_autoDestoryMob",s)}function ac(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&&Hv(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 ac(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 Wv(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}),Uv(),Vv()});class ko extends Ge{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,h)=>{const d=h.getBoundingClientRect(),p=t==="top"&&a>0&&d.top<=o.top+i||t==="bottom"&&d.bottom>=o.bottom-i||t==="left"&&l>0&&d.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))}}ko.NAME="Sticky";const ni=24*60*60*1e3,Ye=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),hf=(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(Ye(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},Zn=(s,e=new Date)=>Ye(s).toDateString()===Ye(e).toDateString(),qi=(s,e=new Date)=>Ye(s).getFullYear()===Ye(e).getFullYear(),lc=(s,e=new Date)=>(s=Ye(s),e=Ye(e),s.getFullYear()===e.getFullYear()&&s.getMonth()===e.getMonth()),Kv=(s,e=new Date)=>{s=Ye(s),e=Ye(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)},qv=(s,e)=>Zn(Ye(e),s),Gv=(s,e)=>Zn(Ye(e).getTime()-ni,s),Yv=(s,e)=>Zn(Ye(e).getTime()+ni,s),cc=s=>s!=null&&!isNaN(Ye(s).getTime()),nt=(s,e="yyyy-MM-dd hh:mm",t="")=>{if(s=Ye(s),!cc(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-]",qi(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},Zv=(s,e,t)=>{const n={full:"yyyy-M-d",month:"M-d",day:"d",str:"{0} ~ {1}",...t},i=nt(s,qi(s)?n.month:n.full);if(Zn(s,e))return i;const r=nt(e,qi(s,e)?lc(s,e)?n.day:n.month:n.full);return n.str.replace("{0}",i).replace("{1}",r)};function hc(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 uf(s){if(Array.isArray(s))return{commands:s.map(xo).filter(Boolean)};if(typeof s=="object")return s;s=s.replace(/^#!?/,"");const e=s.includes(">"),t=s.split(e?">":"|").map(xo);return{async:e,commands:t.filter(Boolean)}}function uc(s,e,t){if(typeof s=="string"&&(s=xo(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 df(s,e){const{async:t,commands:n}=uf(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 uc(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 uc(o,e)}))}const si="zui.commands",ii="z-commands",dc="zui-commands-proxy",ff="zui-command",Do={};function pf(s,e){typeof s=="string"&&e?Do[s]=e:typeof s=="object"&&Object.assign(Do,s)}function To(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(ii)||"").split(",");t&&!r.includes(t)&&r.push(t),i.attr(ii,r.join(",")).data(si,{[t]:{...e,scope:t,events:n,gid:St()},...i.data(si)})}function $o(s,e=!0){const t=y(s);if(e===!0)t.removeAttr(ii),t.removeData(si);else if(e.length){const n=t.data(si)||{};e.split(",").forEach(r=>{delete n[r]});const i=Object.keys(n);i.length?t.attr(ii,i.join(",")).data(si,To):$o(t,!0)}}function mf(s,e){let t=s.closest(`[${ii}],[${dc}]`).first();if(t.attr(dc)!==void 0&&(t=y(t.data("zui.commandProxy")||t.attr(dc)).closest(`[${ii}]`)),!t.length)return;const n=t.data(si)||{},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=mf(s.parent(),e),r)}function Xv(s){if(!s.currentTarget)return;const e=y(s.currentTarget);if(e.closest(".disabled,[disabled]").length)return;const t=e.attr(ff)||(e.is('a[href^="#!"]')?e.attr("href"):"");if(!t)return;const n=new AbortController,i=()=>n.abort();df(t,{signal:n.signal,execute:(r,o)=>{const{scope:a,name:l}=r,c={...r,abort:i};let h;const d=mf(e,a);if(d){c.element=d.element;const m=(d.commands?d.commands[`${a}~${l}`]||d.commands[l]:null)||d.onCommand;if(m&&(h=m(c,o),s.commandHandled))return h}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 h;if(a==="event"){l==="stop"?s.stopPropagation():l==="prevent"?s.preventDefault():Vn(s,l,o);return}return a==="window"?Vn(window,l,o):a==="zui"?Vn(window.zui,l,o):a==="target"?Vn(e[0],l,o):a==="$target"?Vn(e,l,o):a==="$"?Vn(y,l,o):a===""&&Do[l]!==void 0?Do[l](c,o):h},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)=>To(t,s)),this},y.fn.unbindCommands=function(s){return this.each((e,t)=>$o(t,s)),this},y(()=>{y(document).on("click.zui.command",`[${ff}],a[href^="#!"]`,Xv)});function Gi(s,e,t=!1){var i;const n=y(s);if(e!==void 0){if(typeof e=="string"&&e.length){const r=`zui-runjs-${St()}`;n.append(`