diff --git a/data/corefork.telegram.org/api/end-to-end/video-calls.html b/data/corefork.telegram.org/api/end-to-end/video-calls.html new file mode 100644 index 0000000000..3561fafe1d --- /dev/null +++ b/data/corefork.telegram.org/api/end-to-end/video-calls.html @@ -0,0 +1,215 @@ + + + + + End-to-End Encrypted Voice and Video Calls + + + + + + + + + + + + + +
+ +
+
+
+ +

End-to-End Encrypted Voice and Video Calls

+ +

This article describes the end-to-end encryption used for Telegram voice and video calls.

+
Related Articles
+

+ +
+

Establishing Calls

+

Before a call is ready, some preliminary actions have to be performed. The calling party needs to contact the party to be called and check whether it is ready to accept the call. Besides that, the parties have to negotiate the protocols to be used, learn the IP addresses of each other or of the Telegram relay servers to be used (so-called reflectors), and generate a one-time encryption key for this voice call with the aid of Diffie--Hellman key exchange. All of this is accomplished in parallel with the aid of several Telegram API methods and related notifications. This document covers details related to key generation, encryption and security.

+

Key Generation

+

The Diffie-Hellman key exchange, as well as the whole protocol used to create a new voice call, is quite similar to the one used for Secret Chats. We recommend studying the linked article before proceeding.

+

However, we have introduced some important changes to facilitate the key verification process. Below is the entire exchange between the two communicating parties, the Caller (A) and the Callee (B), through the Telegram servers (S).

+
    +
  • A executes messages.getDhConfig to find out the 2048-bit Diffie-Hellman prime p and generator g. The client is expected to check whether p is a safe prime and perform all the security checks necessary for secret chats.
  • +
  • A chooses a random value of a, 1 < a < p-1, and computes g_a:=power(g,a) mod p (a 256-byte number) and g_a_hash:=SHA256(g_a) (32 bytes long).
  • +
  • A invokes (sends to server S) phone.requestCall, which has the field g_a_hash:bytes, among others. For this call, this field is to be filled with g_a_hash, not g_a itself.
  • +
  • The Server S performs privacy checks and sends an updatePhoneCall update with a phoneCallRequested constructor to all of B's active devices. This update, apart from the identity of A and other relevant parameters, contains the g_a_hash field, filled with the value obtained from A.
  • +
  • B accepts the call on one of their devices, stores the received value of g_a_hash for this instance of the voice call creation protocol, chooses a random value of b, 1 < b < p-1, computes g_b:=power(g,b) mod p, performs all the required security checks, and invokes the phone.acceptCall method, which has a g_b:bytes field (among others), to be filled with the value of g_b itself (not its hash).
  • +
  • The Server S sends an updatePhoneCall with the phoneCallDiscarded constructor to all other devices B has authorized, to prevent accepting the same call on any of the other devices. From this point on, the server S works only with that of B's devices which has invoked phone.acceptCall first.
  • +
  • The Server S sends to A an updatePhoneCall update with phoneCallAccepted constructor, containing the value of g_b received from B.
  • +
  • A performs all the usual security checks on g_b and a, computes the Diffie--Hellman key key:=power(g_b,a) mod p and its fingerprint key_fingerprint:long, equal to the lower 64 bits of SHA1(key), the same as with secret chats. Then A invokes the phone.confirmCall method, containing g_a:bytes and key_fingerprint:long.
  • +
  • The Server S sends to B an updatePhoneCall update with the phoneCall constructor, containing the value of g_a in g_a_or_b:bytes field, and key_fingerprint:long
  • +
  • At this point B receives the value of g_a. It checks that SHA256(g_a) is indeed equal to the previously received value of g_a_hash, performs all the usual Diffie-Hellman security checks, and computes the key key:=power(g_a,b) mod p and its fingerprint, equal to the lower 64 bits of SHA1(key). Then it checks that this fingerprint equals the value of key_fingerprint:long received from the other side, as an implementation sanity check.
  • +
+

At this point, the Diffie--Hellman key exchange is complete, and both parties have a 256-byte shared secret key key which is used to encrypt all further exchanges between A and B.

+

It is of paramount importance to accept each update only once for each instance of the key generation protocol, discarding any duplicates or alternative versions of already received and processed messages (updates).

+

Encryption

+
+

This document describes encryption in voice and video calls as implemented in Telegram apps with versions 7.0 and above. See this document for details on encryption used in voice calls in app versions released before August 14, 2020.

+
+

The Telegram Voice and Video Call Library uses an optimized version of MTProto 2.0 to send and receive packets, consisting of one or more end-to-end encrypted messages of various types (ice candidates list, video formats, remote video status, audio stream data, video stream data, message ack or empty).

+

This document describes only the encryption process, leaving out encoding and network-dependent parts.

+

The library starts working with:

+
    +
  • An encryption key key shared between the parties, as generated above.
  • +
  • Information whether the call is outgoing or incoming.
  • +
  • Two data transfer channels: signaling, offered by the Telegram API, and transport based on WebRTC.
  • +
+

Both data transfer channels are unreliable (messages may get lost), but signaling is slower and more reliable.

+

Encrypting Call Data

+

The body of a packet (decrypted_body) consists of several messages and their respective seq numbers concatenated together.

+
    +
  • decrypted_body = message_seq1 + message_body1 + message_seq2 + message_body2
  • +
+

Each decrypted_body is unique because no two seq numbers of the first message can be the same. If only old messages need to be re-sent, an empty message with new unique seq is added to the packet first.

+

The encryption key key is used to compute a 128-bit msg_key and then a 256-bit aes_key and a 128-bit aes_iv:

+
    +
  • msg_key_large = SHA256 (substr(key, 88+x, 32) + decrypted_body);
  • +
  • msg_key = substr (msg_key_large, 8, 16);
  • +
  • sha256_a = SHA256 (msg_key + substr (key, x, 36));
  • +
  • sha256_b = SHA256 (substr (key, 40+x, 36) + msg_key);
  • +
  • aes_key = substr (sha256_a, 0, 8) + substr (sha256_b, 8, 16) + substr (sha256_a, 24, 8);
  • +
  • aes_iv = substr (sha256_b, 0, 4) + substr (sha256_a, 8, 8) + substr (sha256_b, 24, 4);
  • +
+

x depends on whether the call is outgoing or incoming and on the connection type:

+
    +
  • x = 0 for outgoing + transport
  • +
  • x = 8 for incoming + transport
  • +
  • x = 128 for outgoing + signaling
  • +
  • x = 136 for incoming + signaling
  • +
+

This allows apps to decide which packet types will be sent to which connections and work in these connections independently (with each having its own seq counter).

+

The resulting aes_key and aes_iv are used to encrypt decrypted_body:

+
    +
  • encrypted_body = AES_CTR (decrypted_body, aes_key, aes_iv)
  • +
+

The packet that gets sent consists of msg_key and encrypted_body:

+
    +
  • packet_bytes = msg_key + encrypted_body
  • +
+

When received, the packet gets decrypted using key and msg_key, after which msg_key is checked against the relevant SHA256 substring. If the check fails, the packet must be discarded.

+

Protecting Against Replay Attacks

+

Each of the peers maintains its own 32-bit monotonically increasing counter for outgoing messages, seq, starting with 1. This seq counter is prepended to each sent message and increased by 1 for each new message. No two seq numbers of the first message in a packet can be the same. If only old messages need to be re-sent, an empty message with a new unique seq is added to the packet first. When the seq counter reaches 2^30, the call must be aborted. Each peer stores seq values of all the messages it has received (and processed) which are larger than max_received_seq - 64, where max_received_seq is the largest seq number received so far.

+

If a packet is received, the first message of which has a seq that is smaller or equal to max_received_seq - 64 or its seq had already been received, the message is discarded. Otherwise, the seq values of all incoming messages are memorized and max_received_seq is adjusted. This guarantees that no two packets will be processed twice.

+

Key Verification

+

To verify the key, and ensure that no MITM attack is taking place, both parties concatenate the secret key key with the value g_a of the Caller ( A ), compute SHA256 and use it to generate a sequence of emoticons. More precisely, the SHA256 hash is split into four 64-bit integers; each of them is divided by the total number of emoticons used (currently 333), and the remainder is used to select specific emoticons. The specifics of the protocol guarantee that comparing four emoticons out of a set of 333 is sufficient to prevent eavesdropping (MiTM attack on DH) with a probability of 0.9999999999.

+

This is because instead of the standard Diffie-Hellman key exchange which requires only two messages between the parties:

+
    +
  • A->B : (generates a and) sends g_a := g^a
  • +
  • B->A : (generates b and true key (g_a)^b, then) sends g_b := g^b
  • +
  • A : computes key (g_b)^a
  • +
+

we use a three-message modification thereof that works well when both parties are online (which also happens to be a requirement for voice calls):

+
    +
  • A->B : (generates a and) sends g_a_hash := hash(g^a)
  • +
  • B->A : (stores g_a_hash, generates b and) sends g_b := g^b
  • +
  • A->B : (computes key (g_b)^a, then) sends g_a := g^a
  • +
  • B : checks hash(g_a) == g_a_hash, then computes key (g_a)^b
  • +
+

The idea here is that A commits to a specific value of a (and of g_a) without disclosing it to B. B has to choose its value of b and g_b without knowing the true value of g_a, so that it cannot try different values of b to force the final key (g_a)^b to have any specific properties (such as fixed lower 32 bits of SHA256(key)). At this point, B commits to a specific value of g_b without knowing g_a. Then A has to send its value g_a; it cannot change it even though it knows g_b now, because the other party B would accept only a value of g_a that has a hash specified in the very first message of the exchange.

+

If some impostor is pretending to be either A or B and tries to perform a Man-in-the-Middle Attack on this Diffie--Hellman key exchange, the above still holds. Party A will generate a shared key with B -- or whoever pretends to be B -- without having a second chance to change its exponent a depending on the value g_b received from the other side; and the impostor will not have a chance to adapt his value of b depending on g_a, because it has to commit to a value of g_b before learning g_a. The same is valid for the key generation between the impostor and the party B.

+

The use of hash commitment in the DH exchange constrains the attacker to only one guess to generate the correct visualization in their attack, which means that using just over 33 bits of entropy represented by four emoji in the visualization is enough to make a successful attack highly improbable.

+
+

For a slightly more user-friendly explanation of the above see: How are calls authenticated?

+
+ +
+ +
+
+ +
+ + + + + + diff --git a/data/corefork.telegram.org/bots/inline.html b/data/corefork.telegram.org/bots/inline.html new file mode 100644 index 0000000000..1ff0aeee96 --- /dev/null +++ b/data/corefork.telegram.org/bots/inline.html @@ -0,0 +1,181 @@ + + + + + Inline Bots + + + + + + + + + + + + + +
+ +
+
+
+ +

Inline Bots

+ +
+ +
+ +
+

Beyond sending commands in private messages or groups, users can interact with your bot via inline queries. If inline queries are enabled, users can call your bot by typing its username and a query in the text input field in any chat. The query is sent to your bot in an update. This way, people can request content from your bot in any of their chats, groups, or channels without sending any messages at all.

+
+
+
+

To enable this option, send the /setinline command to @BotFather and provide the placeholder text that the user will see in the input field after typing your bot’s name.

+
+

See the Bot API Manual for the relevant methods and objects.

+
+

Inline results

+

Inline bots support all types of content available in Telegram (20 in all). They are capable of sending stickers, videos, music, locations, documents and more.

+
+

+
+

Clients can display the results with vertical or horizontal scrolling, depending on the type of content:

+
+
<a href="/file/811140049/2/M2mzqjZoiUw/2d872f0df2aed182d6" target="_blank"><img src="/file/811140049/2/M2mzqjZoiUw/2d872f0df2aed182d6" title="Vertical scrolling"  style="width: 295px; padding: 0px 20px;" /></a>
+

+
+
+

As soon as the user taps on an item, it's immediately sent to the recipient, and the input field is cleared.

+

Switching inline/PM modes

+

Some inline bots can benefit from an initial setup process, like connecting them to an account on an external service (e.g., YouTube). We've added an easy way of switching between the private chat with a bot and whatever chat the user wants to share inline results in.

+
+

+
+

You can display a special 'Switch to PM' button above the inline results (or instead of them). This button will open a private chat with the bot and pass a parameter of your choosing, so that you can prompt the user for the relevant setup actions. Once done, you can use an inline keyboard with a switch_inline_query button to send the user back to the original chat.

+

Sample bots +@youtube – Shows a 'Sign in to YouTube' button, then suggests personalized results.

+
+

Manual: Switch to PM

+
+

Location-based results

+

Inline bots can request location data from their users. Use the /setinlinegeo command with @BotFather to enable this. Your bot will ask the user for permission to access their location whenever they send an inline request.

+

Sample bot +@foursquare – This bot will ask for permission to access the user's location, then provide geo-targeted results.

+

Spreading virally

+

Messages sent with the help of your bot will show its username next to the sender's name.

+
+
<a href="/file/811140680/2/P3E5RVFzGZ8/5ae6f9c9610b0cbace" target="_blank"><img src="/file/811140680/2/P3E5RVFzGZ8/5ae6f9c9610b0cbace" title="Gif shared via a bot" style="width: 295px; padding: 0px 20px;" /></a>
+

+



+

When a user taps on the bot username in the message header, the mention is automatically inserted into the input field. Entering the @ symbol in the input field brings up a list of suggestions, featuring recently used inline bots.

+

Collecting feedback

+

To know which of the provided results your users are sending to their chat partners, send @Botfather the /setinlinefeedback command. With this enabled, you will receive updates on the results chosen by your users.

+

Please note that this can create load issues for popular bots – you may receive more results than actual requests due to caching (see the cache_time parameter in answerInlineQuery). For these cases, we recommend adjusting the probability setting to receive 1/10, 1/100 or 1/1000 of the results.

+

Inline bot samples

+

Here are some sample inline bots, in case you’re curious to see one in action. Try any of these: +@gif – GIF search +@vid – Video search +@pic – Yandex image search +@bing – Bing image search +@wiki – Wikipedia search +@imdb – IMDB search +@bold – Make bold, italic or fixed sys text

+

NEW +@youtube - Connect your account for personalized results +@music - Search and send classical music +@foursquare – Find and send venue addresses +@sticker – Find and send stickers based on emoji

+ +
+ +
+
+ +
+ + + + + + + + diff --git a/data/corefork.telegram.org/constructor/decryptedMessageActionFlushHistory.html b/data/corefork.telegram.org/constructor/decryptedMessageActionFlushHistory.html new file mode 100644 index 0000000000..1ca1086ed4 --- /dev/null +++ b/data/corefork.telegram.org/constructor/decryptedMessageActionFlushHistory.html @@ -0,0 +1,133 @@ + + + + + decryptedMessageActionFlushHistory + + + + + + + + + + + + + +
+ +
+
+
+ +

decryptedMessageActionFlushHistory

+ +

The entire message history has been deleted.

+

+ +
+
===8===
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;

+

Parameters

+

This constructor does not require any parameters.

+

Type

+

DecryptedMessageAction

+ +
+ +
+
+ +
+ + + + + + diff --git a/data/corefork.telegram.org/constructor/decryptedMessageActionScreenshotMessages.html b/data/corefork.telegram.org/constructor/decryptedMessageActionScreenshotMessages.html new file mode 100644 index 0000000000..7e71ae23ed --- /dev/null +++ b/data/corefork.telegram.org/constructor/decryptedMessageActionScreenshotMessages.html @@ -0,0 +1,148 @@ + + + + + decryptedMessageActionScreenshotMessages + + + + + + + + + + + + + +
+ +
+
+
+ +

decryptedMessageActionScreenshotMessages

+ +

A screenshot was taken.

+

+ +
+
===8===
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;

+

Parameters

+ + + + + + + + + + + + + + + +
NameTypeDescription
random_idsVector<long>List of affected message ids (that appeared on the screenshot)
+

Type

+

DecryptedMessageAction

+ +
+ +
+
+ +
+ + + + + + diff --git a/data/corefork.telegram.org/mtproto/TL-formal.html b/data/corefork.telegram.org/mtproto/TL-formal.html new file mode 100644 index 0000000000..1bccc7538d --- /dev/null +++ b/data/corefork.telegram.org/mtproto/TL-formal.html @@ -0,0 +1,319 @@ + + + + + TL-formal + + + + + + + + + + + + + +
+ +
+
+
+ +

TL-formal

+ +

See also TL Language. +For the syntax of declaring combinators, see in article Formal declaration of TL combinators. +For the syntax of patterns, see in article Formal declaration of TL patterns.

+

Tokens

+

Comments are the same as in C/C++. They are removed by a lexical parser (for example, being replaced by a single space). Whitespace separates tokens. Except for string constants, tokens cannot contain spaces.

+

Character classes:

+
+

lc-letter ::= a | b | ... | z
+uc-letter ::= A | B | ... | Z
+digit ::= 0 | 1 | ... | 9
+hex-digit ::= digit | a | b | c | d | e | f
+underscore ::= _
+letter ::= lc-letter | uc-letter
+ident-char ::= letter | digit | underscore

+
+

Simple identifiers and keywords:

+
+

lc-ident ::= lc-letter { ident-char }
+uc-ident ::= uc-letter { ident-char }
+namespace-ident ::= lc-ident
+lc-ident-ns ::= [ namespace-ident . ] lc-ident
+uc-ident-ns ::= [ namespace-ident . ] uc-ident
+lc-ident-full ::= lc-ident-ns [ # hex-digit *8 ]

+
+

Tokens:

+
+

underscore ::= _
+colon ::= :
+semicolon ::= ;
+open-par ::= (
+close-par ::= )
+open-bracket ::= [
+close-bracket ::= ]
+open-brace ::= {
+close-brace ::= }
+triple-minus ::= ---
+nat-const ::= digit { digit }
+lc-ident-full
+lc-ident
+uc-ident-ns
+equals ::= =
+hash ::= #
+question-mark ::= ?
+percent ::= %
+plus ::= +
+langle ::= <
+rangle ::= >
+comma ::= ,
+dot ::= .
+asterisk ::= *
+excl-mark ::= !
+Final-kw ::= Final
+New-kw ::= New
+Empty-kw ::= Empty

+
+

Final is a reserved keyword, e.g. a special token. Words like Type are not keywords, rather they are identifiers with preset values.

+

Tokens consisting of one or more constant symbols shall be hereafter denoted using terms in quotation marks (for example, --- replaces triple-minus).

+

Syntax

+

General syntax of a TL program

+

Syntactically, a TL program consists of a stream of tokens (separated by spaces, which are ignored at this stage). General program structure:

+
+

TL-program ::= constr-declarations { --- functions --- fun-declarations | --- types --- constr-declarations }

+
+

Here the constructor- and function declarations are nearly identical in their syntax (they are both combinators):

+
+

constr-declarations ::= { declaration }
+fun-declarations ::= { declaration }

+
+

There are various declarations:

+
+

declaration ::= combinator-decl | partial-app-decl | final-decl

+
+

Before explaining how declarations of combinators, partial applications, and type finalization are given, we will introduce additional syntactical categories:

+

Syntactical categories and constructions

+

The concept of an expression (expr) is important. There are type expressions (type-expr) and numeric expressions (nat-expr). However, they are defined the same way. Their correctness as type- or numeric expressions is checked when the type of the analyzed expression is checked.

+
+

type-expr ::= expr
+nat-expr ::= expr
+expr ::= { subexpr }
+subexpr ::= term | nat-const + subexpr | subexpr + nat-const
+term ::= ( expr ) | type-ident | var-ident | nat-const | % term | type-ident < expr { , expr } >
+type-ident ::= boxed-type-ident | lc-ident-ns | #
+boxed-type-ident ::= uc-ident-ns
+var-ident ::= lc-ident | uc-ident
+type-term ::= term
+nat-term ::= term

+
+

Note that writing E = E_1 E_2 ... E_n in the expression for expr means applying the function E_1 to the argument E_2, applying the result to E_3, etc. Specifically, E_1 E_2 E_3 = (E_1 E_2) E_3. A solitary # is included in type-ident, because it is actually the identifier for a built-in type (# alias nat).

+

The expression E<E_1,...,E_n> is syntactic sugar for (E (E_1) ... (E_n)), i.e. both expressions are transformed into the same internal representation.

+

Combinator declarations

+
+

combinator-decl ::= full-combinator-id { opt-args } { args } = result-type ;
+full-combinator-id ::= lc-ident-full | _
+combinator-id ::= lc-ident-ns | _
+opt-args ::= { var-ident { var-ident } : [excl-mark] type-expr }
+args ::= var-ident-opt : [ conditional-def ] [ ! ] type-term
+args ::= [ var-ident-opt : ] [ multiplicity *] [ { args } ]
+args ::= ( var-ident-opt { var-ident-opt } : [!] type-term )
+args ::= [ ! ] type-term
+multiplicity ::= nat-term
+var-ident-opt ::= var-ident | _
+conditional-def ::= var-ident [ . nat-const ] ?
+result-type ::= boxed-type-ident { subexpr }
+result-type ::= boxed-type-ident < subexpr { , subexpr } >

+
+

See Formal declaration of TL combinators for a description of what exactly this means. Here we will only note that when declaring the type of a combinator’s next argument, only the names of previously arranged (more to the left) arguments of the same combinator may be used as variables, but when declaring the result type you can use all of its parameters (of type Type and #).

+

Note that the names of combinators declared in this way may be used in TL itself only as the corresponding bare types. The only combinators that appear in declarations are built-in: O : # and S : # -> #.

+

There are also “pseudo-declarations” that are allowed only to declare built-in types (such as int ? = Int;):

+
+

builtin-combinator-decl ::= full-combinator-id ? = boxed-type-ident ;

+
+

Partial applications (patterns)

+
+

partial-app-decl ::= partial-type-app-decl | partial-comb-app-decl
+partial-type-app-decl ::= boxed-type-ident subexpr { subexpr } ; | boxed-type-ident < expr { , expr } > ;
+partial-comb-app-decl ::= combinator-id subexpr { subexpr } ;

+
+

See Formal declaration of TL patterns.

+

Type finalization

+
+

final-decl ::= New boxed-type-ident ; | Final boxed-type-ident ; | Empty boxed-type-ident ;

+
+

This type of declaration means that there must not be any constructor for the indicated type: before the declaration for New and after the declaration for Final. The keyword Empty enables both effects.

+

Predefined identifiers

+

Nearly all predefined identifiers may be given using the following schema (usually located in common.tl):

+
+

/////
+//
+// Common Types
+//
+/////

+

// Built-in types
+int ? = Int;
+long ? = Long;
+double ? = Double;
+string ? = String;

+

// Boolean emulation
+boolFalse = Bool;
+boolTrue = Bool;

+

// Boolean for diagonal queries
+boolStat statTrue:int statFalse:int statUnknown:int = BoolStat;

+

// Vector
+vector {t:Type} # [t] = Vector t;
+tuple {t:Type} {n:#} [t] = Tuple t n;
+vectorTotal {t:Type} total_count:int vector:%(Vector t) = VectorTotal t;

+

/////
+//
+// Result- (Maybe-) types
+//
+/////

+

resultFalse {t:Type} = Maybe t;
+resultTrue {t:Type} result:t = Maybe t;

+

pair {X:Type} {Y:Type} a:X b:Y = Pair X Y;
+map {X:Type} {Y:Type} key:X value:Y = Map X Y;

+

Empty False;
+true = True;

+

unit = Unit;

+
+
    +
  • +

    Predefined identifier Type: This type signifies the type of all types. It is usually used to specify the types of optional parameters in the constructors of polymorphic types. If strongly desired, it can be used in its own right, but this is very rarely needed in practice.

    +
  • +
  • +

    Identifier #: This type is used to specify a special type of nonnegative integers in the range from 0 to 2^31-1; its main purpose is the same as that of Type. There are two built-in constructors: O : # and S : # -> # (“null” and “next number”, respectively), which work as if # was defined using the schema

    +
  • +
+
+

O = #;
+S # = #;

+
+
    +
  • +

    Identifier Tuple: Type -> # -> Type denotes a set of the specified number of values of the indicated type. In other words, Tuple X n means “a set of n values of type X".

    +
  • +
  • +

    The typeBool, with two constructors boolTrue and boolFalse, is used to transmit Boolean values.

    +
  • +
  • +

    The constructor-less type False may be used instead of undeclared or invalid types in the construction of a TL schema, because any attempt to (de)serialize a value of type False will produce an error. Usage Example:

    +
  • +
+
+

user {flags:#} id:flags.0?string first_name:flags.1?string last_name:flags.2?string reserved3:flags.3?False reserved4:flags.4?False = User flags;
+user_present {flags:#} info:%(User flags) = UserInfo flags;
+user_absent {flags:#} = UserInfo flags;
+getUser flags:# id:int = !UserInfo flags;

+
+

In the future, bits 3 and 4 in the flags field may be used to transmit new fields after changing the names and types of the reserved3 and reserved4 fields. This will change the user constructor’s number, but this isn’t too important, since the User flags type is only used as a bare type. Transmitting bits 3 or 4 in the flags field in a getUser query before these fields have actually been defined will lead to an error in the (de)serialization of the request.

+
    +
  • The type True with a single null constructor true plays a role similar to the void type in C/C++. It is especially useful as a bare type %True, alias true, because its serialization has zero length. For example, the first_name:flags.1?string constructor used above is in fact shorthand for (the as-yet unsupported) alternative-type general constructor first_name:(flags.1?string:true).
  • +
+

When directly used in a conditional field it may simply indicate the presence (absence) of a certain parameter with void type. +If the conditional field exists, the associated parameter will not be populated; the conditional field simply exists and the existance value can be used to perform certain operations, example:

+
user {flags:#} id:flags.0?string first_name:flags.1?string last_name:flags.2?string bot:flags.3?true reserved4:flags.4?False = User flags;
+

If bit 3 of the flags parameter isn't set, the user is a normal user. +If bit 3 of the flags parameter is set, this indicates that the specified user is a bot: however, during deserialization, the bot parameter must not be assigned any value, since true is actually a void type.

+
    +
  • The typeUnit with a single null constructor Unit is similar to the previous type.
  • +
+

ANTLR definition

+

An ANLTR definition of TL grammar can be found here ».

+ +
+ +
+
+ +
+ + + + + + diff --git a/data/corefork.telegram.org/mtproto/TL-polymorph.html b/data/corefork.telegram.org/mtproto/TL-polymorph.html new file mode 100644 index 0000000000..658321fb15 --- /dev/null +++ b/data/corefork.telegram.org/mtproto/TL-polymorph.html @@ -0,0 +1,170 @@ + + + + + Polymorphism in TL + + + + + + + + + + + + + +
+ +
+
+
+ +

Polymorphism in TL

+ +

It should be noted that in the TL schema of the overwhelming majority of API calls the use of polymorphic types is restricted to the Vector type. Nevertheless, having a view of the big picture is still helpful.

+

Ordinary inductive types

+

For example, let us consider the IntList, which is defined as follows:

+
int_cons hd:int tl:IntList = IntList;
+int_nil = IntList;
+

The “int_cons” and “int_nil” constructors as well as the “IntList” type itself are expressions of the following types (writing A : X means that A is an expression of type X):

+
IntList : Type;
+int_cons : int -> IntList -> IntList;
+int_nil : IntList;
+

The keyword Type is used to denote the type of all types. Note that Type is not Object (Object is the type of all terms). +Here is alternative syntax that could be used in some other functional programming language (but not in TL):

+
NewType IntList :=
+| int_cons hd:int tl:IntList
+| int_nil
+EndType
+

Polymorphic type

+

TL supports the following version (curly brackets indicate optional fields, see below):

+
cons {X:Type} hd:X tl:(List X) = List X;
+nil {X:Type} = List X
+

Here is an alternative formulation in other functional languages with dependent types:

+
NewType List {X:Type} :=
+| cons {X:Type} hd:X tl:(List X)
+| nil {X:Type}
+EndType
+

In any event, these variations are equivalent to one another from the point of view of the formal theory of types and lead to the definition of the following terms:

+
List : Type -> Type;
+cons : forall (X:Type), X -> List X -> List X;
+nil : forall (X:Type), X -> List X;
+

In each case, remember that writing “A -> B” is shorthand for “forall (x : A), B” for any variable x not entering into A and B. For example, the “cons” type could be written as follows:

+
cons : forall (X:Type), forall (hd : X), forall (tl : List X), List X
+

or more compactly:

+
cons : forall (X : Type) (hd : X) (tl : List X), List X
+

See Calculus of constructions. Examples of functional languages with dependent types, which support similar constructions are Coq and Agda.

+

In this case, the entry after a universal quantifier proves to be more content-related than that after an arrow, because the name of a variable bound by the quantifier is used to transmit the name of the corresponding field in the constructor, even if this variable is not used anywhere as it pertains to the expression under the quantifier. Structurally, all of these entries of the “cons” type are equivalent.

+

Serialization of types (values of type Type)

+

As we can see, to serialize a value of type List X, which has been obtained by applying the combinator “cons X:Type hd:X tl:(List X) = List X”, we need to:

+
    +
  1. serialize the name of the “cons” combinator into a 32-bit number;
  2. +
  3. serialize X (as a type, i.e. as a value of type Type) if X is a required parameter;
  4. +
  5. serialize the head of the list (hd) as a value of type X;
  6. +
  7. serialize the tail of the list as a value of the polymorphic type List X.
  8. +
+

In the first step, the natural question is which string exactly will be used to calculate the CRC32. It is proposed to take "cons X:Type hd:X tl:List X = List X” without the terminating semicolon and without any parentheses (closed type expressions are unambiguously reconstructed based on their construction’s prefix).

+

In the last step, we recursively resolve the very same problem of serializing a value of type List X; we will consider it resolved based on the assumption of induction in the construction of the value being serialized. We will similarly consider the third step understandable (induction in the construction of the value being serialized).

+

We still need to describe how to transmit (serialize) types, e.g. values of type Type. Types in TL schemas currently appear only as constructors’ optional parameters and are therefore never serialized explicitly. Rather, their values are inferred from the previously known type of the value being serialized.

+

For completeness we will describe how it would be possible to serialize types (values of type Type). However, keep in mind that for now this information is not useful. See Type serialization.

+

Optional arguments in polymorphic constructors

+

It was stated above that any subset of (the first few) parameters of any constructor can be identified as optional (by enclosing their declarations in curly brackets), but this is not actually entirely accurate. First, these optional parameters can only be of type Type or # (natural numbers). Second, optional parameters must share the return value’s type, otherwise their value cannot be determined.

+

Note that @'''constr-id''' means the constructor’s “full form” (in which all optional parameters become required), while '''constr-id'’ denotes its abbreviated form (without the optional arguments). If there are no optional arguments, then these two forms are the same. Constructors’ full forms are never used at present.

+

Bare polymorphic types

+

There is a small problem: if we want to serialize the value of the bare type ‘%pair string int’ or ‘%pair string Y’ (which in TL is usually denoted simply as “pair”, though the form “%Pair” is preferable), we cannot simultaneously use both the full constructor @pair and the partial pair, because the constructor’s name will not be serialized. Therefore, we must differentiate the bare types %@pair (type X, type Y, value x:X, and value y:Y are serialized) and %pair (only x:X and y:Y are serialized; types X and Y are known from the context). In practice, we nearly almost always need the bare type %pair, and this is precisely what “pair” means in the type’s context in TL. Therefore,

+
record name:string map:(List (pair int string)) = Record;
+

will be serialized approximately like we want it to be (the serialization of list elements will consist of the serialization of int and the serialization of string, without any additional headers, types, or combinator names). +Incidentally, when calculating the “record” combinator’s name 'record' in the example given above, the CRC32 of record name:string map:List pair int string = Record will be computed.

+

Also note that a more precise description of this type would be

+
record name:string map:(List %(Pair int string)) = Record
+ +
+ +
+
+ +
+ + + + + + diff --git a/data/corefork.telegram.org/passport/sdk-ios-mac.html b/data/corefork.telegram.org/passport/sdk-ios-mac.html new file mode 100644 index 0000000000..ce9fca8125 --- /dev/null +++ b/data/corefork.telegram.org/passport/sdk-ios-mac.html @@ -0,0 +1,246 @@ + + + + + iOS & macOS SDK + + + + + + + + + + + + + +
+ +
+
+
+ +

iOS & macOS SDK

+ +
+ +

TGPassportKit helps you easily integrate Telegram Passport requests into your iOS & macOS apps. Check out our GitHub repository to see samples using this SDK.

+

Installation

+

Installing using Cocoapods

+

To install TGPassportKit via Cocoapods add the following to your Podfile:

+
target 'MyApp' do
+  pod 'TGPassportKit' 
+end
+

then run pod install in your project root directory.

+

Installing using Carthage

+

Add the following line to your Cartfile:

+
github "telegrammessenger/TGPassportKit"
+

then run carthage update, and you will get the latest version of TGPassportKit in your Carthage folder.

+

Project Setup

+

Configure Your Info.plist

+

Configure your Info.plist by right-clicking it in Project Navigator, choosing Open As > Source Code and adding this snippet: +Replace {bot_id} with your value

+
<key>CFBundleURLTypes</key>
+<array>
+  <dict>
+  <key>CFBundleURLSchemes</key>
+  <array>
+    <string>tgbot{bot_id}</string>
+  </array>
+  </dict>
+</array>
+<key>LSApplicationQueriesSchemes</key>
+<array>
+  <string>tg</string>
+</array>
+

Connect AppDelegate methods

+

Add this code to your UIApplicationDelegate implementation

+
#import <TGPassportKit/TGPAppDelegate.h>
+
+- (BOOL)application:(UIApplication *)application
+            openURL:(NSURL *)url
+            options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
+    BOOL handledByPassportKit = [[TGPAppDelegate sharedDelegate] application:application
+                                                                     openURL:url
+                                                                     options:options];
+
+    return YES;
+}
+

If you support iOS 9 and below, also add this method:

+
- (BOOL)application:(UIApplication *)application 
+            openURL:(NSURL *)url 
+  sourceApplication:(nullable NSString *)sourceApplication 
+         annotation:(id)annotation {
+    BOOL handledByPassportKit = [[TGPAppDelegate sharedDelegate] application:application
+                                                                     openURL:url
+                                                           sourceApplication:sourceApplication
+                                                                  annotation:annotation];
+
+    return YES;
+}
+

Usage

+

Add Telegram Passport Button

+

To add the Telegram Passport button, add the following code to your view controller: +Replace {bot_id}, {bot_public_key} and {request_nonce} with your values

+
#import <TGPassportKit/TGPButton.h>
+
+@interface ViewController <TGPButtonDelegate>
+
+@end
+
+@implementation ViewController
+
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  TGPButton *button = [[TGPButton alloc] init];
+  button.botConfig = [[TGPBotConfig alloc] initWithBotId:{bot_id} 
+                                               publicKey:@"{bot_public_key}"];
+  button.scope = [[TGPScope alloc] initWithJSONString:@"{\"data\":[\"id_document\",\"address_document\",\"phone_number\"],\"v\":1}"];
+// You can also construct a scope using provided data type classes like this: 
+// button.scope = [[TGPScope alloc] initWithTypes:@[[[TGPPersonalDetails alloc] init], [[TGPIdentityDocument alloc] initWithType:TGPIdentityDocumentTypePassport selfie:true translation:true]]];
+  button.nonce = @"{request_nonce}";
+  button.delegate = self;
+  [self.view addSubview:button];
+}
+
+- (void)passportButton:(TGPButton *)passportButton 
+ didCompleteWithResult:(TGPRequestResult)result 
+                 error:(NSError *)error {
+    switch (result) {
+        case TGPRequestResultSucceed:
+            NSLog(@"Succeed");
+            break;
+
+        case TGPRequestResultCancelled:
+            NSLog(@"Cancelled");
+            break;
+
+        default:
+            NSLog(@"Failed");
+            break;
+    }
+}
+
+@end
+

...or Implement Your Own Behavior

+

If you want to design a custom UI and behavior, you can invoke a Passport request like this: +Replace {bot_id}, {bot_public_key} and {request_nonce} with your values

+
#import <TGPassportKit/TGPRequest.h>
+
+- (void)performPassportRequest 
+{
+    TGPBotConfig *botConfig = [[TGPBotConfig alloc] initWithBotId:{bot_id} 
+                                                        publicKey:@"{bot_public_key}"];
+    TGPRequest *request = [[TGPRequest alloc] initWithBotConfig:botConfig];
+    [request performWithScope:[[TGPScope alloc] initWithJSONString:@"{\"data\":[\"id_document\",\"phone_number\"],\"v\":1}"] 
+                      payload:@"{request_nonce}" 
+            completionHandler:^(TGPRequestResult result, NSError * _Nullable error) {
+        switch (result) {
+            case TGPRequestResultSucceed:
+                NSLog(@"Succeed");
+                break;
+
+            case TGPRequestResultCancelled:
+                NSLog(@"Cancelled");
+                break;
+
+            default:
+                NSLog(@"Failed");
+                break;
+        }
+    }];
+}
+ +
+ +
+
+ +
+ + + + + + + + diff --git a/data/corefork.telegram.org/schema/mtproto-json.html b/data/corefork.telegram.org/schema/mtproto-json.html new file mode 100644 index 0000000000..ceca9f3321 --- /dev/null +++ b/data/corefork.telegram.org/schema/mtproto-json.html @@ -0,0 +1 @@ +{"constructors":[{"id":"481674261","predicate":"vector","params":[],"type":"Vector t"},{"id":"85337187","predicate":"resPQ","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"pq","type":"bytes"},{"name":"server_public_key_fingerprints","type":"Vector"}],"type":"ResPQ"},{"id":"-1443537003","predicate":"p_q_inner_data_dc","params":[{"name":"pq","type":"bytes"},{"name":"p","type":"bytes"},{"name":"q","type":"bytes"},{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"new_nonce","type":"int256"},{"name":"dc","type":"int"}],"type":"P_Q_inner_data"},{"id":"1459478408","predicate":"p_q_inner_data_temp_dc","params":[{"name":"pq","type":"bytes"},{"name":"p","type":"bytes"},{"name":"q","type":"bytes"},{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"new_nonce","type":"int256"},{"name":"dc","type":"int"},{"name":"expires_in","type":"int"}],"type":"P_Q_inner_data"},{"id":"-790100132","predicate":"server_DH_params_ok","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"encrypted_answer","type":"bytes"}],"type":"Server_DH_Params"},{"id":"-1249309254","predicate":"server_DH_inner_data","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"g","type":"int"},{"name":"dh_prime","type":"bytes"},{"name":"g_a","type":"bytes"},{"name":"server_time","type":"int"}],"type":"Server_DH_inner_data"},{"id":"1715713620","predicate":"client_DH_inner_data","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"retry_id","type":"long"},{"name":"g_b","type":"bytes"}],"type":"Client_DH_Inner_Data"},{"id":"1003222836","predicate":"dh_gen_ok","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"new_nonce_hash1","type":"int128"}],"type":"Set_client_DH_params_answer"},{"id":"1188831161","predicate":"dh_gen_retry","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"new_nonce_hash2","type":"int128"}],"type":"Set_client_DH_params_answer"},{"id":"-1499615742","predicate":"dh_gen_fail","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"new_nonce_hash3","type":"int128"}],"type":"Set_client_DH_params_answer"},{"id":"1973679973","predicate":"bind_auth_key_inner","params":[{"name":"nonce","type":"long"},{"name":"temp_auth_key_id","type":"long"},{"name":"perm_auth_key_id","type":"long"},{"name":"temp_session_id","type":"long"},{"name":"expires_at","type":"int"}],"type":"BindAuthKeyInner"},{"id":"-212046591","predicate":"rpc_result","params":[{"name":"req_msg_id","type":"long"},{"name":"result","type":"Object"}],"type":"RpcResult"},{"id":"558156313","predicate":"rpc_error","params":[{"name":"error_code","type":"int"},{"name":"error_message","type":"string"}],"type":"RpcError"},{"id":"1579864942","predicate":"rpc_answer_unknown","params":[],"type":"RpcDropAnswer"},{"id":"-847714938","predicate":"rpc_answer_dropped_running","params":[],"type":"RpcDropAnswer"},{"id":"-1539647305","predicate":"rpc_answer_dropped","params":[{"name":"msg_id","type":"long"},{"name":"seq_no","type":"int"},{"name":"bytes","type":"int"}],"type":"RpcDropAnswer"},{"id":"155834844","predicate":"future_salt","params":[{"name":"valid_since","type":"int"},{"name":"valid_until","type":"int"},{"name":"salt","type":"long"}],"type":"FutureSalt"},{"id":"-1370486635","predicate":"future_salts","params":[{"name":"req_msg_id","type":"long"},{"name":"now","type":"int"},{"name":"salts","type":"vector"}],"type":"FutureSalts"},{"id":"880243653","predicate":"pong","params":[{"name":"msg_id","type":"long"},{"name":"ping_id","type":"long"}],"type":"Pong"},{"id":"-501201412","predicate":"destroy_session_ok","params":[{"name":"session_id","type":"long"}],"type":"DestroySessionRes"},{"id":"1658015945","predicate":"destroy_session_none","params":[{"name":"session_id","type":"long"}],"type":"DestroySessionRes"},{"id":"-1631450872","predicate":"new_session_created","params":[{"name":"first_msg_id","type":"long"},{"name":"unique_id","type":"long"},{"name":"server_salt","type":"long"}],"type":"NewSession"},{"id":"1945237724","predicate":"msg_container","params":[{"name":"messages","type":"vector<%Message>"}],"type":"MessageContainer"},{"id":"1538843921","predicate":"message","params":[{"name":"msg_id","type":"long"},{"name":"seqno","type":"int"},{"name":"bytes","type":"int"},{"name":"body","type":"Object"}],"type":"Message"},{"id":"-530561358","predicate":"msg_copy","params":[{"name":"orig_message","type":"Message"}],"type":"MessageCopy"},{"id":"812830625","predicate":"gzip_packed","params":[{"name":"packed_data","type":"bytes"}],"type":"Object"},{"id":"1658238041","predicate":"msgs_ack","params":[{"name":"msg_ids","type":"Vector"}],"type":"MsgsAck"},{"id":"-1477445615","predicate":"bad_msg_notification","params":[{"name":"bad_msg_id","type":"long"},{"name":"bad_msg_seqno","type":"int"},{"name":"error_code","type":"int"}],"type":"BadMsgNotification"},{"id":"-307542917","predicate":"bad_server_salt","params":[{"name":"bad_msg_id","type":"long"},{"name":"bad_msg_seqno","type":"int"},{"name":"error_code","type":"int"},{"name":"new_server_salt","type":"long"}],"type":"BadMsgNotification"},{"id":"2105940488","predicate":"msg_resend_req","params":[{"name":"msg_ids","type":"Vector"}],"type":"MsgResendReq"},{"id":"-630588590","predicate":"msgs_state_req","params":[{"name":"msg_ids","type":"Vector"}],"type":"MsgsStateReq"},{"id":"81704317","predicate":"msgs_state_info","params":[{"name":"req_msg_id","type":"long"},{"name":"info","type":"bytes"}],"type":"MsgsStateInfo"},{"id":"-1933520591","predicate":"msgs_all_info","params":[{"name":"msg_ids","type":"Vector"},{"name":"info","type":"bytes"}],"type":"MsgsAllInfo"},{"id":"661470918","predicate":"msg_detailed_info","params":[{"name":"msg_id","type":"long"},{"name":"answer_msg_id","type":"long"},{"name":"bytes","type":"int"},{"name":"status","type":"int"}],"type":"MsgDetailedInfo"},{"id":"-2137147681","predicate":"msg_new_detailed_info","params":[{"name":"answer_msg_id","type":"long"},{"name":"bytes","type":"int"},{"name":"status","type":"int"}],"type":"MsgDetailedInfo"},{"id":"-161422892","predicate":"destroy_auth_key_ok","params":[],"type":"DestroyAuthKeyRes"},{"id":"178201177","predicate":"destroy_auth_key_none","params":[],"type":"DestroyAuthKeyRes"},{"id":"-368010477","predicate":"destroy_auth_key_fail","params":[],"type":"DestroyAuthKeyRes"}],"methods":[{"id":"-1099002127","method":"req_pq_multi","params":[{"name":"nonce","type":"int128"}],"type":"ResPQ"},{"id":"-686627650","method":"req_DH_params","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"p","type":"bytes"},{"name":"q","type":"bytes"},{"name":"public_key_fingerprint","type":"long"},{"name":"encrypted_data","type":"bytes"}],"type":"Server_DH_Params"},{"id":"-184262881","method":"set_client_DH_params","params":[{"name":"nonce","type":"int128"},{"name":"server_nonce","type":"int128"},{"name":"encrypted_data","type":"bytes"}],"type":"Set_client_DH_params_answer"},{"id":"1491380032","method":"rpc_drop_answer","params":[{"name":"req_msg_id","type":"long"}],"type":"RpcDropAnswer"},{"id":"-1188971260","method":"get_future_salts","params":[{"name":"num","type":"int"}],"type":"FutureSalts"},{"id":"2059302892","method":"ping","params":[{"name":"ping_id","type":"long"}],"type":"Pong"},{"id":"-213746804","method":"ping_delay_disconnect","params":[{"name":"ping_id","type":"long"},{"name":"disconnect_delay","type":"int"}],"type":"Pong"},{"id":"-414113498","method":"destroy_session","params":[{"name":"session_id","type":"long"}],"type":"DestroySessionRes"},{"id":"-1835453025","method":"http_wait","params":[{"name":"max_delay","type":"int"},{"name":"wait_after","type":"int"},{"name":"max_wait","type":"int"}],"type":"HttpWait"},{"id":"-784117408","method":"destroy_auth_key","params":[],"type":"DestroyAuthKeyRes"}]} \ No newline at end of file diff --git a/data/corefork.telegram.org/type/DecryptedDataBlock.html b/data/corefork.telegram.org/type/DecryptedDataBlock.html new file mode 100644 index 0000000000..9fd9d37f97 --- /dev/null +++ b/data/corefork.telegram.org/type/DecryptedDataBlock.html @@ -0,0 +1,128 @@ + + + + + DecryptedDataBlock + + + + + + + + + + + + + +
+ +
+
+
+ +

DecryptedDataBlock

+ +

VoIP decrypted data block

+

+ +
+
Type schema is not available in the selected layer.

+ +
+ +
+
+ +
+ + + + + + diff --git a/data/corefork.telegram.org/widgets/discussion.html b/data/corefork.telegram.org/widgets/discussion.html deleted file mode 100644 index 4a057af876..0000000000 --- a/data/corefork.telegram.org/widgets/discussion.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - Discussion Widget - - - - - - - - - - - - - - - -
- -
-
-
- -

Discussion Widget

- -

You can embed discussions from any public channel on your website. You only need a link to a post with comments to embed it together with all discussion.

-

If you have a website with articles and a telegram channel where you post links to these articles, you can use this widget to show discussions from that channel on your website. In this case you only need a link to the channel. Discussions will be available on your website as soon as you post a link into the channel. For this to work, you should add the <link rel="canonical" href="%page_url%"> tag to the page header where %page_url% is the canonical URL of the current page.

-

Configure widget

-

You can choose options for your widget using the form below.

-

-
- -
-
- -
- -
-
-
- -
- -
-
- -
-
-
- -
-
- -
-
-
-
- -
- -
-
- - - - - - - -
- - -
-
- -
- -
- -
Make sure you have a <link rel="canonical" href="%page_url%"> tag in the page header with the canonical url of the current page.
-
-
- -
-
-
-
-
-

-

Basic comments

-

If you're looking to simply add Telegram comments to pages on your website, without linking them with a channel, you can use our basic comments solution.

-
- -
- -
-
- -
- - - - - - - - - - diff --git a/data/promote.telegram.org/css/promote.css b/data/promote.telegram.org/css/promote.css new file mode 100644 index 0000000000..2678297798 --- /dev/null +++ b/data/promote.telegram.org/css/promote.css @@ -0,0 +1,3156 @@ +html { + display: block!important; +} +body { + font-family: 'Roboto', sans-serif; + font-size: 15px; + color: #222; + margin: 0; + padding: 0; +} + +.no-transition, +.no-transition:before, +.no-transition:after, +.no-transition *, +.no-transition *:before, +.no-transition *:after { + transition: none !important; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus, +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + background-color: #0f9ae4; +} + +.btn, +a.btn, +button.btn { + font-size: 14px; + font-weight: 500; + line-height: 20px; + text-transform: uppercase; + border-radius: 3px; + padding: 7px 16px 6px; + border: none; +} +.btn:active { + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.125); +} +.btn-xs, +a.btn-xs, +button.btn-xs { + font-size: 11px; + line-height: 14px; + padding: 4px 7px 2px; +} +.btn-sm, +a.btn-sm, +button.btn-sm { + padding: 5px 14px 4px; +} +.btn-lg, +a.btn-lg, +button.btn-lg { + padding: 9px 16px 8px; +} +.btn-primary { + background-color: #0f9ae4; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background-color: #068cd4; +} +.btn-default { + background-color: transparent; + color: #0086d3; +} +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.open > .dropdown-toggle.btn-default { + color: #0086d3; + background-color: #e8f3fa; + box-shadow: none; +} +.btn-default.btn-danger { + color: #d14e4e; + background-color: transparent; +} +.btn-default.btn-danger:hover, +.btn-default.btn-danger:focus, +.btn-default.btn-danger:active { + color: #d14e4e; + background-color: #fcdfde; +} +.btn-link:active { + box-shadow: none; +} +.btn-muted { + color: #1a1a1a; + background-color: #f2f2f2; +} +.btn.csv_link { + border-radius: 17px; + transition: background-color .2s ease; +} + +.pr-btn, +a.pr-btn, +button.pr-btn { + font-size: 14px; + line-height: 20px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + padding: 9px 22px; + background-color: #3c9ff0; + transition: background-color .2s ease; + text-transform: none; + color: #fff; + border-radius: 6px; +} +.pr-btn:hover, +.pr-btn:focus, +.pr-btn:active { + color: #fff; + background-color: #2a96ef; +} +.pr-btn.disabled, +.pr-btn[disabled] { + opacity: 1; + color: rgb(255, 255, 255, 0.6); +} +.pr-link-btn, +a.pr-link-btn, +button.pr-link-btn { + display: inline-block; + font-size: 14px; + line-height: 20px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + margin: 9px 15px; + text-transform: none; + cursor: pointer; +} +.pr-link-btn.disabled { + color: #999; +} +.pr-del-btn, +a.pr-del-btn, +button.pr-del-btn { + background-color: #d75959; +} +.pr-del-btn:hover, +.pr-del-btn:focus, +.pr-del-btn:active { + color: #fff; + background-color: #d24646; +} + +.input { + white-space: pre-wrap; + position: relative; + z-index: 0; +} +.input.empty[data-placeholder] { + position: relative; +} +.input.empty[data-placeholder]:before { + position: absolute; + left: 0; + right: 0; + content: attr(data-placeholder); + transition: color .2s ease; + color: #919699; + font-weight: normal; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + pointer-events: none; + z-index: -1; +} +.input.empty[data-placeholder]:focus:before { + color: #ccc; +} +a.input { + cursor: text; +} +a.input:hover { + color: #222; + text-decoration: none; +} + +.btn:focus, +.btn:active:focus, +button:focus, +button:active:focus, +input.form-control:focus, +textarea.form-control:focus, +input.form-control, +textarea.form-control { + outline: none; + box-shadow: none; +} +input.form-control[disabled], +textarea.form-control[disabled] { + cursor: text; + background-color: #fff; +} +.input.pr-form-control { + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.input.pr-form-control::-webkit-scrollbar { + display: none; +} +.form-control::-webkit-input-placeholder { + transition: color .2s ease; + color: #999; +} +.form-control::-moz-placeholder { + transition: color .2s ease; + color: #999; +} +.form-control:-ms-input-placeholder { + transition: color .2s ease; + color: #999; +} +.form-control::placeholder { + text-overflow: ellipsis; +} +.form-control[placeholder] { + text-overflow: ellipsis; +} +.form-control:focus::-webkit-input-placeholder { + color: #ccc; +} +.form-control:focus::-moz-placeholder { + color: #ccc; +} +.form-control:focus:-ms-input-placeholder { + color: #ccc; +} +.form-control:focus::placeholder { + text-overflow: ellipsis; +} +.form-control[placeholder]:focus { + text-overflow: ellipsis; +} +.field-disabled .form-control { + color: #919699; +} + +i.emoji { + font-style: normal; + box-sizing: content-box; +} +i.emoji > b { + font-weight: normal; +} +.emoji_default i.emoji { + background: none !important; +} +.emoji_image i.emoji { + width: 1.25em; + vertical-align: top; + display: inline-block; + white-space: nowrap; + overflow: hidden; + background: no-repeat 2px 50%; + background-position-y: calc(50% - 1px); + background-size: 1.25em 1.25em; + text-indent: -10em; + padding: 3px 3px 3px 2px; + margin: -3px -2px; +} +.emoji_image .rtl i.emoji { + padding-left: 3px; + padding-right: 2px; +} +.emoji_image i.emoji > b { + letter-spacing: 12em; + pointer-events: none; +} + +img.emoji { + width: 1.25em; + height: 1.25em; + padding: 0 1px; + vertical-align: top; + vertical-align: text-top; + box-sizing: content-box; + cursor: inherit; +} +a:hover img.emoji { + border-bottom: 1px solid; + padding: 0 2px; + margin: 0 -1px; +} + +.close { + position: relative; + width: 22px; + height: 22px; + opacity: 1; +} +.close:hover { + opacity: 1; +} +.close:before, +.close:after { + display: inline-block; + position: absolute; + background: #c0c0c0; + left: 50%; + top: 50%; + content: ''; + width: 16px; + height: 2px; + margin: -1px 0 0 -8px; + border-radius: 1px; + transform: rotateZ(45deg) scaleY(.95); + transition: background-color .2s ease; +} +.close:after { + transform: rotateZ(-45deg) scaleY(.95); +} +.close:hover:before, +.close:hover:after { + background: #a8a8a8; +} + +.radio-item .radio-input-icon:before, +.checkbox-item .checkbox-input-icon:before { + border-color: #3c9ff0; +} +.radio-item .radio-input-icon:after, +.checkbox-item .checkbox-input-icon:before { + background-color: #3c9ff0; +} + +.form-control { + font-size: 14px; + color: #222; +} + +.select { + position: relative; + box-shadow: inset 0 -1px 0 #f0f0f0; + background-color: #ffffff; + cursor: text; +} +.select .items-list { + position: absolute; + left: 0; + right: 0; + margin: -1px 0; + background: #fff; + text-align: left; + padding: 7px 0; + box-shadow: 0 0 2px 1px rgba(0, 0, 0, .15); + border: none; + transition: all .2s ease; + visibility: hidden; + opacity: 0; + max-height: 220px; + overflow: auto; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; + z-index: 10; +} +.select.open .items-list { + visibility: visible; + opacity: 1; +} +.select.open .items-list.ohide { + pointer-events: none; + visibility: hidden; + opacity: 0; +} +.select.no-search .input { + opacity: 0; +} +.select-list-item, +.select-list-no-results { + font-size: 14px; + line-height: 18px; + padding: 8px 15px; + cursor: pointer; +} +.select-list-item { + position: relative; + text-overflow: ellipsis; + overflow: hidden; +} +.search-item.selected .select-list-item, +.search-item:hover .select-list-item { + background: #f2f2f2; +} +.select-list-no-results { + color: #a8a8a8; + cursor: auto; +} +.items-list.team .select-list-item { + padding-left: 36px; +} +.items-list.team .select-list-item:before { + content: ''; + position: absolute; + left: 15px; + bottom: 0; + top: 0; + width: 8px; + height: 8px; + border-radius: 4px; + margin: auto 0; + background-color: #0086d3; +} +.items-list.team .select-list-item.team:before { + background-color: #c11086; +} +.selected-items { + display: flex; + flex-wrap: wrap; + align-items: flex-start; +} +.selected-item { + position: relative; + display: inline-block; + color: #525252; + background-color: #efefef; + padding: 4px 10px 3px; + margin: 3px 5px 2px 0; + border-radius: 4px; + cursor: pointer; + max-width: 85%; + -webkit-user-select: none; + user-select: none; +} +.selected-item.focused { + background-color: #E8E8E8; +} +.select input.pr-form-control, +.select .input.pr-form-control { + white-space: nowrap; + background-color: transparent; + box-shadow: none; + width: 50px; + flex-grow: 100; +} +.field-disabled .select, +.field-disabled .select .selected-item { + cursor: default; +} +.selected-item .label { + display: block; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; +} +.selected-item .close { + margin: -2px -6px -2px 2px; + float: right; + opacity: 0.6; +} +.selected-item .close:before, +.selected-item .close:after { + width: 13px; + margin-left: -6px; +} +.selected-item .close:hover { + opacity: 1; +} +.selected-item.focused .close:before, +.selected-item.focused .close:after { + background-color: #9c9c9c; +} +.select-clear, +.select-enter { + transition: opacity .1s ease, visibility .1s ease; + pointer-events: none; + visibility: hidden; + opacity: 0; +} +.field-has-value .select-clear, +.field-has-value .select-enter { + pointer-events: auto; + visibility: visible; + opacity: 1; +} + +.container, +.container-fluid { + position: relative; + margin-right: auto; + margin-left: auto; + padding-left: 0; + padding-right: 0; + width: 100%; +} +.xs-hide { + display: none; +} +.xs-show { + display: block; +} +@media (min-width: 768px) { + .sm-hide { + display: none; + } + .sm-show { + display: block; + } +} +@media (min-width: 992px) { + .md-hide { + display: none; + } + .md-show { + display: block; + } + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .lg-hide { + display: none; + } + .lg-show { + display: block; + } + .container { + width: 1170px; + } +} + +.pr-container { + max-width: 600px; + padding: 0; + margin: 0 auto; +} +@media (max-width: 991px) { + .mobile-hide { + display: none; + } +} +@media (min-width: 992px) { + .pr-container { + max-width: 842px; + } + .mobile-show { + display: none; + } +} + +.pr-dropdown-wrap { + display: inline-block; + position: relative; + vertical-align: top; +} +.pr-dropdown.dropdown-toggle { + cursor: pointer; +} +.pr-dropdown-wrap span.dropdown-menu { + left: auto; + right: -1px; + margin: 4px 0 -2px 0; + border: 1px solid rgba(0, 0, 0, .06); + box-shadow: 0 1px 2px rgba(0,0,0,0.07); + border-radius: 4px; + overflow: hidden; + min-width: 150px; +} +.pr-dropdown-wrap.top span.dropdown-menu { + top: auto; + bottom: 100%; +} +.pr-dropdown-wrap span.dropdown-menu > ul.dropdown-menu { + position: static; + display: block; + float: none; + border: none; + box-shadow: none; + font-size: 14px; + line-height: 1.42857143; + border-radius: 0; + min-width: 0; + margin: 0 -20px 0 0; + padding: 7px 20px 7px 0; + max-height: 245px; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.pr-dropdown-wrap ul.dropdown-menu > li > .pr-dropdown-item { + display: block; + padding: 6px 15px; + margin: 0; + position: relative; + color: #222; +} +.pr-dropdown-wrap ul.dropdown-menu > li > a.pr-dropdown-item { + cursor: pointer; +} +.pr-dropdown-wrap ul.dropdown-menu > li > a.pr-dropdown-item:hover, +.pr-dropdown-wrap ul.dropdown-menu > li > a.pr-dropdown-item:focus { + background-color: #f4f4f4; + color: #222; +} +.pr-dropdown-wrap ul.dropdown-menu > li.selected > .pr-dropdown-item { + padding-right: 45px; +} +.pr-dropdown-wrap ul.dropdown-menu > li.selected > .pr-dropdown-item:after { + content: ''; + display: inline-block; + position: absolute; + pointer-events: none; + bottom: 0; + right: 0; + top: 0; + margin: auto 13px; + width: 15px; + height: 12px; + background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 15 12" width="15" height="12" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M 2 6 L 5.5 9.5 L 13 3" stroke="%23228fe1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/%3E%3C/svg%3E'); +} +.pr-dropdown-wrap ul.dropdown-menu > li.disabled > .pr-dropdown-item { + color: #9DA2A6; + pointer-events: none; + cursor: auto; +} + +.pr-header-auth .pr-dropdown-wrap span.dropdown-menu { + min-width: 230px; + max-width: 280px; +} +.pr-header-auth .pr-dropdown-wrap span.dropdown-menu > ul.dropdown-menu { + font-size: 13px; + max-height: none; +} +.pr-header-auth .pr-dropdown-wrap ul.dropdown-menu > li > .pr-dropdown-item { + font-weight: 500; + line-height: 24px; + padding-left: 50px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.pr-header-auth .pr-owner-balance-wrap { + padding: 2px 0; + margin: 0; +} +.pr-header-auth .pr-owner-balance-photo { + width: 32px; + height: 32px; + margin: 3px 9px; +} +.pr-header-auth .pr-owner-balance-photo .photo-char { + font-size: 14px; + line-height: 32px; +} +.pr-header-auth .pr-owner-balance-content { + margin-left: 50px; + margin-right: 15px; +} +.pr-dropdown-item-photo { + position: absolute; + display: inline-block; + left: 13px; + width: 24px; + height: 24px; + border-radius: 12px; + background: #efefef; + text-align: center; + overflow: hidden; + user-select: none; +} +.pr-dropdown-item-photo img { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.pr-dropdown-item-photo .photo-char { + font-size: 13px; + vertical-align: middle; + line-height: 24px; + color: #999; +} +.pr-edit-icon:before, +.pr-add-icon:before, +.pr-review-icon:before, +.pr-funds-icon:before, +.pr-exp-icon:before, +.pr-help-icon:before, +.pr-quit-icon:before { + content: ''; + position: absolute; + display: inline-block; + left: 13px; + width: 24px; + height: 24px; +} +.pr-edit-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23979797%22%20stroke-width%3D%221.6%22%3E%3Cpath%20d%3D%22m4.5%2020h3.06c.28%200%20.55-.12.74-.32l10.03-10.87c.75-.82.7-2.08-.11-2.83-.1-.09-.21-.17-.33-.24l-1.49-.9c-.81-.49-1.86-.34-2.5.36l-9.64%2010.51c-.17.19-.26.43-.26.68v3.11c0%20.28.22.5.5.5z%22%2F%3E%3Cpath%20d%3D%22m12.5%206.892857%203.643694%203.643694%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-add-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23979797%22%3E%3Crect%20fill%3D%22%23d8d8d8%22%20height%3D%229%22%20rx%3D%22.5%22%20width%3D%221%22%20x%3D%2211.7%22%20y%3D%227.5%22%2F%3E%3Crect%20fill%3D%22%23d8d8d8%22%20height%3D%221%22%20rx%3D%22.5%22%20width%3D%229%22%20x%3D%227.5%22%20y%3D%2211.7%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.7%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-review-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23979797%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%221.6%22%3E%3Cpath%20d%3D%22m%2011.31%2015.36%20l%202.69%202.7%20c%200.08%200.08%200.2%200.08%200.28%200%20c%200%20-0%200.01%20-0.01%200.01%20-0.01%20l%206.34%20-7.32%22%2F%3E%3Cpath%20d%3D%22m4%206.8h14%22%2F%3E%3Cpath%20d%3D%22m4%2011.8h10%22%2F%3E%3Cpath%20d%3D%22m4%2016.8h4%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-funds-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212.5%22%20r%3D%228.7%22%20stroke%3D%22%23979797%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22m12.28%2017.14c1.6%200%203.02-.68%203.55-1.95.08-.18.11-.35.11-.52%200-.46-.33-.75-.85-.75-.39%200-.6.18-.83.57-.41.82-1.14%201.11-1.99%201.11-1.13%200-1.93-.49-2.22-1.67h2.91c.2%200%20.34-.28.34-.47s-.14-.46-.34-.46h-3.03c-.01-.17-.02-.25-.02-.44%200-.15.01-.41.02-.56h3.03c.2%200%20.32-.13.32-.32%200-.2-.12-.42-.32-.42h-2.93c.3-1.2%201.1-1.71%202.24-1.71.83%200%201.55.35%201.97%201.15.24.4.46.58.86.58.5%200%20.82-.3.82-.74%200-.2-.05-.42-.17-.63-.61-1.21-1.85-1.91-3.52-1.91-2.12%200-3.7%201.08-4.09%203.26h-.72c-.19%200-.3.2-.3.39s.11.35.3.35h.64c-.01.15-.01.41-.01.57%200%20.18%200%20.26.01.43h-.64c-.19%200-.31.27-.31.47%200%20.18.12.46.31.46h.73c.4%202.15%201.96%203.21%204.13%203.21z%22%20fill%3D%22%23979797%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-exp-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23979797%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%226.2%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22m15.91%2015.86%203.59%203.64%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-help-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212.5%22%20r%3D%228.7%22%20stroke%3D%22%23979797%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22m11.92%2014.29c.46%200%20.71-.25.81-.68.08-.54.28-.82%201.13-1.32.91-.53%201.38-1.19%201.38-2.17%200-1.5-1.23-2.5-3.06-2.5-1.39%200-2.42.54-2.83%201.39-.13.25-.19.49-.19.77%200%20.49.31.81.82.81.4%200%20.69-.18.85-.6.2-.57.63-.88%201.26-.88.71%200%201.2.44%201.2%201.07%200%20.59-.25.92-1.08%201.41-.76.45-1.16.95-1.16%201.71v.09c0%20.53.32.9.87.9zm.02%202.87c.58%200%201.05-.44%201.05-1.01s-.47-1.01-1.05-1.01-1.06.44-1.06%201.01.48%201.01%201.06%201.01z%22%20fill%3D%22%23979797%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-quit-icon:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23979797%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%221.6%22%3E%3Cpath%20d%3D%22m14%2016.48v.42c0%201.16-.92%202.1-2.06%202.1h-5.88c-1.14%200-2.06-.94-2.06-2.1v-9.8c0-1.16.92-2.1%202.06-2.1h5.88c1.14%200%202.06.94%202.06%202.1v.66%22%2F%3E%3Cpath%20d%3D%22m9%2012h11%22%2F%3E%3Cpath%20d%3D%22m17.4%2016%203.3-3.67c.17-.19.17-.47%200-.66l-3.3-3.67%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} + +.pr-icon { + display: inline-block; + vertical-align: text-top; + width: 24px; + height: 22px; + margin: -2px 0 0 0; + background: url('data:image/svg+xml,%3Csvg%20height%3D%2222%22%20viewBox%3D%220%200%2024%2022%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%232c9ee5%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22m11.68%2015.58.31%202.6c.12.96-.57%201.83-1.54%201.94-.03.01-.06.01-.1.01l-.19.02c-1%20.06-1.94-.5-2.34-1.41l-1.46-2.88c-.12-.24-.03-.53.21-.66.07-.03.15-.05.22-.05h4.41c.24%200%20.45.19.48.43z%22%2F%3E%3Cpath%20d%3D%22m6%205.95h6.21c.27%200%20.49.22.49.49v7.02c0%20.27-.22.49-.49.49h-6.21c-2.21%200-4-1.79-4-4s1.79-4%204-4z%22%2F%3E%3Cpath%20d%3D%22m15.36%205.35%203.43-2.04c.7-.41%201.59-.18%202.01.51.13.23.2.49.2.75v10.86c0%20.81-.66%201.46-1.46%201.46-.27%200-.52-.07-.75-.2l-3.43-2.03c-.84-.5-1.36-1.41-1.36-2.39v-4.54c0-.98.52-1.89%201.36-2.38z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E') no-repeat center; +} +.pr-logo-title { + margin-left: 8px; +} +.pr-logo.compact .pr-logo-title { + display: none; +} +.pr-header { + padding: 14px 15px; + line-height: 20px; + border-bottom: 1px solid #e6e6e6; + display: flex; +} +.has-search-header .pr-header { + border-bottom: none; +} +@media (min-width: 992px) { + .pr-header { + padding-left: 0; + padding-right: 0; + } + .pr-logo.compact .pr-logo-title { + display: inline; + } +} +.pr-breadcrumb { + padding: 10px 0 6px; + margin: 0; + font-size: 16px; + list-style: none; + white-space: nowrap; + overflow: hidden; + flex-grow: 1; + flex-shrink: 1; + flex-basis: 1px; + order: 0; + display: flex; +} +.pr-breadcrumb > li { + display: inline-block; + font-weight: 500; + position: relative; + vertical-align: top; + white-space: nowrap; + overflow: hidden; + flex-shrink: 0; +} +.pr-breadcrumb > li.pr-breadcrumb-item:last-child { + text-overflow: ellipsis; + flex-shrink: 1; +} +.pr-breadcrumb > li:after { + content: '\00a0/\00a0'; + padding: 0 8px 0 6px; + color: #c4c4c4; +} +body.rtl .pr-breadcrumb > li:after { + padding: 0 6px 0 8px; +} +.pr-breadcrumb > li:last-child:after { + display: none; +} +.pr-header-auth { + float: right; + font-size: 14px; + font-weight: 500; + padding: 9px 0 7px 15px; + white-space: nowrap; + order: 2; +} +body.rtl .pr-header-auth { + padding-right: 15px; + padding-left: 0; + float: left; +} +.pr-auth-photo, +.ad-owner-photo, +.pr-owner-balance-photo { + display: inline-block; + vertical-align: top; + width: 36px; + height: 36px; + border-radius: 18px; + background: #efefef; + text-align: center; + overflow: hidden; + margin: 0 0 0 18px; + position: relative; + user-select: none; + float: right; + order: 3; +} +.pr-auth-photo { + margin: -9px 0 -7px 18px; +} +.ad-owner-photo { + float: left; + margin: 0 12px 0 0; +} +body.rtl .pr-auth-photo, +body.rtl .pr-owner-balance-photo { + margin-left: 0; + margin-right: 18px; +} +body.rtl .ad-owner-photo { + margin-left: 12px; + margin-right: 0; +} +.pr-auth-photo img, +.ad-owner-photo img, +.pr-owner-balance-photo img { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.pr-auth-photo .photo-char, +.ad-owner-photo .photo-char, +.pr-owner-balance-photo .photo-char { + font-size: 16px; + vertical-align: middle; + line-height: 36px; + color: #999; +} +.pr-header-auth .pr-header-text { + margin-right: 20px; + position: relative; +} +.pr-header-auth .pr-header-text:after { + display: inline-block; + content: ''; + width: 4px; + height: 4px; + border-radius: 2px; + background-color: #c0cbd2; + position: absolute; + right: -12px; + top: 7px; +} +.pr-dropdown-label { + color: #0088cc; +} +.pr-dropdown-label:after { + content: ''; + display: inline-block; + vertical-align: middle; + width: 13px; + height: 6px; + margin-left: 5px; + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213%22%20height%3D%226%22%20viewBox%3D%220%200%2013%206%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%230088cc%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M%201.68%201%20L%205.8%204.46%20C%206.17%204.77%206.71%204.77%207.08%204.46%20L%2011.2%201%20L%2011.2%201%22%2F%3E%3C%2Fsvg%3E'); +} +body.rtl .pr-dropdown-label:after { + margin-right: 5px; + margin-left: 0; +} + +.pr-search-form { + display: flex; + padding: 10px 15px; + justify-content: space-between; + flex-direction: row-reverse; + flex-wrap: wrap; +} +.pr-search-input-wrap { + margin: 5px 0; + box-shadow: inset 0 0 0 1px #d9d9d9; + border-radius: 6px; + transition: box-shadow .2s ease; + position: relative; + width: 100%; +} +@media (min-width: 992px) { + .pr-search-form { + flex-direction: row; + padding-left: 0; + padding-right: 0; + } + .pr-account-container .pr-search-input-wrap { + width: 395px; + } +} +.pr-search-input-wrap:before { + content: ''; + position: absolute; + display: inline-block; + width: 16px; + height: 16px; + left: 17px; + margin: 12px 0; + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23A6A6A6%22%20stroke-width%3D%222%22%20transform%3D%22translate%282%201%29%22%3E%3Ccircle%20cx%3D%227.2%22%20cy%3D%225.5%22%20r%3D%224.5%22%2F%3E%3Cline%20x1%3D%223.8%22%20y1%3D%229.4%22%20y2%3D%2213.2%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +body.rtl .pr-search-input-wrap:before { + right: 16px; + left: auto; +} +.pr-search-input-wrap.field-focused { + box-shadow: inset 0 0 0 2px #35a3f6; +} +.pr-search-input { + height: auto; + font-size: 14px; + line-height: 18px; + padding: 11px 38px 11px 48px; + box-shadow: none; + border: none; + background: transparent; + color: #222; +} +.pr-search-reset { + position: absolute; + width: 38px; + height: 38px; + border-radius: 6px; + top: 1px; + right: 1px; + transition: all .1s ease; + pointer-events: none; + visibility: hidden; + opacity: 0; +} +body.rtl .pr-search-reset { + left: 1px; + right: auto; +} +.field-has-value .pr-search-reset { + pointer-events: auto; + visibility: visible; + opacity: 1; +} +.pr-search-form .pr-buttons-wrap { + display: flex; + width: 100%; + padding: 1px 0; + margin: 5px 0; +} +.pr-search-form .pr-buttons-wrap .btn { + padding: 9px 15px; + flex-grow: 1; + flex-shrink: 1; +} +.pr-search-form .pr-buttons-wrap .btn + .btn, +.pr-search-form .pr-buttons-wrap .pr-owner-balance-wrap + .btn { + margin-left: 14px; +} +@media screen and (min-width: 992px) { + .pr-search-form .pr-buttons-wrap { + width: auto; + } + .pr-search-form .pr-buttons-wrap .btn { + min-width: 140px; + padding-left: 22px; + padding-right: 22px; + } + .pr-search-form .pr-buttons-wrap .btn + .btn, + .pr-search-form .pr-buttons-wrap .pr-owner-balance-wrap + .btn { + margin-left: 18px; + } +} + +.pr-owner-balance-wrap { + display: inline-block; + vertical-align: top; + max-width: 240px; + padding: 0 1px; + margin-right: 10px; + border-radius: 6px; + color: inherit; +} +.pr-owner-balance-wrap:hover, +.pr-owner-balance-wrap:focus { + text-decoration: none; + color: inherit; +} +.pr-owner-balance-photo { + margin: 1px; + margin-left: 0; + margin-right: 11px; + float: left; +} +body.rtl .pr-owner-balance-photo { + margin-left: 11px; + margin-right: 0; +} +.pr-owner-balance-content { + font-size: 14px; + line-height: 18px; + margin: 0 0 0 47px; +} +.pr-owner-balance-name { + font-size: 14px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.pr-owner-balance-value { + font-size: 13px; + font-weight: 500; + margin-top: 1px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.pr-form-control, +input.pr-form-control { + font-size: 14px; + line-height: 18px; + padding: 15px; + box-shadow: inset 0 0 0 1px #d9d9d9; + border-radius: 6px; + transition: box-shadow .2s ease; + height: auto; + border: none; +} +textarea.pr-form-control { + resize: none; +} +.pr-form-control:focus, +input.pr-form-control:focus { + box-shadow: inset 0 0 0 2px #35a3f6; +} +.pr-form-select .select { + font-size: 15px; + line-height: 18px; + box-shadow: inset 0 0 0 1px #d9d9d9; + border-radius: 6px; + transition: box-shadow .2s ease; + height: auto; + border: none; +} +.pr-form-select.has-hint .select { + padding-right: 48px; +} +.pr-form-select .select .items-list { + border-radius: 6px; + margin-top: 5px; +} +.pr-form-select .select .selected-items { + padding: 8px 12px; +} +.pr-form-select.has-hint .select .selected-items { + padding-right: 0; +} +.pr-form-select .select .selected-item { + font-size: 12px; + line-height: 16px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + background-color: #3C9FF0; + border-radius: 4px; + margin: 3px 6px 3px 0; + padding: 5px 9px; + color: #fff; +} +.pr-form-select .pr-placeholder-label + .select .selected-item { + margin-top: 4px; + margin-bottom: 2px; +} +.pr-form-select.exclude-select .select .selected-item { + background-color: #D75959; +} +.pr-form-select .select .selected-item .label { + white-space: nowrap; +} +.pr-form-select .select .selected-item .close { + margin: -3px -6px -4px 1px; + opacity: 1; +} +.pr-form-select .select .selected-item .close:before, +.pr-form-select .select .selected-item .close:after { + background-color: #fff; +} +.pr-form-select .select .selected-item.has-photo { + padding-left: 34px; +} +.pr-form-select .select .selected-item-photo { + position: absolute; + left: 0; + top: 0; + border-radius: 4px; + background-color: rgba(255, 255, 255, 0.4); + text-align: center; + width: 26px; + height: 26px; + overflow: hidden; + user-select: none; +} +.pr-form-select .select .selected-item-photo img { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.pr-form-select .select .selected-item-photo .photo-char { + font-size: 14px; + vertical-align: middle; + line-height: 26px; + color: #fff; +} +.pr-form-select .select .pr-form-control { + font-size: 14px; + padding: 7px 0 7px 3px; +} +.pr-form-select .select .pr-form-control[data-placeholder]:before { + padding-left: 3px; +} +.pr-form-control-wrap > .pr-form-control-hint { + position: absolute; + width: 40px; + height: 40px; + margin: 4px; + top: 0; + right: 0; + border-radius: 20px; + cursor: pointer; + transition: opacity .2s ease; +} +.pr-form-control-wrap > .pr-form-control-hint:before { + content: ''; + position: absolute; + display: inline-block; + width: 18px; + height: 18px; + margin: 11px; + border-radius: 9px; + background: #c0c4c7 url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M%205.84%208.03%20C%206.32%208.03%206.63%207.81%206.78%207.35%20C%206.84%207.11%206.95%206.91%207.09%206.76%20C%207.24%206.6%207.52%206.41%207.94%206.17%20C%208.41%205.89%208.75%205.59%208.98%205.25%20C%209.2%204.91%209.31%204.51%209.31%204.05%20C%209.31%203.28%209.02%202.66%208.44%202.2%20C%207.86%201.73%207.08%201.5%206.12%201.5%20C%205.42%201.5%204.81%201.62%204.29%201.86%20C%203.78%202.11%203.41%202.44%203.2%202.85%20C%203.07%203.08%203%203.34%203%203.61%20C%203%203.89%203.08%204.12%203.26%204.29%20C%203.43%204.46%203.67%204.55%203.97%204.55%20C%204.45%204.55%204.78%204.34%204.96%203.92%20C%205.16%203.46%205.51%203.23%206.01%203.23%20C%206.3%203.23%206.53%203.31%206.72%203.47%20C%206.9%203.63%206.99%203.84%206.99%204.1%20C%206.99%204.38%206.92%204.6%206.77%204.78%20C%206.63%204.96%206.34%205.18%205.91%205.43%20C%205.55%205.63%205.28%205.86%205.1%206.11%20C%204.93%206.35%204.84%206.64%204.84%206.98%20L%204.84%206.98%20L%204.84%207.02%20C%204.84%207.32%204.93%207.57%205.11%207.75%20C%205.3%207.94%205.54%208.03%205.84%208.03%20Z%20M%205.88%2010.95%20C%206.21%2010.95%206.49%2010.84%206.72%2010.62%20C%206.96%2010.4%207.08%2010.13%207.08%209.81%20C%207.08%209.49%206.96%209.22%206.72%209%20C%206.49%208.78%206.21%208.67%205.88%208.67%20C%205.54%208.67%205.26%208.78%205.03%209%20C%204.79%209.22%204.68%209.49%204.68%209.81%20C%204.68%2010.13%204.79%2010.4%205.03%2010.62%20C%205.26%2010.84%205.54%2010.95%205.88%2010.95%20Z%22%2F%3E%3C%2Fsvg%3E') no-repeat center; +} +.pr-form-control-wrap > .pr-form-control-hint.locked:before { + border-radius: 4px; + background: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m10%202c2.209139%200%204%201.790861%204%204v3h1c1.1045695%200%202%20.8954305%202%202v5c0%201.1045695-.8954305%202-2%202h-10c-1.1045695%200-2-.8954305-2-2v-5c0-1.1045695.8954305-2%202-2h1v-3c0-2.209139%201.790861-4%204-4zm0%202c-1.0543618%200-1.91816512.81587779-1.99451426%201.85073766l-.00548574.14926234v3h4v-3c0-1.1045695-.8954305-2-2-2z%22%20fill%3D%22%23c0c4c7%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E') no-repeat center; +} +.field-loading .pr-form-control-wrap.has-hint > .pr-form-control-hint { + pointer-events: none; + opacity: 0; +} +.pr-form-control-hint-tooltip { + font-size: 14px; + line-height: 19px; + color: #fff; + padding: 11px 15px 10px; + border-radius: 8px; + position: absolute; + width: max-content; + max-width: 300px; + max-width: min(350px, calc(100vw - 30px)); + right: -4px; + bottom: 100%; + z-index: 1; + text-align: center; + margin-bottom: 7px; + transition: all .2s ease; + transform: translateY(-10px); + visibility: hidden; + opacity: 0; +} +.pr-form-control-wrap > .show-hint .pr-form-control-hint-tooltip { + transform: translateY(0px); + visibility: visible; + opacity: 1; +} +.pr-form-control-hint-tooltip > .bubble { + position: absolute; + left: 0; right: 0; + top: 0; bottom: 0; + border-radius: 8px; + background-color: #202426; + opacity: 0.85; + z-index: -1; +} +.pr-form-control-hint-tooltip > .bubble:after { + content: ''; + position: absolute; + display: inline-block; + width: 18px; + height: 8px; + margin-top: -1px; + background: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2218%22%20height%3D%228%22%20viewBox%3D%220%200%2018%208%22%3E%3Cpath%20fill%3D%22%23202426%22%20fill-rule%3D%22evenodd%22%20d%3D%22M%200%201%20L%200%200%20L%2018%200%20L%2018%201%20C%2017.74%201%2017.24%201.21%2016.86%201.58%20L%2011.47%206.91%20C%2010.3%208.07%208.42%208.07%207.25%206.91%20L%201.86%201.58%20C%201.48%201.21%200.98%201%200.45%201%20Z%22%2F%3E%3C%2Fsvg%3E'); + right: 16px; + top: 100%; +} +.pr-form-control-owner .pr-form-control { + font-size: 14px; + font-weight: 500; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #222; +} +.pr-layer-preview-ad .pr-form { + padding: 7px 0 0; +} +.pr-form-link { + display: inline-block; + font-size: 13px; + line-height: 19px; + margin: 0 12px; + float: right; + right: 0; + cursor: pointer; + transition: all .2s ease; +} +.pr-form-link.inactive { + opacity: 0; + visibility: hidden; +} +.pr-preview-ad-wrap { + height: 320px; + border-radius: 6px; + background: #6fa786 url('/img/ad_preview_bg.jpg') no-repeat center; + background-size: cover; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: flex-end; + padding: 20px 0 0; + cursor: default; +} +.pr-preview-ad-message-wrap { + position: relative; + top: -8px; + max-height: 0; + opacity: 0; + transition: max-height .2s ease, opacity .2s ease; +} +.pr-preview-ad-message-wrap.active { + max-height: 100%; + opacity: 1; +} +.pr-preview-ad-message { + padding: 0 20px 12px; +} +.pr-preview-ad-message .ad-msg-bubble { + position: relative; + background: #fff; + width: 280px; + max-width: 100%; + padding: 7px 10px; + border-radius: 10px 10px 10px 0; + box-shadow: 0 0 0 0.5px rgba(118, 142, 106, .3), 0 1px 1px rgba(25, 44, 89, .1); +} +.pr-preview-ad-message .ad-msg-bubble-corner { + display: inline-block; + position: absolute; + left: -1px; + bottom: -1px; + transform: translateX(-5.7px); +} +.pr-preview-ad-message .ad-msg-bubble-corner:before { + display: inline-block; + vertical-align: bottom; + content: ''; + width: 8px; + height: 16px; + background: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%228%22%20height%3D%2216%22%20viewBox%3D%220%200%208%2016%22%20style%3D%22filter%3Adrop-shadow%280%200.5px%200%20rgba%28118%2C%20142%2C%20106%2C%20.3%29%29%3B%22%3E%3Cpath%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20d%3D%22M%200.33%200%20L%200.4%203.17%20C%200.4%205.6%200.67%208.67%202%2010.67%20C%203%2012.17%204.35%2013.13%205.7%2013.7%20C%205.8%2013.75%206%2013.95%206%2014.25%20C%206%2014.34%206%2014.43%206%2014.56%20C%206%2014.7%205.86%2015%205.53%2015%20C%205.32%2015%203.14%2015%20-1%2015%20L%20-1%200%20L%200.33%200%20Z%22%20transform%3D%22matrix%28-1%200%200%201%207%200%29%22%20style%3D%22filter%3Adrop-shadow%280%201px%201px%20rgba%2825%2C%2044%2C%2089%2C%20.1%29%29%3B%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E') no-repeat; +} +.pr-preview-ad-message .ad-msg-from, +.pr-preview-ad-message .ad-msg-channel-from { + font-size: 14px; + line-height: 16px; + font-weight: 500; + color: #3487cb; +} +.pr-preview-ad-message .ad-msg-from { + color: #51983e; +} +.pr-preview-ad-message .ad-msg-text { + font-size: 16px; + line-height: 19px; + word-break: break-word; + color: #000; + margin-top: 5px; +} +.pr-preview-ad-message .ad-msg-date { + font-size: 12px; + line-height: 14px; + color: #a1aab3; + text-align: right; + margin-top: 5px; +} +.pr-preview-ad-message .before_footer + .ad-msg-date { + margin-top: -14px; +} +.pr-preview-ad-message .before_footer + .ad-msg-date .label { + position: relative; +} +.pr-preview-ad-message .ad-msg-btn { + display: block; + font-size: 13px; + line-height: 15px; + font-weight: 500; + padding: 10px 20px; + text-align: center; + text-transform: uppercase; + color: #358dd4; + border: 1px solid #448abf; + border-radius: 6px; + margin-top: 8px; + margin-bottom: 2px; +} +.pr-preview-ad-message a.ad-msg-btn:hover { + text-decoration: none; +} + +.tgme_widget_message_bubble { + padding: 10px 12px; +} +.tgme_widget_message_info.short { + float: right; +} +.tgme_widget_message_text.before_footer + .tgme_widget_message_footer { + margin-top: -17px; + margin-bottom: -3px; +} +.tgme_widget_message_text.before_footer + .tgme_widget_message_footer .tgme_widget_message_info { + position: relative; +} + + +.pr-form { + display: flex; + padding: 24px 0; + justify-content: space-between; + flex-wrap: wrap; +} +.pr-form + .pr-form { + padding-top: 0; +} +.pr-review-ad + .pr-form { + padding-top: 0; +} +.pr-form .form-group-text { + font-size: 14px; + line-height: 18px; + margin: -5px 15px 25px; +} +form > .form-group { + position: relative; +} +.pr-form .form-group { + position: relative; + padding: 12px 15px 14px; + max-width: 460px; + margin: 0 auto; +} +.form-group-divider { + border-bottom: 1px solid #d9d9d9; + text-align: center; + height: 10px; + margin: -5px 0 32px; + user-select: none; +} +.form-group-divider-label { + color: #a8a8a8; + font-size: 14px; + line-height: 16px; + background: #fff; + padding: 0 7px; + display: inline-block; + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.form-group-slim { + max-width: 460px; + margin: 0 auto; + padding: 12px 0 14px; +} +.form-group.no-padding, +.form-group-slim.no-padding { + padding: 0; +} +.form-group-slim .form-group { + padding: 8px 15px; +} +.pr-form .form-group .form-label, +.pr-form .form-group-slim > .form-label { + font-size: 15px; + line-height: 18px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + margin: 0 15px 10px; +} +.pr-form .form-group-slim > .form-label { + margin: 0 30px 10px; +} +.form-group > .pr-form-control-hint { + position: relative; + font-size: 13px; + line-height: 17px; + color: #808080; + padding: 10px 0 0; + transition: all .2s ease; +} +.form-group > .pr-form-control-hint:empty { + padding: 0; +} +@media (min-width: 560px) { + .form-group > .pr-form-control-msg, + .form-group > .pr-form-control-hint { + padding-left: 15px; + padding-right: 5px; + } +} +.pr-form .form-group > .pr-form-control-msg, +.pr-form .form-group > .pr-form-control-hint { + padding-left: 15px; + padding-right: 5px; +} +.form-group > .pr-form-control-msg { + position: absolute; + left: 0; + right: 0; + font-size: 13px; + line-height: 15px; + color: #808080; + transition: all .2s ease; + padding: 11px 0 0; + z-index: 1; + box-sizing: content-box; + height: 15px; + display: flex; + flex-direction: row; + align-items: center; +} +.form-group > .pr-form-control-msg.no-hint { + padding-top: 5px; +} +.form-group > .pr-form-control-msg.ohide { + opacity: 0; + visibility: hidden; +} +.form-group > .pr-form-control-msg + .pr-form-control-hint { + opacity: 0; + visibility: hidden; +} +.form-group > .pr-form-control-msg.ohide + .pr-form-control-hint { + opacity: 1; + visibility: visible; +} +.field-invalid > .pr-form-control-msg { + font-weight: 500; + color: #d75959; +} +.pr-form .form-group-no-label { + padding-top: 0; +} +.pr-form .form-group-slim .radio-group { + padding: 0 15px 5px; +} +.pr-form .form-group-slim .radio-group .radio-item-block { + margin: 12px 0 5px; +} +.pr-form .form-group-slim .radio-group .radio-item-block + .radio-item-block { + margin-top: 8px; +} +.pr-layer-popup .pr-form .form-group { + padding-left: 0; + padding-right: 0; +} + +.add-funds-form .decr-group, +.add-funds-form.decr .incr-group { + display: none; +} +.add-funds-form.decr .decr-group { + display: block; +} +.form-group.decr-group .pr-form-control { + padding-left: 45px; +} + +.pr-account-button-wrap { + display: block; + box-shadow: inset 0 0 0 1px #d9d9d9; + border-radius: 6px; + transition: box-shadow .2s ease; + color: inherit; + height: 70px; + margin: 14px 0; +} +a.pr-account-button-wrap { + cursor: pointer; +} +.pr-account-button-wrap.current, +a.pr-account-button-wrap:hover, +a.pr-account-button-wrap:focus { + box-shadow: inset 0 0 0 2px #35a3f6; + color: inherit; + text-decoration: none; +} +.pr-account-button-photo { + display: inline-block; + position: relative; + vertical-align: top; + width: 44px; + height: 44px; + border-radius: 22px; + background: #efefef; + text-align: center; + overflow: hidden; + margin: 13px 14px; + float: left; + user-select: none; +} +.pr-account-button-photo img { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.pr-account-button-photo .photo-char { + font-size: 20px; + vertical-align: middle; + line-height: 44px; + color: #999; +} +.pr-account-button-content { + padding: 14px 15px 14px 72px; +} +.pr-account-button-title, +.pr-account-button-label { + font-size: 15px; + font-weight: 500; + padding: 3px 0 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.pr-account-button-icon { + display: inline-block; + position: relative; + vertical-align: top; + width: 44px; + height: 44px; + border-radius: 22px; + margin: 13px 14px; + float: left; + background: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20width%3D%221%22%20height%3D%229%22%20x%3D%2211.5%22%20y%3D%227.5%22%20stroke%3D%22%23979797%22%20rx%3D%22.5%22%2F%3E%3Crect%20width%3D%229%22%20height%3D%221%22%20x%3D%227.5%22%20y%3D%2211.5%22%20stroke%3D%22%23979797%22%20rx%3D%22.5%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2211%22%20stroke%3D%22%23979797%22%20stroke-width%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E') center no-repeat; +} +.pr-account-button-label { + padding: 12px 0; +} +.pr-account-button-desc { + font-size: 13px; + padding: 1px 0 2px; + color: #808080; +} + +.add-funds-form .pr-account-button-wrap { + margin: 0; +} + +.pr-form-control-inline-wrap { + display: flex; +} +.pr-form-control-inline-wrap .pr-form-control-wrap { + width: 330px; +} +.pr-form-control-inline-wrap .pr-btn { + margin-left: 10px; +} +.pr-form-control-inline-wrap { + display: flex; +} +.pr-form-control-wrap { + position: relative; + font-size: 14px; + line-height: 18px; + color: #222; + background-color: #fff; + border-radius: 6px; +} +.pr-form-control-wrap:after { + content: ''; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + box-shadow: inset 0 0 0 1px #d9d9d9; + background-color: transparent; + border-radius: 6px; + transition: box-shadow .2s ease; + pointer-events: none; +} +.field-focused .pr-form-control-wrap:after { + box-shadow: inset 0 0 0 2px #35a3f6; +} +.field-invalid .pr-form-control-wrap:after { + box-shadow: inset 0 0 0 1px #d75959; +} +.field-focused.field-invalid .pr-form-control-wrap:after { + box-shadow: inset 0 0 0 2px #d75959; +} +.pr-form-control-wrap .pr-form-control-prefix { + position: absolute; + padding: 15px 0 15px 15px; + pointer-events: none; +} +.field-disabled .pr-form-control-wrap .pr-form-control-prefix { + color: #919699; +} +.pr-form-control-amount input.pr-form-control, +.pr-form-control-amount .input.pr-form-control { + padding-left: 34px; +} +.pr-form-control-wrap .pr-form-control, +.pr-form-control-wrap input.pr-form-control, +.pr-form-control-wrap .select, +.field-focused .pr-form-control-wrap .pr-form-control, +.field-focused .pr-form-control-wrap input.pr-form-control, +.field-focused .pr-form-control-wrap .select { + background: none; + box-shadow: none; +} +.field-readonly .pr-form-control-wrap .pr-form-control { + background: #F2F2F2; + line-height: 24px; + padding-top: 12px; + padding-bottom: 12px; + cursor: text; +} +.field-readonly .pr-form-control-wrap:after { + display: none; +} +.pr-form-control-wrap.has-photo .pr-form-control, +.pr-form-control-wrap.has-progress.field-loading .pr-form-control { + padding-right: 48px; +} +.pr-placeholder-label { + display: inline-block; + font-size: 14px; + line-height: 18px; + color: #999; + position: absolute; + z-index: 1; + pointer-events: none; + -webkit-font-smoothing: antialiased; + left: 0; + right: 0; + top: 0; + padding: 15px 0; + margin: 0 15px; +} +.pr-placeholder-label:before { + content: attr(data-placeholder); + position: absolute; + left: -5px; + top: 0; + height: 2px; + transition: transform .2s ease, box-shadow .2s step-end; + box-shadow: inset 0 1px #fff; + transform: scaleX(0); + transform-origin: 5px 0; + font-size: 93%; + padding: 0 5px; + box-sizing: content-box; + white-space: nowrap; + overflow: hidden; + color: transparent; + max-width: 100%; +} +.pr-placeholder-label:after { + display: inline-block; + content: attr(data-placeholder); + transition: all .2s ease; + vertical-align: top; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + transform-origin: left; + max-width: 100%; +} +.form-group .pr-placeholder-label { + font-weight: normal; +} +.field-focused .pr-placeholder-label:before { + box-shadow: inset 0 2px #fff; + transition-timing-function: ease, step-start; +} +.field-has-value .pr-placeholder-label:before, +.field-focused .pr-placeholder-label:before { + transform: scaleX(1); + max-width: 87%; +} +.field-has-value .pr-placeholder-label:after, +.field-focused .pr-placeholder-label:after { + transform: translateY(-24px) scale(.93); + pointer-events: auto; + color: #8a8a8a; +} +.field-focused .pr-placeholder-label:after { + color: #2481cc; +} +.field-invalid .pr-placeholder-label:after { + color: #d75959; +} +.field-focused.field-invalid .pr-placeholder-label:after { + color: #d75959; +} +.pr-form-control-amount .pr-placeholder-label + .pr-form-control-prefix { + opacity: 0; + transition: opacity .2s ease; +} +.field-has-value .pr-placeholder-label + .pr-form-control-prefix, +.field-focused .pr-placeholder-label + .pr-form-control-prefix { + opacity: 1; +} +.pr-form-control-progress { + position: absolute; + width: 44px; + height: 44px; + top: 2px; + right: 2px; + transform-origin: center; + pointer-events: none; + opacity: 0; + transition: opacity .2s ease; +} +.pr-form-control-progress-circle { + stroke: #c0c4c7; + stroke-width: 2px; + stroke-linecap: round; + fill: transparent; + stroke-dashoffset: 50px; + stroke-dasharray: 51px; + transform-origin: center; + animation: circle-rotate linear 2s infinite; + transition: stroke-width .2s ease; + cx: 50%; + cy: 50%; + r: 8px; +} +.field-loading .pr-form-control-wrap .pr-form-control-progress { + opacity: 1; +} +.pr-form-control-photo-wrap { + position: absolute; + width: 44px; + height: 44px; + top: 2px; + right: 2px; + opacity: 0; + visibility: hidden; + transition: opacity .2s ease; + pointer-events: none; + cursor: pointer; +} +.pr-form-control-wrap.has-photo .pr-form-control-photo-wrap { + opacity: 1; + visibility: visible; + transition: opacity .2s ease; + pointer-events: auto; +} +.pr-form-control-photo { + display: inline-block; + position: relative; + vertical-align: top; + width: 30px; + height: 30px; + border-radius: 15px; + background: #efefef; + text-align: center; + overflow: hidden; + margin: 7px; + user-select: none; +} +.pr-form-control-photo img { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.pr-form-control-photo .photo-char { + font-size: 13px; + vertical-align: middle; + line-height: 32px; + color: #999; +} +.pr-form .pr-form-column { + margin: 0 auto; + width: 100%; +} +.pr-form .pr-form-content-wrap { + width: 100%; + margin: 0 auto; +} +.pr-form-column .pr-form-content-wrap { + max-width: 460px; +} +.pr-form .pr-form-content { + width: 100%; + padding-left: 15px; + padding-right: 15px; +} +.pr-form .pr-form-footer { + width: 100%; +} +.pr-form .pr-form-footer .form-group { + display: flex; + width: 100%; + padding-top: 8px; + padding-bottom: 8px; + justify-content: space-between; + align-items: baseline; + flex-wrap: wrap; +} +.pr-form .pr-form-footer-column { + width: 100%; + padding: 10px 0; +} +.pr-form-column .pr-btn.btn-block { + padding: 14px 22px; +} +.pr-form-info-block { + position: relative; + font-size: 14px; + line-height: 20px; + padding: 5px 0 5px 30px; +} +.pr-form-info-block b, +.pr-form-info-block .value { + font-weight: 500; +} +.pr-form-info-block:before { + content: ''; + position: absolute; + display: inline-block; + left: 0; + top: 0; + width: 18px; + height: 18px; + margin: 6px 1px; + background: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m10%200c5.52%200%2010%204.48%2010%2010s-4.48%2010-10%2010-10-4.48-10-10%204.48-10%2010-10zm0%2012.75c-.69%200-1.25.56-1.25%201.25s.56%201.25%201.25%201.25%201.25-.56%201.25-1.25-.56-1.25-1.25-1.25zm0-7.75c-.55%200-1%20.45-1%201v5c0%20.55.45%201%201%201s1-.45%201-1v-5c0-.55-.45-1-1-1z%22%20fill%3D%22%23ee9939%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E') no-repeat center; + background-size: contain; +} +.pr-form-info-block.plus:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m10%200c5.52%200%2010%204.48%2010%2010s-4.48%2010-10%2010-10-4.48-10-10%204.48-10%2010-10zm0%205c-.55%200-1%20.45-1%201v3h-3c-.55%200-1%20.45-1%201s.45%201%201%201h3v3c0%20.55.45%201%201%201s1-.45%201-1v-3h3c.55%200%201-.45%201-1s-.45-1-1-1h-3v-3c0-.55-.45-1-1-1z%22%20fill%3D%22%2333b440%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E'); +} +.pr-form-info-block.minus:before { + background-image: url('data:image/svg+xml,%3Csvg%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m10%200c5.52%200%2010%204.48%2010%2010s-4.48%2010-10%2010-10-4.48-10-10%204.48-10%2010-10zm4%209h-8c-.55%200-1%20.45-1%201s.45%201%201%201h8c.55%200%201-.45%201-1s-.45-1-1-1z%22%20fill%3D%22%23d75959%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E'); +} +.pr-draft-btn-wrap { + position: relative; + opacity: 0; + visibility: hidden; + transition: all .2s ease; +} +.pr-draft-btn-wrap.active { + opacity: 1; + visibility: visible; +} +.pr-draft-saved { + font-size: 14px; + font-weight: 500; + line-height: 20px; + margin: 13px 25px; + white-space: nowrap; + position: absolute; + right: 0; + z-index: 1; + opacity: 0; + visibility: hidden; + transition: all .2s ease; + background: #fff; +} +.pr-draft-btn-wrap.saved .pr-draft-saved { + opacity: 1; + visibility: visible; +} +.pr-form-footer .pr-btn { + padding: 13px 64px; + border-radius: 6px; +} +.pr-form-footer .pr-link-btn { + margin: 13px 25px; +} +.pr-form-footer-delete-column { + order: 1; +} +.pr-form-footer-delete-column .pr-link-btn { + margin-left: 15px; + margin-right: 15px; +} +@media (min-width: 992px) { + .pr-form .form-group { + max-width: none; + padding: 16px 0 18px; + } + .pr-form .form-group.no-padding, + .pr-form .form-group-slim.no-padding { + padding: 0; + } + .form-group-slim { + padding: 16px 0 18px; + } + .form-group-slim .form-group { + padding: 8px 0 15px; + } + .pr-form .form-group-slim > .form-label { + margin-left: 15px; + margin-right: 15px; + } + .pr-form .pr-form-column { + width: 300px; + } + .pr-new-form .pr-form-column { + width: 330px; + margin: 0; + } + .pr-new-form .pr-form-column + .pr-form-column { + width: 430px; + } + .add-funds-req-form .pr-article { + padding: 0; + } + .add-funds-req-form .pr-form-column { + width: 380px; + margin: 0; + } + .add-funds-req-form .pr-form-column + .pr-form-column { + width: 400px; + } + .add-funds-form .pr-form-column, + .account-edit-form .pr-form-column { + width: 400px; + } + .pr-form .pr-form-footer { + border-top: 1px solid #ebebeb; + margin-top: 20px; + } + .pr-form .pr-form-footer-column { + width: auto; + } + .pr-form-footer-delete-column { + order: 0; + } + .pr-form-info-block { + padding-left: 40px; + } + .pr-form-info-block:before { + margin-left: 10px; + } + .pr-decline-block { + margin-left: 0; + margin-right: 0; + } +} + +.pr-no-pr-content { + text-align: center; + padding: 25px 15px; +} +.pr-no-pr-img { + display: inline-block; + width: 100px; + height: 100px; + vertical-align: top; + background: url('data:image/svg+xml,%3Csvg%20height%3D%22100%22%20viewBox%3D%220%200%20100%20100%22%20width%3D%22100%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20fill%3D%22%233c9ff0%22%20r%3D%2250%22%2F%3E%3Cg%20fill%3D%22%23fff%22%3E%3Cpath%20d%3D%22m%2048.11%2060.88%20l%200.66%205.47%20c%200.26%202.25%20-1.2%204.3%20-3.27%204.58%20c%20-0.07%200.01%20-0.14%200.02%20-0.22%200.02%20l%20-0.4%200.03%20c%20-2.14%200.16%20-4.15%20-1.17%20-5.01%20-3.32%20l%20-3.14%20-6.22%20c%20-0.25%20-0.49%20-0.05%20-1.09%200.44%20-1.34%20c%200.14%20-0.07%200.29%20-0.11%200.45%20-0.11%20h%209.49%20c%200.51%200%200.93%200.38%200.99%200.88%20z%22%2F%3E%3Cpath%20d%3D%22m%2036.5%2040%20h%2014.5%20c%200.55%200%201%200.45%201%201%20v%2015%20c%200%200.55%20-0.45%201%20-1%201%20h%20-14.5%20c%20-4.69%200%20-8.5%20-3.81%20-8.5%20-8.5%20s%203.81%20-8.5%208.5%20-8.5%20z%22%2F%3E%3Cpath%20d%3D%22m%2057.53%2038.31%20l%207.8%20-5.2%20c%201.38%20-0.92%203.24%20-0.55%204.16%200.83%20c%200.33%200.49%200.5%201.07%200.5%201.66%20v%2025.79%20c%200%201.66%20-1.34%203%20-3%203%20c%20-0.59%200%20-1.17%20-0.18%20-1.66%20-0.5%20l%20-7.8%20-5.2%20c%20-1.58%20-1.05%20-2.53%20-2.83%20-2.53%20-4.73%20v%20-10.91%20c%200%20-1.9%200.95%20-3.68%202.53%20-4.73%20z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.pr-no-pr-header { + font-size: 17px; + font-weight: 500; + line-height: 20px; + margin: 24px 0 8px; +} +.pr-no-pr-description { + font-size: 14px; + line-height: 18px; +} +.pr-no-pr-buttons-wrap { + margin: 48px auto 12px; + max-width: 210px; + display: flex; + flex-direction: column; +} +.pr-no-pr-button-wrap { + font-size: 14px; + line-height: 20px; +} +.pr-no-pr-button-wrap .pr-btn { + padding: 13px 15px; +} +.pr-no-pr-button-wrap + .pr-no-pr-button-wrap { + margin-top: 22px; +} + +.pr-docs-container .pr-content { + padding: 0 15px 60px; +} +.pr-docs-container #dev_page_content_wrap { + padding-top: 0; +} +@media (max-width: 640px) { + .pr-docs-container #dev_page_content_wrap { + padding-top: 20px; + } +} + +.pr-container.pr-main .pr-content { + display: flex; + min-width: 320px; + min-height: 100vh; + align-items: center; + justify-content: center; + flex-wrap: wrap; +} +.pr-main-content { + text-align: center; + padding: 60px 15px 100px; + max-width: 580px; +} +.pr-main-content .pr-main-additional { + text-align: start; + margin-top: 70px; +} +.pr-main-content #dev_page_content_wrap { + padding: 0; +} +.pr-main-content #dev_page_content, +.pr-main-content #dev_page_content p { + font-size: 14px; + line-height: 21px; +} +.pr-main-content #dev_page_content h3 { + font-size: 16px; + line-height: 22px; + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.pr-main-header { + font-size: 20px; + margin: 30px 0 12px; +} +.pr-main-description { + font-size: 14px; + line-height: 21px; +} +.pr-main-button-wrap { + margin: 30px 0 12px; +} +.pr-main-button-wrap .pr-btn { + width: 210px; + padding: 13px 20px; +} + +@-webkit-keyframes circle-rotate { + from { stroke-dasharray: 51px; transform: rotateZ(0); } + 50% { stroke-dasharray: 99px; transform: rotateZ(240deg); } + to { stroke-dasharray: 51px; transform: rotateZ(720deg); } +} +@keyframes circle-rotate { + from { stroke-dasharray: 51px; transform: rotateZ(0); } + 50% { stroke-dasharray: 99px; transform: rotateZ(240deg); } + to { stroke-dasharray: 51px; transform: rotateZ(720deg); } +} + + + +.table { + font-size: 13px; + line-height: 16px; + font-weight: 500; +} +.table-responsive { + border: none; +} +.pr-table { + font-weight: 500; + margin: 0 0 20px; +} +.pr-table-sticky { + position: relative; +} +.pr-table-sticky > thead > tr > td, +.pr-table-sticky > thead > tr > th { + background-color: #fff; + position: sticky; + top: 0; +} +@media screen and (max-width: 991px) { + .table-responsive { + width: 100%; + margin-bottom: 0; + padding-bottom: 15px; + overflow-y: hidden; + overflow-x: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; + -webkit-overflow-scrolling: touch; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } +} +.pr-table > thead > tr > th, +.pr-table > tbody > tr > th, +.pr-table > thead > tr > td, +.pr-table > tbody > tr > td { + padding: 7px 10px; + line-height: 15px; + vertical-align: middle; + border-top: none; + border-bottom: none; + max-width: 200px; + height: 42px; +} +.pr-table-vtop > thead > tr > th, +.pr-table-vtop > tbody > tr > th, +.pr-table-vtop > thead > tr > td, +.pr-table-vtop > tbody > tr > td { + padding: 14px 10px 13px; + vertical-align: top; +} +.pr-table > thead > tr > th, +.pr-table > thead > tr > td { + font-size: 12px; + text-transform: uppercase; + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.pr-table > tbody > tr:nth-child(even) > td, +.pr-table > tbody > tr:nth-child(even) > th { + background-color: #f0f3f5; +} +.pr-table > thead + tbody > tr:nth-child(odd) > td, +.pr-table > thead + tbody > tr:nth-child(odd) > th { + background-color: #f0f3f5; +} +.pr-table > thead + tbody > tr:nth-child(even) > td, +.pr-table > thead + tbody > tr:nth-child(even) > th, +.pr-table > thead + tbody > tr > td.pr-cell-empty, +.pr-table > thead + tbody > tr > th.pr-cell-empty, +.pr-table > thead + tbody > tr > td.pr-cell-empty-full, +.pr-table > thead + tbody > tr > th.pr-cell-empty-full { + background-color: transparent; +} +.pr-table > thead > tr > td:first-child, +.pr-table > thead > tr > th:first-child, +.pr-table > tbody > tr > td:first-child, +.pr-table > tbody > tr > th:first-child { + padding-left: 15px; +} +.pr-table > thead > tr > td:last-child, +.pr-table > thead > tr > th:last-child, +.pr-table > tbody > tr > td:last-child, +.pr-table > tbody > tr > th:last-child { + padding-right: 15px; +} +@media (min-width: 600px) { + .pr-table > thead > tr > td:first-child, + .pr-table > thead > tr > th:first-child, + .pr-table > tbody > tr > td:first-child, + .pr-table > tbody > tr > th:first-child { + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; + } + .pr-table > thead > tr > td:last-child, + .pr-table > thead > tr > th:last-child, + .pr-table > tbody > tr > td:last-child, + .pr-table > tbody > tr > th:last-child { + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; + } +} +@media (min-width: 992px) { + .pr-table { + table-layout: fixed; + } +} +.pr-sort-marker { + display: inline-block; + position: relative; + width: 8px; + height: 11px; + margin: 1px 0 2px 5px; + vertical-align: top; +} +body.rtl .pr-sort-marker { + margin-right: 5px; + margin-left: 0; +} +.pr-sort-marker:before, +.pr-sort-marker:after { + position: absolute; + border: 4px solid transparent; + transition: transform .15s ease; + left: 0; + content: ''; +} +.pr-sort-marker:before { + border-top-width: 0; + border-bottom-color: #999; + transform-origin: top center; + top: 0; +} +.pr-sort-marker:after { + border-bottom-width: 0; + border-top-color: #999; + transform-origin: bottom center; + top: 7px; +} +.pr-cell-sort { + cursor: pointer; +} +.pr-cell-sort.sort-active.sort-asc .pr-sort-marker:before { + transform: scale(1.25) translateY(2px); +} +.pr-cell-sort.sort-active .pr-sort-marker:after { + transform: scale(1.25) translateY(-2px); +} +.pr-cell-sort.sort-active.sort-asc .pr-sort-marker:after, +.pr-cell-sort.sort-active .pr-sort-marker:before { + transform: scale(0); +} +.pr-cell { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.pr-cell-wrap { + min-width: 180px; + white-space: normal; +} +.pr-cell .pr-link { + color: inherit; +} +.pr-cell-empty .pr-cell, +.pr-cell-empty-full .pr-cell { + font-size: 15px; + font-weight: normal; + text-align: center; + color: #70767b; +} +.pr-cell-empty-full .pr-cell { + padding-top: 24px; + padding-bottom: 24px; +} +.pr-cell-in:before { + content: ''; + display: inline-block; + width: 7px; + height: 5px; + margin: 0 10px 0 3px; + border: solid #aaa; + border-width: 0 0 1px 1px; + position: relative; + top: -3px; +} +.table-responsive + .pr-table-buttons { + text-align: right; + margin-top: -10px; +} +.pr-no-tme-link { + color: #999; + font-style: italic; +} +.ad-declined, +a.ad-declined:hover, +a.ad-declined:focus { + color: #d75959; +} + +.pr-load-more-wrap { + font-size: 14px; + line-height: 22px; + font-weight: 500; + padding: 0 15px 10px; + text-align: center; +} +.pr-load-more { + display: inline-block; + cursor: pointer; + text-transform: uppercase; + color: #999; +} + +.pr-pagination { + padding: 0 15px; +} +@media (min-width: 768px) { + .pr-pagination { + padding: 0 3px; + } +} +.table-responsive + .pr-pagination .pagination { + margin-top: 10px; +} +.pr-pagination .pagination > li > a, +.pr-pagination .pagination > li > span { + font-size: 13px; + line-height: 15px; + font-weight: 500; + padding: 5px 12px; + border-radius: 16px; + color: #0088cc; + border: none; +} +.pr-pagination .pagination > li { + display: inline-block; +} +.pr-pagination .pagination > li + li { + margin-left: 4px; +} +.pr-pagination .pagination > li > a:hover, +.pr-pagination .pagination > li > a:focus { + background-color: #f0f6fa; + text-decoration: none; +} +.pr-pagination .pagination > .active > a, +.pr-pagination .pagination > .active > span, +.pr-pagination .pagination > .active > a:hover, +.pr-pagination .pagination > .active > span:hover, +.pr-pagination .pagination > .active > a:focus, +.pr-pagination .pagination > .active > span:focus { + color: #fff; + background-color: #0f9ae4; + border-color: #0f9ae4; +} +.pr-pagination .pagination > .disabled > a, +.pr-pagination .pagination > .disabled > span { + color: #999; + cursor: default; + padding: 5px 7px; +} + +.pr-review-list .pr-load-more-wrap { + padding: 25px 15px; +} +.pr-review-header-block { + display: flex; + line-height: 19px; + justify-content: space-between; + flex-direction: row-reverse; + flex-wrap: wrap; +} +.pr-review-header-wrap { + display: flex; + padding: 15px 15px 5px; + flex-grow: 100000; + order: 2; +} +.pr-review-header-tabs { + display: flex; + font-size: 15px; + font-weight: 600; + padding: 15px 15px 5px; + -webkit-font-smoothing: antialiased; + flex-grow: 1; + order: 1; +} +.pr-review-header { + font-size: 16px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + margin: 0; +} +.pr-review-header-dd, +.pr-review-header-tabs .pr-review-header-tab-wrap + .pr-review-header-tab-wrap { + margin-left: 20px; + position: relative; +} +.pr-review-header-dd:before, +.pr-review-header-tabs .pr-review-header-tab-wrap + .pr-review-header-tab-wrap:before { + display: inline-block; + content: ''; + width: 4px; + height: 4px; + border-radius: 2px; + background-color: #c0cbd2; + position: absolute; + left: -12px; + top: 7px; +} +.pr-review-header-dd .pr-dropdown-label { + font-size: 15px; + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.pr-review-header-dd span.dropdown-menu { + left: -15px; + right: auto; +} +.pr-review-header-tab-wrap.active .pr-review-header-tab { + color: inherit; + pointer-events: none; +} + +.pr-review-ad { + display: flex; + width: 100%; + flex-wrap: wrap; + justify-content: space-between; + padding: 20px 15px; +} +.pr-review-ad-empty { + padding: 60px 35px; + font-size: 16px; + color: #70767b; + text-align: center; +} +.pr-review-ad-preview { + padding: 5px 0; + margin: 0 -2px 0 -8px; + flex-grow: 1; + width: 100%; + + font-family: 'Roboto', sans-serif; + font-size: 16px; +} +.pr-review-ad-preview * { + box-sizing: content-box; +} +.pr-review-ad-preview .tgme_widget_message { + width: 100%; +} +.pr-review-ad-preview .tgme_widget_message_bubble_logo { + display: none; +} +.pr-review-ad-content { + padding: 5px 0; + width: 100%; +} +.pr-review-ad-info { + line-height: 22px; + padding: 0 0 24px; +} +.pr-review-preview-column, +.pr-review-content-column { + flex-grow: 1; + flex-basis: 100%; +} +.pr-review-preview-column .pr-review-ad-content { + padding-top: 15px; +} +.pr-review-preview-column .pr-review-ad-info { + padding-bottom: 16px; +} +.pr-review-preview-column .pr-form-info-block { + margin-left: 7px; +} +.pr-review-ad-info .pr-ad-info-label { + font-size: 14px; + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.pr-review-ad-info .ad-owner-value-wrap { + padding: 16px 0 0; +} +.pr-review-ad-info .ad-owner-value { + margin: -2px 0; +} +.pr-review-ad-info .ad-owner-value .ad-owner-name { + font-weight: 500; + line-height: 20px; + -webkit-font-smoothing: antialiased; +} +.pr-review-ad-info .ad-owner-value .ad-owner-date { + font-size: 14px; + line-height: 20px; + color: #8a8a8a; +} +.pr-review-ad-info .pr-ad-info-value { + font-size: 15px; +} +.pr-ad-info-value .included.a, +.pr-ad-info-value .excluded.a { + color: #0088cc; +} +.pr-ad-info-value .excluded, +.pr-ad-info-value .excluded a { + /*color: #d75959;*/ +} +.pr-ad-info-value .included:before, +.pr-ad-info-value .excluded:before { + width: 12px; + padding-right: 3px; + display: inline-block; + text-align: center; +} +.pr-ad-info-value .included:before { + content: '+'; +} +.pr-ad-info-value .excluded:before { + content: '–'; +} +.pr-review-ad-info-multi { + display: flex; +} +.pr-review-ad-info-multi > .pr-review-ad-info { + flex-basis: 33.33%; + flex-grow: 1; +} +.pr-review-ad-info-multi > .pr-review-ad-info.large { + flex-basis: 66.66%; +} +.pr-review-ad-status { + padding: 5px 0; + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.pr-status-approved { + color: #249106; +} +.pr-status-declined { + color: #d75959; +} +.pr-review-owner-actions { + font-size: 14px; + font-weight: 500; + -webkit-font-smoothing: antialiased; + line-height: 22px; + display: flex; + flex-wrap: wrap; + width: 100%; +} +.ad-owner-value-wrap .pr-review-owner-actions { + margin: 15px 0 -5px; +} +.pr-review-owner-action + .pr-review-owner-action { + margin-left: 20px; + position: relative; +} +.pr-review-owner-action + .pr-review-owner-action:before { + display: inline-block; + content: ''; + width: 4px; + height: 4px; + border-radius: 2px; + background-color: #c0cbd2; + position: absolute; + left: -12px; + top: 9px; +} +.pr-review-ad-buttons { + padding: 10px 0; + display: flex; + flex-wrap: wrap; + width: 100%; +} +.pr-review-ad-buttons .btn { + padding: 11px 15px; +} +.pr-review-ad-buttons .pr-btn.pr-btn-selected { + color: #3c9ff0; + background: #fff; + box-shadow: inset 0 0 0 1px #3c9ff0; + cursor: default; +} +.pr-review-ad-buttons .pr-del-btn.pr-btn-selected { + color: #d75959; + box-shadow: inset 0 0 0 1px #d75959; +} +.pr-review-ad-buttons .pr-btn-selected.dropdown-toggle { + cursor: pointer; +} +.pr-review-ad-buttons .review-btn { + flex-grow: 1; + flex-shrink: 1; + max-width: calc(50% - 8px); +} +.pr-review-ad-buttons .review-btn .btn { + width: 100%; +} +.pr-review-ad-buttons .review-btn + .review-btn { + margin-left: 16px; +} +.pr-review-ad-buttons .btn.dropdown-toggle { + display: flex; + justify-content: center; +} +.pr-review-ad-buttons .btn.dropdown-toggle .label { + display: inline-block; + text-overflow: ellipsis; + overflow: hidden; +} +.pr-review-ad-buttons .btn.pr-btn-selected .label.sm { + font-size: 12px; + letter-spacing: -0.4px; +} +.pr-review-ad-buttons .btn.dropdown-toggle:after { + content: ''; + display: inline-block; + vertical-align: middle; + width: 13px; + height: 6px; + margin-left: 7px; + flex-shrink: 0; + align-self: center; + background-repeat: no-repeat; + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213%22%20height%3D%226%22%20viewBox%3D%220%200%2013%206%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23FFF%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M%201.68%201%20L%205.8%204.46%20C%206.17%204.77%206.71%204.77%207.08%204.46%20L%2011.2%201%20L%2011.2%201%22%2F%3E%3C%2Fsvg%3E'); +} +.pr-review-ad-buttons .pr-del-btn.pr-btn-selected.dropdown-toggle:after { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213%22%20height%3D%226%22%20viewBox%3D%220%200%2013%206%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23d75959%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M%201.68%201%20L%205.8%204.46%20C%206.17%204.77%206.71%204.77%207.08%204.46%20L%2011.2%201%20L%2011.2%201%22%2F%3E%3C%2Fsvg%3E'); +} +body.rtl .pr-review-ad-buttons .btn.dropdown-toggle:after { + margin-right: 7px; + margin-left: 0; +} +@media screen and (min-width: 480px) { + .pr-review-ad-preview { + margin-left: 0; + flex-grow: 0; + } +} +@media screen and (min-width: 992px) { + .pr-review-ad { + padding-left: 0; + padding-right: 0; + } + .pr-review-preview-column, + .pr-review-content-column { + flex-grow: 0; + flex-basis: auto; + } + .pr-review-preview-column { + width: 480px; + } + .pr-review-content-column { + width: 320px; + } + .pr-review-preview-column .pr-review-ad-content { + padding-left: 45px; + } + .pr-review-preview-column .pr-form-info-block { + margin-left: -10px; + } +} + +.pr-page-tabs { + display: flex; + padding: 17px 15px 0; + flex-wrap: wrap; + justify-content: flex-end; +} +.pr-page-tabs .pr-tabs { + padding-top: 7px; + flex-grow: 1; + flex-shrink: 0; +} +.pr-page-tabs .pr-links { + padding-top: 7px; + flex-shrink: 0; +} +.pr-page-tabs .pr-link-btn { + line-height: 16px; + margin: 7px 12px; +} +.pr-page-tabs + .pr-form { + padding-top: 16px; +} +@media (min-width: 768px) { + .pr-page-tabs { + padding: 24px 0 0; + flex-direction: row; + } + .pr-page-tabs .pr-links { + margin-top: 0; + } +} +.pr-tabs > li+li { + margin-left: 4px; +} +.pr-tabs > li > a { + display: inline-block; + font-size: 14px; + line-height: 16px; + font-weight: 500; + padding: 7px 15px; + transition: all .2s ease; + border-radius: 16px; +} +.pr-tabs li.active > a { + background: #0f9ae4; + color: #fff; +} + +.deleted-title { + color: #999; +} + +.pr-info-block, +.pr-decline-block { + position: relative; + padding: 0 0 0 15px; + margin: 0 15px; +} +.pr-decline-block { + margin: 30px 15px -10px; +} +.pr-info-block:before, +.pr-decline-block:before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 2px; + background-color: #0f9ae4; + border-radius: 1px; + box-shadow: 0 0 0 0.5px #0f9ae4; +} +.pr-decline-block:before { + background-color: #d75959; + box-shadow: 0 0 0 0.5px #d75959; +} +.pr-info-block-header, +.pr-decline-block-header { + color: #0088cc; + font-weight: 500; + padding-bottom: 4px; +} +.pr-decline-block-header { + color: #d75959; +} +.pr-decline-reason { + font-weight: 500; +} +.pr-info-text, +.pr-decline-reason, +.pr-decline-reason-desc { + font-size: 14px; +} +.pr-review-ad-content .pr-decline-block { + margin: 10px 0 0; + flex-basis: 100%; +} +.pr-review-ad-buttons .pr-decline-block { + margin: 20px 0 0; + flex-basis: 100%; +} + +.pr-popup-account { + display: block; + margin: 15px 0; + text-align: center; + min-width: 240px; +} +a.pr-popup-account:hover { + text-decoration: none; +} +.pr-popup-account-text { + text-align: center; +} +.pr-popup-account-photo { + display: inline-block; + position: relative; + vertical-align: top; + width: 75px; + height: 75px; + border-radius: 38px; + margin: 0 auto 10px; + background: #efefef; + text-align: center; + overflow: hidden; + user-select: none; +} +.pr-popup-account-photo img { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.pr-popup-account-photo .photo-char { + font-size: 41px; + vertical-align: middle; + line-height: 77px; + color: #999; +} +.pr-popup-account-name { + font-size: 16px; + line-height: 21px; + font-weight: 500; + max-width: 280px; + color: #333; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.pr-popup-account-username { + font-size: 14px; + line-height: 21px; + color: #808080; +} + +.pr-article { + padding: 0 15px; +} +#dev_page_content, +#dev_page_content p { + font-size: 15px; + line-height: 1.6; +} +#dev_page_content h4 { + font-size: 15px; + line-height: 22px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + margin: 14px 0 10px; +} +#dev_page_content > ul:not(.nav), +#dev_page_content ul.bulleted, +#dev_page_content > ul:not(.nav) ul:not(.nav), +#dev_page_content > ol:not(.nav) ul:not(.nav), +#dev_page_content ul.bulleted ul.bulleted { + padding-left: 0; +} +#dev_page_content b, +#dev_page_content strong { + font-weight: 500; +} + +.pr-page-header-wrap { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; +} +.pr-page-header { + font-size: 15px; + line-height: 22px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + padding: 10px 15px; + margin: 0; +} +.pr-page-header-wrap > .pr-page-header { + flex-grow: 1; + flex-shrink: 0; +} +.pr-page-header-wrap > .pr-tabs { + flex-shrink: 0; +} +.pr-graph-wrap, +.pr-table-wrap { + margin: 0 0 30px; + width: 100%; +} +.pr-graph-wrap .pr-tabs, +.pr-table-wrap .pr-tabs { + position: relative; + float: right; + padding: 7px 17px; + z-index: 1; +} +.pr-graph-wrap .pr-tabs > li > a, +.pr-table-wrap .pr-tabs > li > a { + padding: 6px 12px; +} +.pr-graph-timezone { + padding: 10px 15px 0; + font-size: 12px; + line-height: 16px; + color: #70767b; +} + +.chart_wrap { + position: relative; + transition: all .3s ease; +} +.chart_wrap_loading { + background-color: #fff; + color: #7A8A93; + font-size: 16px; + text-align: center; + + display: flex; + align-items: center; + justify-content: center; + padding: 40px 20px; + position: absolute; + width: 100%; + z-index: 3; + opacity: 1; + transition: all .2s ease; + pointer-events: none; +} + +.pr-budget-count { + font-size: 23px; + line-height: 27px; + font-weight: 500; + padding: 0 15px; +} + +.amount-sign { + display: inline-block; + font-family: monospace; + padding-right: 3px; + position: relative; + top: -1px; +} +.pr-table .amount-sign { + font-weight: 600; + -webkit-font-smoothing: antialiased; +} +.amount-currency:after { + content: ' '; + margin-right: -1px; +} +.pr-amount { + color: #777; +} +.pr-amount-incr { + color: #249106; +} +.pr-amount-decr { + color: #d75959; +} + + +.popup-container { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: rgba(0,0,0,.6); + z-index: 101; + display: -webkit-flex; + display: flex; + justify-content: center; + align-items: center; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.popup { + max-width: 100%; + word-wrap: break-word; + margin: 15px; + border-radius: 4px; + background: #fff; + box-shadow: 0 0 12px rgba(0, 0, 0, .3); +} +.popup section { + position: relative; + padding-bottom: 60px; +} +.popup h4 { + font-size: 18px; + margin: 5px 0 15px; +} +.popup h4 ~ h4 { + margin-top: 25px; +} +.popup-body { + padding: 20px; +} +.login-popup-container .popup-body { + padding: 15px 25px 25px; +} +@media (min-width: 560px) { + .popup { + margin: 50px; + } + .popup-body { + padding: 30px 35px; + } + .login-popup-container .popup-body { + padding: 50px 60px; + } +} +@media (min-width: 768px) { + .popup { + max-width: 600px; + } +} +.popup .popup-text { + margin: 0; + line-height: 24px; + position: relative; + z-index: 1; +} +.popup .popup-buttons { + margin: -17px -15px -10px; + position: absolute; + right: 0; + bottom: 0; +} + +.pr-popup-container { + align-items: start; + padding: 70px 10px; +} + +.login-popup-container section { + line-height: 23px; + max-width: 600px; +} +.login-popup-container h2 { + font-size: 24px; + margin-top: 15px; + margin-bottom: 15px; +} +.login-popup-container p { + margin-bottom: 18px; +} +.login-popup-container p.help-block { + margin-top: 18px; + margin-bottom: -7px; +} +.login-popup-container .form-control { + max-width: 280px; +} + +.tgme_popup_buttons { + display: flex; + justify-content: flex-end; +} +.tgme_popup_button_left { + margin-right: auto; +} + +.toast-container { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 201; + padding: 0 45px; + margin: auto; + display: flex; + align-items: center; + justify-content: center; + transition: all .2s ease; + pointer-events: none; +} +.toast { + max-width: 320px; + max-height: 270px; + background: rgba(14, 21, 33, 0.75); + font-weight: 500; + color: #fff; + padding: 8px 24px; + border-radius: 10px; + font-size: 14px; + line-height: 20px; + text-align: center; +} +.toast a { + color: #69C5FF; + pointer-events: auto; +} + +.pr-layer-header { + font-size: 16px; + line-height: 20px; + font-weight: 600; + -webkit-font-smoothing: antialiased; + margin: 0 0 20px; + overflow: hidden; +} +.pr-layer-subheader { + font-size: 13px; + line-height: 17px; + font-weight: 500; + margin: -18px 0 20px; + overflow: hidden; +} +.pr-layer-text { + font-size: 14px; + line-height: 21px; +} +.pr-layer-popup { + padding: 21px 23px; + border-radius: 6px; + background: #fff; + box-shadow: 0 0 12px rgba(0, 0, 0, .3); + flex-shrink: 1; + max-width: 90%; + max-width: calc(100vw - 30px); +} +.pr-layer-popup .radio-item-block, +.pr-layer-popup .checkbox-item-block { + margin: 10px 0; +} +.pr-layer-edit-title, +.pr-layer-edit-cpm, +.pr-layer-edit-budget { + width: 360px; +} +.pr-layer-edit-status { + width: 235px; +} +.pr-layer-share-stats { + width: 440px; +} +.pr-layer-delete-ad { + width: 350px; +} +.pr-layer-delete-ad { + width: 350px; +} +.pr-layer-delete-ad .popup-primary-btn { + color: #d14e4e; + background-color: transparent; +} +.pr-layer-delete-ad .popup-primary-btn:hover, +.pr-layer-delete-ad .popup-primary-btn:focus, +.pr-layer-delete-ad .popup-primary-btn:active { + color: #d14e4e; + background-color: #fcdfde; +} + +.pr-layer-popup-empty { + font-size: 16px; + line-height: 24px; + color: #70767b; + width: 270px; + padding: 50px 20px 20px; + text-align: center; +} + +.chart_csv_export_wrap { + position: relative; + margin-top: -44px; + float: right; + z-index: 20; +} +.chart_csv_export_wrap .btn.csv_link { + padding: 9px 18px 7px; + border-radius: 18px; +} diff --git a/data/themes.telegram.org/css/themes.css b/data/themes.telegram.org/css/themes.css deleted file mode 100644 index b0afb81f13..0000000000 --- a/data/themes.telegram.org/css/themes.css +++ /dev/null @@ -1,2001 +0,0 @@ -body { - font-family: 'Roboto', sans-serif; - font-size: 15px; - color: #000; - margin: 0; - padding: 0; -} - -.btn, -a.btn, -button.btn { - font-size: 13px; - font-weight: 500; - line-height: 18px; - text-transform: uppercase; - border-radius: 5px; - padding: 8px 16px 6px; - border: none; -} -.btn:active { - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.125); -} -.btn-xs, -a.btn-xs, -button.btn-xs { - font-size: 11px; - line-height: 14px; - padding: 4px 7px 2px; -} -.btn-sm, -a.btn-sm, -button.btn-sm { - padding: 5px 14px 4px; -} -.btn-lg, -a.btn-lg, -button.btn-lg { - padding: 9px 16px 8px; -} -.btn-primary { - background-color: #238fe1; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active { - background-color: #068cd4; -} -.btn-default { - background-color: transparent; - color: #0086d3; -} -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.open > .dropdown-toggle.btn-default { - color: #0086d3; - background-color: #e8f3fa; - box-shadow: none; -} -.btn-default.btn-danger { - color: #d14e4e; - background-color: transparent; -} -.btn-default.btn-danger:hover, -.btn-default.btn-danger:focus, -.btn-default.btn-danger:active { - color: #d14e4e; - background-color: #fcdfde; -} -.btn-link:active { - box-shadow: none; -} -.btn-muted { - color: #1a1a1a; - background-color: #f2f2f2; -} - -.click { - cursor: pointer; -} -.click:hover { - text-decoration: underline; -} - -.btn:focus, -.btn:active:focus, -button:focus, -button:active:focus, -input.form-control:focus, -textarea.form-control:focus, -input.form-control, -textarea.form-control { - outline: none; - box-shadow: none; -} -input.form-control[disabled], -textarea.form-control[disabled] { - cursor: auto; - background-color: #fff; -} - -i.emoji { - font-style: normal; - box-sizing: content-box; -} -i.emoji > b { - font-weight: normal; -} -.emoji_default i.emoji { - background: none !important; -} -.emoji_image i.emoji { - width: 1.25em; - vertical-align: top; - display: inline-block; - white-space: nowrap; - overflow: hidden; - background: no-repeat 2px 50%; - background-position-y: calc(50% - 1px); - background-size: 1.25em 1.25em; - text-indent: -10em; - padding: 3px 3px 3px 2px; - margin: -3px -2px; -} -.emoji_image .rtl i.emoji { - padding-left: 3px; - padding-right: 2px; -} -.emoji_image i.emoji > b { - letter-spacing: 12em; - pointer-events: none; -} - -img.emoji { - width: 1.25em; - height: 1.25em; - padding: 0 1px; - vertical-align: top; - vertical-align: text-top; - box-sizing: content-box; - cursor: inherit; -} -a:hover img.emoji { - border-bottom: 1px solid; - padding: 0 2px; - margin: 0 -1px; -} - -.form-control { - font-size: 14px; - padding: 12px 0; -} - -.container, -.container-fluid { - position: relative; - margin-right: auto; - margin-left: auto; - padding-left: 0; - padding-right: 0; - width: auto; - max-width: 920px; - box-sizing: content-box; -} - -.bg-image { - background: #f7f7f7 no-repeat center; - background-size: cover; -} -.strong { - font-weight: 500; -} - -.th-aside { - margin: -5px 15px 0; -} -.th-content { - position: relative; - margin: 0 0 75px; -} - -.th-header, -.th-markdown h3, -.th-markdown h4 { - font-size: 13px; - line-height: 17px; - font-weight: bold; - padding: 2px 0; - margin: 25px 0 7px; - text-transform: uppercase; -} -.th-markdown h5, -.th-markdown h6 { - font-size: 14px; - line-height: 21px; - font-weight: 500; - padding: 0; - margin: 15px 0 4px; -} -li.th-logo:last-child .th-logo-title { - display: inline; -} -.th-content .th-header { - margin-left: 15px; -} - -.th-article { - margin: 15px 0 0; -} -.th-article-date { - display: block; - font-size: 14px; - font-weight: 500; - line-height: 23px; - margin-bottom: 2px; -} -.th-article-text, -.th-markdown p { - font-size: 14px; - line-height: 21px; - margin: 0; -} - -.th-list-empty-wrap { - transition: opacity .2s ease, visibility .2s ease; -} -.th-list-empty-wrap.ohide { - height: 0; -} -.th-list-empty { - font-size: 14px; - line-height: 22px; - color: #70767b; - padding: 32px 0; - text-align: center; -} - -.th-contest { - display: block; - font-size: 14px; - line-height: 22px; - padding: 15px 0; -} -a.th-contest:hover { - text-decoration: none; -} -.th-contest + .th-contest { - border-top: 1px solid #f0f0f0; -} -.th-contest-title { - font-weight: 500; - color: #000; -} -.th-contest-period { - color: #70767b; -} -.th-badge { - font-size: 11px; - line-height: 13px; - padding: 3px 5px 2px; - text-transform: uppercase; - display: inline-block; - vertical-align: 1px; - margin-left: 10px; - border-radius: 3px; - background-color: #70767b; - color: #fff; -} -.th-badge-new { - background-color: #238fe1; -} -.th-header .th-badge { - margin-top: -1px; -} - - -a.th-dl-button { - position: absolute; - top: 0; - left: 0; - right: 0; - display: block; - font-size: 15px; - color: #FFF; - background: #3092e6; - padding: 1px 15px; - height: 42px; - line-height: 41px; - text-align: center; - white-space: nowrap; - z-index: 10; -} -a.th-dl-button:hover, -a.th-dl-button:active { - color: #FFF; - background: #2789DE; - text-decoration: none; -} -.th-dl-button-try { - padding: 4px 11px; - border: 1px solid #fff; - border-radius: 3px; - margin-left: 12px; -} -.th-main { - display: flex; - min-width: 320px; - min-height: 100vh; - align-items: center; - justify-content: center; - flex-wrap: wrap; - padding: 40px 0 0; -} -.th-main-content { - text-align: center; - padding: 40px 10px 50px; - max-width: 360px; -} -.th-main-content h1 { - font-size: 19px; - margin: 30px 0 12px; -} -.th-main-content p { - font-size: 15px; - line-height: 21px; -} -.th-dl-button b, -.th-main-content b { - font-weight: 500; -} -.th-main-icon { - display: inline-block; - width: 100px; - height: 100px; - background: url('data:image/svg+xml,%3Csvg height="100" viewBox="0 0 99 100" width="99" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="%230f9ae4" fill-rule="evenodd" transform="translate(1 10)"%3E%3Cpath d="m27.3299021 54.5971404h-18.10461067c-1.43756152 0-2.60293538-1.1653738-2.60293538-2.6029353v-4.6001193c0-1.4375615 1.16537386-2.6029354 2.60293538-2.6029354h44.33143827c1.4375615 0 2.6029354 1.1653739 2.6029354 2.6029354v4.6001193c0 1.4375615-1.1653739 2.6029353-2.6029354 2.6029353h-18.7064012c1.6846715 5.5624133 2.909254 13.7612262 3.8405519 18.6182864 1.5083556 7.8666285-3.3765692 10.8252812-7.5417783 10.8252812-4.1652092 0-9.050134-4.0981559-7.5417784-11.9647845.9094191-4.7429541 2.0985044-12.2582658 3.7225784-17.4787831zm6.318501 23.0116168c1.1715729-1.1715728 1.1715729-3.0710678 0-4.2426407-1.1715728-1.1715728-3.0710678-1.1715728-4.2426406 0-1.1715729 1.1715729-1.1715729 3.0710679 0 4.2426407 1.1715728 1.1715729 3.0710678 1.1715729 4.2426406 0z" transform="matrix(.70710678 .70710678 -.70710678 .70710678 54.743154 -3.329808)"/%3E%3Cpath d="m77.1933507 24.2305175c-.7172516 2.1075474-1.3658738 3.7094858-1.9458666 4.8058152-1.0903132 2.0609607-2.8787787 4.7364008-5.3653967 8.0263201l-.0000567-.0000428c-.1665298.2203272-.1229184.5339368.0974089.7004666.1359339.1027429.3148283.1291989.4746818.0701988 2.214469-.8173353 3.8392008-1.5394142 4.8741954-2.1662369 2.7545174-1.6682153 5.2193283-4.9280761 6.789222-5.748253.0547696-.0286138.1094841-.0570595.1641434-.0853368l3.4642799 3.8146338c1.4658869 1.6141369 1.3689762 4.1049302-.2178938 5.6002917l-19.6429269 18.5101969c-1.5505328 1.4611198-3.9741965 1.4505083-5.5118758-.0241324l-22.7127168-21.7815899c-1.5599561-1.4960042-1.6493731-3.9606385-.2019256-5.5657514 3.4953029-3.876034 6.5445731-8.1539982 9.1478107-12.8338925 2.7821293-5.0014916 4.9920761-10.32968627 6.6298403-15.98458416l-.0000102-.00000297c.251986-.87006109 1.1615848-1.37110997 2.0316459-1.119124.2915046.08442519.5538686.24807467.7578989.47273924z"/%3E%3C/g%3E%3C/svg%3E') no-repeat center; -} -a.th-login-editor-btn { - margin-top: 25px; - display: inline-block; - font-size: 14px; - line-height: 20px; - padding: 11px 25px; - font-weight: 500; - text-transform: uppercase; - border-radius: 4px; - background-color: #3092e6; - color: #fff; - cursor: pointer; -} -a.th-login-editor-btn:hover { - background-color: #2789DE; - text-decoration: none; - color: #fff; -} -.th-login-editor-btn:before { - display: inline-block; - content: ''; - width: 20px; - height: 17px; - margin-right: 15px; - vertical-align: top; - position: relative; - top: 2px; - background: url('data:image/svg+xml,%3Csvg height="17" viewBox="0 0 20 17" width="20" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="m1.375 7.318c5.369-2.399 8.949-3.98 10.74-4.744 5.114-2.182 6.177-2.561 6.87-2.574.152-.003.493.036.713.22.187.155.238.364.262.511.025.147.055.482.031.744-.277 2.987-1.476 10.235-2.086 13.58-.259 1.416-.767 1.89-1.259 1.937-1.069.101-1.882-.725-2.917-1.422-1.621-1.09-1.636-.811-3.174-1.911-1.376-.983-1.084-2.256-.048-3.36.271-.289 3.799-4.174 3.89-4.573.011-.05.138-.698.03-.796-.107-.098-.606-.101-.72-.075-.163.038-2.447 1.6-6.852 4.686-.735.518-1.401.77-1.997.757-.658-.015-1.923-.382-2.863-.695-1.153-.385-2.07-.588-1.99-1.241.041-.34.498-.688 1.37-1.044z" fill="%23fff" fill-rule="evenodd"/%3E%3C/svg%3E') no-repeat; -} - -.th-theme { - display: block; - font-size: 14px; - line-height: 22px; - padding: 16px 15px 16px 30px; - margin: 0 -15px; - position: relative; - min-height: 68px; - transition: all .2s ease; -} -a.th-theme:hover { - text-decoration: none; -} -a.th-theme:focus { - box-shadow: none; - outline: none; -} -.th-theme + .th-theme { - margin-top: 1px; -} -.th-theme + .th-theme:before { - position: absolute; - display: block; - content: ''; - border-top: 1px solid #f0f0f0; - margin: 0 15px; - top: -1px; - left: 90px; - right: 0; -} -.th-theme-photo { - display: inline-block; - vertical-align: top; - width: 44px; - height: 44px; - border-radius: 22px; - background: #efefef; - text-align: center; - overflow: hidden; - margin-right: 12px; - float: left; -} -.th-theme-photo img { - width: 100%; -} -.th-theme-photo .photo-char { - font-size: 20px; - vertical-align: middle; - line-height: 44px; - color: #999; -} -.th-theme-title { - font-size: 15px; - font-weight: 500; - color: #000; -} -.th-theme-label { - color: #808080; -} -.th-theme-thumb { - display: inline-block; - width: 74px; - height: 46px; - float: left; - margin: -1px 16px -1px 0; - border-radius: 5px; - background: #efefef no-repeat center; - background-size: cover; - overflow: hidden; -} -.th-theme-edit-btn { - float: right; - margin: 6px 0 6px 12px; -} - -.th-theme-header { - margin: 30px 0 20px 15px; - transition: all .2s ease; -} -.th-theme-header-body { - max-width: 100%; - padding: 5px 15px 5px 0; - float: left; -} -.th-theme-header .th-theme-thumb { - margin-top: 1px; - margin-bottom: 1px; -} -.th-theme-header .th-theme-title { - font-size: 19px; - line-height: 25px; -} -.th-theme-header .th-theme-label { - margin-top: 5px; -} -.th-theme-header .th-theme-title, -.th-theme-header .th-theme-label { - margin-left: 90px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.th-theme-header .th-theme-buttons { - float: right; - padding: 5px 0; - margin: 4px 15px 4px 18px; - transition: all .2s ease; -} -.th-theme-buttons .btn { - float: right; - padding: 12px 20px 10px; -} -.th-theme-buttons .btn ~ .btn { - margin-right: 10px; -} -.header-btn-wrap .th-theme-buttons { - margin: 2px 15px; -} -.header-btn-wrap .th-theme-buttons .btn { - padding: 9px 18px 7px; -} - -.th-theme-placeholder { - padding: 83px 20px; - text-align: center; - color: #6b6e70; -} - -.th-theme-source-placeholder { - position: absolute; - border: 1px solid #e0e0e0; - background: #fff; - width: 100%; - opacity: 0; - visibility: hidden; - pointer-events: none; -} -.th-theme-ph-icon { - display: inline-block; - width: 100px; - height: 75px; - background: url('data:image/svg+xml,%3Csvg height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg transform="translate(3 28)"%3E%3Cellipse cx="15.144928" cy="44.604" fill="%23b0b5b9" rx="2.391304" ry="2.3895"/%3E%3Cg stroke="%23b0b5b9" stroke-width="3"%3E%3Cpath d="m15.3715001 35.7495h-9.00184687c-1.70492762 0-3.08704453-1.3821169-3.08704453-3.0870445v-3.197911c0-1.7049276 1.38211691-3.0870445 3.08704453-3.0870445h27.11576597c1.7049277 0 3.0870446 1.3821169 3.0870446 3.0870445v3.197911c0 1.7049276-1.3821169 3.0870445-3.0870446 3.0870445h-9.3852697c.206947.8758938.4121073 1.8418942.6220916 2.9141213.2731117 1.39457 1.0405032 5.708952 1.1417756 6.2348279.9880491 5.1306323-1.9487771 8.3740508-6.0843967 8.3740508-4.0352661 0-7.0768151-3.9144561-6.0843968-9.0677766.0166922-.0866775.8030719-4.3734735 1.0846051-5.7639316.1991151-.9834052.3944975-1.876227.5916718-2.6912918z" transform="matrix(.70710678 .70710678 -.70710678 .70710678 33.997168 -2.426423)"/%3E%3Cpath d="m20.9827863 20.3419695c2.6373452-2.7862367 4.8531008-5.9254117 6.6491303-9.4213645 1.5944154-3.10351318 2.8204251-6.40139185 3.6782858-9.89607714.3020098-1.23011078 1.5440173-1.98252205 2.7741489-1.68055451.4152612.10193658.7937574.31792949 1.0927589.62359449l19.1544605 19.58133886c1.4837739 1.5168414 1.4741029 3.9441897-.0217103 5.44916l-14.2812632 14.36869-20.1089697-17.9016076z" transform="matrix(.99939083 .0348995 -.0348995 .99939083 .687639 -1.314761)"/%3E%3C/g%3E%3C/g%3E%3Cg fill="%23b0b5b9"%3E%3Ccircle cx="30.75" cy="10.444444" r="3.077904" transform="matrix(.70710678 .70710678 -.70710678 .70710678 64.391804 -5.684427)"/%3E%3Cpath d="m49.5 71c.8284271 0 1.5.6715729 1.5 1.5v6c0 3.5898509 2.9101491 6.5 6.5 6.5h21c4.1421356 0 7.5-3.3578644 7.5-7.5v-54c0-4.1421356-3.3578644-7.5-7.5-7.5h-21.5c-3.3137085 0-6 2.6862915-6 6v4.5c0 .8284271-.6715729 1.5-1.5 1.5-.8284271 0-1.5-.6715729-1.5-1.5v-6c0-4.1421356 3.3578644-7.5 7.5-7.5h23.5c5.5228475 0 10 4.4771525 10 10v55c0 5.5228475-4.4771525 10-10 10h-22.5c-4.6944204 0-8.5-3.8055796-8.5-8.5v-7c0-.8284271.6715729-1.5 1.5-1.5z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E') no-repeat -9px -13px; -} -.th-theme-ph-title { - font-size: 18px; - line-height: 24px; - font-weight: 500; - margin: 10px 0 15px; -} -.th-theme-ph-buttons { - margin: 30px 0 0; -} -.th-no-content .th-theme-buttons, -.th-no-content .th-theme-source-code-wrap, -.th-no-content .th-theme-thumb svg { - opacity: 0; - visibility: hidden; - pointer-events: none; -} -.th-no-content .th-theme-source-code-wrap .CodeMirror { - height: 376px; -} -.th-no-content .th-theme-source-placeholder { - opacity: 1; - visibility: visible; - pointer-events: auto; -} -.th-theme-import-btn { - margin: 4px 0; -} - -.th-theme-content-buttons { - text-align: center; - margin: 30px 0; -} - -.th-theme-thumb svg, -.th-theme-source-placeholder, -.th-theme-source-code-wrap { - transition: all .2s ease; -} -.th-theme-source-code-wrap .CodeMirror { - border: 1px solid #e0e0e0; - min-height: 376px; - height: auto; - border-width: 1px 0; -} -.th-theme-source-code-wrap .CodeMirror pre { - font-size: 14px; - line-height: 18px; - padding: 0 14px; -} -.th-theme-source-code-wrap .CodeMirror-lines { - padding: 7px 0; -} -.th-theme-source-code-wrap .CodeMirror-widget { - display: inline-block; - position: relative; - vertical-align: top; -} -.th-theme-source-code-wrap .codemirror-colorview { - position: absolute; - top: 0; - vertical-align: top; - margin: 2px 7px 2px 0; - border: 1px solid #ededed; - width: 14px; - height: 14px; - border-radius: 7px; -} -.th-theme-source-code-wrap .codemirror-colorview .codemirror-colorview-background { - border-radius: 7px; -} -body .codemirror-colorpicker .colorpicker-body > .colorsets > .menu { - display: none; -} -body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list { - margin-right: 6px; -} -body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list .add-color-item { - line-height: 13px; -} -.th-theme-source-code-wrap .codemirror-colorview, -body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list .color-item .empty, -body .codemirror-colorpicker .colorpicker-body > .control > .opacity > .opacity-container, -body .codemirror-colorpicker .colorpicker-body > .control > .empty, -body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list .color-item .empty, -body .codemirror-colorpicker .colorpicker-body > .color-chooser .color-chooser-container .colorsets-list .colorsets-item .items .color-item { - vertical-align: top; - background-image: url('data:image/gif;base64,R0lGODlhGAAYAIABAKysrP///yH5BAEAAAEALAAAAAAYABgAAAIyhI8Wy70JgZshJuoswk0fzngKWIlk6Z2iRK6q2cIn6Maprb03LXM1v/P1MD9hkDikrAoAOw=='); - background-size: 12px; - background-position: center; -} -body .codemirror-colorpicker .colorpicker-body > .information > .information-item > .input-field .postfix { - line-height: 19px; - padding-right: 4px; -} -body .codemirror-colorpicker .colorpicker-body > .control > .opacity > .opacity-container > .color-bar { - border-radius: 3px; -} -.th-theme-source-code { - font-family: monospace, 'Courier New'; - font-size: 14px; - line-height: 18px; - padding: 7px 14px; - border: 1px solid #e0e0e0; - color: #000; -} -.cm-keycol, -.cm-valcol { - display: inline-block; - box-sizing: content-box; -} -.cm-valcol, -.cm-val { - padding-left: 21px; -} - -.nav-tabs { - border-bottom: 1px solid #e0e0e0; - margin-bottom: -1px; - position: relative; - z-index: 1; -} -.nav-tabs>li>a { - text-transform: uppercase; - font-weight: 500; - position: relative; - border-radius: 0; - border: none; - color: #999; -} -.nav-tabs>li>a:hover, -.nav-tabs>li>a:focus { - background-color: transparent; -} -.nav-tabs>li.active>a, -.nav-tabs>li.active>a:hover, -.nav-tabs>li.active>a:focus { - color: #0088cc; - border: none; -} -.nav-tabs>li.active>a:after { - content: ''; - position: absolute; - left: 0; - right: 0; - bottom: 0; - height: 4px; - border-radius: 2px 2px 0 0; - background-color: #238fe1; -} - - - - -.th-back { - padding: 18px 19px; - vertical-align: top; - margin: 0 0 0 -15px; - cursor: pointer; -} -.th-back:before { - position: relative; - top: 2px; - content: ''; - display: inline-block; - width: 18px; - height: 16px; - background: url('/img/translations/icons.png?8') no-repeat -5px -105px; -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - .th-back:before { - background-image: url('/img/translations/icons_2x.png?8'); - background-size: 26px 752px; - } -} - -.th-subheader { - font-size: 16px; - font-weight: 500; - padding: 15px 0; - margin: 0; -} -.th-subheader .th-badge { - font-size: 12px; - line-height: 18px; - padding: 3px 7px 2px; - min-width: 19px; - margin-left: 7px; -} - -.th-section-block { - padding: 20px 15px 0 56px; -} -.th-actions { - display: inline-block; - margin-left: -13px; -} -.th-action-item { - display: block; - position: relative; - padding: 11px 40px 11px 58px; - font-weight: 500; -} -/*.th-action-item:hover { - text-decoration: none; -} -.th-action-item .th-action-label:hover { - text-decoration: underline; -}*/ -.th-action-item:before { - position: absolute; - top: 4px; - left: 6px; - display: inline-block; - width: 32px; - height: 32px; - content: ''; - background: url('/img/translations/icons.png?8') no-repeat -10px -548px; -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - .th-action-item:before { - background-image: url('/img/translations/icons_2x.png?8'); - background-size: 26px 752px; - } -} -.action-share:before { - background-position: 6px -453px; -} -.action-edit:before { - background-position: 4px -485px; -} -.action-team:before { - background-position: 1px -514px; -} - -.arrow-link { - font-size: 15px; - font-weight: 500; - cursor: pointer; -} -.arrow-link:after { - display: inline-block; - width: 8px; - height: 12px; - content: ''; - background: url('/img/translations/icons.png?8') no-repeat -10px -548px; - margin-left: 7px; - vertical-align: -1px; -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - .arrow-link:after { - background-image: url('/img/translations/icons_2x.png?8'); - background-size: 26px 752px; - } -} - -.form-group .input { - direction: ltr; - unicode-bidi: isolate; -} -.form-group.rtl { - text-align: right; -} -.form-group.rtl .input { - direction: rtl; -} - -.fill { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; -} - -.fullname { - font-weight: 500; - border-bottom: 1px solid #de8833; -} -.my.fullname { - border-bottom: 3px double #de8833; -} -a.fullname:hover { - text-decoration: none; - border-bottom-color: inherit; -} - -.close { - position: relative; - width: 22px; - height: 22px; - opacity: 1; -} -.close:hover { - opacity: 1; -} -.close:before, -.close:after { - display: inline-block; - position: absolute; - background: #c0c0c0; - left: 50%; - top: 50%; - content: ''; - width: 16px; - height: 2px; - margin: -1px 0 0 -8px; - border-radius: 1px; - transform: rotateZ(45deg) scaleY(.95); - transition: background-color .2s ease; -} -.close:after { - transform: rotateZ(-45deg) scaleY(.95); -} -.close:hover:before, -.close:hover:after { - background: #a8a8a8; -} - -.arrow-left, -.arrow-right { - display: inline-block; - width: 16px; - height: 14px; - position: relative; - opacity: 0.4; - transition: opacity .2s ease; -} -.arrow-left:before, -.arrow-left:after, -.arrow-right:before, -.arrow-right:after { - display: inline-block; - position: absolute; - content: ''; - left: 0; - top: 50%; -} -.arrow-left:before, -.arrow-right:before { - transform: rotateZ(45deg); - width: 10px; - height: 10px; - border: 2px solid #222; - margin: -5px 0 0 2px; - border-width: 0 0 2px 2px; -} -.arrow-left:after, -.arrow-right:after { - background: #222; - width: 14px; - height: 2px; - margin: -1px 0 0 2px; -} -.arrow-right:before { - margin-left: 4px; - border-width: 2px 2px 0 0; -} -.arrow-right:after { - margin-left: 0; -} - -.binding { - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: 400; - font-size: 92%; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.binding:before { - content: "\e144"; -} - -.ohide { - opacity: 0; - visibility: hidden; - pointer-events: none; -} - -.shide { - opacity: 0; - visibility: hidden; - pointer-events: none; - padding-top: 0 !important; - padding-bottom: 0 !important; - margin-top: 0 !important; - margin-bottom: 0 !important; - height: 0 !important; -} - -.sxhide { - opacity: 0; - visibility: hidden; - pointer-events: none; - padding-left: 0 !important; - padding-right: 0 !important; - margin-left: 0 !important; - margin-right: 0 !important; - width: 0 !important; -} - -.no-transition, -.no-transition * { - transition: none !important; -} - -.nav-pills > li > a { - padding: 10px 15px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 15px; - font-weight: 500; - line-height: 22px; -} -.nav-pills > li.divider { - border-bottom: 1px solid #ededed; - padding-bottom: 7px; - margin-bottom: 7px; -} -.nav-pills > li > a .th-badge { - font-size: 11px; - padding: 2px 5px 0; - margin-top: 2px; - background: #0f9ae4; - float: right; -} -.nav-pills > li.active > a .th-badge { - background: #fff; - color: #0f9ae4; -} -.nav-stacked > li + li { - margin-top: 0; -} - -.popup-buttons .btn-link { - padding: 10px 15px 8px; - border-radius: 2px; -} -.popup-buttons .btn-link + .btn-link { - margin-left: 2px; -} -.popup-buttons .btn-link:hover { - background: #e6f1f7; - text-decoration: none; -} -.popup-buttons .btn-link:active { - background: #d4e6f1; -} -.popup-buttons .btn-link:focus { - text-decoration: none; -} -.btn.disabled, -.btn[disabled], -.popup-buttons .btn-link.disabled, -.popup-buttons .btn-link[disabled] { - color: #b5d1e6; - opacity: 1; -} - -.input { - white-space: pre-wrap; - position: relative; - z-index: 0; -} -.input.empty[data-placeholder] { - position: relative; -} -.input.empty[data-placeholder]:before { - position: absolute; - left: 0; - right: 0; - content: attr(data-placeholder); - transition: color .2s ease; - color: #919699; - font-weight: normal; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - pointer-events: none; - z-index: -1; -} -.input.empty[data-placeholder]:focus:before { - color: #ccc; -} -input.th-form-control, -textarea.th-form-control, -.input.th-form-control { - padding-left: 0; - padding-right: 0; - border: none; - height: auto; - resize: none; - box-shadow: inset 0 -1px 0 #f0f0f0; - transition: box-shadow .2s ease, color .2s ease; -} -input.th-form-control + .th-form-control-underline { - box-shadow: 0 -1px 0 #f0f0f0; - transition: box-shadow .2s ease; - margin-bottom: -2px; - height: 2px; -} -input.th-form-control[readonly], -textarea.th-form-control[readonly], -.input.th-form-control[readonly], -input.th-form-control[disabled], -textarea.th-form-control[disabled], -.input.th-form-control[disabled] { - cursor: auto; - background: #fff; -} -input.th-form-control:focus, -textarea.th-form-control:focus, -.input.th-form-control:focus { - box-shadow: inset 0 -2px 0 #39ade7; -} -input.th-form-control:focus + .th-form-control-underline { - box-shadow: 0 -2px 0 #39ade7; -} -input.th-form-control[readonly]:focus, -textarea.th-form-control[readonly]:focus, -.input.th-form-control[readonly]:focus, -input.th-form-control[disabled]:focus, -textarea.th-form-control[disabled]:focus, -.input.th-form-control[disabled]:focus { - box-shadow: inset 0 -1px 0 #f0f0f0; -} -.input.th-form-control { - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.input.th-form-control::-webkit-scrollbar { - display: none; -} - -.login-popup-container section { - line-height: 23px; - max-width: 600px; -} -.login-popup-container h2 { - font-size: 24px; - margin-top: 15px; - margin-bottom: 15px; -} -.login-popup-container p { - margin-bottom: 18px; -} -.login-popup-container p.help-block { - margin-top: 18px; - margin-bottom: -7px; -} -.login-popup-container .form-control { - max-width: 280px; -} - -.dots-animated:after { - position: absolute; - display: inline-block; - animation: dotty steps(1, end) 1s infinite; - content: '...'; -} - -@-webkit-keyframes dotty { - 0%, 100% { content: ''; } - 25% { content: '.'; } - 50% { content: '..'; } - 75% { content: '...'; } -} -@keyframes dotty { - 0%, 100% { content: ''; } - 25% { content: '.'; } - 50% { content: '..'; } - 75% { content: '...'; } -} - -@-webkit-keyframes upload-circle { - from { transform: rotateZ(-90deg); } - to { transform: rotateZ(270deg); } -} -@keyframes upload-circle { - from { transform: rotateZ(-90deg); } - to { transform: rotateZ(270deg); } -} - -header { - width: 100%; - margin: 0; - position: fixed; - z-index: 100; - background: #fff; -} -header .header-wrap { - padding: 9px 0 8px; - position: relative; - background: #fff; - box-shadow: 0 1px rgba(0, 0, 0, .12); - z-index: 2; -} -header + main { - padding-top: 59px; -} - -header.has-search + main section.th-content { - padding-top: 49px; -} -header.has-message + main { - margin-top: 112px; -} -header .btn-lg { - padding: 11px 12px 10px; -} -.header-panel { - position: relative; - padding: 0 15px; - z-index: 7; -} -.header-panel .header-breadcrumb { - height: 41px; - overflow: hidden; -} -.header-auth { - float: right; - margin-left: 15px; -} -.header-btn-wrap { - float: right; - transition: all .2s ease; - width: 0; -} -.header-btn-oshow .header-btn-wrap { - opacity: 1; - visibility: visible; - pointer-events: auto; - width: auto; -} -.header-btn-wrap, -.header-btn-oshow .th-theme-header { - opacity: 0; - visibility: visible; - pointer-events: auto; -} -.header-auth-item { - display: inline-block; - vertical-align: top; - padding: 11px 0; - font-weight: 500; - white-space: nowrap; -} -.header-auth-item + .header-auth-item { - margin-left: 15px; -} -.header-auth-link { - display: inline-block; - vertical-align: top; -} -.header-auth-photo { - display: inline-block; - vertical-align: top; - width: 32px; - height: 32px; - border-radius: 16px; - background: #efefef; - text-align: center; - overflow: hidden; - margin: -7px 0 -7px 0; -} -.header-auth-photo img { - width: 100%; -} -.header-auth-photo .photo-char { - font-size: 14px; - vertical-align: middle; - line-height: 32px; - color: #999; -} -.header-search-item { - padding-bottom: 18px; - margin-bottom: -18px; - overflow: hidden; -} -.header-auth-name { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - max-width: 190px; - color: #0086d3; -} -.header-auth-name:after { - content: ''; - display: inline-block; - width: 12px; - height: 7px; - background: url('/img/translations/icons.png?8') no-repeat -7px -324px; - margin: 0 0 2px 7px; -} -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - .header-auth-name:after { - background-image: url('/img/translations/icons_2x.png?8'); - background-size: 26px 752px; - } -} -.header-auth-name.dropdown-toggle { - cursor: pointer; -} -.header-auth-name + .dropdown-menu { - top: -21px; - left: auto; - right: -4px; -} -@media (min-width: 1420px) { - .header-auth-name + .dropdown-menu { - left: -4px; - right: auto; - } -} - -.header-message { - background: #1e98d4; - text-align: center; - color: #fff; - padding: 13px 15px; -} -.header-message a { - color: #fff; - text-decoration: underline; -} -.header-message .hide-button { - color: #fff; - margin: -11px -12px -10px 12px; - font-weight: normal; - float: right; -} - -header .breadcrumb > .active, -header .breadcrumb > .active a { - color: #222; -} -header .breadcrumb > .placeholder { - color: #999; -} -header .breadcrumb > li { - padding: 11px 0; - font-size: 15px; - line-height: 1.3333333; - font-weight: 500; - position: relative; -} -header .breadcrumb > li > a, -header .breadcrumb > li.active > strong { - display: inline-block; - text-overflow: ellipsis; - vertical-align: top; - overflow: hidden; - max-width: 190px; -} -header .container-fluid .breadcrumb > li > a, -header .container-fluid .breadcrumb > li.active > strong { - max-width: 240px; -} -header .breadcrumb > li.active > a { - overflow: visible; - max-width: none; -} -header .breadcrumb > li:before { - content: ''; -} -header .breadcrumb > li:after { - content: "\00a0/\00a0"; - padding: 0 8px; - color: #d4d4d4; -} -header .breadcrumb > li:last-child:after { - content: ''; -} -header .input-group-addon.breadcrumb > li:last-child:after { - content: "\00a0/\00a0"; -} -header .header-breadcrumb .dropdown { - position: static; -} -header .header-breadcrumb .dropdown-menu { - left: auto; - top: 48px; - margin: 0 0 0 -15px; - min-width: 0; - font-size: 15px; - border: none; - box-shadow: 0 0 2px rgba(0, 0, 0, .15); -} -header .header-breadcrumb .dropdown.open > .dropdown-menu { - display: inline; -} -header .header-breadcrumb .dropdown.open > .dropdown-menu > li { - display: block; -} -header .header-breadcrumb .dropdown.open > .dropdown-menu > li > a { - padding: 10px 35px 10px 15px; - margin: 0; - color: #2e87ca; -} -header .header-breadcrumb .dropdown.open > .dropdown-menu > li > a:hover { - background-color: #f0f6fa; - color: #2e87ca; -} -header .header-breadcrumb .dropdown.open > .dropdown-menu > li.active > a:hover, -header .header-breadcrumb .dropdown.open > .dropdown-menu > li.active > a { - background-color: #1e98d4; - color: #fff; - font-weight: 500; - position: relative; -} -.buttons-wrap { - padding: 15px 0; -} -.buttons-wrap .btn { - margin-left: -15px; -} - -.header-breadcrumb .breadcrumb { - background: none; - border: transparent; - padding: 0; - margin: 0; - overflow: visible; -} -.header-breadcrumb-simple .breadcrumb { - overflow: hidden; -} -.header-breadcrumb-simple .breadcrumb > .active { - display: inline; -} -.header-breadcrumb .input-label { - font-weight: normal; -} -.input-group .input-dropdown { - display: table-cell; - position: relative; -} -.input-dropdown .form-control { - height: auto; - border: transparent; - background: transparent; - color: #222; - overflow: hidden; - text-overflow: ellipsis; - padding: 11px 16px 11px 1px; - margin-left: -1px; - border-radius: 0 !important; - transition: color .2s ease; -} -.form-control::-webkit-input-placeholder { - transition: color .2s ease; - color: #999; -} -.form-control::-moz-placeholder { - transition: color .2s ease; - color: #999; -} -.form-control:-ms-input-placeholder { - transition: color .2s ease; - color: #999; -} -.form-control:focus::-webkit-input-placeholder { - color: #ccc; -} -.form-control:focus::-moz-placeholder { - color: #ccc; -} -.form-control:focus:-ms-input-placeholder { - color: #ccc; -} -.has-section-status .input-dropdown .form-control { - padding-right: 50px; -} - - -.progress-bar { - width: 0; - transition: width .4s linear, box-shadow .3s ease; -} -.progress-bar.no-transition { - transition: none; -} -.progress-bar.no-shown { - box-shadow: inset 0 0 0 #39ade7; -} - -header .progress-bar { - position: absolute; - z-index: 1; - bottom: 0; - height: 3px; - box-shadow: inset 0 -2px 0 #39ade7; -} - -.btn-inactive { - cursor: auto; - pointer-events: none; -} - -.nav-menu { - padding: 10px 0 30px; -} -@media (min-width: 768px) { - .nav-menu.nav-menu-can-fix { - position: fixed; - top: 68px; - bottom: 0; - overflow-y: scroll; - } - header.has-message + main .nav-menu.nav-menu-can-fix { - top: 112px; - } - .nav-menu.nav-menu-can-fix::-webkit-scrollbar { - display: none; - } -} - -.section-header { - position: relative; - overflow: hidden; -} - -.header-labels { - position: absolute; - font-size: 13px; - line-height: 16px; - height: 0; - bottom: 0; - right: 0; -} -.header-labels .help-labels { - position: relative; - white-space: nowrap; -} -.header-labels .help-label { - position: absolute; - padding: 4px 10px; - right: 0; - color: #aaa; -} -.header-labels .help-label a { - color: #555; - cursor: pointer; -} - -section h3 .header-count { - margin-left: 10px; - color: #999; -} - -.popup-form { - margin: 25px 0 0; - overflow: visible !important; -} - -.radio-row { - display: block; - margin: 5px -5px; - padding: 5px; - font-weight: normal; - overflow: hidden; - cursor: pointer; -} -.radio-row .radio { - position: absolute; - left: -5000px; -} -.radio-row .radio + .radio-label { - position: relative; - line-height: 18px; - padding: 0; -} -.radio-row .radio + .radio-label:before { - display: inline-block; - content: ''; - width: 18px; - height: 18px; - border-radius: 9px; - border: 2px solid #999; - vertical-align: top; - margin: 0 12px 0 0; - padding: 0; -} -.radio-row .radio:checked + .radio-label:before { - border-color: #319bd8; -} -.radio-row .radio:checked + .radio-label:after { - display: inline-block; - content: ''; - width: 8px; - height: 8px; - border-radius: 4px; - background: #319bd8; - vertical-align: top; - margin: 5px; - padding: 0; - position: absolute; - left: 0; -} -.radio-row .radio.disabled + .radio-label, -.radio-row .radio[disabled] + .radio-label { - opacity: 0.65; -} - -.radio-item .radio-input + .radio-label, -.checkbox-item .checkbox-input + .checkbox-label { - vertical-align: top; - line-height: 19px; - padding-top: 1px; -} - - -.section-label { - font-size: 15px; - font-weight: normal; - margin: 0 5px 0 12px; - float: right; -} -.section-label-success { - color: #449d44; -} -.section-label-danger { - color: #c9302c; -} -.section-label-info { - color: #31b0d5; -} -.section-btn .glyphicon, -.section-label .glyphicon { - font-size: 17px; - position: static; - vertical-align: middle; -} -.section-btn .label { - padding: 0 4px; -} -.section-label .label { - padding: 0 2px; - vertical-align: middle; -} - -.list-group-item-heading .section-label { - font-size: 13px; -} -.list-group-item-heading .section-label .glyphicon { - font-size: 14px; -} - -#dev_page_content_wrap { - padding: 0 25px 10px; - max-width: none; -} -#dev_page_content, -#dev_page_content p { - font-size: 15px; - line-height: 1.6; -} -#dev_page_content_wrap h1, -#dev_page_content_wrap h2, -#dev_page_content_wrap h3, -#dev_page_content_wrap h4, -.page-content-wrap h3 { - font-weight: 500; - position: relative; -} -#dev_page_content_wrap h1 { - font-size: 21px; - margin: 27px 0 12px; -} -#dev_page_content_wrap h2, -#dev_page_content_wrap h3 { - font-size: 19px; - margin: 27px 0 12px; -} -#dev_page_content_wrap h4, -#dev_page_content_wrap h5 { - font-size: 17px; - margin: 27px 0 10px; -} -#dev_page_content_wrap pre, -#dev_page_content_wrap code { - font-family: monospace, 'Courier New'; - font-size: 87%; -} -#dev_page_content_wrap pre { - line-height: 18px; - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; - padding: 6px 12px; - border: none; - background: #f4f8fb; -} -#dev_page_content_wrap code { - color: inherit; - background: #ecf3f8; -} -#dev_page_content_wrap blockquote { - border-color: #179cde; - padding: 5px 17px; -} -#dev_page_content_wrap b, -#dev_page_content_wrap strong { - font-weight: 500; -} -#dev_page_content_wrap .dev_page_image { - display: block; - max-width: 100% !important; - margin: 0 auto; - padding: 10px 0px 5px; -} - -#dev_page_content_wrap a.anchor, -.page-content-wrap a.anchor { - position: absolute; - height: 1px; - top: -70px; -} -header.has-message + main #dev_page_content_wrap a.anchor, -header.has-message + main .page-content-wrap a.anchor { - top: -114px; -} -#dev_page_content_wrap a.anchor-link, -.page-content-wrap a.anchor-link { - text-decoration: none; - line-height: 1; - margin-left: -0.7em; - - cursor: default; - display: block; - position: absolute; - top: 0; - left: 0; - bottom: 0; - - border-top: 10px solid transparent; - margin-top: -10px; - outline: 0; -} - -#dev_page_content_wrap a.anchor-link i.anchor-icon, -.page-content-wrap a.anchor-link i.anchor-icon { - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: 400; - font-size: 62%; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - margin-top: 2px; - opacity: 0; - - cursor: pointer; - padding: 0; - position: relative; - z-index: 10; - - -webkit-transition: opacity .2s ease-in-out; - -moz-transition: opacity .2s ease-in-out; - -ms-transition: opacity .2s ease-in-out; - -o-transition: opacity .2s ease-in-out; - transition: opacity .2s ease-in-out; -} -#dev_page_content_wrap a.anchor-link i.anchor-icon:before, -.page-content-wrap a.anchor-link i.anchor-icon:before { - content: "\e144"; -} -@media (min-width: 992px) { - #dev_page_content_wrap a.anchor-link, - .page-content-wrap a.anchor-link { - margin-left: -1.1em; - } - #dev_page_content_wrap a.anchor-link i.anchor-icon, - .page-content-wrap a.anchor-link i.anchor-icon { - font-size: 85%; - } -} - -#dev_page_content_wrap h1 a.anchor-link i.anchor-icon { - margin-top: 4px; -} - -#dev_page_content_wrap h1:hover a.anchor-link i.anchor-icon, -#dev_page_content_wrap h2:hover a.anchor-link i.anchor-icon, -#dev_page_content_wrap h3:hover a.anchor-link i.anchor-icon, -#dev_page_content_wrap h4:hover a.anchor-link i.anchor-icon, -.page-content-wrap h3:hover a.anchor-link i.anchor-icon { - opacity: 0.6; -} -#dev_page_content_wrap i.anchor-icon:hover, -.page-content-wrap i.anchor-icon:hover { - opacity: 1 !important; -} - -#dev_side_nav_cont .dev_side_nav_wrap { - position: relative; - display: none; -} -@media (min-width: 768px) { - #dev_side_nav_cont .dev_side_nav_wrap { - display: block; - } -} -#dev_side_nav_cont .dev_side_nav { - position: static; - width: auto; -} -#dev_side_nav_cont .dev_side_nav > ul { - width: auto; - float: none; - background: none; - padding: 7px 0; -} -#dev_side_nav_cont .dev_side_nav > ul::-webkit-scrollbar { - display: none; -} -#dev_side_nav_cont .dev_side_nav > ul.affix-top, -#dev_side_nav_cont .dev_side_nav > ul.affix, -#dev_side_nav_cont .dev_side_nav > ul.affix-bottom { - position: static; -} -#dev_side_nav_cont .dev_side_nav li { - float: none !important; -} -#dev_side_nav_cont .dev_side_nav li:before { - display: none; -} -#dev_side_nav_cont .dev_side_nav li a { - border-left: 3px solid transparent; - padding: 9px 15px 9px 12px; - font-size: 13px; - font-weight: normal; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - display: block; -} -#dev_side_nav_cont .dev_side_nav li li a { - padding: 6px 15px 6px 22px; - font-size: 12px; - font-weight: 400; -} -#dev_side_nav_cont .dev_side_nav li a:hover { - background: #f0f6fa !important; -} -#dev_side_nav_cont .dev_side_nav li.active > a { - border-left: 3px solid #1e98d4; -} -#dev_side_nav_cont .dev_side_nav li ul { - display: none; -} -#dev_side_nav_cont .dev_side_nav li.active ul { - display: block; -} - -main.intro, -main.docs { - padding-bottom: 43px; -} - -main.docs #dev_page_content_wrap h1#dev_page_title { - font-size: 24px; - margin: 12px 0 12px; -} - -main.intro #dev_page_content_wrap h1#dev_page_title { - padding: 12px 0 12px; - margin: 0; - font-weight: 500; - font-size: 18px; -} - -.popup-container { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background: rgba(0,0,0,.6); - z-index: 101; - display: -webkit-flex; - display: flex; - justify-content: center; - align-items: center; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.popup { - max-width: 100%; - word-wrap: break-word; - margin: 15px; - border-radius: 4px; - background: #fff; - box-shadow: 0 0 12px rgba(0, 0, 0, .3); -} -.popup section { - position: relative; - padding-bottom: 60px; -} -.popup h4 { - font-size: 18px; - margin: 5px 0 15px; -} -.popup h4 ~ h4 { - margin-top: 25px; -} -.popup-body { - padding: 20px; -} -.login-popup-container .popup-body { - padding: 15px 25px 25px; -} -@media (min-width: 560px) { - .popup { - margin: 50px; - } - .popup-body { - padding: 30px 35px; - } - .login-popup-container .popup-body { - padding: 50px 60px; - } -} -@media (min-width: 768px) { - .popup { - max-width: 600px; - } -} -.popup .popup-text { - margin: 0; - line-height: 24px; - position: relative; - z-index: 1; -} -.popup .popup-buttons { - margin: -17px -15px -10px; - position: absolute; - right: 0; - bottom: 0; -} - - - -.form-group label, -.popup-text b, -.th-markdown strong { - font-weight: 500; -} -.form-group-buttons { - margin-top: 30px; -} - - -a.th-header-right-btn, -button.th-header-right-btn { - font-size: 12px; - line-height: 14px; - padding: 4px 10px 3px; - margin: 1px 0 1px 7px; - border-radius: 3px; - position: relative; - float: right; - z-index: 1; -} - -.th-filter-wrap { - display: inline-block; - position: relative; - margin: -3px -9px 0 0; - float: right; - z-index: 1; -} -.th-dropdown { - display: inline-block; - font-size: 13px; - line-height: 15px; - padding: 5px 12px; - border-radius: 3px; - color: #0086d3; -} -.th-dropdown.dropdown-toggle { - cursor: pointer; -} -.th-dropdown.dropdown-toggle:hover, -.open .th-dropdown.dropdown-toggle { - background: #f0f4f7; -} -.th-dropdown-wrap span.dropdown-menu { - left: auto; - right: 0; - margin: 7px 0 0; - border: 1px solid rgba(0, 0, 0, .06); - border-radius: 4px; - font-size: 14px; - line-height: 1.42857143; - overflow: hidden; - min-width: 150px; -} -.th-dropdown-wrap span.dropdown-menu > ul.dropdown-menu { - position: static; - display: block; - float: none; - border: none; - box-shadow: none; - border-radius: 0; - min-width: 0; - margin: 0 -20px 0 0; - padding: 7px 20px 7px 0; - max-height: 235px; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.th-dropdown-wrap ul.dropdown-menu > li > .th-dropdown-item { - display: block; - cursor: pointer; - padding: 6px 36px 6px 15px; - margin: 0; - position: relative; - color: #222; -} -.th-dropdown-wrap ul.dropdown-menu > li > .th-dropdown-item:hover, -.th-dropdown-wrap ul.dropdown-menu > li > .th-dropdown-item:focus { - background-color: #f4f4f4; - color: #222; -} -.th-dropdown-wrap ul.dropdown-menu > li.selected > .th-dropdown-item:after { - content: ''; - display: inline-block; - position: absolute; - pointer-events: none; - bottom: 0; - right: 0; - top: 0; - margin: auto 13px; - width: 15px; - height: 12px; - background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 15 12" width="15" height="12" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M 2 6 L 5.5 9.5 L 13 3" stroke="%23228fe1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/%3E%3C/svg%3E'); -} -.th-places-wrap { - display: inline-block; - position: relative; - margin: 10px 0 0 4px; - float: right; -} -.th-places-wrap .th-dropdown { - font-weight: 500; - text-align: center; - width: 36px; -} - - - -@media (min-width: 720px) { - .container { - padding-left: 15px; - padding-right: 15px; - } - .th-aside { - width: 308px; - float: right; - margin: -5px 15px 35px; - } - .th-content { - min-width: 308px; - margin-top: -5px; - } - .th-aside + .th-content { - margin-right: 410px; - } - .th-logo-title { - display: inline; - } - .th-aside > a.th-header-right-btn, - .th-aside > button.th-header-right-btn { - margin-top: 26px; - } - .th-dropdown-wrap span.dropdown-menu { - left: 0; - right: auto; - } - .th-theme-header .th-theme-buttons { - margin-right: 0; - } - .th-theme-source-code-wrap .CodeMirror { - border-width: 1px; - } -} diff --git a/data/tsf.telegram.org/auth.html b/data/tsf.telegram.org/auth.html new file mode 100644 index 0000000000..b43f95fdad --- /dev/null +++ b/data/tsf.telegram.org/auth.html @@ -0,0 +1,241 @@ + + + + + Telegram Support Force + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+

Telegram Support Initiative

+ +

Our users ask us tens of thousands of questions each day. We would like to answer them all — and we are looking for brilliant people from all over the world who would like to help us do this. If you are interested in joining us, please read this Telegram Support Force Manifesto — and don't miss the tiny FAQ below.

+
+ +
+ +

Harnessing the power of procrastination

+
    +
  1. Telegram is a free messaging system that is used by tens of millions of people daily. Each of our apps has an ‘Ask a question’ button. Our users press it thousands of times each day: some have questions, others just want to chat, still others are bored trolls. We think that they all deserve an answer of some kind.

    +
  2. +
  3. Robots and algorithms are good at handing out answers at scale, but they sometimes cause frustration, fundamentally lack human touch and are bad conversation partners. FAQs are a remedy for the select few that enjoy finding answers in FAQs. To be happy, humanity requires human answers.

    +
  4. +
  5. Manually answering tens of thousands of questions daily requires considerable resources. Manually answering them in style — even when assisted by algorithms and templates — requires limitless resources. But, the resources in question being humans and time, the modern world happens to have a limitless source of just such energy.

    +
  6. +
  7. This world is full of bright-minded, elegant, downright wonderful people who, like you and me, sometimes just can't get started with whatever they were supposed to be doing. And procrastinate instead. This brings countless people in any profession to hours and hours of unnecessary house-cleaning, dog-walking and web-surfing every day. Millions of hours go to waste — procrastination is as ubiquitous in the XXI century as are people who do their work behind computer screens.

    +
  8. +
  9. It is our goal to harness the power of procrastination. For user support, we rely on an army of volunteers from all over the world. They donate a fraction of their time to answer a few questions from Telegram users — every now and then, or all the time. We call this the Telegram Support Force and you are welcome to join.

    +
  10. +
  11. Answering questions may be devilishly tricky at times, so we couldn't accept everyone even if we wanted to. The Telegram Support Force needs patient, inquisitive people, who are no strangers to elegance, humor and style. Although Telegram volunteers help people from their own countries, proficiency in English is also a requirement, since the data you will be getting from us, as well as pretty much all communication inside the team, will be in English.

    +
  12. +
  13. We believe in support as an art form. Support should be fun — for people on both ends of the line. So we are looking for perfect, human and precise answers to the world's questions. Something to make them smile and to make you proud.

    +
  14. +
+

If this is something you might be interested in doing, don't hesitate to contact our @TelegramAuditions account. Please write us a few phrases in English describing how your favourite feature works (don’t copy it, let it be your hand-made text). Include a picture of a marmot if you want a better chance at convincing us that you actually read all of the above and below and, therefore, are inquisitive enough.

+

Markus Ra
@Telegram

+
+

Manifesto FAQ

+

Q: Do I need to know anything special to be eligible?

+

No, not really. But you do need to know how to learn things. And be inquisitive enough to want to learn them.

+

Q: What else is required?

+

We‘re looking for perfectionists. It’d also be nice if you loved your language and had at least a moderate affection for the people of Earth. It'd be cool if you like to read and write. And then, patience and understanding are very useful at times.

+

Q: Will the people I answer know who I am or get my number?

+

No, they will not. Unless you choose to tell them for some mysterious reason.

+

Q: What should I say when I contact you?

+

We'd love to know more about you (who you are, what you think, what you like — not a CV, no!), the languages you speak and the devices you use (mobile, desktop OS).

+

Q: How long does it take for you to reply?

+

We try not to take too long. But we sometimes do, so we apologize in advance. Sorry. Don‘t lose heart and remember that thing about patience above. We’ll get back to you as soon as we can.

+

Q: Is that thing about sending a marmot picture a joke?

+

No.

+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + diff --git a/data/tsf.telegram.org/js/billboard.min.js b/data/tsf.telegram.org/js/billboard.min.js new file mode 100644 index 0000000000..3b76e3899f --- /dev/null +++ b/data/tsf.telegram.org/js/billboard.min.js @@ -0,0 +1,13 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * http://naver.github.io/billboard.js/ + * + * @version 1.7.1-snapshot + * + * All-in-one packaged file for ease use of 'billboard.js' with below dependency. + * - d3 ^5.9.1 + */ +!function webpackUniversalModuleDefinition(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(window,function(){return function(n){var i={};function __webpack_require__(t){if(i[t])return i[t].exports;var e=i[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,__webpack_require__),e.l=!0,e.exports}return __webpack_require__.m=n,__webpack_require__.c=i,__webpack_require__.d=function(t,e,n){__webpack_require__.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},__webpack_require__.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(__webpack_require__.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)__webpack_require__.d(n,i,function(t){return e[t]}.bind(null,i));return n},__webpack_require__.n=function(t){var e=t&&t.__esModule?function getDefault(){return t["default"]}:function getModuleExports(){return t};return __webpack_require__.d(e,"a",e),e},__webpack_require__.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=11)}([function(t,e){t.exports=function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){var i=n(2),a=n(3),r=n(4);t.exports=function _slicedToArray(t,e){return i(t)||a(t,e)||r()}},function(t,e){t.exports=function _arrayWithHoles(t){if(Array.isArray(t))return t}},function(t,e){t.exports=function _iterableToArrayLimit(t,e){var n=[],i=!0,a=!1,r=undefined;try{for(var o,s=t[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);i=!0);}catch(c){a=!0,r=c}finally{try{i||null==s["return"]||s["return"]()}finally{if(a)throw r}}return n}},function(t,e){t.exports=function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(t,e){function _defineProperties(t,e){for(var n=0;n=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(t){return new FormatSpecifier(t)}function FormatSpecifier(t){if(!(e=vt.exec(t)))throw new Error("invalid format: "+t);var e;this.fill=e[1]||" ",this.align=e[2]||">",this.sign=e[3]||"-",this.symbol=e[4]||"",this.zero=!!e[5],this.width=e[6]&&+e[6],this.comma=!!e[7],this.precision=e[8]&&+e[8].slice(1),this.trim=!!e[9],this.type=e[10]||""}formatSpecifier.prototype=FormatSpecifier.prototype,FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var bt,Tt,wt,At,kt=function(t,e){var n=xt(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")},Ct={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return kt(100*t,e)},r:kt,s:function(t,e){var n=xt(t,e);if(!n)return t+"";var i=n[0],a=n[1],r=a-(bt=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=i.length;return r===o?i:oe));)r=s[a=(a+1)%s.length];return i.reverse().join(c)}):St,n=t.currency,w=t.decimal,A=t.numerals?(e=t.numerals,function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}):St,i=t.percent||"%";function newFormat(t){var u=(t=formatSpecifier(t)).fill,l=t.align,h=t.sign,e=t.symbol,d=t.zero,f=t.width,g=t.comma,p=t.precision,_=t.trim,m=t.type;"n"===m?(g=!0,m="g"):Ct[m]||(null==p&&(p=12),_=!0,m="g"),(d||"0"===u&&"="===l)&&(d=!0,u="0",l="=");var x="$"===e?n[0]:"#"===e&&/[boxX]/.test(m)?"0"+m.toLowerCase():"",y="$"===e?n[1]:/[%p]/.test(m)?i:"",v=Ct[m],b=/[defgprs%]/.test(m);function format(t){var e,n,i,a=x,r=y;if("c"===m)r=v(t)+r,t="";else{var o=(t=+t)<0;if(t=v(Math.abs(t),p),_&&(t=function(t){t:for(var e,n=t.length,i=1,a=-1;i>1)+a+t+r+c.slice(s);break;default:t=c+a+t+r}return A(t)}return p=null==p?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),format.toString=function(){return t+""},format}return{format:newFormat,formatPrefix:function formatPrefix(t,e){var n=newFormat(((t=formatSpecifier(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(yt(e)/3))),a=Math.pow(10,-i),r=Mt[8+i/3];return function(t){return n(a*t)+r}}}};!function defaultLocale_defaultLocale(t){return Tt=Lt(t),wt=Tt.format,At=Tt.formatPrefix,Tt}({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Dt=n(0),Ft=n.n(Dt),Rt=n(1),zt=n.n(Rt),Xt=n(5),It=n.n(Xt),Et={value:function(){}};function dispatch_dispatch(){for(var t,e=0,n=arguments.length,i={};en._time&&(i=n._time),(t=n)._next):(e=n._next,n._next=null,t?t._next=e:Ot=e);Pt=t,sleep(i)}(),Wt=0}}function poke(){var t=jt.now(),e=t-Ut;VtJt)throw new Error("too late; already scheduled");return n}function schedule_set(t,e){var n=schedule_get(t,e);if(n.state>Qt)throw new Error("too late; already running");return n}function schedule_get(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}var ee=function(t,e){var n,i,a,r=t.__transition,o=!0;if(r){for(a in e=null==e?null:e+"",r)(n=r[a]).name===e?(i=2>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=ce.exec(t))?rgbn(parseInt(e[1],16)):(e=ue.exec(t))?new Rgb(e[1],e[2],e[3],1):(e=le.exec(t))?new Rgb(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=he.exec(t))?rgba(e[1],e[2],e[3],e[4]):(e=de.exec(t))?rgba(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=fe.exec(t))?hsla(e[1],e[2]/100,e[3]/100,1):(e=ge.exec(t))?hsla(e[1],e[2]/100,e[3]/100,e[4]):pe.hasOwnProperty(t)?rgbn(pe[t]):"transparent"===t?new Rgb(NaN,NaN,NaN,0):null}function rgbn(t){return new Rgb(t>>16&255,t>>8&255,255&t,1)}function rgba(t,e,n,i){return i<=0&&(t=e=n=NaN),new Rgb(t,e,n,i)}function rgbConvert(t){return t instanceof Color||(t=color_color(t)),t?new Rgb((t=t.rgb()).r,t.g,t.b,t.opacity):new Rgb}function color_rgb(t,e,n,i){return 1===arguments.length?rgbConvert(t):new Rgb(t,e,n,null==i?1:i)}function Rgb(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function hex(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function hsla(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||1<=n?t=e=NaN:e<=0&&(t=NaN),new Hsl(t,e,n,i)}function hsl(t,e,n,i){return 1===arguments.length?function hslConvert(t){if(t instanceof Hsl)return new Hsl(t.h,t.s,t.l,t.opacity);if(t instanceof Color||(t=color_color(t)),!t)return new Hsl;if(t instanceof Hsl)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,a=Math.min(e,n,i),r=Math.max(e,n,i),o=NaN,s=r-a,c=(r+a)/2;return s?(o=e===r?(n-i)/s+6*(nr&&(a=i.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(e=e[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,c.push({i:o,x:Xe(e,n)})),r=Ee.lastIndex;return rMath.abs(t[1]-S[1])?f=!0:d=!0),S=t,h=!0,wn(),move()}function move(){var t;switch(u=S[0]-C[0],l=S[1]-C[1],_){case kn:case An:m&&(u=Math.max(b-e,Math.min(w-r,u)),n=e+u,o=r+u),x&&(l=Math.max(T-i,Math.min(A-s,l)),a=i+l,c=s+l);break;case Cn:m<0?(u=Math.max(b-e,Math.min(w-e,u)),n=e+u,o=r):0/g,">"):t},Qn=function(t){var e=t.getBBox(),n=e.x,i=e.y,a=e.width,r=e.height;return[{x:n,y:i+r},{x:n,y:i},{x:n+a,y:i},{x:n+a,y:i+r}]},ti=function(t){var e=null,n=E,i=t.context||t.main;return n&&"BrushEvent"===n.constructor.name?e=n.selection:i&&(e=i.select(".".concat(dn.brush)).node())&&(e=function brushSelection(t){var e=t.__brush;return e?e.dim.output(e.selection):null}(e)),e},ei=function(){var t=!(0>>1;r(t[a],e)<0?n=a+1:i=a}return n},right:function(t,e,n,i){for(null==n&&(n=0),null==i&&(i=t.length);n>>1;0i&&(i=(e=t).values.length)}):e=n?t[0]:null,e},mapToIds:function mapToIds(t){return t.map(function(t){return t.id})},mapToTargetIds:function mapToTargetIds(t){return t?qn(t)?t.concat():[t]:this.mapToIds(this.data.targets)},hasTarget:function hasTarget(t,e){for(var n,i=this.mapToIds(t),a=0;n=i[a];a++)if(n===e)return!0;return!1},isTargetToShow:function isTargetToShow(t){return this.hiddenTargetIds.indexOf(t)<0},isLegendToShow:function isLegendToShow(t){return this.hiddenLegendIds.indexOf(t)<0},filterTargetsToShow:function filterTargetsToShow(t){var e=this;return t.filter(function(t){return e.isTargetToShow(t.id)})},mapTargetsToUniqueXs:function mapTargetsToUniqueXs(t){var e=[],n=this.x.domain();return t&&t.length&&(e=oi(t.map(function(t){return t.values.map(function(t){return+t.x})})).filter(function(t,e,n){return n.indexOf(t)===e}),e=this.isTimeSeries()?e.map(function(t){return new Date(+t)}):e.map(function(t){return+t})),e=e.filter(function(t){return t>=n[0]&&t<=n[1]}),si(e)},addHiddenTargetIds:function addHiddenTargetIds(t){this.hiddenTargetIds=this.hiddenTargetIds.concat(t)},removeHiddenTargetIds:function removeHiddenTargetIds(e){this.hiddenTargetIds=this.hiddenTargetIds.filter(function(t){return e.indexOf(t)<0})},addHiddenLegendIds:function addHiddenLegendIds(t){this.hiddenLegendIds=this.hiddenLegendIds.concat(t)},removeHiddenLegendIds:function removeHiddenLegendIds(e){this.hiddenLegendIds=this.hiddenLegendIds.filter(function(t){return e.indexOf(t)<0})},getValuesAsIdKeyed:function getValuesAsIdKeyed(t){var i=this,e={},a=i.isMultipleX(),r=a?i.mapTargetsToUniqueXs(t).map(function(t){return On(t)?t:+t}):null;return t.forEach(function(t){var n=[];t.values.forEach(function(t){var e=t.value;qn(e)?n.push.apply(n,gn()(e)):Zn(e)&&"high"in e?n.push.apply(n,gn()(Object.values(e))):a?n[i.getIndexByX(t.x,r)]=e:n.push(e)}),e[t.id]=n}),e},checkValueInTargets:function checkValueInTargets(t,e){for(var n,i=Object.keys(t),a=0;a=a?s=!0:10===(e=i.charCodeAt(r++))?c=!0:13===e&&(c=!0,10===i.charCodeAt(r)&&++r),i.slice(n+1,t-1).replace(/""/g,'"')}for(;r=h)&&(a=!0,t.preventDefault()),u(this)}else o.unselectRect(),o.callOverOutForTouch()}).on("touchend.eventRect",function(){var t=c();!t.empty()&&t.classed(dn.eventRect)&&(o.hasArcType()||!o.toggleShape||o.cancelClick)&&o.cancelClick&&(o.cancelClick=!1)})},updateEventRect:function updateEventRect(t){var e,n,i,a,r=this,o=r.config,s=r.zoomScale||r.x,c=t||r.eventRect.data(),u=o.axis_rotated;if(r.isMultipleX())n=e=0,i=r.width,a=r.height;else{var l,h;if(r.isCategorized())l=r.getEventRectWidth(),h=function(t){return s(t.x)-l/2};else{r.updateXs();var d=function(t){var e=t.index;return{prev:r.getPrevX(e),next:r.getNextX(e)}};l=function(t){var e=d(t);return null===e.prev&&null===e.next?u?r.height:r.width:(null===e.prev&&(e.prev=s.domain()[0]),null===e.next&&(e.next=s.domain()[1]),Math.max(0,(s(e.next)-s(e.prev))/2))},h=function(t){var e=d(t),n=r.data.xs[t.id][t.index];return null===e.prev&&null===e.next?0:(null===e.prev&&(e.prev=s.domain()[0]),(s(n)+s(e.prev))/2)}}e=u?0:h,n=u?h:0,i=u?r.width:l,a=u?l:r.height}c.attr("class",r.classEvent.bind(r)).attr("x",e).attr("y",n).attr("width",i).attr("height",a)},selectRectForSingle:function selectRectForSingle(n,i,a){var r=this,o=r.config,s=o.data_selection_enabled,c=o.data_selection_grouped,u=o.tooltip_grouped,t=r.getAllValuesOnIndex(a);u&&(r.showTooltip(t,n),r.showXGridFocus(t),!s||c)||r.main.selectAll(".".concat(dn.shape,"-").concat(a)).each(function(){O(this).classed(dn.EXPANDED,!0),s&&i.style("cursor",c?"pointer":null),u||(r.hideXGridFocus(),r.hideTooltip(),!c&&r.expandCirclesBars(a))}).filter(function(t){return r.isWithinShape(this,t)}).call(function(t){var e=t.data();s&&(c||o.data_selection_isselectable(e))&&i.style("cursor","pointer"),u||(r.showTooltip(e,n),r.showXGridFocus(e),r.unexpandCircles(),t.each(function(t){return r.expandCirclesBars(a,t.id)}))})},expandCirclesBars:function expandCirclesBars(t,e,n){this.config.point_focus_expand_enabled&&this.expandCircles(t,e,n),this.expandBars(t,e,n)},selectRectForMultipleXs:function selectRectForMultipleXs(t){var e=this,n=e.config,i=e.filterTargetsToShow(e.data.targets);if(!e.dragging&&!e.hasArcType(i)){var a=P(t),r=e.findClosestFromTargets(i,a);if(e.mouseover&&(!r||r.id!==e.mouseover.id)&&(n.data_onout.call(e.api,e.mouseover),e.mouseover=undefined),!r)return void e.unselectRect();var o=(e.isBubbleType(r)||e.isScatterType(r)||!n.tooltip_grouped?[r]:e.filterByX(i,r.x)).map(function(t){return e.addName(t)});e.showTooltip(o,t),e.expandCirclesBars(r.index,r.id,!0),e.showXGridFocus(o),(e.isBarType(r.id)||e.dist(r,a)ra&&a){var d=n-r,f=i-o,g=s*s+c*c,p=d*d+f*f,_=Math.sqrt(g),m=Math.sqrt(h),x=a*Math.tan((ia-Math.acos((g+h-p)/(2*_*m)))/2),y=x/m,v=x/_;Math.abs(y-1)>ra&&(this._+="L"+(t+y*u)+","+(e+y*l)),this._+="A"+a+","+a+",0,0,"+ +(u*fra||Math.abs(this._y1-u)>ra)&&(this._+="L"+c+","+u),n&&(h<0&&(h=h%aa+aa),oa_a?(d+=b*=s?1:-1,f-=b):(g=0,d=f=(a+r)/2),(p-=2*T)>_a?(l+=T*=s?1:-1,h-=T):(p=0,l=h=(a+r)/2)}var w=i*ha(l),A=i*ga(l),k=n*ha(f),C=n*ga(f);if(_a_a){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,a=(a*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>_a){var u=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);r=(r*u+t._x1*t._l23_2a-e*t._l12_2a)/l,o=(o*u+t._y1*t._l23_2a-n*t._l12_2a)/l}t._context.bezierCurveTo(i,a,r,o,t._x2,t._y2)}function CatmullRom(t,e){this._context=t,this._alpha=e}CatmullRom.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:catmullRom_point(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ia=function custom(e){function catmullRom(t){return e?new CatmullRom(t,e):new Cardinal(t,0)}return catmullRom.alpha=function(t){return custom(+t)},catmullRom}(.5);function CatmullRomClosed(t,e){this._context=t,this._alpha=e}CatmullRomClosed.prototype={areaStart:Sa,areaEnd:Sa,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:catmullRom_point(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ea=function custom(e){function catmullRom(t){return e?new CatmullRomClosed(t,e):new CardinalClosed(t,0)}return catmullRom.alpha=function(t){return custom(+t)},catmullRom}(.5);function CatmullRomOpen(t,e){this._context=t,this._alpha=e}CatmullRomOpen.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:catmullRom_point(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Oa=function custom(e){function catmullRom(t){return e?new CatmullRomOpen(t,e):new CardinalOpen(t,0)}return catmullRom.alpha=function(t){return custom(+t)},catmullRom}(.5);function LinearClosed(t){this._context=t}LinearClosed.prototype={areaStart:Sa,areaEnd:Sa,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};var Pa=function(t){return new LinearClosed(t)};function monotone_sign(t){return t<0?-1:1}function slope3(t,e,n){var i=t._x1-t._x0,a=e-t._x1,r=(t._y1-t._y0)/(i||a<0&&-0),o=(n-t._y1)/(a||i<0&&-0),s=(r*a+o*i)/(i+a);return(monotone_sign(r)+monotone_sign(o))*Math.min(Math.abs(r),Math.abs(o),.5*Math.abs(s))||0}function slope2(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function monotone_point(t,e,n){var i=t._x0,a=t._y0,r=t._x1,o=t._y1,s=(r-i)/3;t._context.bezierCurveTo(i+s,a+s*e,r-s,o-s*n,r,o)}function MonotoneX(t){this._context=t}function MonotoneY(t){this._context=new ReflectContext(t)}function ReflectContext(t){this._context=t}function monotoneX(t){return new MonotoneX(t)}function monotoneY(t){return new MonotoneY(t)}function Natural(t){this._context=t}function controlPoints(t){var e,n,i=t.length-1,a=new Array(i),r=new Array(i),o=new Array(i);for(r[a[0]=0]=2,o[0]=t[0]+2*t[1],e=1;ethis.width?i=this.width-n.getBoundingClientRect().width:i<0&&(i=4)),i+(r.data_labels_position.x||0)},getYForText:function getYForText(t,e,n){var i,a=this,r=a.config,o=r.point_r,s=3;if(r.axis_rotated)i=(t[0][0]+t[2][0]+.6*n.getBoundingClientRect().height)/2;else if(i=t[2][1],Pn(o)&&5this.height&&(i=this.height-4)}return i+(r.data_labels_position.y||0)}});var Ha={Area:["area","area-spline","area-spline-range","area-line-range","area-step"],AreaRange:["area-spline-range","area-line-range"],Arc:["pie","donut","gauge","radar"],Line:["line","spline","area","area-spline","area-spline-range","area-line-range","step","area-step"],Step:["step","area-step"],Spline:["spline","area-spline","area-spline-range"]};ii(Wi.prototype,{setTargetType:function setTargetType(t,e){var n=this,i=n.config;n.mapToTargetIds(t).forEach(function(t){n.withoutFadeIn[t]=e===i.data_types[t],i.data_types[t]=e}),t||(i.data_type=e)},hasType:function hasType(n,t){var i=this.config.data_types,e=t||this.data.targets,a=!1;return e&&e.length?e.forEach(function(t){var e=i[t.id];(e&&0<=e.indexOf(n)||!e&&"line"===n)&&(a=!0)}):Object.keys(i).length?Object.keys(i).forEach(function(t){i[t]===n&&(a=!0)}):a=this.config.data_type===n,a},hasTypeOf:function hasTypeOf(t,e){var n=this,i=2n&&(i=i.filter(function(t){return(t+"").indexOf(".")<0}));return i},getGridFilterToRemove:function getGridFilterToRemove(t){return t?function(e){var n=!1;return(qn(t)?t.concat():[t]).forEach(function(t){("value"in t&&e.value===t.value||"class"in t&&e["class"]===t["class"])&&(n=!0)}),n}:function(){return!0}},removeGridLines:function removeGridLines(t,e){var n=this.config,i=this.getGridFilterToRemove(t),a=e?dn.xgridLines:dn.ygridLines,r=e?dn.xgridLine:dn.ygridLine;this.main.select(".".concat(a)).selectAll(".".concat(r)).filter(i).transition().duration(n.transition_duration).style("opacity","0").remove();var o="grid_".concat(e?"x":"y","_lines");n[o]=n[o].filter(function toShow(t){return!i(t)})}}),ii(Wi.prototype,{initTooltip:function initTooltip(){var e=this,n=e.config;if(e.tooltip=e.selectChart.style("position","relative").append("div").attr("class",dn.tooltipContainer).style("position","absolute").style("pointer-events","none").style("display","none"),n.tooltip_init_show){if(e.isTimeSeries()&&On(n.tooltip_init_x)){var t,i,a=e.data.targets[0];for(n.tooltip_init_x=e.parseDate(n.tooltip_init_x),t=0;(i=a.values[t])&&i.x-n.tooltip_init_x!=0;t++);n.tooltip_init_x=t}e.tooltip.html(n.tooltip_contents.call(e,e.data.targets.map(function(t){return e.addName(t.values[n.tooltip_init_x])}),e.axis.getXAxisTickFormat(),e.getYFormat(e.hasArcType(null,["radar"])),e.color)),e.tooltip.style("top",n.tooltip_init_position.top).style("left",n.tooltip_init_position.left).style("display","block")}},getTooltipContent:function getTooltipContent(t,e,n,i){var a,r,o,s,c=this,u=c.config,l=u.tooltip_format_title||e,h=u.tooltip_format_name||function(t){return t},d=u.tooltip_format_value||(c.isStackNormalized()?function(t,e){return"".concat((100*e).toFixed(2),"%")}:n),f=u.tooltip_order,g=function(t){return c.getBaseValue(t)},p=c.levelColor?function(t){return c.levelColor(t.value)}:function(t){return i(t.id)};if(null===f&&u.data_groups.length){var _=c.orderTargets(c.data.targets).map(function(t){return t.id}).reverse();t.sort(function(t,e){var n=t?t.value:null,i=e?e.value:null;return 0').concat(In(y)?''.concat(y,""):"")}if(o=[r.ratio,r.id,r.index,t],s=Jn(d.apply(void 0,[g(r)].concat(gn()(o)))),c.isAreaRangeType(r)){var v=["high","low"].map(function(t){return Jn(d.apply(void 0,[c.getAreaRangeData(r,t)].concat(gn()(o))))}),b=zt()(v,2),T=b[0],w=b[1];s="Mid: ".concat(s," High: ").concat(T," Low: ").concat(w)}if(s!==undefined){if(null===r.name)continue;var A=Jn(h.apply(void 0,[r.name].concat(gn()(o)))),k=p(r);a+=''),a+=c.patterns?''):''),a+="".concat(A,'').concat(s,"")}}return"".concat(a,"")},tooltipPosition:function tooltipPosition(t,e,n,i){var a=this,r=a.config,o=P(i),s=zt()(o,2),c=s[0],u=s[1],l=a.getSvgLeft(!0),h=l+a.currentWidth-a.getCurrentPaddingRight();if(u+=20,a.hasArcType()){"touch"===a.inputType||a.hasType("radar")||(u+=a.height/2,c+=(a.width-(a.isLegendRight?a.getLegendWidth():0))/2)}else{var d=a.x(t[0].x);r.axis_rotated?(u=d+20,c+=l+100,h-=l):(u-=5,c=l+a.getCurrentPaddingLeft(!0)+20+(a.zoomScale?c:d))}return ha.currentHeight&&(u-=n+30),u<0&&(u=0),c<0&&(c=0),{top:u,left:c}},showTooltip:function showTooltip(t,e){var n=this,i=n.config,a=n.hasArcType(null,["radar"]),r=t.filter(function(t){return t&&In(n.getBaseValue(t))}),o=i.tooltip_position||n.tooltipPosition;if(0!==r.length&&i.tooltip_show){var s=n.tooltip.datum(),c=JSON.stringify(t),u=s&&s.width||0,l=s&&s.height||0;if(!s||s.current!==c){var h=t.concat().sort()[0].index,d=i.tooltip_contents.call(n,t,n.axis.getXAxisTickFormat(),n.getYFormat(a),n.color);Kn(i.tooltip_onshow,n),n.tooltip.html(d).style("display","block").datum({index:h,current:c,width:u=n.tooltip.property("offsetWidth"),height:l=n.tooltip.property("offsetHeight")}),Kn(i.tooltip_onshown,n),n._handleLinkedCharts(!0,h)}var f=o.call(this,r,u,l,e);n.tooltip.style("top","".concat(f.top,"px")).style("left","".concat(f.left,"px"))}},hideTooltip:function hideTooltip(){var t=this.config;Kn(t.tooltip_onhide,this),this.tooltip.style("display","none").datum(null),Kn(t.tooltip_onhidden,this)},_handleLinkedCharts:function _handleLinkedCharts(c,u){var l=this;if(l.config.tooltip_linked){var h=l.config.tooltip_linked_name;(l.api.internal.charts||[]).forEach(function(t){if(t!==l.api){var e=t.internal.config,n=e.tooltip_linked,i=e.tooltip_linked_name,a=document.body.contains(t.element);if(n&&h===i&&a){var r=t.internal.tooltip.data()[0],o=u!==(r&&r.index);try{c&&o?t.tooltip.show({index:u}):!c&&t.tooltip.hide()}catch(s){}}}})}}}),ii(Wi.prototype,{initLegend:function initLegend(){var t=this,e=t.config;t.legendItemTextBox={},t.legendHasRendered=!1,t.legend=t.svg.append("g"),e.legend_show?(t.legend.attr("transform",t.getTranslate("legend")),t.updateLegend()):(t.legend.style("visibility","hidden"),t.hiddenLegendIds=t.mapToIds(t.data.targets))},updateLegend:function updateLegend(t,e,n){var i=this,a=i.config,r=e||{withTransform:!1,withTransitionForTransform:!1,withTransition:!1};r.withTransition=$n(r,"withTransition",!0),r.withTransitionForTransform=$n(r,"withTransitionForTransform",!0),a.legend_contents_bindto&&a.legend_contents_template?i.updateLegendTemplate():i.updateLegendElement(t||i.mapToIds(i.data.targets),r,n),i.updateSizes(),i.updateScales(!r.withTransition),i.updateSvgSize(),i.transformAll(r.withTransitionForTransform,n),i.legendHasRendered=!0},updateLegendTemplate:function updateLegendTemplate(){var n=this,t=n.config,e=O(t.legend_contents_bindto),i=t.legend_contents_template;if(!e.empty()){var a=n.data.targets,r=[],o="";n.mapToIds(a).forEach(function(t){var e=En(i)?i.call(n,t,n.color(t),n.api.data(t)[0].values):i.replace(/{=COLOR}/g,n.color(t)).replace(/{=TITLE}/g,t);e&&(r.push(t),o+=e)});var s=e.html(o).selectAll(function(){return this.childNodes}).data(r);n.setLegendItem(s)}},updateSizeForLegend:function updateSizeForLegend(t){var e=this,n=e.config,i=t.width,a=t.height,r={top:e.isLegendTop?e.getCurrentPaddingTop()+n.legend_inset_y+5.5:e.currentHeight-a-e.getCurrentPaddingBottom()-n.legend_inset_y,left:e.isLegendLeft?e.getCurrentPaddingLeft()+n.legend_inset_x+.5:e.currentWidth-i-e.getCurrentPaddingRight()-n.legend_inset_x+.5};e.margin3={top:e.isLegendRight?0:e.isLegendInset?r.top:e.currentHeight-a,right:NaN,bottom:0,left:e.isLegendRight?e.currentWidth-i:e.isLegendInset?r.left:0}},transformLegend:function transformLegend(t){(t?this.legend.transition():this.legend).attr("transform",this.getTranslate("legend"))},updateLegendStep:function updateLegendStep(t){this.legendStep=t},updateLegendItemWidth:function updateLegendItemWidth(t){this.legendItemWidth=t},updateLegendItemHeight:function updateLegendItemHeight(t){this.legendItemHeight=t},getLegendWidth:function getLegendWidth(){return this.config.legend_show?this.isLegendRight||this.isLegendInset?this.legendItemWidth*(this.legendStep+1):this.currentWidth:0},getLegendHeight:function getLegendHeight(){return this.config.legend_show?this.isLegendRight?this.currentHeight:Math.max(20,this.legendItemHeight)*(this.legendStep+1):0},opacityForLegend:function opacityForLegend(t){return t.classed(dn.legendItemHidden)?null:"1"},opacityForUnfocusedLegend:function opacityForUnfocusedLegend(t){return t.classed(dn.legendItemHidden)?null:"0.3"},toggleFocusLegend:function toggleFocusLegend(t,e){var n=this,i=n.mapToTargetIds(t);n.legend.selectAll(".".concat(dn.legendItem)).filter(function(t){return 0<=i.indexOf(t)}).classed(dn.legendItemFocused,e).transition().duration(100).style("opacity",function(){return(e?n.opacityForLegend:n.opacityForUnfocusedLegend).call(n,O(this))})},revertLegend:function revertLegend(){var t=this;t.legend.selectAll(".".concat(dn.legendItem)).classed(dn.legendItemFocused,!1).transition().duration(100).style("opacity",function(){return t.opacityForLegend(O(this))})},showLegend:function showLegend(t){var e=this,n=e.config;n.legend_show||(n.legend_show=!0,e.legend.style("visibility","visible"),!e.legendHasRendered&&e.updateLegend()),e.removeHiddenLegendIds(t),e.legend.selectAll(e.selectorLegends(t)).style("visibility","visible").transition().style("opacity",function(){return e.opacityForLegend(O(this))})},hideLegend:function hideLegend(t){var e=this.config;e.legend_show&&Gn(t)&&(e.legend_show=!1,this.legend.style("visibility","hidden")),this.addHiddenLegendIds(t),this.legend.selectAll(this.selectorLegends(t)).style("opacity","0").style("visibility","hidden")},clearLegendItemTextBoxCache:function clearLegendItemTextBoxCache(){this.legendItemTextBox={}},setLegendItem:function setLegendItem(t){var n=this,e=n.config,i="touch"===n.inputType;t.attr("class",function(t){var e=O(this);return(!e.empty()&&e.attr("class")||"")+n.generateClass(dn.legendItem,t)}).style("visibility",function(t){return n.isLegendToShow(t)?"visible":"hidden"}).style("cursor","pointer").on("click",function(t){Kn(e.legend_item_onclick,n,t)||(E.altKey?(n.api.hide(),n.api.show(t)):(n.api.toggle(t),!i&&n.isTargetToShow(t)?n.api.focus(t):n.api.revert())),i&&n.hideTooltip()}),i||t.on("mouseout",function(t){Kn(e.legend_item_onout,n,t)||(O(this).classed(dn.legendItemFocused,!1),n.api.revert())}).on("mouseover",function(t){Kn(e.legend_item_onover,n,t)||(O(this).classed(dn.legendItemFocused,!0),!n.transiting&&n.isTargetToShow(t)&&n.api.focus(t))})},updateLegendElement:function updateLegendElement(t,e){var n,i,a,g=this,p=g.config,_=p.legend_item_tile_width+5,m=0,x=0,y=0,v={},b={},T={},w=[0],A={},k=0,C=g.isLegendRight||g.isLegendInset,S=t.filter(function(t){return!Nn(p.data_names[t])||null!==p.data_names[t]}),r=e.withTransition,o=function(t,e,n){var i,a,r,o=n===S.length-1,s=(a=t,r=e,g.legendItemTextBox[r]||(g.legendItemTextBox[r]=g.getTextRect(a,dn.legendItem)),g.legendItemTextBox[r]),c=s.width+_+(o&&!C?0:10)+p.legend_padding,u=s.height+4,l=C?u:c,h=C?g.getLegendHeight():g.getLegendWidth(),d=function(t,e){e||(i=(h-y-l)/2)<10&&(i=(h-l)/2,y=0,k++),A[t]=k,w[k]=g.isLegendInset?10:i,v[t]=y,y+=l};if(0===n&&(x=m=k=y=0),p.legend_show&&!g.isLegendToShow(e))return b[e]=0,T[e]=0,A[e]=0,void(v[e]=0);b[e]=c,T[e]=u,(!m||m<=c)&&(m=c),(!x||x<=u)&&(x=u);var f=C?x:m;p.legend_equally?(Object.keys(b).forEach(function(t){return b[t]=m}),Object.keys(T).forEach(function(t){return T[t]=x}),(i=(h-f*S.length)/2)<10?(k=y=0,S.forEach(function(t){return d(t)})):d(e,!0)):d(e)};g.isLegendInset&&(k=p.legend_inset_step?p.legend_inset_step:S.length,g.updateLegendStep(k)),i=g.isLegendRight?(n=function(t){return m*A[t]},function(t){return w[A[t]]+v[t]}):g.isLegendInset?(n=function(t){return m*A[t]+10},function(t){return w[A[t]]+v[t]}):(n=function(t){return w[A[t]]+v[t]},function(t){return x*A[t]});var s=function(t,e){return n(t,e)+4+p.legend_item_tile_width},c=function(t,e){return n(t,e)},h=function(t,e){return n(t,e)-2},u=function(t,e){return n(t,e)-2+p.legend_item_tile_width},l=function(t,e){return i(t,e)+9},d=function(t,e){return i(t,e)-5},f=function(t,e){return i(t,e)+4},M=g.legend.selectAll(".".concat(dn.legendItem)).data(S).enter().append("g");g.setLegendItem(M),M.append("text").text(function(t){return Nn(p.data_names[t])?p.data_names[t]:t}).each(function(t,e){o(this,t,e)}).style("pointer-events","none").attr("x",C?s:-200).attr("y",C?-200:l),M.append("rect").attr("class",dn.legendItemEvent).style("fill-opacity","0").attr("x",C?c:-200).attr("y",C?-200:d);var L=g.config.legend_usePoint;if(L){var D=[];M.append(function(t){var e=jn(p.point_pattern)?p.point_pattern:[p.point_type];-1===D.indexOf(t)&&D.push(t);var n=e[D.indexOf(t)%e.length];return"rectangle"===n&&(n="rect"),document.createElementNS(I.svg,g.hasValidPointType(n)?n:"use")}).attr("class",dn.legendItemPoint).style("fill",function(t){return g.color(t)}).style("pointer-events","none").attr("href",function(t,e,n){return"use"===n[e].nodeName.toLowerCase()?"#".concat(g.datetimeId,"-point-").concat(t):undefined})}else M.append("line").attr("class",dn.legendItemTile).style("stroke",g.color).style("pointer-events","none").attr("x1",C?h:-200).attr("y1",C?-200:f).attr("x2",C?u:-200).attr("y2",C?-200:f).attr("stroke-width",p.legend_item_tile_height);a=g.legend.select(".".concat(dn.legendBackground," rect")),g.isLegendInset&&0'":;\[\]\/|~`{}\\]/g,"-"):""},selectorTarget:function selectorTarget(t,e){return"".concat(e||"",".").concat(dn.target+this.getTargetSelectorSuffix(t))},selectorTargets:function selectorTargets(t,e){var n=this,i=t||[];return i.length?i.map(function(t){return n.selectorTarget(t,e)}):null},selectorLegend:function selectorLegend(t){return".".concat(dn.legendItem+this.getTargetSelectorSuffix(t))},selectorLegends:function selectorLegends(t){var e=this;return t&&t.length?t.map(function(t){return e.selectorLegend(t)}):null}}),ii(Gi.prototype,{focus:function focus(t){var e=this.internal,n=e.mapToTargetIds(t),i=e.svg.selectAll(e.selectorTargets(n.filter(e.isTargetToShow,e)));this.revert(),this.defocus(),i.classed(dn.focused,!0).classed(dn.defocused,!1),e.hasArcType()&&e.expandArc(n),e.toggleFocusLegend(n,!0),e.focusedTargetIds=n,e.defocusedTargetIds=e.defocusedTargetIds.filter(function(t){return n.indexOf(t)<0})},defocus:function defocus(t){var e=this.internal,n=e.mapToTargetIds(t);e.svg.selectAll(e.selectorTargets(n.filter(e.isTargetToShow,e))).classed(dn.focused,!1).classed(dn.defocused,!0),e.hasArcType()&&e.unexpandArc(n),e.toggleFocusLegend(n,!1),e.focusedTargetIds=e.focusedTargetIds.filter(function(t){return n.indexOf(t)<0}),e.defocusedTargetIds=n},revert:function revert(t){var e=this.internal,n=e.mapToTargetIds(t);e.svg.selectAll(e.selectorTargets(n)).classed(dn.focused,!1).classed(dn.defocused,!1),e.hasArcType()&&e.unexpandArc(n),e.config.legend_show&&(e.showLegend(n.filter(e.isLegendToShow.bind(e))),e.legend.selectAll(e.selectorLegends(n)).filter(function(){return O(this).classed(dn.legendItemFocused)}).classed(dn.legendItemFocused,!1)),e.focusedTargetIds=[],e.defocusedTargetIds=[]}}),ii(Gi.prototype,{_showHide:function _showHide(t,e,n){var i=this.internal,a=i.mapToTargetIds(e);i["".concat(t?"remove":"add","HiddenTargetIds")](a);var r=i.svg.selectAll(i.selectorTargets(a)),o=t?"1":"0";r.transition().style("opacity",o,"important").call(i.endall,function(){r.style("opacity",null).style("opacity",o)}),n.withLegend&&i["".concat(t?"show":"hide","Legend")](a),i.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0})},show:function show(t){var e=1