text:
<idea-plugin>
  <extensions defaultExtensionNs="com.intellij">
    <applicationService serviceInterface="com.intellij.openapi.vcs.actions.VcsContextFactory"
                        serviceImplementation="com.intellij.peer.impl.VcsContextFactoryImpl"/>

    <applicationService serviceInterface="com.intellij.codeInsight.actions.FormatChangedTextUtil"
                        serviceImplementation="com.intellij.codeInsight.actions.VcsAwareFormatChangedTextUtil" overrides="true"/>
    <applicationService serviceInterface="com.intellij.openapi.vcs.actions.AnnotationsSettings"
                        serviceImplementation="com.intellij.openapi.vcs.actions.AnnotationsSettings"/>

    <projectService serviceInterface="com.intellij.openapi.vcs.AbstractVcsHelper"
                    serviceImplementation="com.intellij.openapi.vcs.impl.AbstractVcsHelperImpl"/>
    <projectService serviceInterface="com.intellij.openapi.vcs.IssueNavigationConfiguration"
                    serviceImplementation="com.intellij.openapi.vcs.IssueNavigationConfiguration"/>
    <projectService serviceInterface="com.intellij.openapi.diff.DirDiffManager"
                    serviceImplementation="com.intellij.openapi.diff.impl.dir.DirDiffManagerImpl"/>
    <projectService serviceImplementation="com.intellij.openapi.vcs.VcsConfiguration"/>
    <projectService serviceImplementation="com.intellij.openapi.vcs.contentAnnotation.VcsContentAnnotationSettings"/>
    <projectService serviceImplementation="com.intellij.openapi.diff.impl.settings.MergeToolSettings"/>
    <projectService serviceImplementation="com.intellij.openapi.diff.impl.settings.DiffToolSettings"/>
    <projectService serviceInterface="com.intellij.openapi.vcs.roots.VcsRootDetector"
                    serviceImplementation="com.intellij.openapi.vcs.roots.VcsRootDetectorImpl"/>
    <projectService serviceImplementation="com.intellij.openapi.vcs.VcsNotifier"/>
    <projectService serviceInterface="com.intellij.openapi.vcs.changes.patch.PatchBaseDirectoryDetector"
                    serviceImplementation="com.intellij.openapi.vcs.changes.patch.PsiPatchBaseDirectoryDetector"/>
    <projectService serviceInterface="com.intellij.openapi.vcs.changes.ui.ChangesFileNameDecorator"
                    serviceImplementation="com.intellij.openapi.vcs.changes.ui.WolfChangesFileNameDecorator"/>
    <projectService serviceInterface="com.intellij.openapi.vcs.CodeSmellDetector"
                    serviceImplementation="com.intellij.openapi.vcs.impl.CodeSmellDetectorImpl"/>
    <projectService serviceImplementation="com.intellij.openapi.vcs.changes.VcsDirtyScopeVfsListener" />
    <projectService serviceImplementation="com.intellij.vcs.commit.CommitMessageInspectionProfile"/>

    <daemon.intentionActionFilter implementation="com.intellij.vcs.commit.BaseCommitMessageInspection$EmptyIntentionActionFilter"/>

    <diff.merge.MergeTool implementation="com.intellij.openapi.vcs.changes.patch.tool.ApplyPatchMergeTool"/>
    <diff.DiffTool implementation="com.intellij.openapi.vcs.changes.patch.tool.ApplyPatchDiffTool"/>

    <selectInTarget implementation="com.intellij.openapi.vcs.changes.SelectInChangesViewTarget"/>

    <search.topHitProvider implementation="com.intellij.openapi.vcs.configurable.VcsOptionsTopHitProvider"/>
    <projectConfigurable groupId="root" groupWeight="45" dynamic="true" key="version.control.main.configurable.name" bundle="messages.VcsBundle"
                         provider="com.intellij.openapi.vcs.configurable.VcsManagerConfigurableProvider" id="project.propVCSSupport.Mappings"/>
    <colorAndFontPanelFactory implementation="com.intellij.openapi.vcs.actions.VcsColorsPageFactory"/>
    <colorAndFontDescriptorProvider implementation="com.intellij.openapi.vcs.actions.VcsColorsPageFactory"/>

    <toolWindow id="Version Control" anchor="bottom" canCloseContents="true" icon="AllIcons.Toolwindows.ToolWindowChanges"
                factoryClass="com.intellij.openapi.vcs.changes.ui.ChangesViewToolWindowFactory"/>

    <changesViewContent tabName="Repository" className="com.intellij.openapi.vcs.changes.committed.CommittedChangesViewManager"
                        predicateClassName="com.intellij.openapi.vcs.changes.committed.CommittedChangesVisibilityPredicate"/>
    <changesViewContent tabName="Incoming" className="com.intellij.openapi.vcs.changes.committed.IncomingChangesViewProvider"
                        predicateClassName="com.intellij.openapi.vcs.changes.committed.IncomingChangesVisibilityPredicate"/>

    <checkinHandlerFactory implementation="com.intellij.openapi.vcs.checkin.ReformatCheckinHandlerFactory"/>
    <checkinHandlerFactory implementation="com.intellij.openapi.vcs.checkin.RearrangeCheckinHandlerFactory"/>
    <checkinHandlerFactory implementation="com.intellij.openapi.vcs.checkin.OptimizeOptionsCheckinHandlerFactory"/>
    <checkinHandlerFactory implementation="com.intellij.openapi.vcs.checkin.CodeAnalysisCheckinHandlerFactory"/>
    <checkinHandlerFactory implementation="com.intellij.openapi.vcs.checkin.TodoCheckinHandlerFactory"/>
    <checkinHandlerFactory implementation="com.intellij.openapi.vcs.checkin.CodeCleanupCheckinHandlerFactory"/>

    <completion.contributor language="TEXT" implementationClass="com.intellij.openapi.vcs.CommitCompletionContributor" id="commitCompletion"
                            order="first, before liveTemplates"/>
    <completion.contributor language="TEXT" implementationClass="com.intellij.openapi.vcs.changes.ChangeListCompletionContributor"
                            order="first"/>

    <vcs.fileStatusProvider implementation="com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictFileStatusProvider"/>
    <writingAccessProvider implementation="com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictAccessProvider"/>
    <editorNotificationProvider implementation="com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictNotificationProvider"/>
    <customFileDropHandler implementation="com.intellij.openapi.vcs.changes.patch.PatchFileDropHandler"/>

    <handleTypeFactory implementation="com.intellij.openapi.vcs.readOnlyHandler.VcsHandleTypeFactory"/>

    <keymapExtension implementation="com.intellij.openapi.vcs.impl.VcsKeymapExtension"/>
    <fileTypeFactory implementation="com.intellij.openapi.vcs.impl.VcsFileTypeFactory"/>
    <virtualFileSystem key="vcs" implementationClass="com.intellij.openapi.vcs.vfs.VcsFileSystem"/>
    <fileDocumentSynchronizationVetoer implementation="com.intellij.openapi.vcs.changes.SaveCommittingDocumentsVetoer"/>

    <applicationService serviceImplementation="com.intellij.openapi.vcs.VcsApplicationSettings"/>
    <applicationService serviceInterface="com.intellij.openapi.vcs.impl.CheckinHandlersManager"
                        serviceImplementation="com.intellij.openapi.vcs.impl.CheckinHandlersManagerImpl"/>
    <pathMacroFilter implementation="com.intellij.openapi.vcs.VcsPathMacroFilter"/>
    <search.topHitProvider implementation="com.intellij.openapi.vcs.actions.VcsTopHitProvider"/>
    <actionPromoter implementation="com.intellij.openapi.vcs.actions.VcsActionPromoter"/>
    <projectSetProcessor implementation="com.intellij.openapi.vcs.VcsProjectSetProcessor"/>
    <projectSetProcessor implementation="com.intellij.openapi.vcs.OpenProjectSetProcessor"/>

    <getDataRule key="virtualFileStream" implementationClass="com.intellij.openapi.vcs.VirtualFileStreamRule"/>
    <getDataRule key="VCS_REVISION_NUMBERS" implementationClass="com.intellij.openapi.vcs.history.VcsRevisionNumberArrayRule"/>
    <getDataRule key="vcs.ChangesSelection" implementationClass="com.intellij.openapi.vcs.changes.VcsChangesSelectionRule"/>
    <jbProtocolCommand implementation="com.intellij.openapi.vcs.checkout.JBProtocolCheckoutCommand"/>
    <diff.DiffExtension implementation="com.intellij.openapi.vcs.actions.AnnotateDiffViewerAction$MyDiffExtension"/>

    <openapi.vcs.actions.AnnotateToggleAction.Provider implementation="com.intellij.openapi.vcs.actions.AnnotateLocalFileAction$Provider"/>
    <openapi.vcs.actions.AnnotateToggleAction.Provider implementation="com.intellij.openapi.vcs.actions.AnnotateVcsVirtualFileAction$Provider"/>
    <openapi.vcs.actions.AnnotateToggleAction.Provider implementation="com.intellij.openapi.vcs.actions.AnnotateDiffViewerAction$Provider" order="first"/>

    <ignoredFileProvider implementation="com.intellij.openapi.vcs.changes.ChangeListManagerImpl$DefaultIgnoredFileProvider" order="last"/>
    <ignoredFileProvider implementation="com.intellij.configurationStore.vcs.StoreIgnoredFileProvider"/>
  </extensions>
</idea-plugin>


text:
title: CSS Styles
page_title: CSS Styles | UI for ASP.NET AJAX Documentation
description: CSS Styles
slug: sharepoint/2007/radeditor-for-moss/dropdowns/css-styles
tags: css,styles
published: True
position: 5
---

# CSS Styles

![](images/DropDowns010.png)

The CSS class dropdown of RadEditor displays all classes defined in the page or from external CSS files. The dropdown is populated from the **CssClasses**Collection. By default RadEditor for MOSS uses the same CSS files as the default rich-text editor. Those files are **HtmlEditorTableFormats**.**css** and **HtmlEditorCustomStyles.css,** which are located in the following folder:

*/Program Files/Common Files/Microsoft Shared/web server extensions/12/Template/Layouts/1033/Styles*

>note The folder location can be different if you are not using US English version of MOSS. The 1033 number signifies the current culture and might be different for different language versions of MOSS.

**For example:**

The files which properties need to be modified are **ToolsFile.xml / ListToolsFile.xml**, located in the following folder:

*/Program Files/Common Files/Microsoft Shared/web server extensions/wpresources/RadEditorSharePoint/5.x.x.0**1f131a624888eeed/Resources/*

````XML
<root>
<tools name="MainToolbar" enabled="true">
	<tool name="ApplyClass" />
	</tools>
	<classes>
		<class name="Clear Class" value="" />
		<class name="Links Class" value="a.link" />
		<class name="Images Class" value=".img" />
		<class name="My Red Text" value=".redText" />
	</classes>
</root>
````

redpajama_set_name: RedPajamaGithub


text:
require 'spec_helper'

RSpec.describe OneviewSDK::API1800::C7000::StoragePool do
  include_context 'shared context'

  it 'inherits from OneviewSDK::API1600::C7000::StoragePool' do
    expect(described_class).to be < OneviewSDK::API1600::C7000::StoragePool
  end
end


text:
import { Disposable } from 'vs/base/common/lifecycle';
import { IOpenerService } from 'vs/platform/opener/common/opener';
import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService';

export class ExternalUriResolverContribution extends Disposable implements IWorkbenchContribution {
	constructor(
		@IOpenerService _openerService: IOpenerService,
		@IBrowserWorkbenchEnvironmentService _workbenchEnvironmentService: IBrowserWorkbenchEnvironmentService,
	) {
		super();

		if (_workbenchEnvironmentService.options && _workbenchEnvironmentService.options.resolveExternalUri) {
			this._register(_openerService.registerExternalUriResolver({
				resolveExternalUri: async (resource) => {
					return {
						resolved: await _workbenchEnvironmentService.options!.resolveExternalUri!(resource),
						dispose: () => {
							// TODO
						}
					};
				}
			}));
		}
	}
}


text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/shell/v1/cloudshell.proto

package com.google.cloud.shell.v1;

public final class CloudShellProto {
  private CloudShellProto() {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
  }

  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_Environment_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_Environment_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_GetEnvironmentRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_GetEnvironmentRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_CreateEnvironmentMetadata_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_CreateEnvironmentMetadata_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_DeleteEnvironmentMetadata_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_DeleteEnvironmentMetadata_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_StartEnvironmentRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_StartEnvironmentRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_AuthorizeEnvironmentRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_AuthorizeEnvironmentRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_AuthorizeEnvironmentResponse_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_AuthorizeEnvironmentResponse_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_AuthorizeEnvironmentMetadata_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_AuthorizeEnvironmentMetadata_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_StartEnvironmentMetadata_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_StartEnvironmentMetadata_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_StartEnvironmentResponse_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_StartEnvironmentResponse_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_AddPublicKeyRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_AddPublicKeyRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_AddPublicKeyResponse_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_AddPublicKeyResponse_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_AddPublicKeyMetadata_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_AddPublicKeyMetadata_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_RemovePublicKeyRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_RemovePublicKeyRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_RemovePublicKeyResponse_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_RemovePublicKeyResponse_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_RemovePublicKeyMetadata_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_RemovePublicKeyMetadata_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_shell_v1_CloudShellErrorDetails_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_shell_v1_CloudShellErrorDetails_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

  static {
    java.lang.String[] descriptorData = {
      "\n&google/cloud/shell/v1/cloudshell.proto"
          + "\022\025google.cloud.shell.v1\032\034google/api/anno"
          + "tations.proto\032\027google/api/client.proto\032\037"
          + "google/api/field_behavior.proto\032\031google/"
          + "api/resource.proto\032#google/longrunning/o"
          + "perations.proto\032\037google/protobuf/timesta"
          + "mp.proto\"\263\003\n\013Environment\022\021\n\004name\030\001 \001(\tB\003"
          + "\340A\005\022\017\n\002id\030\002 \001(\tB\003\340A\003\022\034\n\014docker_image\030\003 \001"
          + "(\tB\006\340A\002\340A\005\022<\n\005state\030\004 \001(\0162(.google.cloud"
          + ".shell.v1.Environment.StateB\003\340A\003\022\025\n\010web_"
          + "host\030\014 \001(\tB\003\340A\003\022\031\n\014ssh_username\030\005 \001(\tB\003\340"
          + "A\003\022\025\n\010ssh_host\030\006 \001(\tB\003\340A\003\022\025\n\010ssh_port\030\007 "
          + "\001(\005B\003\340A\003\022\030\n\013public_keys\030\010 \003(\tB\003\340A\003\"U\n\005St"
          + "ate\022\025\n\021STATE_UNSPECIFIED\020\000\022\r\n\tSUSPENDED\020"
          + "\001\022\013\n\007PENDING\020\002\022\013\n\007RUNNING\020\003\022\014\n\010DELETING\020"
          + "\004:S\352AP\n%cloudshell.googleapis.com/Enviro"
          + "nment\022\'users/{user}/environments/{enviro"
          + "nment}\"T\n\025GetEnvironmentRequest\022;\n\004name\030"
          + "\001 \001(\tB-\340A\002\372A\'\n%cloudshell.googleapis.com"
          + "/Environment\"\033\n\031CreateEnvironmentMetadat"
          + "a\"\033\n\031DeleteEnvironmentMetadata\"R\n\027StartE"
          + "nvironmentRequest\022\014\n\004name\030\001 \001(\t\022\024\n\014acces"
          + "s_token\030\002 \001(\t\022\023\n\013public_keys\030\003 \003(\t\"\204\001\n\033A"
          + "uthorizeEnvironmentRequest\022\014\n\004name\030\001 \001(\t"
          + "\022\024\n\014access_token\030\002 \001(\t\022\020\n\010id_token\030\004 \001(\t"
          + "\022/\n\013expire_time\030\003 \001(\0132\032.google.protobuf."
          + "Timestamp\"\036\n\034AuthorizeEnvironmentRespons"
          + "e\"\036\n\034AuthorizeEnvironmentMetadata\"\322\001\n\030St"
          + "artEnvironmentMetadata\022D\n\005state\030\001 \001(\01625."
          + "google.cloud.shell.v1.StartEnvironmentMe"
          + "tadata.State\"p\n\005State\022\025\n\021STATE_UNSPECIFI"
          + "ED\020\000\022\014\n\010STARTING\020\001\022\024\n\020UNARCHIVING_DISK\020\002"
          + "\022\036\n\032AWAITING_COMPUTE_RESOURCES\020\004\022\014\n\010FINI"
          + "SHED\020\003\"S\n\030StartEnvironmentResponse\0227\n\013en"
          + "vironment\030\001 \001(\0132\".google.cloud.shell.v1."
          + "Environment\"7\n\023AddPublicKeyRequest\022\023\n\013en"
          + "vironment\030\001 \001(\t\022\013\n\003key\030\002 \001(\t\"#\n\024AddPubli"
          + "cKeyResponse\022\013\n\003key\030\001 \001(\t\"\026\n\024AddPublicKe"
          + "yMetadata\":\n\026RemovePublicKeyRequest\022\023\n\013e"
          + "nvironment\030\001 \001(\t\022\013\n\003key\030\002 \001(\t\"\031\n\027RemoveP"
          + "ublicKeyResponse\"\031\n\027RemovePublicKeyMetad"
          + "ata\"\201\002\n\026CloudShellErrorDetails\022O\n\004code\030\001"
          + " \001(\0162A.google.cloud.shell.v1.CloudShellE"
          + "rrorDetails.CloudShellErrorCode\"\225\001\n\023Clou"
          + "dShellErrorCode\022&\n\"CLOUD_SHELL_ERROR_COD"
          + "E_UNSPECIFIED\020\000\022\025\n\021IMAGE_UNAVAILABLE\020\001\022\030"
          + "\n\024CLOUD_SHELL_DISABLED\020\002\022\021\n\rTOS_VIOLATIO"
          + "N\020\004\022\022\n\016QUOTA_EXCEEDED\020\0052\324\010\n\021CloudShellSe"
          + "rvice\022\224\001\n\016GetEnvironment\022,.google.cloud."
          + "shell.v1.GetEnvironmentRequest\032\".google."
          + "cloud.shell.v1.Environment\"0\202\323\344\223\002#\022!/v1/"
          + "{name=users/*/environments/*}\332A\004name\022\314\001\n"
          + "\020StartEnvironment\022..google.cloud.shell.v"
          + "1.StartEnvironmentRequest\032\035.google.longr"
          + "unning.Operation\"i\202\323\344\223\002,\"\'/v1/{name=user"
          + "s/*/environments/*}:start:\001*\312A4\n\030StartEn"
          + "vironmentResponse\022\030StartEnvironmentMetad"
          + "ata\022\340\001\n\024AuthorizeEnvironment\0222.google.cl"
          + "oud.shell.v1.AuthorizeEnvironmentRequest"
          + "\032\035.google.longrunning.Operation\"u\202\323\344\223\0020\""
          + "+/v1/{name=users/*/environments/*}:autho"
          + "rize:\001*\312A<\n\034AuthorizeEnvironmentResponse"
          + "\022\034AuthorizeEnvironmentMetadata\022\312\001\n\014AddPu"
          + "blicKey\022*.google.cloud.shell.v1.AddPubli"
          + "cKeyRequest\032\035.google.longrunning.Operati"
          + "on\"o\202\323\344\223\002:\"5/v1/{environment=users/*/env"
          + "ironments/*}:addPublicKey:\001*\312A,\n\024AddPubl"
          + "icKeyResponse\022\024AddPublicKeyMetadata\022\331\001\n\017"
          + "RemovePublicKey\022-.google.cloud.shell.v1."
          + "RemovePublicKeyRequest\032\035.google.longrunn"
          + "ing.Operation\"x\202\323\344\223\002=\"8/v1/{environment="
          + "users/*/environments/*}:removePublicKey:"
          + "\001*\312A2\n\027RemovePublicKeyResponse\022\027RemovePu"
          + "blicKeyMetadata\032M\312A\031cloudshell.googleapi"
          + "s.com\322A.https://www.googleapis.com/auth/"
          + "cloud-platformBj\n\031com.google.cloud.shell"
          + ".v1B\017CloudShellProtoP\001Z:google.golang.or"
          + "g/genproto/googleapis/cloud/shell/v1;she"
          + "llb\006proto3"
    };
    descriptor =
        com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
            descriptorData,
            new com.google.protobuf.Descriptors.FileDescriptor[] {
              com.google.api.AnnotationsProto.getDescriptor(),
              com.google.api.ClientProto.getDescriptor(),
              com.google.api.FieldBehaviorProto.getDescriptor(),
              com.google.api.ResourceProto.getDescriptor(),
              com.google.longrunning.OperationsProto.getDescriptor(),
              com.google.protobuf.TimestampProto.getDescriptor(),
            });
    internal_static_google_cloud_shell_v1_Environment_descriptor =
        getDescriptor().getMessageTypes().get(0);
    internal_static_google_cloud_shell_v1_Environment_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_Environment_descriptor,
            new java.lang.String[] {
              "Name",
              "Id",
              "DockerImage",
              "State",
              "WebHost",
              "SshUsername",
              "SshHost",
              "SshPort",
              "PublicKeys",
            });
    internal_static_google_cloud_shell_v1_GetEnvironmentRequest_descriptor =
        getDescriptor().getMessageTypes().get(1);
    internal_static_google_cloud_shell_v1_GetEnvironmentRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_GetEnvironmentRequest_descriptor,
            new java.lang.String[] {
              "Name",
            });
    internal_static_google_cloud_shell_v1_CreateEnvironmentMetadata_descriptor =
        getDescriptor().getMessageTypes().get(2);
    internal_static_google_cloud_shell_v1_CreateEnvironmentMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_CreateEnvironmentMetadata_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_DeleteEnvironmentMetadata_descriptor =
        getDescriptor().getMessageTypes().get(3);
    internal_static_google_cloud_shell_v1_DeleteEnvironmentMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_DeleteEnvironmentMetadata_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_StartEnvironmentRequest_descriptor =
        getDescriptor().getMessageTypes().get(4);
    internal_static_google_cloud_shell_v1_StartEnvironmentRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_StartEnvironmentRequest_descriptor,
            new java.lang.String[] {
              "Name", "AccessToken", "PublicKeys",
            });
    internal_static_google_cloud_shell_v1_AuthorizeEnvironmentRequest_descriptor =
        getDescriptor().getMessageTypes().get(5);
    internal_static_google_cloud_shell_v1_AuthorizeEnvironmentRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_AuthorizeEnvironmentRequest_descriptor,
            new java.lang.String[] {
              "Name", "AccessToken", "IdToken", "ExpireTime",
            });
    internal_static_google_cloud_shell_v1_AuthorizeEnvironmentResponse_descriptor =
        getDescriptor().getMessageTypes().get(6);
    internal_static_google_cloud_shell_v1_AuthorizeEnvironmentResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_AuthorizeEnvironmentResponse_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_AuthorizeEnvironmentMetadata_descriptor =
        getDescriptor().getMessageTypes().get(7);
    internal_static_google_cloud_shell_v1_AuthorizeEnvironmentMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_AuthorizeEnvironmentMetadata_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_StartEnvironmentMetadata_descriptor =
        getDescriptor().getMessageTypes().get(8);
    internal_static_google_cloud_shell_v1_StartEnvironmentMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_StartEnvironmentMetadata_descriptor,
            new java.lang.String[] {
              "State",
            });
    internal_static_google_cloud_shell_v1_StartEnvironmentResponse_descriptor =
        getDescriptor().getMessageTypes().get(9);
    internal_static_google_cloud_shell_v1_StartEnvironmentResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_StartEnvironmentResponse_descriptor,
            new java.lang.String[] {
              "Environment",
            });
    internal_static_google_cloud_shell_v1_AddPublicKeyRequest_descriptor =
        getDescriptor().getMessageTypes().get(10);
    internal_static_google_cloud_shell_v1_AddPublicKeyRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_AddPublicKeyRequest_descriptor,
            new java.lang.String[] {
              "Environment", "Key",
            });
    internal_static_google_cloud_shell_v1_AddPublicKeyResponse_descriptor =
        getDescriptor().getMessageTypes().get(11);
    internal_static_google_cloud_shell_v1_AddPublicKeyResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_AddPublicKeyResponse_descriptor,
            new java.lang.String[] {
              "Key",
            });
    internal_static_google_cloud_shell_v1_AddPublicKeyMetadata_descriptor =
        getDescriptor().getMessageTypes().get(12);
    internal_static_google_cloud_shell_v1_AddPublicKeyMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_AddPublicKeyMetadata_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_RemovePublicKeyRequest_descriptor =
        getDescriptor().getMessageTypes().get(13);
    internal_static_google_cloud_shell_v1_RemovePublicKeyRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_RemovePublicKeyRequest_descriptor,
            new java.lang.String[] {
              "Environment", "Key",
            });
    internal_static_google_cloud_shell_v1_RemovePublicKeyResponse_descriptor =
        getDescriptor().getMessageTypes().get(14);
    internal_static_google_cloud_shell_v1_RemovePublicKeyResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_RemovePublicKeyResponse_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_RemovePublicKeyMetadata_descriptor =
        getDescriptor().getMessageTypes().get(15);
    internal_static_google_cloud_shell_v1_RemovePublicKeyMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_RemovePublicKeyMetadata_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_shell_v1_CloudShellErrorDetails_descriptor =
        getDescriptor().getMessageTypes().get(16);
    internal_static_google_cloud_shell_v1_CloudShellErrorDetails_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_shell_v1_CloudShellErrorDetails_descriptor,
            new java.lang.String[] {
              "Code",
            });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.google.api.ClientProto.defaultHost);
    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
    registry.add(com.google.api.AnnotationsProto.http);
    registry.add(com.google.api.ClientProto.methodSignature);
    registry.add(com.google.api.ClientProto.oauthScopes);
    registry.add(com.google.api.ResourceProto.resource);
    registry.add(com.google.api.ResourceProto.resourceReference);
    registry.add(com.google.longrunning.OperationsProto.operationInfo);
    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
        descriptor, registry);
    com.google.api.AnnotationsProto.getDescriptor();
    com.google.api.ClientProto.getDescriptor();
    com.google.api.FieldBehaviorProto.getDescriptor();
    com.google.api.ResourceProto.getDescriptor();
    com.google.longrunning.OperationsProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}


text:
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace CloudStack.Net
{
    public class PrivateGatewayResponse
    {
        /// <summary>
        /// the id of the private gateway
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// the account associated with the private gateway
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// ACL Id set for private gateway
        /// </summary>
        public string AclId { get; set; }

        /// <summary>
        /// the domain associated with the private gateway
        /// </summary>
        public string Domain { get; set; }

        /// <summary>
        /// the ID of the domain associated with the private gateway
        /// </summary>
        public string DomainId { get; set; }

        /// <summary>
        /// the gateway
        /// </summary>
        public string Gateway { get; set; }

        /// <summary>
        /// the private gateway's ip address
        /// </summary>
        public string Ipaddress { get; set; }

        /// <summary>
        /// the private gateway's netmask
        /// </summary>
        public string Netmask { get; set; }

        /// <summary>
        /// the physical network id
        /// </summary>
        public string PhysicalNetworkId { get; set; }

        /// <summary>
        /// the project name of the private gateway
        /// </summary>
        public string Project { get; set; }

        /// <summary>
        /// the project id of the private gateway
        /// </summary>
        public string ProjectId { get; set; }

        /// <summary>
        /// Souce Nat enable status
        /// </summary>
        public bool Sourcenatsupported { get; set; }

        /// <summary>
        /// State of the gateway, can be Creating, Ready, Deleting
        /// </summary>
        public string State { get; set; }

        /// <summary>
        /// the network implementation uri for the private gateway
        /// </summary>
        public string Vlan { get; set; }

        /// <summary>
        /// VPC the private gateaway belongs to
        /// </summary>
        public string VpcId { get; set; }

        /// <summary>
        /// zone id of the private gateway
        /// </summary>
        public string ZoneId { get; set; }

        /// <summary>
        /// the name of the zone the private gateway belongs to
        /// </summary>
        public string ZoneName { get; set; }

        public override string ToString() => JsonConvert.SerializeObject(this, Formatting.Indented);
    }
}


text:
// Avoid `console` errors in browsers that lack a console.
(function() {
    var method;
    var noop = function () {};
    var methods = [
        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
        'timeStamp', 'trace', 'warn'
    ];
    var length = methods.length;
    var console = (window.console = window.console || {});

    while (length--) {
        method = methods[length];

        // Only stub undefined methods.
        if (!console[method]) {
            console[method] = noop;
        }
    }
}());

//                                             |
// Place any jQuery/helper plugins in here.   \|/
//                                             ^

function isInRange(x, min, max) {
  return x >= min && x <= max;
}

// Timer
function Timer(callback)
{
    var time    = 0;  //    The default time of the timer
    var mode    = 0;  //    Mode: count up or count down
    var status  = 0;  //    Status: timer is running or stoped
    var timer_id;     //    This is used by setInterval function

    // this will start the timer ex. start the timer with 1 second interval timer.start(1000)
    this.start = function(interval)
    {
        interval = (typeof(interval) !== 'undefined') ? interval : 1000;

        if(status == 0)
        {
            status = 1;
            timer_id = setInterval(function()
            {
                switch(mode)
                {
                    default:
                    if(time)
                    {
                        time--;
                        generateTime();
                        if(typeof(callback) === 'function') callback(time);
                    }
                    break;

                    case 1:
                    if(time < 86400)
                    {
                        time++;
                        generateTime();
                        if(typeof(callback) === 'function') callback(time);
                    }
                    break;
                }
            }, interval);
        }
    }

    //  Same as the name, this will stop or pause the timer ex. timer.stop()
    this.stop =  function()
    {
        if(status == 1)
        {
            status = 0;
            clearInterval(timer_id);
        }
    }

    // Reset the timer to zero or reset it to your own custom time ex. reset to zero second timer.reset(0)
    this.reset =  function(sec)
    {
        sec = (typeof(sec) !== 'undefined') ? sec : 0;
        time = sec;
        generateTime(time);
    }

    // Change the mode of the timer, count-up (1) or countdown (0)
    this.mode = function(tmode)
    {
        mode = tmode;
    }

    // This methode return the current value of the timer
    this.getTime = function()
    {
        return time;
    }

    // This methode return the current mode of the timer count-up (1) or countdown (0)
    this.getMode = function()
    {
        return mode;
    }

    // This methode return the status of the timer running (1) or stoped (1)
    this.getStatus
    {
        return status;
    }

    // This methode will render the time variable to hour:minute:second format
    function generateTime()
    {
        var second = time % 60;
        var minute = Math.floor(time / 60) % 60;
        var hour = Math.floor(time / 3600) % 60;
        //console.log("second : ", second)
    }
}

/*jslint           browser : true,   continue : true,
  devel  : true,    indent : 2,       maxerr  : 50,
  newcap : true,  plusplus : true,    regexp  : true,
  sloppy : true,      vars : true,     white  : true
*/
/*global jQuery, sl */

(function ( $ ) {
  //---------------- BEGIN MODULE SCOPE VARIABLES --------------
  var
    $Special        = $.event.special,  // shortcut for special event
    motionMapMap    = {},         // map of pointer motions by cursor
    isMoveBound     = false,      // flag if move handlers bound
    pxPinchZoom     = -1,         // distance between pinch-zoom points
    optionKey       = 'ue_bound', // data key for storing options
    doDisableMouse  = false,      // flag to discard mouse input
    defaultOptMap   = {           // Default option hash
      bound_ns_map  : {},         // namspace hash e.g. bound_ns_map.utap.fred
      wheel_ratio   : 15,         // multiplier for mousewheel delta
      px_radius     : 3,          // 'distance' dragged before dragstart
      ignore_class  : ':input',   // 'not' suppress matching elements
      tap_time      : 200,        // millisecond max time to consider tap
      held_tap_time : 300         // millisecond min time to consider taphold
    },
    callbackList  = [],           // global callback stack
    zoomMouseNum  = 1,            // multiplier for mouse zoom
    zoomTouchNum  = 4,            // multiplier for touch zoom

    boundList, Ue,
    motionDragId,  motionHeldId, motionDzoomId,
    motion1ZoomId, motion2ZoomId,

    checkMatchVal, removeListVal,  pushUniqVal,   makeListPlus,
    fnHeld,        fnMotionStart,  fnMotionMove,
    fnMotionEnd,   onMouse,        onTouch,
    onMousewheel
    ;
  //----------------- END MODULE SCOPE VARIABLES ---------------

  //------------------- BEGIN UTILITY METHODS ------------------
  // Begin utiltity /makeListPlus/
  // Returns an array with much desired methods:
  //   * remove_val(value) : remove element that matches
  //     the provided value. Returns number of elements
  //     removed.
  //   * match_val(value)  : shows if a value exists
  //   * push_uniq(value)  : pushes a value onto the stack
  //     iff it does not already exist there
  // Note: the reason I need this is to compare objects to
  //   objects (perhaps jQuery has something similar?)
  checkMatchVal = function ( data ) {
    var match_count = 0, idx;
    for ( idx = this.length; idx; 0 ) {
      if ( this[--idx] === data ) { match_count++; }
    }
    return match_count;
  };
  removeListVal = function ( data ) {
    var removed_count = 0, idx;
    for ( idx = this.length; idx; 0 ) {
      if ( this[--idx] === data ) {
        this.splice(idx, 1);
        removed_count++;
        idx++;
      }
    }
    return removed_count;
  };
  pushUniqVal = function ( data ) {
    if ( checkMatchVal.call(this, data ) ) { return false; }
    this.push( data );
    return true;
  };
  // primary utility
  makeListPlus = function ( input_list ) {
    if ( input_list && $.isArray(input_list) ) {
      if ( input_list.remove_val ) {
        console.warn( 'The array appears to already have listPlus capabilities' );
        return input_list;
      }
    }
    else {
      input_list = [];
    }
    input_list.remove_val = removeListVal;
    input_list.match_val  = checkMatchVal;
    input_list.push_uniq  = pushUniqVal;

    return input_list;
  };
  // End utility /makeListPlus/
  //-------------------- END UTILITY METHODS -------------------

  //--------------- BEGIN JQUERY SPECIAL EVENTS ----------------
  // Unique array for bound objects
  boundList = makeListPlus();

  // Begin define special event handlers
  Ue = {
    setup : function( data, a_names, fn_bind ) {
      var
        elem_this = this,
        $to_bind  = $(elem_this),
        seen_map    = {},
        option_map, idx, namespace_key, ue_namespace_code, namespace_list
        ;

      // if previous related event bound do not rebind, but do add to
      // type of event bound to this element, if not already noted
      if ( $.data( this, optionKey ) ) { return; }

      option_map = {};
      $.extend( true, option_map, defaultOptMap );
      $.data( elem_this, optionKey, option_map );

      namespace_list = makeListPlus(a_names.slice(0));
      if ( ! namespace_list.length
        || namespace_list[0] === ""
      ) { namespace_list = ["000"]; }

      NSPACE_00:
      for ( idx = 0; idx < namespace_list.length; idx++ ) {
        namespace_key = namespace_list[idx];

        if ( ! namespace_key ) { continue NSPACE_00; }
        if ( seen_map.hasOwnProperty(namespace_key) ) { continue NSPACE_00; }

        seen_map[namespace_key] = true;

        ue_namespace_code = '.__ue' + namespace_key;

        $to_bind.bind( 'mousedown'  + ue_namespace_code, onMouse  );
        $to_bind.bind( 'touchstart' + ue_namespace_code, onTouch );
        $to_bind.bind( 'mousewheel' + ue_namespace_code, onMousewheel );
      }

      boundList.push_uniq( elem_this ); // record as bound element

      if ( ! isMoveBound ) {
        // console.log('first element bound - adding global binds');
        $(document).bind( 'mousemove.__ue', onMouse  );
        $(document).bind( 'touchmove.__ue', onTouch  );
        $(document).bind( 'mouseup.__ue'  , onMouse  );
        $(document).bind( 'touchend.__ue' , onTouch  );
        isMoveBound = true;
      }
    },

    // arg_map.type = string - name of event to bind
    // arg_map.data = poly - whatever (optional) data was passed when binding
    // arg_map.namespace = string - A sorted, dot-delimited list of namespaces
    //   specified when binding the event
    // arg_map.handler  = fn - the event handler the developer wishes to be bound
    //   to the event.  This function should be called whenever the event
    //   is triggered
    // arg_map.guid = number - unique ID for event handler, provided by jQuery
    // arg_map.selector = string - selector used by 'delegate' or 'live' jQuery
    //   methods.  Only available when these methods are used.
    //
    // this - the element to which the event handler is being bound
    // this always executes immediate after setup (if first binding)
    add : function ( arg_map ) {
      var
        elem_this       = this,
        option_map      = $.data( elem_this, optionKey ),
        namespace_str   = arg_map.namespace,
        event_type      = arg_map.type,
        bound_ns_map, namespace_list, idx, namespace_key
        ;
      if ( ! option_map ) { return; }

      bound_ns_map  = option_map.bound_ns_map;

      if ( ! bound_ns_map[event_type] ) {
        // this indicates a non-namespaced entry
        bound_ns_map[event_type] = {};
      }

      if ( ! namespace_str ) { return; }

      namespace_list = namespace_str.split('.');

      for ( idx = 0; idx < namespace_list.length; idx++ ) {
        namespace_key = namespace_list[idx];
        bound_ns_map[event_type][namespace_key] = true;
      }
    },

    remove : function ( arg_map ) {
      var
        elem_bound     = this,
        option_map     = $.data( elem_bound, optionKey ),
        bound_ns_map   = option_map.bound_ns_map,
        event_type     = arg_map.type,
        namespace_str  = arg_map.namespace,
        namespace_list, idx, namespace_key
        ;

      if ( ! bound_ns_map[event_type] ) { return; }

      // No namespace(s) provided:
      // Remove complete record for custom event type (e.g. utap)
      if ( ! namespace_str ) {
        delete bound_ns_map[event_type];
        return;
      }

      // Namespace(s) provided:
      // Remove namespace flags from each custom event typei (e.g. utap)
      // record.  If all claimed namespaces are removed, remove
      // complete record.
      namespace_list = namespace_str.split('.');

      for ( idx = 0; idx < namespace_list.length; idx++ ) {
        namespace_key = namespace_list[idx];
        if (bound_ns_map[event_type][namespace_key]) {
          delete bound_ns_map[event_type][namespace_key];
        }
      }

      if ( $.isEmptyObject( bound_ns_map[event_type] ) ) {
        delete bound_ns_map[event_type];
      }
    },

    teardown : function( a_names ) {
      var
        elem_bound   = this,
        $bound       = $(elem_bound),
        option_map   = $.data( elem_bound, optionKey ),
        bound_ns_map = option_map.bound_ns_map,
        idx, namespace_key, ue_namespace_code, namespace_list
        ;

      // do not tear down if related handlers are still bound
      if ( ! $.isEmptyObject( bound_ns_map ) ) { return; }

      namespace_list = makeListPlus(a_names);
      namespace_list.push_uniq('000');

      NSPACE_01:
      for ( idx = 0; idx < namespace_list.length; idx++ ) {
        namespace_key = namespace_list[idx];

        if ( ! namespace_key ) { continue NSPACE_01; }

        ue_namespace_code = '.__ue' + namespace_key;
        $bound.unbind( 'mousedown'  + ue_namespace_code );
        $bound.unbind( 'touchstart' + ue_namespace_code );
        $bound.unbind( 'mousewheel' + ue_namespace_code );
      }

      $.removeData( elem_bound, optionKey );

      // Unbind document events only after last element element is removed
      boundList.remove_val(this);
      if ( boundList.length === 0 ) {
        // console.log('last bound element removed - removing global binds');
        $(document).unbind( 'mousemove.__ue');
        $(document).unbind( 'touchmove.__ue');
        $(document).unbind( 'mouseup.__ue');
        $(document).unbind( 'touchend.__ue');
        isMoveBound = false;
      }
    }
  };
  // End define special event handlers
  //--------------- BEGIN JQUERY SPECIAL EVENTS ----------------

  //------------------ BEGIN MOTION CONTROLS -------------------
  // Begin motion control /fnHeld/
  fnHeld = function ( arg_map ) {
    var
      timestamp         = +new Date(),
      motion_id    = arg_map.motion_id,
      motion_map   = arg_map.motion_map,
      bound_ns_map = arg_map.bound_ns_map,
      event_ue
      ;

    delete motion_map.idto_tapheld;

    if ( ! motion_map.do_allow_tap ) { return; }

    motion_map.px_end_x     = motion_map.px_start_x;
    motion_map.px_end_y     = motion_map.px_start_y;
    motion_map.ms_timestop  = timestamp;
    motion_map.ms_elapsed   = timestamp - motion_map.ms_timestart;

    if ( bound_ns_map.uheld ) {
      event_ue     = $.Event('uheld');
      $.extend( event_ue, motion_map );
      $(motion_map.elem_bound).trigger(event_ue);
    }

    // remove tracking, as we want no futher action on this motion
    if ( bound_ns_map.uheldstart ) {
      event_ue     = $.Event('uheldstart');
      $.extend( event_ue, motion_map );
      $(motion_map.elem_bound).trigger(event_ue);
      motionHeldId = motion_id;
    }
    else {
      delete motionMapMap[motion_id];
    }
  };
  // End motion control /fnHeld/

  // Begin motion control /fnMotionStart/
  fnMotionStart = function ( arg_map ) {
    var
      motion_id      = arg_map.motion_id,
      event_src      = arg_map.event_src,
      request_dzoom  = arg_map.request_dzoom,

      option_map     = $.data( arg_map.elem, optionKey ),
      bound_ns_map   = option_map.bound_ns_map,
      $target        = $(event_src.target ),
      do_zoomstart   = false,
      motion_map, cb_map, do_allow_tap, event_ue
      ;

    // this should never happen, but it does
    if ( motionMapMap[ motion_id ] ) { return; }

    if ( request_dzoom && ! bound_ns_map.uzoomstart ) { return; }

    // :input selector includes text areas
    if ( $target.is( option_map.ignore_class ) ) { return; }

    do_allow_tap = bound_ns_map.utap
      || bound_ns_map.uheld || bound_ns_map.uheldstart
      ? true : false;

    cb_map = callbackList.pop();

    while ( cb_map ) {
      if ( $target.is( cb_map.selector_str )
        || $( arg_map.elem ).is( cb_map.selector_str )
      ) {
        if ( cb_map.callback_match ) {
          cb_map.callback_match( arg_map );
        }
      }
      else {
        if ( cb_map.callback_nomatch ) {
          cb_map.callback_nomatch( arg_map );
        }
      }
      cb_map = callbackList.pop();
    }

    motion_map = {
      do_allow_tap : do_allow_tap,
      elem_bound   : arg_map.elem,
      elem_target  : event_src.target,
      ms_elapsed   : 0,
      ms_timestart : event_src.timeStamp,
      ms_timestop  : undefined,
      option_map   : option_map,
      orig_target  : event_src.target,
      px_current_x : event_src.clientX,
      px_current_y : event_src.clientY,
      px_end_x     : undefined,
      px_end_y     : undefined,
      px_start_x   : event_src.clientX,
      px_start_y   : event_src.clientY,
      timeStamp    : event_src.timeStamp
    };

    motionMapMap[ motion_id ] = motion_map;

    if ( bound_ns_map.uzoomstart ) {
      if ( request_dzoom ) {
        motionDzoomId = motion_id;
      }
      else if ( ! motion1ZoomId ) {
        motion1ZoomId = motion_id;
      }
      else if ( ! motion2ZoomId ) {
        motion2ZoomId = motion_id;
        event_ue = $.Event('uzoomstart');
        do_zoomstart = true;
      }

      if ( do_zoomstart ) {
        event_ue = $.Event( 'uzoomstart' );
        motion_map.px_delta_zoom = 0;
        $.extend( event_ue, motion_map );
        $(motion_map.elem_bound).trigger(event_ue);
        return;
      }
    }

    if ( bound_ns_map.uheld || bound_ns_map.uheldstart ) {
      motion_map.idto_tapheld = setTimeout(
        function() {
          fnHeld({
            motion_id  : motion_id,
            motion_map   : motion_map,
            bound_ns_map : bound_ns_map
          });
        },
        option_map.held_tap_time
      );
    }
  };
  // End motion control /fnMotionStart/

  // Begin motion control /fnMotionMove/
  fnMotionMove  = function ( arg_map ) {
    var
      motion_id   = arg_map.motion_id,
      event_src   = arg_map.event_src,
      do_zoommove = false,
      motion_map, option_map, bound_ns_map,
      event_ue, px_pinch_zoom, px_delta_zoom,
      mzoom1_map, mzoom2_map
      ;

    if ( ! motionMapMap[motion_id] ) { return; }

    motion_map   = motionMapMap[motion_id];
    option_map   = motion_map.option_map;
    bound_ns_map = option_map.bound_ns_map;

    motion_map.timeStamp    = event_src.timeStamp;
    motion_map.elem_target  = event_src.target;
    motion_map.ms_elapsed   = event_src.timeStamp - motion_map.ms_timestart;

    motion_map.px_delta_x   = event_src.clientX - motion_map.px_current_x;
    motion_map.px_delta_y   = event_src.clientY - motion_map.px_current_y;

    motion_map.px_current_x = event_src.clientX;
    motion_map.px_current_y = event_src.clientY;

    // native event object override
    motion_map.timeStamp    = event_src.timeStamp;

    // disallow tap if outside of zone or time elapsed
    // we use this for other events, so we do it every time
    if ( motion_map.do_allow_tap ) {
      if ( Math.abs(motion_map.px_delta_x) > option_map.px_radius
        || Math.abs(motion_map.pd_delta_y) > option_map.px_radius
        || motion_map.ms_elapsed           > option_map.tap_time
      ) { motion_map.do_allow_tap = false; }
    }

    if ( motion1ZoomId && motion2ZoomId
      && ( motion_id === motion1ZoomId
        || motion_id === motion2ZoomId
    )) {
      motionMapMap[motion_id] = motion_map;
      mzoom1_map = motionMapMap[motion1ZoomId];
      mzoom2_map = motionMapMap[motion2ZoomId];

      px_pinch_zoom = Math.floor(
        Math.sqrt(
            Math.pow((mzoom1_map.px_current_x - mzoom2_map.px_current_x),2)
          + Math.pow((mzoom1_map.px_current_y - mzoom2_map.px_current_y),2)
        ) +0.5
      );

      if ( pxPinchZoom === -1 ) { px_delta_zoom = 0; }
      else { px_delta_zoom = ( px_pinch_zoom - pxPinchZoom ) * zoomTouchNum;}

      // save value for next iteration delta comparison
      pxPinchZoom  = px_pinch_zoom;
      do_zoommove  = true;
    }
    else if ( motionDzoomId === motion_id ) {
      if ( bound_ns_map.uzoommove ) {
        px_delta_zoom = motion_map.px_delta_y * zoomMouseNum;
        do_zoommove = true;
      }
    }

    if ( do_zoommove ){
      event_ue = $.Event('uzoommove');
      motion_map.px_delta_zoom = px_delta_zoom;
      $.extend( event_ue, motion_map );
      $(motion_map.elem_bound).trigger(event_ue);
      return;
    }

    if ( motionHeldId === motion_id ) {
      if ( bound_ns_map.uheldmove ) {
        event_ue = $.Event('uheldmove');
        $.extend( event_ue, motion_map );
        $(motion_map.elem_bound).trigger(event_ue);
      }
    }
    else if ( motionDragId === motion_id ) {
      if ( bound_ns_map.udragmove ) {
        event_ue = $.Event('udragmove');
        $.extend( event_ue, motion_map );
        $(motion_map.elem_bound).trigger(event_ue);
      }
    }

    if ( ! motionDragId
      && ! motionHeldId
      && bound_ns_map.udragstart
      && motion_map.do_allow_tap === false
    ) {
      motionDragId = motion_id;
      event_ue = $.Event('udragstart');
      $.extend( event_ue, motion_map );
      $(motion_map.elem_bound).trigger(event_ue);

      if ( motion_map.idto_tapheld ) {
        clearTimeout(motion_map.idto_tapheld);
        delete motion_map.idto_tapheld;
      }
    }
  };
  // End motion control /fnMotionMove/

  // Begin motion control /fnMotionEnd/
  fnMotionEnd   = function ( arg_map ) {
    var
      motion_id    = arg_map.motion_id,
      event_src    = arg_map.event_src,
      do_zoomend   = false,
      motion_map, option_map, bound_ns_map, event_ue
      ;

    doDisableMouse = false;

    if ( ! motionMapMap[motion_id] ) { return; }

    motion_map   = motionMapMap[motion_id];
    option_map   = motion_map.option_map;
    bound_ns_map = option_map.bound_ns_map;

    motion_map.elem_target  = event_src.target;
    motion_map.ms_elapsed   = event_src.timeStamp - motion_map.ms_timestart;
    motion_map.ms_timestop  = event_src.timeStamp;

    if ( motion_map.px_current_x ) {
      motion_map.px_delta_x   = event_src.clientX - motion_map.px_current_x;
      motion_map.px_delta_y   = event_src.clientY - motion_map.px_current_y;
    }

    motion_map.px_current_x = event_src.clientX;
    motion_map.px_current_y = event_src.clientY;

    motion_map.px_end_x     = event_src.clientX;
    motion_map.px_end_y     = event_src.clientY;

    // native event object override
    motion_map.timeStamp    = event_src.timeStamp
    ;

    // clear-out any long-hold tap timer
    if ( motion_map.idto_tapheld ) {
      clearTimeout(motion_map.idto_tapheld);
      delete motion_map.idto_tapheld;
    }

    // trigger utap
    if ( bound_ns_map.utap
      && motion_map.ms_elapsed   <= option_map.tap_time
      && motion_map.do_allow_tap
    ) {
      event_ue = $.Event('utap');
      $.extend( event_ue, motion_map );
      $(motion_map.elem_bound).trigger(event_ue);
    }

    // trigger udragend
    if ( motion_id === motionDragId ) {
      if ( bound_ns_map.udragend ) {
        event_ue = $.Event('udragend');
        $.extend( event_ue, motion_map );
        $(motion_map.elem_bound).trigger(event_ue);
      }
      motionDragId = undefined;
    }

    // trigger heldend
    if ( motion_id === motionHeldId ) {
      if ( bound_ns_map.uheldend ) {
        event_ue = $.Event('uheldend');
        $.extend( event_ue, motion_map );
        $(motion_map.elem_bound).trigger(event_ue);
      }
      motionHeldId = undefined;
    }

    // trigger uzoomend
    if ( motion_id === motionDzoomId ) {
      do_zoomend = true;
      motionDzoomId = undefined;
    }

    // cleanup zoom info
    else if ( motion_id === motion1ZoomId ) {
      if ( motion2ZoomId ) {
        motion1ZoomId = motion2ZoomId;
        motion2ZoomId = undefined;
        do_zoomend = true;
      }
      else { motion1ZoomId = undefined; }
      pxPinchZoom  = -1;
    }
    if ( motion_id === motion2ZoomId ) {
      motion2ZoomId = undefined;
      pxPinchZoom  = -1;
      do_zoomend   = true;
    }

    if ( do_zoomend && bound_ns_map.uzoomend ) {
      event_ue = $.Event('uzoomend');
      motion_map.px_delta_zoom = 0;
      $.extend( event_ue, motion_map );
      $(motion_map.elem_bound).trigger(event_ue);
    }
    // remove pointer from consideration
    delete motionMapMap[motion_id];
  };
  // End motion control /fnMotionEnd/
  //------------------ END MOTION CONTROLS -------------------

 //------------------- BEGIN EVENT HANDLERS -------------------
  // Begin event handler /onTouch/ for all touch events.
  // We use the 'type' attribute to dispatch to motion control
  onTouch = function ( event ) {
    var
      elem_this   = this,
      timestamp   = +new Date(),
      o_event     = event.originalEvent,
      a_touches   = o_event.changedTouches || [],
      idx, touch_event, motion_id,
      handler_fn
      ;

    doDisableMouse = true;

    event.timeStamp = timestamp;

    switch ( event.type ) {
      case 'touchstart' : handler_fn = fnMotionStart; break;
      case 'touchmove'  :
        handler_fn = fnMotionMove;
        event.preventDefault();
      break;
      case 'touchend'   : handler_fn = fnMotionEnd;   break;
      default : handler_fn = null;
    }

    if ( ! handler_fn ) { return; }

    for ( idx = 0; idx < a_touches.length; idx++ ) {
      touch_event  = a_touches[idx];

      motion_id = 'touch' + String(touch_event.identifier);

      event.clientX   = touch_event.clientX;
      event.clientY   = touch_event.clientY;
      handler_fn({
        elem      : elem_this,
        motion_id : motion_id,
        event_src : event
      });
    }
  };
  // End event handler /onTouch/

  // Begin event handler /onMouse/ for all mouse events
  // We use the 'type' attribute to dispatch to motion control
  onMouse = function ( event ) {
    var
      elem_this     = this,
      motion_id     = 'mouse' + String(event.button),
      request_dzoom = false,
      handler_fn
      ;

    if ( doDisableMouse ) {
      event.stopImmediatePropagation();
      return;
    }

    if ( event.shiftKey ) { request_dzoom  =  true; }

    // skip left or middle clicks
    if ( event.type !== 'mousemove' ) {
      if ( event.button !== 0 ) { return true; }
    }

    switch ( event.type ) {
      case 'mousedown' : handler_fn = fnMotionStart; break;
      case 'mouseup'   : handler_fn = fnMotionEnd;   break;
      case 'mousemove' :
        handler_fn = fnMotionMove;
        event.preventDefault();
      break;
      default          : handler_fn = null;
    }

    if ( ! handler_fn ) { return; }

    handler_fn({
      elem          : elem_this,
      event_src     : event,
      request_dzoom : request_dzoom,
      motion_id     : motion_id
    });
  };
  // End event handler /onMouse/
  //-------------------- END EVENT HANDLERS --------------------

  // Export special events through jQuery API
  $Special.ue
    = $Special.utap       = $Special.uheld
    = $Special.uzoomstart = $Special.uzoommove = $Special.uzoomend
    = $Special.udragstart = $Special.udragmove = $Special.udragend
    = $Special.uheldstart = $Special.uheldmove = $Special.uheldend
    = Ue
    ;
  $.ueSetGlobalCb = function ( selector_str, callback_match, callback_nomatch ) {
    callbackList.push( {
      selector_str     : selector_str     || '',
      callback_match   : callback_match   || null,
      callback_nomatch : callback_nomatch || null
    });
  };

}(jQuery));

/*
 * jQuery udraggable plugin v0.2.0
 * Copyright (c) 2013 Grant McLean (grant@mclean.net.nz)
 *
 * Homepage: https://github.com/grantm/jquery-udraggable
 *
 * Dual licensed under the MIT and GPL (v2.0 or later) licenses:
 *   http://opensource.org/licenses/MIT
 *   http://opensource.org/licenses/GPL-2.0
 *
 * This library requires Michael S. Mikowski's unified mouse and touch
 * event plugin: https://github.com/mmikowski/jquery.event.ue
 *
 */

(function($) {
    "use strict";

    var floor = Math.floor;
    var min   = Math.min;
    var max   = Math.max;

    window.requestAnimationFrame = window.requestAnimationFrame || function(work) {
        return setTimeout(work, 10);
    };

    window.cancelAnimationFrame = window.cancelAnimationFrame || function(id) {
        return clearTimeout(id);
    };

    // Constructor function

    var UDraggable = function (el, options) {
        var that = this;
        this.el  = el;
        this.$el = $(el);
        this.options = $.extend({}, $.fn.udraggable.defaults, options);
        this.positionElement  = this.options.positionElement  || this.positionElement;
        this.getStartPosition = this.options.getStartPosition || this.getStartPosition;
        this.updatePositionFrameHandler = function() {
            delete that.queuedUpdate;
            var pos = that.ui.position;
            that.positionElement(that.$el, that.started, pos.left, pos.top);
            if (that.options.dragUpdate) {
                that.options.dragUpdate.apply(that.el, [that.ui]);
            }
        };
        this.queuePositionUpdate = function() {
            if (!that.queuedUpdate) {
                that.queuedUpdate = window.requestAnimationFrame(that.updatePositionFrameHandler);
            }
        };
        this.init();
    };

    UDraggable.prototype = {

        constructor: UDraggable,

        init: function() {
            var that = this;
            this.started = false;
            this.normalisePosition();
            var $target = this.options.handle ?
                          this.$el.find( this.options.handle ) :
                          this.$el;
            if (this.options.longPress) {
                $target
                    .on('uheldstart.uheldd', function(e) { that.start(e); })
                    .on('uheldmove.uheldd',  function(e) { that.move(e);  })
                    .on('uheldend.uheldd',   function(e) { that.end(e);   });
            }
            else {
                $target
                    .on('udragstart', function(e) { that.start(e); })
                    .on('udragmove',  function(e) { that.move(e);  })
                    .on('udragend',   function(e) { that.end(e);   });
            }
        },

        option: function() {
            var name;
            if (arguments.length === 0) {
                return this.options;
            }
            if (arguments.length === 2) {
                this.options[ arguments[0] ] = arguments[1];
                return;
            }
            if (arguments.length === 1) {
                if (typeof arguments[0] === 'string') {
                    return this.options[ arguments[0] ];
                }
                if (typeof arguments[0] === 'object') {
                    for(name in arguments[0]) {
                        if (arguments[0].hasOwnProperty(name)) {
                            this.options[name] = arguments[0][name];
                        }
                    }
                }
            }
            if (this.options.containment) {
                this._initContainment();
            }
        },

        normalisePosition: function() {
            var pos = this.$el.position();
            this.$el.css({
                position: 'absolute',
                top: pos.top,
                left: pos.left,
                right: 'auto',
                bottom: 'auto'
            });
        },

        start: function(e) {
            var start = this.getStartPosition(this.$el);
            this._initContainment();
            this.ui = {
                helper:           this.$el,
                offset:           { top: start.y, left: start.x},
                originalPosition: { top: start.y, left: start.x},
                position:         { top: start.y, left: start.x},
            };
            if (this.options.longPress) {
                this._start(e);
            }
            return this._stopPropagation(e);
        },

        move: function(e) {
            if (!this.started && !this._start(e)) {
                return;
            }
            var delta_x = e.px_current_x - e.px_start_x;
            var delta_y = e.px_current_y - e.px_start_y;
            var axis = this.options.axis;
            if (axis  &&  axis === "x") {
                delta_y = 0;
            }
            if (axis  &&  axis === "y") {
                delta_x = 0;
            }
            var cur = {
                left: this.ui.originalPosition.left,
                top:  this.ui.originalPosition.top
            };
            if (!axis  ||  (axis === "x")) {
                cur.left += delta_x;
            }
            if (!axis  ||  (axis === "y")) {
                cur.top += delta_y;
            }
            this._applyGrid(cur);
            this._applyContainment(cur);
            var pos = this.ui.position;
            if ((cur.top !== pos.top)  ||  (cur.left !== pos.left)) {
                this.ui.position.left = cur.left;
                this.ui.position.top  = cur.top;
                this.ui.offset.left   = cur.left;
                this.ui.offset.top    = cur.top;
                if (this.options.drag) {
                    this.options.drag.apply(this.el, [e, this.ui]);
                }
                this.queuePositionUpdate();
            }
            return this._stopPropagation(e);
        },

        end: function(e) {
            if (this.started || this._start(e)) {
                this.$el.removeClass("udraggable-dragging");
                this.started = false;
                if (this.queuedUpdate) {
                    window.cancelAnimationFrame(this.queuedUpdate);
                }
                this.updatePositionFrameHandler();
                if (this.options.stop) {
                    this.options.stop.apply(this.el, [e, this.ui]);
                }
            }
            return this._stopPropagation(e);
        },

        // helper methods

        _stopPropagation: function(e) {
            e.stopPropagation();
            e.preventDefault();
            return false;
        },

        _start: function(e) {
            if (!this._mouseDistanceMet(e) || !this._mouseDelayMet(e)) {
                return;
            }
            this.started = true;
            this.queuePositionUpdate();
            if (this.options.start) {
                this.options.start.apply(this.el, [e, this.ui]);
            }
            this.$el.addClass("udraggable-dragging");
            return true;
        },

        _mouseDistanceMet: function(e) {
            return max(
                Math.abs(e.px_start_x - e.px_current_x),
                Math.abs(e.px_start_y - e.px_current_y)
            ) >= this.options.distance;
        },

        _mouseDelayMet: function(e) {
            return e.ms_elapsed > this.options.delay;
        },

        _initContainment: function() {
            var o = this.options;
            var $c, ce;

            if (!o.containment) {
                this.containment = null;
                return;
            }

            if (o.containment.constructor === Array) {
                this.containment = o.containment;
                return;
            }

            if (o.containment === "parent") {
                o.containment = this.$el.offsetParent();
            }

            $c = $( o.containment );
            ce = $c[ 0 ];
            if (!ce) {
                return;
            }

            this.containment = [
                0,
                0,
                $c.innerWidth() - this.$el.outerWidth(),
                $c.innerHeight() - this.$el.outerHeight(),
            ];
        },

        _applyGrid: function(cur) {
            if (this.options.grid) {
                var gx = this.options.grid[0];
                var gy = this.options.grid[1];
                cur.left = floor( (cur.left + gx / 2) / gx ) * gx;
                cur.top  = floor( (cur.top  + gy / 2) / gy ) * gy;
            }
        },

        _applyContainment: function(cur) {
            var cont = this.containment;
            if (cont) {
                cur.left = min( max(cur.left, cont[0]), cont[2] );
                cur.top  = min( max(cur.top,  cont[1]), cont[3] );
            }
        },

        getStartPosition: function($el) {
            return {
                x: parseInt($el.css('left'), 10) || 0,
                y: parseInt($el.css('top'),  10) || 0
            };
        },

        positionElement: function($el, dragging, left, top) {
            $el.css({ left: left, top: top });
        }

    };

    // jQuery plugin function

    $.fn.udraggable = function(option) {
        var args = Array.prototype.slice.call(arguments, 1);
        var results = [];
        this.each(function () {
            var $this = $(this);
            var data = $this.data('udraggable');
            if (!data) {
                data = new UDraggable(this, option);
                $this.data('udraggable', data);
            }
            if (typeof option === 'string') {  // option is a method - call it
                var result = data[option].apply(data, args);
                if (result !== undefined) {
                    results.push( result );
                }
            }
        });
        return results.length > 0 ? results[0] : this;
    };

    $.fn.udraggable.defaults = {
         axis:        null,
         delay:       0,
         distance:    0,
         longPress:   false,
         // callbacks
         drag:        null,
         start:       null,
         stop:        null
    };

})(jQuery);


text:
title: Circular, Linear progress React components
components: CircularProgress, LinearProgress
---

# Barres de progression

Les indicateurs de progression, plus connus sous le nom de spinners, expriment un temps d'attente non spécifié ou affichent la durée d'un processus. L'animation fonctionne avec du CSS, pas de JavaScript.

Les [Indicateurs de progression](https://material.io/design/components/progress-indicators.html) informent les utilisateurs de l'état des processus en cours, tels que le chargement d'une application, la soumission d'un formulaire ou la progression des mises à jour. Ils communiquent l'état d'une application et indiquent les actions disponibles, par exemple si les utilisateurs peuvent quitter l'écran actuel.

- Les indicateurs **déterminés** indiquent la durée d'une opération.
- Les indicateurs **indéterminés** indiquent un temps d'attente non spécifié.

Lorsque vous affichez les progrès d'une séquence de processus, indiquez le progrès global plutôt que les progrès de chaque activité.

## Circular

### Circular indeterminate

{{"demo": "pages/components/progress/CircularIndeterminate.js"}}

### Circular determinate

{{"demo": "pages/components/progress/CircularDeterminate.js"}}

### Interactive integration

{{"demo": "pages/components/progress/CircularIntegration.js"}}

### Circular with label

{{"demo": "pages/components/progress/CircularWithValueLabel.js"}}

## Linear

### Linear indeterminate

{{"demo": "pages/components/progress/LinearIndeterminate.js"}}

### Linear determinate

{{"demo": "pages/components/progress/LinearDeterminate.js"}}

### Linear buffer

{{"demo": "pages/components/progress/LinearBuffer.js"}}

### Linear with label

{{"demo": "pages/components/progress/LinearWithValueLabel.js"}}

## Non-standard ranges

The progress components accept a value in the range 0 - 100. This simplifies things for screen-reader users, where these are the default min / max values. Sometimes, however, you might be working with a data source where the values fall outside this range. Here's how you can easily transform a value in any range to a scale of 0 - 100:

```jsx
// MIN = Minimum expected value
// MAX = Maximium expected value
// Function to normalise the values (MIN / MAX could be integrated)
const normalise = value => (value - MIN) * 100 / (MAX - MIN);

// Example component that utilizes the `normalise` function at the point of render.
function Progress(props) {
  return (
    <React.Fragment>
      <CircularProgress variant="determinate" value={normalise(props.value)} />
      <LinearProgress variant="determinate" value={normalise(props.value)} />
    </React.Fragment>
  )
}
```

## Customized progress

Here are some examples of customizing the component. Vous pouvez en savoir plus dans la [page de documentation des overrides](/customization/components/).

{{"demo": "pages/components/progress/CustomizedProgressBars.js", "defaultCodeOpen": false}}

## Retarder l'apparition

Il y a [3 limites importantes](https://www.nngroup.com/articles/response-times-3-important-limits/) à connaître sur les temps de réponse. The ripple effect of the `ButtonBase` component ensures that the user feels that the system is reacting instantaneously. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second. After 1.0 second, you can display a loader to keep user's flow of thought uninterrupted.

{{"demo": "pages/components/progress/DelayingAppearance.js"}}

## Limites

Under heavy load, you might lose the stroke dash animation or see random CircularProgress ring widths. You should run processor intensive operations in a web worker or by batch in order not to block the main rendering thread.

![heavy load](/static/images/progress/heavy-load.gif)

When it's not possible, you can leverage the `disableShrink` property to mitigate the issue. See [this issue](https://github.com/mui-org/material-ui/issues/10327).

{{"demo": "pages/components/progress/CircularUnderLoad.js"}}


text:
Puppet::Type.newtype(:aws_vpn) do
  @doc = "Manage AWS internet gateways"
  newparam(:name)
  ensurable
  newproperty(:vgw) do
  end
  autorequire(:aws_vgw) do
    self[:vgw]
  end
  newproperty(:cgw) do
  end
  autorequire(:aws_cgw) do
    self[:cgw]
  end
  validate do
  #  fail('vpc_id is required') if self[:vpc_id].nil?
  #  fail('vgw_id is required') if self[:vgw_id].nil?
  end
  newproperty(:type)
  newproperty(:routing)
  newproperty(:static_routes)
  newproperty(:tags)
end


text:
package com.johnsnowlabs.nlp.annotators.parser.typdep;

public class ConllData {

    private String form;
    private String lemma;
    private String uPos;

    public String getXPos() {
        return xPos;
    }

    public void setXPos(String xPos) {
        this.xPos = xPos;
    }

    public String getUPos() {
        return uPos;
    }

    public void setUPos(String uPos) {
        this.uPos = uPos;
    }

    private String xPos;
    private String deprel;
    private int head;
    private int begin;
    private int end;

    public String getForm() {
        return form;
    }

    public void setForm(String form) {
        this.form = form;
    }

    public String getLemma() {
        return lemma;
    }

    public void setLemma(String lemma) {
        this.lemma = lemma;
    }

    public String getDepRel() {
        return deprel;
    }

    public int getHead() {
        return head;
    }

    public void setHead(int head) {
        this.head = head;
    }

    public int getBegin() {
        return begin;
    }

    public void setBegin(int begin) {
        this.begin = begin;
    }

    public int getEnd() {
        return end;
    }

    public void setEnd(int end) {
        this.end = end;
    }

    public ConllData(String form, String lemma, String uPos, String xPos, String deprel, int head, int begin, int end) {
        this.form = form;
        this.lemma = lemma;
        this.uPos = uPos;
        this.xPos = xPos;
        this.deprel = deprel;
        this.head = head;
        this.begin = begin;
        this.end = end;
    }
}


text:
weak_symbol<uint32_t> abi_version("rust_abi_version");

uint32_t get_abi_version() {
    return (*abi_version == NULL) ? 0 : **abi_version;
}

namespace stack_walk {

#ifdef HAVE_DLFCN_H
std::string
frame::symbol() const {
    std::stringstream ss;

    Dl_info info;
    if (!dladdr((void *)ra, &info))
        ss << "??";
    else
        ss << info.dli_sname;

    ss << " @ " << std::hex << (uintptr_t)ra;
    return ss.str();
}
#else
std::string
frame::symbol() const {
    std::stringstream ss;
    ss << std::hex << (uintptr_t)ra;
    return ss.str();
}
#endif

std::vector<frame>
backtrace() {
    std::vector<frame> frames;

    // Ideally we would use the current value of EIP here, but there's no
    // portable way to get that and there are never any GC roots in our C++
    // frames anyhow.
    frame f(__builtin_frame_address(0), (void (*)())NULL);

    while (f.ra != END_OF_STACK_RA) {
        frames.push_back(f);
        f.next();
    }
    return frames;
}

std::string
symbolicate(const std::vector<frame> &frames) {
    std::stringstream ss;
    std::vector<frame>::const_iterator begin(frames.begin()),
                                       end(frames.end());
    while (begin != end) {
        ss << begin->symbol() << std::endl;
        ++begin;
    }
    return ss.str();
}

}   // end namespace stack_walk


text:
<?php namespace Gzero\Cms\ViewModels;

use Gzero\Core\ViewModels\UserViewModel;

class BlockViewModel {

    /** @var array */
    protected $data;

    /** @var array */
    protected $author;

    /** @var array */
    protected $translation;

    /** @var array */
    protected $translations;

    /** @var array */
    protected $allowedAttributes = [
        'id',
        'view',
        'region',
        'theme',
        'weight',
        'options',
        'is_active',
        'is_cacheable'
    ];

    /**
     * ContentPresenter constructor.
     *
     * @param array $data data to create presenter instance
     */
    public function __construct(array $data)
    {
        $this->data         = array_only($data, $this->allowedAttributes);
        $this->translations = array_get($data, 'translations', []);
        $this->author       = new UserViewModel(array_get($data, 'author', []));

        $this->translation = array_first($this->translations, function ($translation) {
            return $translation['language_code'] === app()->getLocale();
        }, [
            'title'         => null,
            'body'          => null,
            'custom_fields' => null
        ]);
    }

    /**
     * @return mixed
     */
    public function isActive()
    {
        return array_get($this->data, 'is_active', false);
    }

    /**
     * @return mixed
     */
    public function isCacheable()
    {
        return array_get($this->data, 'is_cacheable', false);
    }

    /**
     * @return mixed
     */
    public function hasTitle()
    {
        return !empty($this->title());
    }

    /**
     * @return mixed
     */
    public function hasBody()
    {
        return !empty($this->body());
    }

    /**
     * @return integer
     */
    public function id()
    {
        return array_get($this->data, 'id');
    }

    /**
     * @return string
     */
    public function view()
    {
        return array_get($this->data, 'view');
    }

    /**
     * @param string|null $language optional language code to search for
     *
     * @return string
     */
    public function title(string $language = null): ?string
    {
        if ($language === null) {
            return array_get($this->translation, 'title');
        }

        $translation = array_first($this->translations, function ($translation) use ($language) {
            return $translation['language_code'] === $language;
        });

        return array_get($translation, 'title');
    }

    /**
     * @param string|null $language optional language code to search for
     *
     * @return string
     */
    public function body(string $language = null): ?string
    {
        if ($language === null) {
            return array_get($this->translation, 'body');
        }

        $translation = array_first($this->translations, function ($translation) use ($language) {
            return $translation['language_code'] === $language;
        });

        return array_get($translation, 'body');
    }

    /**
     * @param string|null $language optional language code to search for
     *
     * @return string
     */
    public function customFields(string $language = null): ?string
    {
        if ($language === null) {
            return array_get($this->translation, 'custom_fields');
        }

        $translation = array_first($this->translations, function ($translation) use ($language) {
            return $translation['language_code'] === $language;
        });

        return array_get($translation, 'custom_fields');
    }

    /**
     * @param null $default default value if there is no theme
     *
     * @return string
     */
    public function theme($default = null)
    {
        return array_get($this->data, 'theme') ?: $default;
    }

    /**
     * @return string
     */
    public function region()
    {
        return array_get($this->data, 'region');
    }

    /**
     * @return string
     */
    public function weight()
    {
        return array_get($this->data, 'weight');
    }

    /**
     * @return string
     */
    public function options()
    {
        return array_get($this->data, 'options');
    }

    /**
     * This function returns author first and last name
     *
     * @return UserViewModel
     */
    public function author()
    {
        return optional($this->author);
    }

}


text:
package io.trivium.dep.org.iq80.leveldb;

/**
 * @author Hiram Chirino
 */
public class Range
{
    private final byte[] start;
    private final byte[] limit;

    public byte[] limit()
    {
        return limit;
    }

    public byte[] start()
    {
        return start;
    }

    public Range(byte[] start, byte[] limit)
    {
        Options.checkArgNotNull(start, "start");
        Options.checkArgNotNull(limit, "limit");
        this.limit = limit;
        this.start = start;
    }
}


text:
Android custom view for parallax effect

## How to use it

#### In layout:

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false">

        <ImageView
            android:id="@+id/background"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:scaleType="center"
            android:src="@drawable/img_background" />

        <your.package.views.ParallaxView
            android:id="@+id/parallax_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/img_parallax" />

    </FrameLayout>
#### In Activity:

    private ParallaxView mParallaxView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //...

        mParallaxView = (ParallaxView) findViewById(R.id.parallax_view);
        mParallaxView.init();
    }

    @Override
    protected void onResume() {
       mParallaxView.registerSensorListener();
        super.onResume();
    }

    @Override
    protected void onPause() {
        mParallaxView.unregisterSensorListener();
        super.onPause();
    }

----
## To create different layers of parallax views

#### In layout:

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false">

        <ImageView
            android:id="@+id/background"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:scaleType="center"
            android:src="@drawable/img_background" />

        <your.package.views.ParallaxView
            android:id="@+id/parallax_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/img_parallax" />

        <your.package.views.ParallaxView
            android:id="@+id/parallax_view_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/img_parallax_2" />

        <your.package.views.ParallaxView
            android:id="@+id/parallax_view_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/img_parallax_3" />

    </FrameLayout>
#### In Activity:

    private ParallaxView mParallaxView;
    private ParallaxView mParallaxView2;
    private ParallaxView mParallaxView3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //...

        mParallaxView = (ParallaxView) findViewById(R.id.parallax_view);
        mParallaxView2 = (ParallaxView) findViewById(R.id.parallax_view_2);
        mParallaxView3 = (ParallaxView) findViewById(R.id.parallax_view_3);

        initParallaxViews();
    }

    private void initParallaxViews(){
        mParallaxView.init();
        mParallaxView2.init();
        mParallaxView2.setMinimumMovedPixelsToUpdate(ParallaxView.DEFAULT_MIN_MOVED_PIXELS * 2);
        mParallaxView2.setMovementMultiplier(ParallaxView.DEFAULT_MOVEMENT_MULTIPLIER * 2);
        mParallaxView3.init();
        mParallaxView3.setMinimumMovedPixelsToUpdate(ParallaxView.DEFAULT_MIN_MOVED_PIXELS * 3);
        mParallaxView3.setMovementMultiplier(ParallaxView.DEFAULT_MOVEMENT_MULTIPLIER * 3);
    }

    @Override
    protected void onResume() {
        mParallaxView.registerSensorListener();
        mParallaxView2.registerSensorListener();
        mParallaxView3.registerSensorListener();
        super.onResume();
    }

    @Override
    protected void onPause() {
        mParallaxView.unregisterSensorListener();
        mParallaxView2.unregisterSensorListener();
        mParallaxView3.unregisterSensorListener();
        super.onPause();
    }


text:
package com.ravine.runebind.board;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.InputListener;
import com.ravine.runebind.RuneBind;

public class PlayerTab extends Pullout {

	public PlayerTab() {
		super(Location.bottom, 1024, 304, 0, -304);
		this.addListener(new InputListener() {
			private float oldX;
			@Override
			public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
				Gdx.app.log(RuneBind.LOG, "Pullout clicked");
				oldX = x;
				return true;
			}
			@Override
			public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
			}
			@Override
			public void touchDragged(InputEvent event, float x, float y, int pointer) {
				translate(x-oldX,0);
				checkBounds();
				outVec.x = getX();
				inVec.x = getX();
			}
		});
	}

	private void checkBounds() {
		if(getX() > 0) setX(0);
		if(getX() < -(getWidth()-getStage().getWidth())) setX(-(getWidth()-getStage().getWidth()));
	}

	public void act(float delta) {
		super.act(delta);
		wrapper.setPosition(getStage().getWidth()/2, getY()+h+16);
	}

	public void draw(SpriteBatch batch, float parentAlpha) {
		batch.draw(corner1R, getX(), getY() + (h-16));
		batch.draw(corner2R, getX() + w-16, getY() + (h-16));
		for(int y = 0; y < h; y+=16) {
			for(int x = 0; x < (y==(h-16)?w-32:w); x+=16) {
				if(y == (h-16)) {
					batch.draw(edge2R, getX() + (x+16), getY() + y);
				}else if(y != h) {
					if(x == 0) {
						batch.draw(edge1R, getX() + x, getY() + y);
					}else if(x == w-16) {
						batch.draw(edge3R, getX() + x, getY() + y);
					}else {
						batch.draw(middleR, getX() + x, getY() + y);
					}
				}
			}
		}
		wrapper.draw(batch, parentAlpha);

	}

}


text:
/**
 */
package CIM.IEC61970.Informative.InfOperations;

import CIM.IEC61968.Common.ActivityRecord;

import java.util.Date;

/**
 *
 * A representation of the model object 'Compliance Event'.
 *
 *
 *

 * The following features are supported:
 *

 *

 *
{@link CIM.IEC61970.Informative.InfOperations.ComplianceEvent#getComplianceType Compliance Type}

 *
{@link CIM.IEC61970.Informative.InfOperations.ComplianceEvent#getDeadline Deadline}

 *

 *
 * @see CIM.IEC61970.Informative.InfOperations.InfOperationsPackage#getComplianceEvent()
 * @model annotation="http://iec.ch/TC57/2009/CIM-schema-cim14 Documentation='Compliance events are used for reporting regulatory or contract compliance issues and/or variances. These might be created as a consequence of local business processes and associated rules. It is anticipated that this class will be customised extensively to meet local implementation needs.\nUse inherited \'category\' to indicate that, for example, expected performance will not be met or reported as mandated.'"
 *        annotation="http://langdale.com.au/2005/UML Profile\040documentation='Compliance events are used for reporting regulatory or contract compliance issues and/or variances. These might be created as a consequence of local business processes and associated rules. It is anticipated that this class will be customised extensively to meet local implementation needs.\nUse inherited \'category\' to indicate that, for example, expected performance will not be met or reported as mandated.'"
 *        annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='Compliance events are used for reporting regulatory or contract compliance issues and/or variances. These might be created as a consequence of local business processes and associated rules. It is anticipated that this class will be customised extensively to meet local implementation needs.\nUse inherited \'category\' to indicate that, for example, expected performance will not be met or reported as mandated.' Profile\040documentation='Compliance events are used for reporting regulatory or contract compliance issues and/or variances. These might be created as a consequence of local business processes and associated rules. It is anticipated that this class will be customised extensively to meet local implementation needs.\nUse inherited \'category\' to indicate that, for example, expected performance will not be met or reported as mandated.'"
 * @generated
 */
public interface ComplianceEvent extends ActivityRecord {
	/**
	 * Returns the value of the 'Compliance Type' attribute.
	 *
	 *

	 * If the meaning of the 'Compliance Type' attribute isn't clear,
	 * there really should be more of a description here...
	 *

	 *
	 * @return the value of the 'Compliance Type' attribute.
	 * @see #setComplianceType(String)
	 * @see CIM.IEC61970.Informative.InfOperations.InfOperationsPackage#getComplianceEvent_ComplianceType()
	 * @model required="true"
	 *        annotation="http://iec.ch/TC57/2009/CIM-schema-cim14 Documentation='Type of compliance event indicating, for example, types of regulatory and/or contractual compliance events where expected performance will not be met or reported as mandated.'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='Type of compliance event indicating, for example, types of regulatory and/or contractual compliance events where expected performance will not be met or reported as mandated.'"
	 * @generated
	 */
	String getComplianceType();

	/**
	 * Sets the value of the '{@link CIM.IEC61970.Informative.InfOperations.ComplianceEvent#getComplianceType Compliance Type}' attribute.
	 *
	 *
	 * @param value the new value of the 'Compliance Type' attribute.
	 * @see #getComplianceType()
	 * @generated
	 */
	void setComplianceType(String value);

	/**
	 * Returns the value of the 'Deadline' attribute.
	 *
	 *

	 * If the meaning of the 'Deadline' attribute isn't clear,
	 * there really should be more of a description here...
	 *

	 *
	 * @return the value of the 'Deadline' attribute.
	 * @see #setDeadline(Date)
	 * @see CIM.IEC61970.Informative.InfOperations.InfOperationsPackage#getComplianceEvent_Deadline()
	 * @model required="true"
	 *        annotation="http://iec.ch/TC57/2009/CIM-schema-cim14 Documentation='The deadline for compliance.'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='The deadline for compliance.'"
	 * @generated
	 */
	Date getDeadline();

	/**
	 * Sets the value of the '{@link CIM.IEC61970.Informative.InfOperations.ComplianceEvent#getDeadline Deadline}' attribute.
	 *
	 *
	 * @param value the new value of the 'Deadline' attribute.
	 * @see #getDeadline()
	 * @generated
	 */
	void setDeadline(Date value);

} // ComplianceEvent


text:
<?php namespace Anomaly\EditorFieldType;

use Anomaly\Streams\Platform\Application\Application;
use Anomaly\Streams\Platform\Entry\Contract\EntryInterface;
use Anomaly\Streams\Platform\Entry\EntryTranslationsModel;
use Illuminate\Filesystem\Filesystem;

/**
 * Class EditorFieldTypeStorage
 *
 * @link   http://pyrocms.com/
 * @author PyroCMS, Inc. <support@pyrocms.com>
 * @author Ryan Thompson <ryan@pyrocms.com>
 */
class EditorFieldTypeStorage
{

    /**
     * The editor field type.
     *
     * @var EditorFieldType
     */
    protected $fieldType;

    /**
     * The application instance.
     *
     * @var Application
     */
    protected $application;

    /**
     * The filesystem.
     *
     * @var Filesystem
     */
    protected $files;

    /**
     * Create a new EditorFieldTypeStorage instance.
     *
     * @param EditorFieldType $fieldType
     * @param Application     $application
     * @param Filesystem      $files
     */
    public function __construct(EditorFieldType $fieldType, Application $application, Filesystem $files)
    {
        $this->files       = $files;
        $this->fieldType   = $fieldType;
        $this->application = $application;
    }

    /**
     * Get the directory.
     *
     * @return null|string
     */
    public function directory()
    {
        $entry = $this->fieldType->getEntry();

        /**
         * We must have an entry with ID.
         */
        if ($entry === null || !is_object($entry) || !$entry->getId()) {
            return null;
        }

        /**
         * We must have an entry / translation.
         */
        if (!$entry instanceof EntryInterface && !$entry instanceof EntryTranslationsModel) {
            return null;
        }

        /**
         * By default name the directory after
         * the stream namespace, slug and entry ID.
         */
        $slug      = $entry->getStreamSlug();
        $namespace = $entry->getStreamNamespace();
        $directory = $entry->getEntryId();

        return "{$namespace}/{$slug}/{$directory}";
    }

    /**
     * Return the path.
     *
     * @return string
     */
    public function path()
    {
        $directory = $this->directory();
        $filename  = $this->filename();

        if (!$directory || !$filename) {
            return null;
        }

        return "{$directory}/{$filename}";
    }

    /**
     * Get the storage path.
     *
     * @return null|string
     */
    public function storagePath()
    {
        if (!$path = $this->path()) {
            return null;
        }

        return $this->application->getStoragePath($path);
    }

    /**
     * Get the view path.
     *
     * @return string
     */
    public function viewPath()
    {
        if (!$path = $this->path()) {
            return null;
        }

        return 'storage::' . str_replace(['.html', '.twig'], '', $path);
    }

    /**
     * Get the asset path.
     *
     * @return string
     */
    public function assetPath()
    {
        if (!$path = $this->path()) {
            return null;
        }

        return 'storage::' . $path;
    }

    /**
     * Get the storage filename.
     *
     * @return string
     */
    public function filename()
    {
        $entry = $this->fieldType->getEntry();

        /**
         * We must have an entry with ID like upper in `directories()`
         */
        if ($entry === null || !is_object($entry) || !$entry->getId()) {
            return null;
        }

        return trim(
                $this->fieldType->getField() . '_' . $this->fieldType->getLocale(),
                '_'
            ) . '.' . $this->fieldType->extension();
    }

    /**
     * Cleanup the storage file.
     */
    public function cleanup()
    {
        $path = $this->fieldType->getStoragePath();

        if ($path && $this->files->exists($path)) {
            $this->files->delete($path);
        }
    }
}