Adding light contrast theme (#22028)

* Adding light contrast theme

* fixing oe icons

* Fixing more files

* Converting ep files to support hc light

* Revert "Copy Headers for Selected Columns (#21622)"

This reverts commit f74d6f6d9b.

* Adding more css rules

* Fixing modal

* Fixing azure icons
This commit is contained in:
Aasim Khan
2023-03-06 17:31:27 -08:00
committed by GitHub
parent 29c1f5edd0
commit d3f4f0daa4
61 changed files with 912 additions and 267 deletions

View File

@@ -83,6 +83,7 @@
.vs-dark .connection-dialog .connection-history-actions .action-label.codicon,
.hc-black .connection-dialog .connection-history-actions .action-label.codicon,
.hc-light .connection-dialog .connection-history-actions .action-label.codicon,
.connection-dialog .connection-history-actions .action-label.codicon {
display: block;
height: 20px;
@@ -95,7 +96,8 @@
width: auto;
}
.search-action.clear-search-results {
.search-action.clear-search-results,
.hc-light .search-action.clear-search-results {
background: url('clear-search-results.svg');
}
@@ -112,6 +114,7 @@
}
.custom-connection-options .connection-label .dialog-label-container,
.hc-light .custom-connection-options .connection-label .dialog-label-container,
.vs-dark .custom-connection-options .connection-label .dialog-label-container,
.hc-black .custom-connection-options .connection-label .dialog-label-container {
background-size: 9px;
@@ -122,7 +125,8 @@
}
.dialog-label-container.info-icon,
.vs .dialog-label-container.info-icon {
.vs .dialog-label-container.info-icon,
.hc-light .dialog-label-container.info-icon {
background-image: url("info.svg");
}

View File

@@ -45,7 +45,8 @@
background-position: center;
}
.vs .footer-button .validating {
.vs .footer-button .validating,
.hc-light .footer-button .validating {
background-image: url("loading.svg");
}

View File

@@ -18,6 +18,13 @@
background-color: unset;
}
.hc-light .wizardNavigation-container {
border-right-color: rgb(111, 195, 223);
border-right-style: solid;
border-right-width: 1px;
background-color: unset;
}
.wizardNavigation-pageNumber {
flex-grow: 1;
display: flex;
@@ -52,6 +59,13 @@
border-color: white;
}
.hc-light .wizardNavigation-dot {
flex-grow: 1;
border-style: solid;
border-width: 1px;
color: black;
}
.wizardNavigation-connector {
width: 3px;
display: inline-block;
@@ -60,7 +74,16 @@
}
.hc-black .wizardNavigation-connector {
display: none;
width: 3px;
display: inline-block;
flex-grow: 1;
background-color: rgb(200, 200, 200);
}
.hc-light .wizardNavigation-connector {
width: 3px;
display: inline-block;
flex-grow: 1;
}
.wizardNavigation-connector.active,
@@ -74,12 +97,23 @@
border-style: solid;
}
.hc-light .wizardNavigation-dot.active {
background-color: unset;
border-style: solid;
}
.hc-black .wizardNavigation-dot.active:hover,
.hc-black .wizardNavigation-dot.active.currentPage:hover {
border-color: #F38518;
border-style: dashed;
}
.hc-light .wizardNavigation-dot.active:hover,
.hc-light .wizardNavigation-dot.active.currentPage:hover {
border-color: #0F4A85;
border-style: dashed;
}
.wizardNavigation-dot.active.currentPage {
border-style: double;
}
@@ -89,6 +123,11 @@
border-color: #F38518;
}
.hc-light .wizardNavigation-dot.active.currentPage {
border-style: solid;
border-color: #0F4A85;
}
.wizardNavigation-connector.invisible {
visibility: hidden;
}

View File

@@ -16,7 +16,7 @@ class IconRenderer {
const iconPath: ThemedIconUri = this.toThemedIconUri(path);
const iconUid: string | undefined = this.getIconUid(iconPath);
if (iconUid && !this.iconRegistered.has(iconUid)) {
createCSSRule(`.icon#${iconUid}`, `background: ${asCSSUrl(iconPath.light || iconPath.dark)} center center no-repeat`);
createCSSRule(`.icon#${iconUid}, .hc-light .icon#${iconUid}`, `background: ${asCSSUrl(iconPath.light || iconPath.dark)} center center no-repeat`);
createCSSRule(`.vs-dark .icon#${iconUid}, .hc-black .icon#${iconUid}`, `background: ${asCSSUrl(iconPath.dark)} center center no-repeat`);
this.iconRegistered.add(iconUid);
}

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
.vs .icon.table,
.hc-light .icon.table,
.vs-dark .icon.table,
.hc-black .icon.table,
.vs .codicon.table,
@@ -13,675 +14,791 @@
}
.vs .icon.aggregatefunction,
.hc-light .icon.aggregatefunction,
.vs-dark .icon.aggregatefunction,
.hc-black .icon.aggregatefunction {
background: url("AggregateFunction.svg") center center no-repeat;
}
.vs .icon.aggregatefunctionparameter_input,
.hc-light .icon.aggregatefunctionparameter_input,
.vs-dark .icon.aggregatefunctionparameter_input,
.hc-black .icon.aggregatefunctionparameter_input {
background: url("AggregateFunctionParameter_Input.svg") center center no-repeat;
}
.vs .icon.aggregatefunctionparameter_output,
.hc-light .icon.aggregatefunctionparameter_output,
.vs-dark .icon.aggregatefunctionparameter_output,
.hc-black .icon.aggregatefunctionparameter_output {
background: url("AggregateFunctionParameter_Output.svg") center center no-repeat;
}
.vs .icon.aggregatefunctionparameter_return,
.hc-light .icon.aggregatefunctionparameter_return,
.vs-dark .icon.aggregatefunctionparameter_return,
.hc-black .icon.aggregatefunctionparameter_return {
background: url("AggregateFunctionParameter_Return.svg") center center no-repeat;
}
.vs .icon.applicationrole,
.hc-light .icon.applicationrole,
.vs-dark .icon.applicationrole,
.hc-black .icon.applicationrole {
background: url("ApplicationRole.svg") center center no-repeat;
}
.vs .icon.assembly,
.hc-light .icon.assembly,
.vs-dark .icon.assembly,
.hc-black .icon.assembly {
background: url("Assembly.svg") center center no-repeat;
}
.vs .icon.asymmetrickey,
.hc-light .icon.asymmetrickey,
.vs-dark .icon.asymmetrickey,
.hc-black .icon.asymmetrickey {
background: url("AsymmetricKey.svg") center center no-repeat;
}
.vs .icon.brokerpriority,
.hc-light .icon.brokerpriority,
.vs-dark .icon.brokerpriority,
.hc-black .icon.brokerpriority {
background: url("BrokerPriority.svg") center center no-repeat;
}
.vs .icon.certificate,
.hc-light .icon.certificate,
.vs-dark .icon.certificate,
.hc-black .icon.certificate {
background: url("Certificate.svg") center center no-repeat;
}
.vs .icon.column,
.hc-light .icon.column,
.vs-dark .icon.column,
.hc-black .icon.column {
background: url("Column.svg") center center no-repeat;
}
.vs .icon.columnencryptionkey,
.hc-light .icon.columnencryptionkey,
.vs-dark .icon.columnencryptionkey,
.hc-black .icon.columnencryptionkey {
background: url("ColumnEncryptionKey.svg") center center no-repeat;
}
.vs .icon.columnmasterkey,
.hc-light .icon.columnmasterkey,
.vs-dark .icon.columnmasterkey,
.hc-black .icon.columnmasterkey {
background: url("ColumnMasterKey.svg") center center no-repeat;
}
.vs .icon.constraint,
.hc-light .icon.constraint,
.vs-dark .icon.constraint,
.hc-black .icon.constraint {
background: url("Constraint.svg") center center no-repeat;
}
.vs .icon.contract,
.hc-light .icon.contract,
.vs-dark .icon.contract,
.hc-black .icon.contract {
background: url("Contract.svg") center center no-repeat;
}
.vs .icon.database,
.hc-light .icon.database,
.vs-dark .icon.database,
.hc-black .icon.database {
background: url("Database.svg") center center no-repeat;
}
.vs .icon.database_ledger,
.hc-light .icon.database_ledger,
.vs-dark .icon.database_ledger,
.hc-black .icon.database_ledger {
background: url("Database_Ledger.svg") center center no-repeat;
}
.vs .icon.database_unavailable,
.hc-light .icon.database_unavailable,
.vs-dark .icon.database_unavailable,
.hc-black .icon.database_unavailable {
background: url("Database_Unavailable.svg") center center no-repeat;
}
.vs .icon.databaseandqueueeventnotification,
.hc-light .icon.databaseandqueueeventnotification,
.vs-dark .icon.databaseandqueueeventnotification,
.hc-black .icon.databaseandqueueeventnotification {
background: url("DatabaseAndQueueEventNotification.svg") center center no-repeat;
}
.vs .icon.databaseauditspecification,
.hc-light .icon.databaseauditspecification,
.vs-dark .icon.databaseauditspecification,
.hc-black .icon.databaseauditspecification {
background: url("DatabaseAuditSpecification.svg") center center no-repeat;
}
.vs .icon.databaseencryptionkey,
.hc-light .icon.databaseencryptionkey,
.vs-dark .icon.databaseencryptionkey,
.hc-black .icon.databaseencryptionkey {
background: url("DatabaseEncryptionKey.svg") center center no-repeat;
}
.vs .icon.databaserole,
.hc-light .icon.databaserole,
.vs-dark .icon.databaserole,
.hc-black .icon.databaserole {
background: url("DatabaseRole.svg") center center no-repeat;
}
.vs .icon.databasescopedcredential,
.hc-light .icon.databasescopedcredential,
.vs-dark .icon.databasescopedcredential,
.hc-black .icon.databasescopedcredential {
background: url("DatabaseScopedCredential.svg") center center no-repeat;
}
.vs .icon.databasetrigger,
.hc-light .icon.databasetrigger,
.vs-dark .icon.databasetrigger,
.hc-black .icon.databasetrigger {
background: url("DatabaseTrigger.svg") center center no-repeat;
}
.vs .icon.defaulticon,
.hc-light .icon.defaulticon,
.vs-dark .icon.defaulticon,
.hc-black .icon.defaulticon,
.vs .icon.filegroup,
.hc-light .icon.filegroup,
.vs-dark .icon.filegroup,
.hc-black .icon.filegroup,
.vs .icon.historytable,
.hc-light .icon.historytable,
.vs-dark .icon.historytable,
.hc-black .icon.historytable {
background: url("DefaultIcon.svg") center center no-repeat;
}
.vs .icon.externaldatasource,
.hc-light .icon.externaldatasource,
.vs-dark .icon.externaldatasource,
.hc-black .icon.externaldatasource {
background: url("ExternalDataSource.svg") center center no-repeat;
}
.vs .icon.externalfileformat,
.hc-light .icon.externalfileformat,
.vs-dark .icon.externalfileformat,
.hc-black .icon.externalfileformat {
background: url("ExternalFileFormat.svg") center center no-repeat;
}
.vs .icon.filegroupfile,
.hc-light .icon.filegroupfile,
.vs-dark .icon.filegroupfile,
.hc-black .icon.filegroupfile {
background: url("FileGroupFile.svg") center center no-repeat;
}
.vs .icon.filegroupfile_mounted,
.hc-light .icon.filegroupfile_mounted,
.vs-dark .icon.filegroupfile_mounted,
.hc-black .icon.filegroupfile_mounted {
background: url("FileGroupFile_mounted.svg") center center no-repeat;
}
.vs .icon.folder,
.hc-light .icon.folder,
.vs-dark .icon.folder,
.hc-black .icon.folder {
background: url("Folder.svg") center center no-repeat;
}
.vs .icon.folder_mounted,
.hc-light .icon.folder_mounted,
.vs-dark .icon.folder_mounted,
.hc-black .icon.folder_mounted {
background: url("Folder_mounted.svg") center center no-repeat;
}
.vs .icon.fulltextcatalog,
.hc-light .icon.fulltextcatalog,
.vs-dark .icon.fulltextcatalog,
.hc-black .icon.fulltextcatalog {
background: url("FullTextCatalog.svg") center center no-repeat;
}
.vs .icon.fulltextstoplist,
.hc-light .icon.fulltextstoplist,
.vs-dark .icon.fulltextstoplist,
.hc-black .icon.fulltextstoplist {
background: url("FullTextStopList.svg") center center no-repeat;
}
.vs .icon.index,
.hc-light .icon.index,
.vs-dark .icon.index,
.hc-black .icon.index {
background: url("Index.svg") center center no-repeat;
}
.vs .icon.key_foreignkey,
.hc-light .icon.key_foreignkey,
.vs-dark .icon.key_foreignkey,
.hc-black .icon.key_foreignkey {
background: url("Key_ForeignKey.svg") center center no-repeat;
}
.vs .icon.key_primarykey,
.hc-light .icon.key_primarykey,
.vs-dark .icon.key_primarykey,
.hc-black .icon.key_primarykey,
.vs .icon.index_primarykey,
.hc-light .icon.index_primarykey,
.vs-dark .icon.index_primarykey,
.hc-black .icon.index_primarykey {
background: url("Key_PrimaryKey.svg") center center no-repeat;
}
.vs .icon.key_uniquekey,
.hc-light .icon.key_uniquekey,
.vs-dark .icon.key_uniquekey,
.hc-black .icon.key_uniquekey,
.vs .icon.index_uniquekey,
.hc-light .icon.index_uniquekey,
.vs-dark .icon.index_uniquekey,
.hc-black .icon.index_uniquekey {
background: url("Key_UniqueKey.svg") center center no-repeat;
}
.vs .icon.masterkey,
.hc-light .icon.masterkey,
.vs-dark .icon.masterkey,
.hc-black .icon.masterkey {
background: url("MasterKey.svg") center center no-repeat;
}
.vs .icon.messagetype,
.hc-light .icon.messagetype,
.vs-dark .icon.messagetype,
.hc-black .icon.messagetype {
background: url("MessageType.svg") center center no-repeat;
}
.vs .icon.objecttypes.css,
.hc-light .icon.objecttypes.css,
.vs-dark .icon.objecttypes.css,
.hc-black .icon.objecttypes.css {
background: url("objecttypes.css") center center no-repeat;
}
.vs .icon.partitionfunction,
.hc-light .icon.partitionfunction,
.vs-dark .icon.partitionfunction,
.hc-black .icon.partitionfunction {
background: url("PartitionFunction.svg") center center no-repeat;
}
.vs .icon.partitionscheme,
.hc-light .icon.partitionscheme,
.vs-dark .icon.partitionscheme,
.hc-black .icon.partitionscheme {
background: url("PartitionScheme.svg") center center no-repeat;
}
.vs .icon.queue,
.hc-light .icon.queue,
.vs-dark .icon.queue,
.hc-black .icon.queue {
background: url("Queue.svg") center center no-repeat;
}
.vs .icon.remoteservicebinding,
.hc-light .icon.remoteservicebinding,
.vs-dark .icon.remoteservicebinding,
.hc-black .icon.remoteservicebinding {
background: url("RemoteServiceBinding.svg") center center no-repeat;
}
.vs .icon.route,
.hc-light .icon.route,
.vs-dark .icon.route,
.hc-black .icon.route {
background: url("Route.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunction,
.hc-light .icon.scalarvaluedfunction,
.vs-dark .icon.scalarvaluedfunction,
.hc-black .icon.scalarvaluedfunction {
background: url("ScalarValuedFunction.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunctionparameter_input,
.hc-light .icon.scalarvaluedfunctionparameter_input,
.vs-dark .icon.scalarvaluedfunctionparameter_input,
.hc-black .icon.scalarvaluedfunctionparameter_input {
background: url("ScalarValuedFunctionParameter_Input.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunctionparameter_output,
.hc-light .icon.scalarvaluedfunctionparameter_output,
.vs-dark .icon.scalarvaluedfunctionparameter_output,
.hc-black .icon.scalarvaluedfunctionparameter_output {
background: url("ScalarValuedFunctionParameter_Output.svg") center center no-repeat;
}
.vs .icon.scalarvaluedfunctionparameter_return,
.hc-light .icon.scalarvaluedfunctionparameter_return,
.vs-dark .icon.scalarvaluedfunctionparameter_return,
.hc-black .icon.scalarvaluedfunctionparameter_return {
background: url("ScalarValuedFunctionParameter_Return.svg") center center no-repeat;
}
.vs .icon.schema,
.hc-light .icon.schema,
.vs-dark .icon.schema,
.hc-black .icon.schema {
background: url("Schema.svg") center center no-repeat;
}
.vs .icon.searchpropertylist,
.hc-light .icon.searchpropertylist,
.vs-dark .icon.searchpropertylist,
.hc-black .icon.searchpropertylist {
background: url("SearchPropertyList.svg") center center no-repeat;
}
.vs .icon.securitypolicy,
.hc-light .icon.securitypolicy,
.vs-dark .icon.securitypolicy,
.hc-black .icon.securitypolicy {
background: url("SecurityPolicy.svg") center center no-repeat;
}
.vs .icon.sequence,
.hc-light .icon.sequence,
.vs-dark .icon.sequence,
.hc-black .icon.sequence {
background: url("Sequence.svg") center center no-repeat;
}
.vs .icon.server,
.hc-light .icon.server,
.vs-dark .icon.server,
.hc-black .icon.server {
background: url("Server.svg") center center no-repeat;
}
.vs .icon.serverlevelcredential,
.hc-light .icon.serverlevelcredential,
.vs-dark .icon.serverlevelcredential,
.hc-black .icon.serverlevelcredential {
background: url("ServerLevelCredential.svg") center center no-repeat;
}
.vs .icon.serverlevelcryptographicprovider,
.hc-light .icon.serverlevelcryptographicprovider,
.vs-dark .icon.serverlevelcryptographicprovider,
.hc-black .icon.serverlevelcryptographicprovider {
background: url("ServerLevelCryptographicProvider.svg") center center no-repeat;
}
.vs .icon.serverlevelendpoint,
.hc-light .icon.serverlevelendpoint,
.vs-dark .icon.serverlevelendpoint,
.hc-black .icon.serverlevelendpoint {
background: url("ServerLevelEndpoint.svg") center center no-repeat;
}
.vs .icon.serverlevellinkedserver,
.hc-light .icon.serverlevellinkedserver,
.vs-dark .icon.serverlevellinkedserver,
.hc-black .icon.serverlevellinkedserver {
background: url("ServerLevelLinkedServer.svg") center center no-repeat;
}
.vs .icon.serverlevellinkedserverlogin,
.hc-light .icon.serverlevellinkedserverlogin,
.vs-dark .icon.serverlevellinkedserverlogin,
.hc-black .icon.serverlevellinkedserverlogin {
background: url("ServerLevelLinkedServerLogin.svg") center center no-repeat;
}
.vs .icon.serverlevellinkedserverlogin_disabled,
.hc-light .icon.serverlevellinkedserverlogin_disabled,
.vs-dark .icon.serverlevellinkedserverlogin_disabled,
.hc-black .icon.serverlevellinkedserverlogin_disabled {
background: url("ServerLevelLinkedServerLogin_Disabled.svg") center center no-repeat;
}
.vs .icon.serverlevellogin,
.hc-light .icon.serverlevellogin,
.vs-dark .icon.serverlevellogin,
.hc-black .icon.serverlevellogin {
background: url("ServerLevelLogin.svg") center center no-repeat;
}
.vs .icon.serverlevellogin_disabled,
.hc-light .icon.serverlevellogin_disabled,
.vs-dark .icon.serverlevellogin_disabled,
.hc-black .icon.serverlevellogin_disabled {
background: url("ServerLevelLogin_Disabled.svg") center center no-repeat;
}
.vs .icon.serverlevelserveraudit,
.hc-light .icon.serverlevelserveraudit,
.vs-dark .icon.serverlevelserveraudit,
.hc-black .icon.serverlevelserveraudit {
background: url("ServerLevelServerAudit.svg") center center no-repeat;
}
.vs .icon.serverlevelserverauditspecification,
.hc-light .icon.serverlevelserverauditspecification,
.vs-dark .icon.serverlevelserverauditspecification,
.hc-black .icon.serverlevelserverauditspecification {
background: url("ServerLevelServerAuditSpecification.svg") center center no-repeat;
}
.vs .icon.serverlevelserverrole,
.hc-light .icon.serverlevelserverrole,
.vs-dark .icon.serverlevelserverrole,
.hc-black .icon.serverlevelserverrole {
background: url("ServerLevelServerRole.svg") center center no-repeat;
}
.vs .icon.serverlevelservertrigger,
.hc-light .icon.serverlevelservertrigger,
.vs-dark .icon.serverlevelservertrigger,
.hc-black .icon.serverlevelservertrigger {
background: url("ServerLevelServerTrigger.svg") center center no-repeat;
}
.vs .icon.serverlevelservertrigger_disabled,
.hc-light .icon.serverlevelservertrigger_disabled,
.vs-dark .icon.serverlevelservertrigger_disabled,
.hc-black .icon.serverlevelservertrigger_disabled {
background: url("ServerLevelServerTrigger_Disabled.svg") center center no-repeat;
}
.vs .icon.service,
.hc-light .icon.service,
.vs-dark .icon.service,
.hc-black .icon.service {
background: url("Service.svg") center center no-repeat;
}
.vs .icon.sqllogfile,
.hc-light .icon.sqllogfile,
.vs-dark .icon.sqllogfile,
.hc-black .icon.sqllogfile {
background: url("SqlLogFile.svg") center center no-repeat;
}
.vs .icon.statistic,
.hc-light .icon.statistic,
.vs-dark .icon.statistic,
.hc-black .icon.statistic {
background: url("Statistic.svg") center center no-repeat;
}
.vs .icon.storedprocedure,
.hc-light .icon.storedprocedure,
.vs-dark .icon.storedprocedure,
.hc-black .icon.storedprocedure {
background: url("StoredProcedure.svg") center center no-repeat;
}
.vs .icon.storedprocedureparameter_input,
.hc-light .icon.storedprocedureparameter_input,
.vs-dark .icon.storedprocedureparameter_input,
.hc-black .icon.storedprocedureparameter_input {
background: url("StoredProcedureParameter_Input.svg") center center no-repeat;
}
.vs .icon.storedprocedureparameter_output,
.hc-light .icon.storedprocedureparameter_output,
.vs-dark .icon.storedprocedureparameter_output,
.hc-black .icon.storedprocedureparameter_output {
background: url("StoredProcedureParameter_Output.svg") center center no-repeat;
}
.vs .icon.storedprocedureparameter_return,
.hc-light .icon.storedprocedureparameter_return,
.vs-dark .icon.storedprocedureparameter_return,
.hc-black .icon.storedprocedureparameter_return {
background: url("StoredProcedureParameter_Return.svg") center center no-repeat;
}
.vs .icon.symmetrickey,
.hc-light .icon.symmetrickey,
.vs-dark .icon.symmetrickey,
.hc-black .icon.symmetrickey {
background: url("SymmetricKey.svg") center center no-repeat;
}
.vs .icon.synonym,
.hc-light .icon.synonym,
.vs-dark .icon.synonym,
.hc-black .icon.synonym {
background: url("Synonym.svg") center center no-repeat;
}
.vs .icon.systemapproximatenumeric,
.hc-light .icon.systemapproximatenumeric,
.vs-dark .icon.systemapproximatenumeric,
.hc-black .icon.systemapproximatenumeric {
background: url("SystemApproximateNumeric.svg") center center no-repeat;
}
.vs .icon.systembinarystring,
.hc-light .icon.systembinarystring,
.vs-dark .icon.systembinarystring,
.hc-black .icon.systembinarystring {
background: url("SystemBinaryString.svg") center center no-repeat;
}
.vs .icon.systemcharacterstring,
.hc-light .icon.systemcharacterstring,
.vs-dark .icon.systemcharacterstring,
.hc-black .icon.systemcharacterstring {
background: url("SystemCharacterString.svg") center center no-repeat;
}
.vs .icon.systemclrdatatype,
.hc-light .icon.systemclrdatatype,
.vs-dark .icon.systemclrdatatype,
.hc-black .icon.systemclrdatatype {
background: url("SystemClrDataType.svg") center center no-repeat;
}
.vs .icon.systemcontract,
.hc-light .icon.systemcontract,
.vs-dark .icon.systemcontract,
.hc-black .icon.systemcontract {
background: url("SystemContract.svg") center center no-repeat;
}
.vs .icon.systemdateandtime,
.hc-light .icon.systemdateandtime,
.vs-dark .icon.systemdateandtime,
.hc-black .icon.systemdateandtime {
background: url("SystemDateAndTime.svg") center center no-repeat;
}
.vs .icon.systemexactnumeric,
.hc-light .icon.systemexactnumeric,
.vs-dark .icon.systemexactnumeric,
.hc-black .icon.systemexactnumeric {
background: url("SystemExactNumeric.svg") center center no-repeat;
}
.vs .icon.systemmessagetype,
.hc-light .icon.systemmessagetype,
.vs-dark .icon.systemmessagetype,
.hc-black .icon.systemmessagetype {
background: url("SystemMessageType.svg") center center no-repeat;
}
.vs .icon.systemotherdatatype,
.hc-light .icon.systemotherdatatype,
.vs-dark .icon.systemotherdatatype,
.hc-black .icon.systemotherdatatype {
background: url("SystemOtherDataType.svg") center center no-repeat;
}
.vs .icon.systemqueue,
.hc-light .icon.systemqueue,
.vs-dark .icon.systemqueue,
.hc-black .icon.systemqueue {
background: url("SystemQueue.svg") center center no-repeat;
}
.vs .icon.systemservice,
.hc-light .icon.systemservice,
.vs-dark .icon.systemservice,
.hc-black .icon.systemservice {
background: url("SystemService.svg") center center no-repeat;
}
.vs .icon.systemspatialdatatype,
.hc-light .icon.systemspatialdatatype,
.vs-dark .icon.systemspatialdatatype,
.hc-black .icon.systemspatialdatatype {
background: url("SystemSpatialDataType.svg") center center no-repeat;
}
.vs .icon.systemunicodecharacterstring,
.hc-light .icon.systemunicodecharacterstring,
.vs-dark .icon.systemunicodecharacterstring,
.hc-black .icon.systemunicodecharacterstring {
background: url("SystemUnicodeCharacterString.svg") center center no-repeat;
}
.vs .icon.function,
.hc-light .icon.function,
.vs-dark .icon.function,
.hc-black .icon.function,
.vs .icon.tablevaluedfunction,
.hc-light .icon.tablevaluedfunction,
.vs-dark .icon.tablevaluedfunction,
.hc-black .icon.tablevaluedfunction {
background: url("TableValuedFunction.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunctionparameter_input,
.hc-light .icon.tablevaluedfunctionparameter_input,
.vs-dark .icon.tablevaluedfunctionparameter_input,
.hc-black .icon.tablevaluedfunctionparameter_input {
background: url("TableValuedFunctionParameter_Input.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunctionparameter_output,
.hc-light .icon.tablevaluedfunctionparameter_output,
.vs-dark .icon.tablevaluedfunctionparameter_output,
.hc-black .icon.tablevaluedfunctionparameter_output {
background: url("TableValuedFunctionParameter_Output.svg") center center no-repeat;
}
.vs .icon.tablevaluedfunctionparameter_return,
.hc-light .icon.tablevaluedfunctionparameter_return,
.vs-dark .icon.tablevaluedfunctionparameter_return,
.hc-black .icon.tablevaluedfunctionparameter_return {
background: url("TableValuedFunctionParameter_Return.svg") center center no-repeat;
}
.vs .icon.table_ledgerappendonly,
.hc-light .icon.table_ledgerappendonly,
.vs-dark .icon.table_ledgerappendonly,
.hc-black .icon.table_ledgerappendonly,
.vs .icon.table_ledgerupdatable,
.hc-light .icon.table_ledgerupdatable,
.vs-dark .icon.table_ledgerupdatable,
.hc-black .icon.table_ledgerupdatable,
.vs .icon.table_ledgerdropped,
.hc-light .icon.table_ledgerdropped,
.vs-dark .icon.table_ledgerdropped,
.hc-black .icon.table_ledgerdropped {
background: url("Table_Ledger.svg") center center no-repeat;
}
.vs .icon.table_temporal,
.hc-light .icon.table_temporal,
.vs-dark .icon.table_temporal,
.hc-black .icon.table_temporal {
background: url("Table_Temporal.svg") center center no-repeat;
}
.vs .icon.table_graphnode,
.hc-light .icon.table_graphnode,
.vs-dark .icon.table_graphnode,
.hc-black .icon.table_graphnode {
background: url("Table_GraphNode.svg") center center no-repeat;
}
.vs .icon.table_graphedge,
.hc-light .icon.table_graphedge,
.vs-dark .icon.table_graphedge,
.hc-black .icon.table_graphedge {
background: url("Table_GraphEdge.svg") center center no-repeat;
}
.vs .icon.historytable_ledgerhistory,
.hc-light .icon.historytable_ledgerhistory,
.vs-dark .icon.historytable_ledgerhistory,
.hc-black .icon.historytable_ledgerhistory {
background: url("Table_LedgerHistory.svg") center center no-repeat;
}
.vs .icon.trigger,
.hc-light .icon.trigger,
.vs-dark .icon.trigger,
.hc-black .icon.trigger {
background: url("Trigger.svg") center center no-repeat;
}
.vs .icon.trigger_disabled,
.hc-light .icon.trigger_disabled,
.vs-dark .icon.trigger_disabled,
.hc-black .icon.trigger_disabled {
background: url("Trigger_Disabled.svg") center center no-repeat;
}
.vs .icon.user,
.hc-light .icon.user,
.vs-dark .icon.user,
.hc-black .icon.user {
background: url("User.svg") center center no-repeat;
}
.vs .icon.user_disabled,
.hc-light .icon.user_disabled,
.vs-dark .icon.user_disabled,
.hc-black .icon.user_disabled {
background: url("User_Disabled.svg") center center no-repeat;
}
.vs .icon.userdefineddatatype,
.hc-light .icon.userdefineddatatype,
.vs-dark .icon.userdefineddatatype,
.hc-black .icon.userdefineddatatype {
background: url("UserDefinedDataType.svg") center center no-repeat;
}
.vs .icon.userdefinedtabletype,
.hc-light .icon.userdefinedtabletype,
.vs-dark .icon.userdefinedtabletype,
.hc-black .icon.userdefinedtabletype {
background: url("UserDefinedTableType.svg") center center no-repeat;
}
.vs .icon.userdefinedtabletypecolumn,
.hc-light .icon.userdefinedtabletypecolumn,
.vs-dark .icon.userdefinedtabletypecolumn,
.hc-black .icon.userdefinedtabletypecolumn {
background: url("UserDefinedTableTypeColumn.svg") center center no-repeat;
}
.vs .icon.userdefinedtabletypeconstraint,
.hc-light .icon.userdefinedtabletypeconstraint,
.vs-dark .icon.userdefinedtabletypeconstraint,
.hc-black .icon.userdefinedtabletypeconstraint {
background: url("UserDefinedTableTypeConstraint.svg") center center no-repeat;
}
.vs .icon.userdefinedtype,
.hc-light .icon.userdefinedtype,
.vs-dark .icon.userdefinedtype,
.hc-black .icon.userdefinedtype {
background: url("UserDefinedType.svg") center center no-repeat;
}
.vs .icon.view,
.hc-light .icon.view,
.vs-dark .icon.view,
.hc-black .icon.view {
background: url("View.svg") center center no-repeat;
}
.vs .icon.view_ledger,
.hc-light .icon.view_ledger,
.vs-dark .icon.view_ledger,
.hc-black .icon.view_ledger {
background: url("View_Ledger.svg") center center no-repeat;
}
.vs .icon.xmlschemacollection,
.hc-light .icon.xmlschemacollection,
.vs-dark .icon.xmlschemacollection,
.hc-black .icon.xmlschemacollection {
background: url("XmlSchemaCollection.svg") center center no-repeat;

View File

@@ -25,12 +25,6 @@ export interface IGridDataProvider {
*/
copyResults(selection: Slick.Range[], includeHeaders?: boolean, tableView?: IDisposableDataProvider<Slick.SlickData>): Promise<void>;
/**
* Sends a copy request to copy table headers to the clipboard
* @param selection The selection range to copy
*/
copyHeaders(selection: Slick.Range[]): Promise<void>;
/**
* Gets the EOL terminator to use for this data type.
*/
@@ -106,8 +100,11 @@ export async function getResultsString(provider: IGridDataProvider, selection: S
// Make sure all these tasks have executed
await Promise.all(actionedTasks);
headers = sortMapEntriesByColumnOrder(headers);
rows = sortMapEntriesByColumnOrder(rows);
const sortResults = (e1: [number, any], e2: [number, any]) => {
return e1[0] - e2[0];
};
headers = new Map([...headers].sort(sortResults));
rows = new Map([...rows].sort(sortResults));
let copyString = '';
if (includeHeaders) {
@@ -135,42 +132,6 @@ export async function getResultsString(provider: IGridDataProvider, selection: S
return copyString;
}
export function getTableHeaderString(provider: IGridDataProvider, selection: Slick.Range[]): string {
let headers: Map<number, string> = new Map(); // Maps a column index -> header
selection.forEach((range) => {
let startCol = range.fromCell;
let columnHeaders = provider.getColumnHeaders(range);
if (columnHeaders !== undefined) {
let idx = 0;
for (let header of columnHeaders) {
headers.set(startCol + idx, header);
idx++;
}
}
});
headers = sortMapEntriesByColumnOrder(headers)
const copyString = Array.from(headers.values())
.map(colHeader => colHeader ? colHeader : '')
.join('\t');
return copyString;
}
/**
* Ensures that table entries in the map appear in column order instead of the order that they were selected.
* @param map Contains the entries selected in a table
* @returns Sorted map with entries appearing in column order.
*/
function sortMapEntriesByColumnOrder(map: Map<number, any>): Map<number, any> {
const leftToRight = (e1: [number, any], e2: [number, any]) => {
return e1[0] - e2[0];
};
return new Map([...map].sort(leftToRight));
}
function removeNewLines(inputString: string): string {
// This regex removes all newlines in all OS types

View File

@@ -21,7 +21,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
import { URI } from 'vs/base/common/uri';
import * as perf from 'vs/base/common/performance';
import { mssqlProviderName } from 'sql/platform/connection/common/constants';
import { IGridDataProvider, getResultsString, getTableHeaderString } from 'sql/workbench/services/query/common/gridDataProvider';
import { IGridDataProvider, getResultsString } from 'sql/workbench/services/query/common/gridDataProvider';
import { getErrorMessage } from 'vs/base/common/errors';
import { ILogService } from 'vs/platform/log/common/log';
import { IRange, Range } from 'vs/editor/common/core/range';
@@ -564,16 +564,7 @@ export class QueryGridDataProvider implements IGridDataProvider {
const results = await getResultsString(this, selection, includeHeaders, tableView);
await this._clipboardService.writeText(results);
} catch (error) {
this._notificationService.error(nls.localize('copyFailed', "Copy failed with error: {0}", getErrorMessage(error)));
}
}
async copyHeaders(selection: Slick.Range[]): Promise<void> {
try {
const results = getTableHeaderString(this, selection);
await this._clipboardService.writeText(results);
} catch (error) {
this._notificationService.error(nls.localize('copyFailed', "Copy failed with error: {0}", getErrorMessage(error)));
this._notificationService.error(nls.localize('copyFailed', "Copy failed with error {0}", getErrorMessage(error)));
}
}

View File

@@ -62,7 +62,7 @@ export const TaskRegistry: ITaskRegistry = new class implements ITaskRegistry {
// TODO
} else if (item.icon?.dark) { // at the very least we need a dark icon
iconClass = ids.nextId();
createCSSRule(`.codicon.${iconClass}`, `background-image: ${asCSSUrl(item.icon.light || item.icon.dark)}`);
createCSSRule(`.codicon.${iconClass}, .hc-light .codicon.${iconClass}`, `background-image: ${asCSSUrl(item.icon.light || item.icon.dark)}`);
createCSSRule(`.vs-dark .codicon.${iconClass}, .hc-black .codicon.${iconClass}`, `background-image: ${asCSSUrl(item.icon.dark)}`);
this.taskIdToIconClassNameMap.set(item.id, iconClass);
}