bx-rest 0.26.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.en.md +52 -4
  3. package/README.md +71 -14
  4. package/esm2022/functions/lowerCaseOrder.mjs +23 -0
  5. package/esm2022/request-navvy/crm/company.mjs +8 -2
  6. package/esm2022/request-navvy/crm/contact.mjs +8 -2
  7. package/esm2022/request-navvy/crm/deal.mjs +8 -2
  8. package/esm2022/request-navvy/crm/lead.mjs +8 -2
  9. package/esm2022/services/http/HttpBX.mjs +63 -30
  10. package/esm2022/services/http/sessionKey.mjs +21 -2
  11. package/esm2022/settings.mjs +15 -3
  12. package/esm2022/typification/rest/batch/batchRequestParam.mjs +1 -1
  13. package/esm2022/typification/rest/crm/company/list.mjs +1 -1
  14. package/esm2022/typification/rest/crm/contact/list.mjs +1 -1
  15. package/esm2022/typification/rest/crm/deal/list.mjs +1 -1
  16. package/esm2022/typification/rest/crm/lead/list.mjs +1 -1
  17. package/esm2022/typification/rest/support/param.mjs +1 -1
  18. package/esm2022/typification/rest/task/access/getaccess.mjs +1 -1
  19. package/esm2022/typification/rest/task/commentitem/commentitem.mjs +1 -1
  20. package/esm2022/typification/rest/tasks/task.mjs +1 -1
  21. package/esm2022/typification/settings.mjs +1 -1
  22. package/fesm2022/bx-rest.mjs +143 -36
  23. package/fesm2022/bx-rest.mjs.map +1 -1
  24. package/functions/lowerCaseOrder.d.ts +15 -0
  25. package/map/tasks/task.d.ts +1 -3
  26. package/package.json +2 -1
  27. package/request-navvy/crm/company.d.ts +6 -1
  28. package/request-navvy/crm/contact.d.ts +6 -1
  29. package/request-navvy/crm/deal.d.ts +6 -1
  30. package/request-navvy/crm/lead.d.ts +6 -1
  31. package/services/http/HttpBX.d.ts +2 -1
  32. package/services/http/sessionKey.d.ts +7 -1
  33. package/settings.d.ts +7 -0
  34. package/typification/rest/batch/batchRequestParam.d.ts +3 -9
  35. package/typification/rest/crm/company/list.d.ts +2 -1
  36. package/typification/rest/crm/contact/list.d.ts +2 -1
  37. package/typification/rest/crm/deal/list.d.ts +2 -1
  38. package/typification/rest/crm/lead/list.d.ts +2 -1
  39. package/typification/rest/support/param.d.ts +0 -2
  40. package/typification/rest/task/access/getaccess.d.ts +1 -3
  41. package/typification/rest/task/commentitem/commentitem.d.ts +1 -3
  42. package/typification/rest/tasks/task.d.ts +5 -9
  43. package/typification/settings.d.ts +9 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,32 @@
1
+ # Changelog
2
+
3
+ Все заметные изменения пакета `bx-rest` фиксируются в этом файле.
4
+
5
+ Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/),
6
+ версионирование — на [Semantic Versioning](https://semver.org/lang/ru/).
7
+ История до версии 1.0.0 здесь не восстанавливалась — смотрите `git log` для
8
+ более ранних изменений.
9
+
10
+ ## [1.1.0] - 2026-10-09
11
+
12
+ ### Fixed
13
+
14
+ - `HttpBXServices.get()` теперь резолвит `BXRestSettings` (источник авторизации
15
+ и базовый URL) лениво, в момент подписки — так же, как уже делает `post()`.
16
+ Раньше GET-запросы читали настройки сразу в момент вызова `get()`, что могло
17
+ "заморозить" устаревшие значения, если настройки меняются между вызовом и
18
+ подпиской.
19
+ - `npm run lint` чинится: конфиг ESLint ошибочно включал базовые правила
20
+ `no-dupe-class-members`/`no-redeclare` (ложно срабатывают на валидных
21
+ TS-перегрузках методов и функций) и не знал про `globals.node`, из-за чего
22
+ `process` в тестах ловился как неизвестная переменная.
23
+
24
+ ### Changed
25
+
26
+ - `BXRestSettings.date` переименован в `BXRestSettings.value` — имя `date` не
27
+ отражало содержимое (настройки auth/urls, а не дату). `date` оставлен как
28
+ `@deprecated`-алиас для обратной совместимости.
29
+
30
+ ## [1.0.0] - 2026-09-08
31
+
32
+ Первый релиз, помеченный как стабильный (1.0.0).
package/README.en.md CHANGED
@@ -17,11 +17,13 @@ Also known as: Bitrix24 REST client, BX24 REST SDK, Bitrix24 API client, Bitrix
17
17
  - [Quick Start](#quick-start)
18
18
  - [Result modes](#result-modes)
19
19
  - [Authentication and OAuth2](#authentication-and-oauth2)
20
+ - [`withCredentials`](#withcredentials)
20
21
  - [Error handling](#error-handling)
21
22
  - [Usage in Angular](#usage-in-angular)
22
23
  - [SessionKeyServices](#sessionkeyservices)
23
24
  - [Usage in Vue](#usage-in-vue)
24
25
  - [Usage in React](#usage-in-react)
26
+ - [Demo](#demo)
25
27
  - [Custom REST methods](#custom-rest-methods)
26
28
  - [Mapper](#mapper)
27
29
  - [A custom method with `simple()`](#a-custom-method-with-simple)
@@ -107,14 +109,35 @@ REST calls are lazy: the request starts when the returned `Observable` is subscr
107
109
  | Scenario | `auth.source` | `auth.key` | Behaviour |
108
110
  | --- | --- | --- | --- |
109
111
  | Access token from application state | `() => accessToken` | `auth` | Calls the function before each request and sends its value in the `auth` parameter. Recommended for OAuth2 access tokens managed by the application. |
110
- | Access token in local storage | `localStorage` | `auth` | Reads `localStorage["auth"]` and sends it as `auth`. |
111
- | Access token in a cookie | `cookies` | `auth` | Reads the `auth` cookie and sends it as `auth`. |
112
+ | Access token in local storage | `localStorage` | `auth` | Reads `localStorage["auth"]` and sends it as `auth`. The value is fully readable by any JS on the page (including via XSS) — a good fit for local development/prototyping; for production, prefer the function-based source managed by your application. |
113
+ | Access token in a cookie | `cookies` | `auth` | Reads the `auth` cookie via `document.cookie` and sends it as `auth`. Your own JS code reads the cookie, so it can't be `HttpOnly` — from an XSS-protection standpoint this is no safer than `localStorage`. Like the previous option, mainly useful for local development. |
112
114
  | Embedded Bitrix page / local session | `cookies` | `sessid` | Tries `window.BX.bitrix_sessid()`, the `sessid` query parameter, `localStorage.sessid`, then the `auth` cookie. Sends the resolved value as `sessid`. |
113
- | Incoming webhook or URL that already contains authorization | `off` | Any value | Skips credential lookup and does not add an authorization parameter. |
114
- | Cookie-based credential request | Any source returning a non-empty value | `OAuth2` | Does not append the resolved value to request params and enables Axios `withCredentials`. Use only when the portal and CORS policy support credential cookies. |
115
+ | Incoming webhook, an already-authorized URL, or your own proxy | `off` | Any value | Skips credential lookup and does not add an authorization parameter — used both for webhooks (the secret is already in the URL) and for routing through your own backend proxy (the secret stays server-side, the browser never sees it). For the proxy case, if it authenticates the browser with its own session cookie, see `withCredentials` below. |
116
+ | Cookie-based credential request | Any source returning a non-empty value | `OAuth2` | Does not append the resolved value to request params and, by default, enables Axios `withCredentials` (unless overridden by the `withCredentials` setting, see below). Use only when the portal and CORS policy support credential cookies — also keep in mind that modern browsers increasingly block third-party cookies by default. |
115
117
 
116
118
  For a regular Bitrix OAuth2 `access_token`, use `auth.key: 'auth'` and provide the current token through a function or `localStorage`. The special `auth.key: 'OAuth2'` mode is for credential cookies; it does not send an OAuth access token by itself.
117
119
 
120
+ ### `withCredentials`
121
+
122
+ By default, the axios `withCredentials` option (whether to attach browser cookies to the request) is only enabled for `auth.key: 'OAuth2'`. If you need it in another case — e.g. `auth.source: 'off'` points at your own proxy, and the browser should attach *that proxy's* session cookie (not Bitrix24's) — set `withCredentials` explicitly, independent of `auth.key`:
123
+
124
+ ```typescript
125
+ BXRestSettings.update({
126
+ auth: {
127
+ source: 'off',
128
+ key: 'auth'
129
+ },
130
+ urls: {
131
+ source: 'string',
132
+ key: 'https://your-proxy.example.com/bitrix-proxy',
133
+ additional_part: ''
134
+ },
135
+ withCredentials: true
136
+ })
137
+ ```
138
+
139
+ An explicit value always takes priority over the "only for `OAuth2`" rule — you can also force `withCredentials` off for `auth.key: 'OAuth2'` if you don't need it.
140
+
118
141
  For an incoming webhook URL, keep the full webhook path in `urls.key`, set `additional_part` to an empty string and disable additional authorization:
119
142
 
120
143
  ```typescript
@@ -381,6 +404,31 @@ export function Deals() {
381
404
  }
382
405
  ```
383
406
 
407
+ ## Demo
408
+
409
+ There are three independent demo apps in [`projects/`](../) — Angular, Vue
410
+ and React (`demo-angular`, `demo-vue`, `demo-react`). Each one has a
411
+ connection form covering every scenario from the "Authentication and OAuth2"
412
+ section above (not just an access token and a webhook), a Monaco-based code
413
+ editor with real autocompletion from `bx-rest`'s own types (not a plain text
414
+ box or a request-builder form), and a result panel that actually runs the
415
+ code you write against your portal. The UI switches between Russian and
416
+ English automatically based on the browser/OS language. The shared logic
417
+ (Monaco typings, code execution, ready-made snippets, i18n) lives in
418
+ `projects/demo-shared` — the three demos mainly differ in the integration
419
+ style (a DI provider in Angular, a plugin in Vue, a singleton + hook in
420
+ React — see the sections above) and, for Angular, in the UI library
421
+ (Angular Material — the idiomatic choice for that framework).
422
+
423
+ Run from the repository root:
424
+
425
+ ```shell
426
+ npm run demo:bootstrap
427
+ ```
428
+
429
+ Then, in any of `projects/demo-angular|demo-vue|demo-react`: `npm run dev`
430
+ (for Angular, `npm start`). See each demo's own README for details.
431
+
384
432
  ## Custom REST methods
385
433
 
386
434
  `Navvy` is exported from `bx-rest`. In Angular, register the `NavvyProvider` shown above and inject `Navvy` into your custom API service. A method URL is represented as an array and is joined with dots before the request is sent.
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ <!-- This file is generated from projects/bx-rest/README.md by `npm run sync-readme`. Do not edit directly. -->
2
+
1
3
  <img src="https://flagcdn.com/20x15/ru.png" width="20" height="15" alt="RU"> **Русский** | <img src="https://flagcdn.com/20x15/gb.png" width="20" height="15" alt="GB"> [English](README.en.md)
2
4
 
3
5
  # bx-rest — REST API клиент Bitrix24 для TypeScript, Angular, Vue и React
@@ -6,9 +8,7 @@
6
8
  [![npm downloads](https://img.shields.io/npm/dm/bx-rest.svg)](https://www.npmjs.com/package/bx-rest)
7
9
  [![license](https://img.shields.io/npm/l/bx-rest.svg)](https://github.com/Aricatofuka/bx-rest/blob/main/LICENSE)
8
10
 
9
- `bx-rest` — SDK на TypeScript для REST API Bitrix24. Помогает вызывать методы BX24 REST, работать с токенами авторизации, sessid, OAuth2, пагинацией, мапперами и типизированными API-запросами.
10
-
11
- Также известен как: REST-клиент Bitrix24, BX24 REST SDK, API-клиент Bitrix24, Bitrix REST TypeScript библиотека.
11
+ `bx-rest` — TypeScript SDK для работы с REST API Bitrix24. Предоставляет типизированный интерфейс для вызова REST-методов, управления авторизацией и токенами (sessid, OAuth 2.0), обработки пагинации и преобразования данных с помощью мапперов.
12
12
 
13
13
  ## Содержание
14
14
 
@@ -17,11 +17,13 @@
17
17
  - [Быстрый старт](#быстрый-старт)
18
18
  - [Режимы результата](#режимы-результата)
19
19
  - [Аутентификация и OAuth2](#аутентификация-и-oauth2)
20
+ - [`withCredentials`](#withcredentials)
20
21
  - [Обработка ошибок](#обработка-ошибок)
21
22
  - [Использование в Angular](#использование-в-angular)
22
23
  - [SessionKeyServices](#sessionkeyservices)
23
24
  - [Использование в Vue](#использование-в-vue)
24
25
  - [Использование в React](#использование-в-react)
26
+ - [Демо](#демо)
25
27
  - [Кастомные REST-методы](#кастомные-rest-методы)
26
28
  - [Mapper](#mapper)
27
29
  - [Кастомный метод с `simple()`](#кастомный-метод-с-simple)
@@ -40,11 +42,21 @@ npm install bx-rest
40
42
 
41
43
  ## Требования
42
44
 
43
- - **Формат модулей:** `bx-rest` поставляется только в виде ES-модулей — сборки CommonJS/`require` нет. Используйте его через ESM-совместимый бандлер (Angular CLI, Vite, webpack 5+, Next.js, ...) или нативный `import()`. Обычный `require('bx-rest')` (старые конфигурации Jest без поддержки ESM, `ts-node` в режиме CJS и т.п.) пакет не разрешит.
44
- - **TypeScript:** разработан под TypeScript 5.5+. Рекомендуется режим `strict` — встроенная типизация опирается на него для точных типов полей.
45
- - **RxJS:** `rxjs` (^7.8) — обычная зависимость, поставляемая вместе с пакетом, а не `peerDependency`, поэтому конкретная версия у хоста не требуется. Каждый REST-вызов возвращает RxJS `Observable`.
46
- - **Фреймворки:** примеры для Angular, Vue и React ниже написаны под API Angular 18/19, Vue 3 и React 18+ (версии, на которых собирается и тестируется библиотека). Ни один из этих фреймворков не объявлен как `peerDependencies` — `bx-rest` не имеет жёсткой зависимости ни от одного из них, — но показанные паттерны DI/композиции рассчитаны именно на эти мажорные версии.
47
- - **Окружение:** `bx-rest` ориентирован на браузер. Источники авторизации `cookies`/`localStorage`/`sessid` и `SessionKeyServices` напрямую читают `window`, `document` и `localStorage`. В приложении с серверным рендерингом (Angular Universal, Next.js и т.п.) выполняйте эти участки кода только в браузере (например, под защитой `isPlatformBrowser`/`typeof window !== 'undefined'`), либо используйте источник авторизации, не обращающийся к браузерным глобальным объектам, например `source: () => accessToken` или `source: 'off'`.
45
+ * **Формат модулей:** `bx-rest` поставляется только в формате ES Modules. Сборка CommonJS и поддержка `require()` не предусмотрены. Используйте пакет через ESM-совместимый бандлер (Angular CLI, Vite, webpack 5+, Next.js и др.) или нативный `import()`.
46
+
47
+ * **TypeScript:** требуется TypeScript 5.5 или выше. Рекомендуется включить режим `strict`, поскольку типизация SDK рассчитана на работу со строгой проверкой типов.
48
+
49
+ * **RxJS:** `rxjs` версии `^7.8` является обычной зависимостью пакета и поставляется вместе с `bx-rest`, а не объявляется как `peerDependency`. Поэтому установка отдельной версии RxJS на стороне приложения не требуется. Все REST-запросы возвращают `Observable`.
50
+
51
+ * **Фреймворки:** `bx-rest` не зависит от конкретного frontend-фреймворка и не объявляет Angular, Vue или React в качестве `peerDependencies`. Примеры интеграции рассчитаны на Angular 18/19, Vue 3 и React 18+ — эти версии используются при сборке и тестировании библиотеки.
52
+
53
+ * **Окружение:** `bx-rest` ориентирован преимущественно на браузерное окружение. Источники авторизации `cookies`, `localStorage`, `sessid` и `SessionKeyServices` используют браузерные API (`window`, `document`, `localStorage`). При использовании SSR (Angular Universal, Next.js и др.) такой код должен выполняться только на стороне клиента. Например, можно использовать проверки `isPlatformBrowser` / `typeof window !== 'undefined'` либо источник авторизации, не зависящий от браузерных глобальных объектов:
54
+
55
+ `source: () => accessToken`
56
+
57
+ или
58
+
59
+ `source: 'off'`.
48
60
 
49
61
  ## Быстрый старт
50
62
 
@@ -107,14 +119,35 @@ REST-вызовы ленивые: запрос начинается, когда
107
119
  | Сценарий | `auth.source` | `auth.key` | Поведение |
108
120
  | --- | --- | --- | --- |
109
121
  | Access-токен из состояния приложения | `() => accessToken` | `auth` | Вызывает функцию перед каждым запросом и отправляет её значение в параметре `auth`. Рекомендуется для OAuth2 access-токенов, которыми управляет приложение. |
110
- | Access-токен в local storage | `localStorage` | `auth` | Читает `localStorage["auth"]` и отправляет его как `auth`. |
111
- | Access-токен в куке | `cookies` | `auth` | Читает куку `auth` и отправляет её как `auth`. |
122
+ | Access-токен в local storage | `localStorage` | `auth` | Читает `localStorage["auth"]` и отправляет его как `auth`. Значение полностью доступно любому JS на странице (в том числе через XSS) — годится для локальной разработки/прототипирования, для продакшена предпочтительнее источник-функция, управляемый приложением. |
123
+ | Access-токен в куке | `cookies` | `auth` | Читает куку `auth` через `document.cookie` и отправляет её как `auth`. Куку читает сам JS-код, поэтому она не может быть `HttpOnly` — с точки зрения защиты от XSS это не безопаснее `localStorage`. Как и предыдущий вариант, в первую очередь удобен для локальной разработки. |
112
124
  | Встроенная страница Bitrix / локальная сессия | `cookies` | `sessid` | Пробует `window.BX.bitrix_sessid()`, query-параметр `sessid`, `localStorage.sessid`, затем куку `auth`. Отправляет полученное значение как `sessid`. |
113
- | Входящий вебхук или URL, уже содержащий авторизацию | `off` | Любое значение | Пропускает поиск учётных данных и не добавляет параметр авторизации. |
114
- | Запрос учётных данных через куки | Любой источник, возвращающий непустое значение | `OAuth2` | Не добавляет полученное значение в параметры запроса и включает `withCredentials` в Axios. Используйте только если портал и политика CORS поддерживают куки с учётными данными. |
125
+ | Входящий вебхук, URL с авторизацией или собственный прокси | `off` | Любое значение | Пропускает поиск учётных данных и не добавляет параметр авторизации — используется и для вебхука (секрет уже в URL), и для запроса через собственный бэкенд-прокси (секрет остаётся на сервере, браузер токен не видит вообще). Для второго случая, если прокси авторизует браузер собственной cookie-сессией, см. настройку `withCredentials` ниже. |
126
+ | Запрос учётных данных через куки | Любой источник, возвращающий непустое значение | `OAuth2` | Не добавляет полученное значение в параметры запроса и по умолчанию включает `withCredentials` в Axios (если не переопределено настройкой `withCredentials`, см. ниже). Используйте только если портал и политика CORS поддерживают куки с учётными данными — учтите также, что современные браузеры всё активнее блокируют сторонние (third-party) куки по умолчанию. |
115
127
 
116
128
  Для обычного OAuth2 `access_token` Bitrix используйте `auth.key: 'auth'` и передавайте текущий токен через функцию или `localStorage`. Специальный режим `auth.key: 'OAuth2'` предназначен для куки с учётными данными; сам по себе он не отправляет OAuth access-токен.
117
129
 
130
+ ### `withCredentials`
131
+
132
+ По умолчанию axios-опция `withCredentials` (прикладывать ли браузерные куки к запросу) включается только при `auth.key: 'OAuth2'`. Если нужен другой случай — например, `auth.source: 'off'` указывает на собственный прокси, а браузер должен приложить куку сессии *этого прокси* (не Bitrix24) — задайте `withCredentials` явно в настройках, независимо от `auth.key`:
133
+
134
+ ```typescript
135
+ BXRestSettings.update({
136
+ auth: {
137
+ source: 'off',
138
+ key: 'auth'
139
+ },
140
+ urls: {
141
+ source: 'string',
142
+ key: 'https://your-proxy.example.com/bitrix-proxy',
143
+ additional_part: ''
144
+ },
145
+ withCredentials: true
146
+ })
147
+ ```
148
+
149
+ Явное значение всегда имеет приоритет над правилом «включать только для `OAuth2`» — можно и принудительно выключить `withCredentials` при `auth.key: 'OAuth2'`, если он не нужен.
150
+
118
151
  Для URL входящего вебхука сохраните полный путь вебхука в `urls.key`, установите `additional_part` в пустую строку и отключите дополнительную авторизацию:
119
152
 
120
153
  ```typescript
@@ -381,6 +414,31 @@ export function Deals() {
381
414
  }
382
415
  ```
383
416
 
417
+ ## Демо
418
+
419
+ В [`projects/`](../) есть три независимых демо-приложения — Angular, Vue и React
420
+ (`demo-angular`, `demo-vue`, `demo-react`). Каждое: форма подключения,
421
+ покрывающая все варианты из раздела «Аутентификация и OAuth2» выше (а не
422
+ только access-токен и вебхук), редактор кода на Monaco с
423
+ автодополнением по типам `bx-rest` (а не текстовое поле или конструктор
424
+ запроса) и панель результата, которая реально выполняет написанный код
425
+ против вашего портала. Интерфейс переключается между русским и английским
426
+ автоматически по языку браузера/ОС. Общая логика (типы для Monaco,
427
+ выполнение кода, готовые примеры, i18n) вынесена в `projects/demo-shared` —
428
+ разница между тремя демо в первую очередь в способе интеграции (DI-провайдер
429
+ в Angular, плагин в Vue, синглтон+хук в React — см. разделы выше) и, для
430
+ Angular, в UI-библиотеке (Angular Material — идиоматичный выбор для этого
431
+ фреймворка).
432
+
433
+ Запуск из корня репозитория:
434
+
435
+ ```shell
436
+ npm run demo:bootstrap
437
+ ```
438
+
439
+ Дальше в любой из `projects/demo-angular|demo-vue|demo-react`: `npm run dev`
440
+ (для Angular — `npm start`). Подробности — в README каждого демо.
441
+
384
442
  ## Кастомные REST-методы
385
443
 
386
444
  `Navvy` экспортируется из `bx-rest`. В Angular зарегистрируйте показанный выше `NavvyProvider` и внедрите `Navvy` в ваш кастомный API-сервис. URL метода представлен массивом и перед отправкой запроса соединяется точками.
@@ -568,8 +626,7 @@ bxRest.crm.callList.get({ ID: 1 }, dateTimeFormat).res()
568
626
  ```
569
627
 
570
628
  ## Планы на будущее
571
- - Автоматическое получение токена
572
- - Мапперы для типов нормализации
629
+ - Автоматическое получение токена авторизации
573
630
 
574
631
  Есть предложение по функциональности или нашли баг? Посмотрите [существующие issues](https://github.com/Aricatofuka/bx-rest/issues) или создайте новый.
575
632
 
@@ -0,0 +1,23 @@
1
+ /**
2
+ * crm.deal.list, crm.lead.list, crm.contact.list и crm.company.list — в
3
+ * отличие от остального REST API Bitrix24 — принимают значения `order` в
4
+ * нижнем регистре (`'asc'`/`'desc'`), а не в верхнем (`'ASC'`/`'DESC'`, как
5
+ * везде остальном, см. {@link iBXRestParamSort}). Публичный тип этих
6
+ * четырёх методов унифицирован на `iBXRestParamSort` ради единообразия
7
+ * во всей библиотеке — эта функция перед отправкой запроса приводит
8
+ * значения обратно к регистру, которого реально ожидает конкретно этот
9
+ * метод, так что на бэкенд уходит то же самое, что уходило бы и без
10
+ * унификации типов.
11
+ *
12
+ * @hidden
13
+ */
14
+ export function lowerCaseOrder(order) {
15
+ if (!order)
16
+ return undefined;
17
+ const result = {};
18
+ for (const field of Object.keys(order)) {
19
+ result[field] = order[field].toLowerCase();
20
+ }
21
+ return result;
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG93ZXJDYXNlT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9mdW5jdGlvbnMvbG93ZXJDYXNlT3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsS0FBbUQ7SUFFbkQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUU1QixNQUFNLE1BQU0sR0FBbUMsRUFBRSxDQUFBO0lBQ2pELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFvQixDQUFBO0lBQzlELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpQlhSZXN0UGFyYW1Tb3J0IH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9zb3J0J1xuXG4vKipcbiAqIGNybS5kZWFsLmxpc3QsIGNybS5sZWFkLmxpc3QsIGNybS5jb250YWN0Lmxpc3Qg0LggY3JtLmNvbXBhbnkubGlzdCDigJQg0LJcbiAqINC+0YLQu9C40YfQuNC1INC+0YIg0L7RgdGC0LDQu9GM0L3QvtCz0L4gUkVTVCBBUEkgQml0cml4MjQg4oCUINC/0YDQuNC90LjQvNCw0Y7RgiDQt9C90LDRh9C10L3QuNGPIGBvcmRlcmAg0LJcbiAqINC90LjQttC90LXQvCDRgNC10LPQuNGB0YLRgNC1IChgJ2FzYydgL2AnZGVzYydgKSwg0LAg0L3QtSDQsiDQstC10YDRhdC90LXQvCAoYCdBU0MnYC9gJ0RFU0MnYCwg0LrQsNC6XG4gKiDQstC10LfQtNC1INC+0YHRgtCw0LvRjNC90L7QvCwg0YHQvC4ge0BsaW5rIGlCWFJlc3RQYXJhbVNvcnR9KS4g0J/Rg9Cx0LvQuNGH0L3Ri9C5INGC0LjQvyDRjdGC0LjRhVxuICog0YfQtdGC0YvRgNGR0YUg0LzQtdGC0L7QtNC+0LIg0YPQvdC40YTQuNGG0LjRgNC+0LLQsNC9INC90LAgYGlCWFJlc3RQYXJhbVNvcnRgINGA0LDQtNC4INC10LTQuNC90L7QvtCx0YDQsNC30LjRj1xuICog0LLQviDQstGB0LXQuSDQsdC40LHQu9C40L7RgtC10LrQtSDigJQg0Y3RgtCwINGE0YPQvdC60YbQuNGPINC/0LXRgNC10LQg0L7RgtC/0YDQsNCy0LrQvtC5INC30LDQv9GA0L7RgdCwINC/0YDQuNCy0L7QtNC40YJcbiAqINC30L3QsNGH0LXQvdC40Y8g0L7QsdGA0LDRgtC90L4g0Log0YDQtdCz0LjRgdGC0YDRgywg0LrQvtGC0L7RgNC+0LPQviDRgNC10LDQu9GM0L3QviDQvtC20LjQtNCw0LXRgiDQutC+0L3QutGA0LXRgtC90L4g0Y3RgtC+0YJcbiAqINC80LXRgtC+0LQsINGC0LDQuiDRh9GC0L4g0L3QsCDQsdGN0LrQtdC90LQg0YPRhdC+0LTQuNGCINGC0L4g0LbQtSDRgdCw0LzQvtC1LCDRh9GC0L4g0YPRhdC+0LTQuNC70L4g0LHRiyDQuCDQsdC10LdcbiAqINGD0L3QuNGE0LjQutCw0YbQuNC4INGC0LjQv9C+0LIuXG4gKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gbG93ZXJDYXNlT3JkZXIoXG4gIG9yZGVyOiBSZWNvcmQ8c3RyaW5nLCBpQlhSZXN0UGFyYW1Tb3J0PiB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgJ2FzYycgfCAnZGVzYyc+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFvcmRlcikgcmV0dXJuIHVuZGVmaW5lZFxuXG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgJ2FzYycgfCAnZGVzYyc+ID0ge31cbiAgZm9yIChjb25zdCBmaWVsZCBvZiBPYmplY3Qua2V5cyhvcmRlcikpIHtcbiAgICByZXN1bHRbZmllbGRdID0gb3JkZXJbZmllbGRdLnRvTG93ZXJDYXNlKCkgYXMgJ2FzYycgfCAnZGVzYydcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Navvy } from '../../services/navvy';
2
+ import { lowerCaseOrder } from '../../functions/lowerCaseOrder';
2
3
  import { $add, $company, $crm, $delete, $fields, $get, $list, $update } from '../../consts/part-name-methods';
3
4
  import { BXRestMapCrmCompany } from '../../map/crm';
4
5
  import { BXRestNavvyCrmCompanyContact } from './company/contact';
@@ -65,7 +66,12 @@ export class BXRestNavvyCrmCompany {
65
66
  * @param param
66
67
  */
67
68
  list(param) {
68
- return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmCompany.list);
69
+ return this.Navvy.pagNav(this.url.list,
70
+ // crm.company.list ждёт order в нижнем регистре ('asc'/'desc'), в отличие
71
+ // от остального REST API — публичный тип унифицирован на iBXRestParamSort
72
+ // ('ASC'/'DESC'), а тут приводим обратно к тому, что реально нужно
73
+ // отправить на бэкенд. См. lowerCaseOrder.
74
+ { ...param, order: lowerCaseOrder(param.order) }, BXRestMapCrmCompany.list);
69
75
  }
70
76
  /**
71
77
  * Обновляет существующую компанию
@@ -88,4 +94,4 @@ export class BXRestNavvyCrmCompany {
88
94
  return this.Navvy.simple(this.url.fields);
89
95
  }
90
96
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2NvbXBhbnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFRN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ25ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXBFLE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDRTs7V0FFRztRQUNhLFlBQU8sR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUE7UUFDNUQ7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFBO1FBQzVEOztXQUVHO1FBQ2EsY0FBUyxHQUFHLElBQUksOEJBQThCLEVBQUUsQ0FBQTtRQUNoRSxRQUFHLEdBQUc7WUFDSjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQzNCOztlQUVHO1lBQ0gsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDM0I7O2VBRUc7WUFDSCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQztZQUM3Qjs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQ2pDOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUM7WUFDakM7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztTQUNsQyxDQUFBO1FBRU8sVUFBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7SUF3RDdCLENBQUM7SUF0REM7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQWdDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQTRDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsS0FBZ0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osS0FBSyxFQUNMLG1CQUFtQixDQUFDLEdBQUcsQ0FDeEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsS0FBaUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQ2IsS0FBSyxFQUNMLG1CQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBbUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBaUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFpRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBc0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyAkYWRkLCAkY29tcGFueSwgJGNybSwgJGRlbGV0ZSwgJGZpZWxkcywgJGdldCwgJGxpc3QsICR1cGRhdGUgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUNybUNvbXBhbnlBZGQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtQ29tcGFueUdldCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db21wYW55TGlzdCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db21wYW55VXBkYXRlLFxyXG4gIGlCWFJlc3RQYXJhbUNybUNvbXBhbnlEZWxldGVcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE1hcENybUNvbXBhbnkgfSBmcm9tICcuLi8uLi9tYXAvY3JtJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db21wYW55Q29udGFjdCB9IGZyb20gJy4vY29tcGFueS9jb250YWN0J1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db21wYW55RGV0YWlscyB9IGZyb20gJy4vY29tcGFueS9kZXRhaWxzJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db21wYW55VXNlckZpZWxkIH0gZnJvbSAnLi9jb21wYW55L3VzZXJmaWVsZCdcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlDcm1Db21wYW55IHtcbiAgLyoqXG4gICAqINCa0L7QvdGC0LDQutGC0Ysg0LrQvtC80L/QsNC90LjQuCAoYGNybS5jb21wYW55LmNvbnRhY3QuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRhY3QgPSBuZXcgQlhSZXN0TmF2dnlDcm1Db21wYW55Q29udGFjdCgpXG4gIC8qKlxuICAgKiDQmtCw0YDRgtC+0YfQutCwINC60L7QvNC/0LDQvdC40LggKGBjcm0uY29tcGFueS5kZXRhaWxzLipgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXRhaWxzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29tcGFueURldGFpbHMoKVxuICAvKipcbiAgICog0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LUg0L/QvtC70Y8g0LrQvtC80L/QsNC90LjQuSAoYGNybS5jb21wYW55LnVzZXJmaWVsZC4qYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckZpZWxkID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29tcGFueVVzZXJGaWVsZCgpXG4gIHVybCA9IHtcclxuICAgIC8qKlxyXG4gICAgICog0KHQvtC30LTQsNC10YIg0L3QvtCy0YPRjiDQutC+0LzQv9Cw0L3QuNGOXHJcbiAgICAgKi9cclxuICAgIGFkZDogWyRjcm0sICRjb21wYW55LCAkYWRkXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC80L/QsNC90LjRjiDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YNcclxuICAgICAqL1xyXG4gICAgZ2V0OiBbJGNybSwgJGNvbXBhbnksICRnZXRdLFxyXG4gICAgLyoqXHJcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LrQvtC80L/QsNC90LjQuVxyXG4gICAgICovXHJcbiAgICBsaXN0OiBbJGNybSwgJGNvbXBhbnksICRsaXN0XSxcclxuICAgIC8qKlxyXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0YPRjiDQutC+0LzQv9Cw0L3QuNGOXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogWyRjcm0sICRjb21wYW55LCAkdXBkYXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LrQvtC80L/QsNC90LjRjlxyXG4gICAgICovXHJcbiAgICBkZWxldGU6IFskY3JtLCAkY29tcGFueSwgJGRlbGV0ZV0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC+0L/QuNGB0LDQvdC40LUg0L/QvtC70LXQuSDQutC+0LzQv9Cw0L3QuNC4XHJcbiAgICAgKi9cclxuICAgIGZpZWxkczogWyRjcm0sICRjb21wYW55LCAkZmllbGRzXVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBOYXZ2eSA9IG5ldyBOYXZ2eSgpXHJcblxyXG4gIC8qKlxyXG4gICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGD0Y4g0LrQvtC80L/QsNC90LjRjlxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29tcGFueUFkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0UGFyYW1Dcm1Db21wYW55QWRkPih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC80L/QsNC90LjRjiDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YNcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBnZXQocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbXBhbnlHZXQpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZShcclxuICAgICAgdGhpcy51cmwuZ2V0LFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgQlhSZXN0TWFwQ3JtQ29tcGFueS5nZXRcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQutC+0LzQv9Cw0L3QuNC5XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgbGlzdChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29tcGFueUxpc3QpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnBhZ05hdihcclxuICAgICAgdGhpcy51cmwubGlzdCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcENybUNvbXBhbnkubGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J7QsdC90L7QstC70Y/QtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0YPRjiDQutC+0LzQv9Cw0L3QuNGOXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1Db21wYW55VXBkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtQ3JtQ29tcGFueVVwZGF0ZT4odGhpcy51cmwudXBkYXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCj0LTQsNC70Y/QtdGCINC60L7QvNC/0LDQvdC40Y5cclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBkZWxldGUocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbXBhbnlEZWxldGUpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBpQlhSZXN0UGFyYW1Dcm1Db21wYW55RGVsZXRlPih0aGlzLnVybC5kZWxldGUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7Qv9C40YHQsNC90LjQtSDQv9C+0LvQtdC5INC60L7QvNC/0LDQvdC40LhcclxuICAgKi9cclxuICBmaWVsZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8UmVjb3JkPHN0cmluZywgYW55PiwgUmVjb3JkPHN0cmluZywgYW55PiwgdW5kZWZpbmVkPih0aGlzLnVybC5maWVsZHMpXHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2NvbXBhbnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBUTdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVwRSxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBQ0U7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFBO1FBQzVEOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQTtRQUM1RDs7V0FFRztRQUNhLGNBQVMsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUE7UUFDaEUsUUFBRyxHQUFHO1lBQ0o7O2VBRUc7WUFDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztZQUMzQjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQzNCOztlQUVHO1lBQ0gsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUM7WUFDN0I7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztZQUNqQzs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQ2pDOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUM7U0FDbEMsQ0FBQTtRQUVPLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBNEQ3QixDQUFDO0lBMURDOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxLQUFnQztRQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUE0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMxRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQWdDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLEtBQUssRUFDTCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3hCLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQWlDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtRQUNiLDBFQUEwRTtRQUMxRSwwRUFBMEU7UUFDMUUsbUVBQW1FO1FBQ25FLDJDQUEyQztRQUMzQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ2hELG1CQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBbUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBaUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFpRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBc0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyBsb3dlckNhc2VPcmRlciB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9sb3dlckNhc2VPcmRlcidcclxuaW1wb3J0IHsgJGFkZCwgJGNvbXBhbnksICRjcm0sICRkZWxldGUsICRmaWVsZHMsICRnZXQsICRsaXN0LCAkdXBkYXRlIH0gZnJvbSAnLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUNybUNvbXBhbnlBZGQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtQ29tcGFueUdldCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db21wYW55TGlzdCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db21wYW55VXBkYXRlLFxyXG4gIGlCWFJlc3RQYXJhbUNybUNvbXBhbnlEZWxldGVcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE1hcENybUNvbXBhbnkgfSBmcm9tICcuLi8uLi9tYXAvY3JtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybUNvbXBhbnlDb250YWN0IH0gZnJvbSAnLi9jb21wYW55L2NvbnRhY3QnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtQ29tcGFueURldGFpbHMgfSBmcm9tICcuL2NvbXBhbnkvZGV0YWlscydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db21wYW55VXNlckZpZWxkIH0gZnJvbSAnLi9jb21wYW55L3VzZXJmaWVsZCdcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUNybUNvbXBhbnkge1xyXG4gIC8qKlxyXG4gICAqINCa0L7QvdGC0LDQutGC0Ysg0LrQvtC80L/QsNC90LjQuCAoYGNybS5jb21wYW55LmNvbnRhY3QuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjb250YWN0ID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29tcGFueUNvbnRhY3QoKVxyXG4gIC8qKlxyXG4gICAqINCa0LDRgNGC0L7Rh9C60LAg0LrQvtC80L/QsNC90LjQuCAoYGNybS5jb21wYW55LmRldGFpbHMuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBkZXRhaWxzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29tcGFueURldGFpbHMoKVxyXG4gIC8qKlxyXG4gICAqINCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1INC/0L7Qu9GPINC60L7QvNC/0LDQvdC40LkgKGBjcm0uY29tcGFueS51c2VyZmllbGQuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyRmllbGQgPSBuZXcgQlhSZXN0TmF2dnlDcm1Db21wYW55VXNlckZpZWxkKClcclxuICB1cmwgPSB7XHJcbiAgICAvKipcclxuICAgICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGD0Y4g0LrQvtC80L/QsNC90LjRjlxyXG4gICAgICovXHJcbiAgICBhZGQ6IFskY3JtLCAkY29tcGFueSwgJGFkZF0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60L7QvNC/0LDQvdC40Y4g0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDXHJcbiAgICAgKi9cclxuICAgIGdldDogWyRjcm0sICRjb21wYW55LCAkZ2V0XSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC60L7QvNC/0LDQvdC40LlcclxuICAgICAqL1xyXG4gICAgbGlzdDogWyRjcm0sICRjb21wYW55LCAkbGlzdF0sXHJcbiAgICAvKipcclxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidGD0Y4g0LrQvtC80L/QsNC90LjRjlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IFskY3JtLCAkY29tcGFueSwgJHVwZGF0ZV0sXHJcbiAgICAvKipcclxuICAgICAqINCj0LTQsNC70Y/QtdGCINC60L7QvNC/0LDQvdC40Y5cclxuICAgICAqL1xyXG4gICAgZGVsZXRlOiBbJGNybSwgJGNvbXBhbnksICRkZWxldGVdLFxyXG4gICAgLyoqXHJcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtC/0LjRgdCw0L3QuNC1INC/0L7Qu9C10Lkg0LrQvtC80L/QsNC90LjQuFxyXG4gICAgICovXHJcbiAgICBmaWVsZHM6IFskY3JtLCAkY29tcGFueSwgJGZpZWxkc11cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICAvKipcclxuICAgKiDQodC+0LfQtNCw0LXRgiDQvdC+0LLRg9GOINC60L7QvNC/0LDQvdC40Y5cclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbXBhbnlBZGQpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxudW1iZXIsIG51bWJlciwgaUJYUmVzdFBhcmFtQ3JtQ29tcGFueUFkZD4odGhpcy51cmwuYWRkLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60L7QvNC/0LDQvdC40Y4g0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZ2V0KHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1Db21wYW55R2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMudXJsLmdldCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcENybUNvbXBhbnkuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LrQvtC80L/QsNC90LjQuVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbXBhbnlMaXN0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5wYWdOYXYoXHJcbiAgICAgIHRoaXMudXJsLmxpc3QsXHJcbiAgICAgIC8vIGNybS5jb21wYW55Lmxpc3Qg0LbQtNGR0YIgb3JkZXIg0LIg0L3QuNC20L3QtdC8INGA0LXQs9C40YHRgtGA0LUgKCdhc2MnLydkZXNjJyksINCyINC+0YLQu9C40YfQuNC1XHJcbiAgICAgIC8vINC+0YIg0L7RgdGC0LDQu9GM0L3QvtCz0L4gUkVTVCBBUEkg4oCUINC/0YPQsdC70LjRh9C90YvQuSDRgtC40L8g0YPQvdC40YTQuNGG0LjRgNC+0LLQsNC9INC90LAgaUJYUmVzdFBhcmFtU29ydFxyXG4gICAgICAvLyAoJ0FTQycvJ0RFU0MnKSwg0LAg0YLRg9GCINC/0YDQuNCy0L7QtNC40Lwg0L7QsdGA0LDRgtC90L4g0Log0YLQvtC80YMsINGH0YLQviDRgNC10LDQu9GM0L3QviDQvdGD0LbQvdC+XHJcbiAgICAgIC8vINC+0YLQv9GA0LDQstC40YLRjCDQvdCwINCx0Y3QutC10L3QtC4g0KHQvC4gbG93ZXJDYXNlT3JkZXIuXHJcbiAgICAgIHsgLi4ucGFyYW0sIG9yZGVyOiBsb3dlckNhc2VPcmRlcihwYXJhbS5vcmRlcikgfSxcclxuICAgICAgQlhSZXN0TWFwQ3JtQ29tcGFueS5saXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YHRg9GJ0LXRgdGC0LLRg9GO0YnRg9GOINC60L7QvNC/0LDQvdC40Y5cclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbXBhbnlVcGRhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBpQlhSZXN0UGFyYW1Dcm1Db21wYW55VXBkYXRlPih0aGlzLnVybC51cGRhdGUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0KPQtNCw0LvRj9C10YIg0LrQvtC80L/QsNC90LjRjlxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGRlbGV0ZShwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29tcGFueURlbGV0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RQYXJhbUNybUNvbXBhbnlEZWxldGU+KHRoaXMudXJsLmRlbGV0ZSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtC/0LjRgdCw0L3QuNC1INC/0L7Qu9C10Lkg0LrQvtC80L/QsNC90LjQuFxyXG4gICAqL1xyXG4gIGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB1bmRlZmluZWQ+KHRoaXMudXJsLmZpZWxkcylcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Navvy } from '../../services/navvy';
2
+ import { lowerCaseOrder } from '../../functions/lowerCaseOrder';
2
3
  import { $add, $contact, $crm, $delete, $fields, $get, $list, $update } from '../../consts/part-name-methods';
3
4
  import { BXRestMapCrmContact } from '../../map/crm';
4
5
  import { BXRestNavvyCrmContactCompany } from './contact/company';
@@ -65,7 +66,12 @@ export class BXRestNavvyCrmContact {
65
66
  * @param param
66
67
  */
67
68
  list(param) {
68
- return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmContact.list);
69
+ return this.Navvy.pagNav(this.url.list,
70
+ // crm.contact.list ждёт order в нижнем регистре ('asc'/'desc'), в отличие
71
+ // от остального REST API — публичный тип унифицирован на iBXRestParamSort
72
+ // ('ASC'/'DESC'), а тут приводим обратно к тому, что реально нужно
73
+ // отправить на бэкенд. См. lowerCaseOrder.
74
+ { ...param, order: lowerCaseOrder(param.order) }, BXRestMapCrmContact.list);
69
75
  }
70
76
  /**
71
77
  * Обновляет существующий контакт
@@ -88,4 +94,4 @@ export class BXRestNavvyCrmContact {
88
94
  return this.Navvy.simple(this.url.fields);
89
95
  }
90
96
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2NvbnRhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFRN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ25ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXBFLE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDRTs7V0FFRztRQUNhLFlBQU8sR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUE7UUFDNUQ7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFBO1FBQzVEOztXQUVHO1FBQ2EsY0FBUyxHQUFHLElBQUksOEJBQThCLEVBQUUsQ0FBQTtRQUNoRSxRQUFHLEdBQUc7WUFDSjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQzNCOztlQUVHO1lBQ0gsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDM0I7O2VBRUc7WUFDSCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQztZQUM3Qjs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQ2pDOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUM7WUFDakM7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztTQUNsQyxDQUFBO1FBRU8sVUFBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7SUF3RDdCLENBQUM7SUF0REM7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQWdDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQTRDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsS0FBZ0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osS0FBSyxFQUNMLG1CQUFtQixDQUFDLEdBQUcsQ0FDeEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsS0FBaUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQ2IsS0FBSyxFQUNMLG1CQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBbUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBaUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFpRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBc0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyAkYWRkLCAkY29udGFjdCwgJGNybSwgJGRlbGV0ZSwgJGZpZWxkcywgJGdldCwgJGxpc3QsICR1cGRhdGUgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUNybUNvbnRhY3RBZGQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtQ29udGFjdEdldCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db250YWN0TGlzdCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db250YWN0VXBkYXRlLFxyXG4gIGlCWFJlc3RQYXJhbUNybUNvbnRhY3REZWxldGVcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE1hcENybUNvbnRhY3QgfSBmcm9tICcuLi8uLi9tYXAvY3JtJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db250YWN0Q29tcGFueSB9IGZyb20gJy4vY29udGFjdC9jb21wYW55J1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db250YWN0RGV0YWlscyB9IGZyb20gJy4vY29udGFjdC9kZXRhaWxzJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db250YWN0VXNlckZpZWxkIH0gZnJvbSAnLi9jb250YWN0L3VzZXJmaWVsZCdcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlDcm1Db250YWN0IHtcbiAgLyoqXG4gICAqINCa0L7QvNC/0LDQvdC40Lgg0LrQvtC90YLQsNC60YLQsCAoYGNybS5jb250YWN0LmNvbXBhbnkuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbXBhbnkgPSBuZXcgQlhSZXN0TmF2dnlDcm1Db250YWN0Q29tcGFueSgpXG4gIC8qKlxuICAgKiDQmtCw0YDRgtC+0YfQutCwINC60L7QvdGC0LDQutGC0LAgKGBjcm0uY29udGFjdC5kZXRhaWxzLipgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXRhaWxzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29udGFjdERldGFpbHMoKVxuICAvKipcbiAgICog0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LUg0L/QvtC70Y8g0LrQvtC90YLQsNC60YLQvtCyIChgY3JtLmNvbnRhY3QudXNlcmZpZWxkLipgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyRmllbGQgPSBuZXcgQlhSZXN0TmF2dnlDcm1Db250YWN0VXNlckZpZWxkKClcbiAgdXJsID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQvdC+0LLRi9C5INC60L7QvdGC0LDQutGCXHJcbiAgICAgKi9cclxuICAgIGFkZDogWyRjcm0sICRjb250YWN0LCAkYWRkXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC90YLQsNC60YIg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDXHJcbiAgICAgKi9cclxuICAgIGdldDogWyRjcm0sICRjb250YWN0LCAkZ2V0XSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC60L7QvdGC0LDQutGC0L7QslxyXG4gICAgICovXHJcbiAgICBsaXN0OiBbJGNybSwgJGNvbnRhY3QsICRsaXN0XSxcclxuICAgIC8qKlxyXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0LjQuSDQutC+0L3RgtCw0LrRglxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IFskY3JtLCAkY29udGFjdCwgJHVwZGF0ZV0sXHJcbiAgICAvKipcclxuICAgICAqINCj0LTQsNC70Y/QtdGCINC60L7QvdGC0LDQutGCXHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZTogWyRjcm0sICRjb250YWN0LCAkZGVsZXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7Qv9C40YHQsNC90LjQtSDQv9C+0LvQtdC5INC60L7QvdGC0LDQutGC0LBcclxuICAgICAqL1xyXG4gICAgZmllbGRzOiBbJGNybSwgJGNvbnRhY3QsICRmaWVsZHNdXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE5hdnZ5ID0gbmV3IE5hdnZ5KClcclxuXHJcbiAgLyoqXHJcbiAgICog0KHQvtC30LTQsNC10YIg0L3QvtCy0YvQuSDQutC+0L3RgtCw0LrRglxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29udGFjdEFkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0UGFyYW1Dcm1Db250YWN0QWRkPih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC90YLQsNC60YIg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZ2V0KHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1Db250YWN0R2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMudXJsLmdldCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcENybUNvbnRhY3QuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LrQvtC90YLQsNC60YLQvtCyXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgbGlzdChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29udGFjdExpc3QpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnBhZ05hdihcclxuICAgICAgdGhpcy51cmwubGlzdCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcENybUNvbnRhY3QubGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J7QsdC90L7QstC70Y/QtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0LjQuSDQutC+0L3RgtCw0LrRglxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIHVwZGF0ZShwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29udGFjdFVwZGF0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RQYXJhbUNybUNvbnRhY3RVcGRhdGU+KHRoaXMudXJsLnVwZGF0ZSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQo9C00LDQu9GP0LXRgiDQutC+0L3RgtCw0LrRglxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGRlbGV0ZShwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29udGFjdERlbGV0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RQYXJhbUNybUNvbnRhY3REZWxldGU+KHRoaXMudXJsLmRlbGV0ZSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtC/0LjRgdCw0L3QuNC1INC/0L7Qu9C10Lkg0LrQvtC90YLQsNC60YLQsFxyXG4gICAqL1xyXG4gIGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB1bmRlZmluZWQ+KHRoaXMudXJsLmZpZWxkcylcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2NvbnRhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBUTdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVwRSxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBQ0U7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFBO1FBQzVEOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQTtRQUM1RDs7V0FFRztRQUNhLGNBQVMsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUE7UUFDaEUsUUFBRyxHQUFHO1lBQ0o7O2VBRUc7WUFDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztZQUMzQjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQzNCOztlQUVHO1lBQ0gsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUM7WUFDN0I7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztZQUNqQzs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQ2pDOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUM7U0FDbEMsQ0FBQTtRQUVPLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBNEQ3QixDQUFDO0lBMURDOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxLQUFnQztRQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUE0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMxRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQWdDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLEtBQUssRUFDTCxtQkFBbUIsQ0FBQyxHQUFHLENBQ3hCLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQWlDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtRQUNiLDBFQUEwRTtRQUMxRSwwRUFBMEU7UUFDMUUsbUVBQW1FO1FBQ25FLDJDQUEyQztRQUMzQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ2hELG1CQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBbUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBaUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFpRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBc0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyBsb3dlckNhc2VPcmRlciB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9sb3dlckNhc2VPcmRlcidcclxuaW1wb3J0IHsgJGFkZCwgJGNvbnRhY3QsICRjcm0sICRkZWxldGUsICRmaWVsZHMsICRnZXQsICRsaXN0LCAkdXBkYXRlIH0gZnJvbSAnLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUNybUNvbnRhY3RBZGQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtQ29udGFjdEdldCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db250YWN0TGlzdCxcclxuICBpQlhSZXN0UGFyYW1Dcm1Db250YWN0VXBkYXRlLFxyXG4gIGlCWFJlc3RQYXJhbUNybUNvbnRhY3REZWxldGVcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE1hcENybUNvbnRhY3QgfSBmcm9tICcuLi8uLi9tYXAvY3JtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybUNvbnRhY3RDb21wYW55IH0gZnJvbSAnLi9jb250YWN0L2NvbXBhbnknXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtQ29udGFjdERldGFpbHMgfSBmcm9tICcuL2NvbnRhY3QvZGV0YWlscydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1Db250YWN0VXNlckZpZWxkIH0gZnJvbSAnLi9jb250YWN0L3VzZXJmaWVsZCdcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUNybUNvbnRhY3Qge1xyXG4gIC8qKlxyXG4gICAqINCa0L7QvNC/0LDQvdC40Lgg0LrQvtC90YLQsNC60YLQsCAoYGNybS5jb250YWN0LmNvbXBhbnkuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjb21wYW55ID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29udGFjdENvbXBhbnkoKVxyXG4gIC8qKlxyXG4gICAqINCa0LDRgNGC0L7Rh9C60LAg0LrQvtC90YLQsNC60YLQsCAoYGNybS5jb250YWN0LmRldGFpbHMuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBkZXRhaWxzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtQ29udGFjdERldGFpbHMoKVxyXG4gIC8qKlxyXG4gICAqINCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1INC/0L7Qu9GPINC60L7QvdGC0LDQutGC0L7QsiAoYGNybS5jb250YWN0LnVzZXJmaWVsZC4qYCkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJGaWVsZCA9IG5ldyBCWFJlc3ROYXZ2eUNybUNvbnRhY3RVc2VyRmllbGQoKVxyXG4gIHVybCA9IHtcclxuICAgIC8qKlxyXG4gICAgICog0KHQvtC30LTQsNC10YIg0L3QvtCy0YvQuSDQutC+0L3RgtCw0LrRglxyXG4gICAgICovXHJcbiAgICBhZGQ6IFskY3JtLCAkY29udGFjdCwgJGFkZF0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60L7QvdGC0LDQutGCINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAgICovXHJcbiAgICBnZXQ6IFskY3JtLCAkY29udGFjdCwgJGdldF0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQutC+0L3RgtCw0LrRgtC+0LJcclxuICAgICAqL1xyXG4gICAgbGlzdDogWyRjcm0sICRjb250YWN0LCAkbGlzdF0sXHJcbiAgICAvKipcclxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidC40Lkg0LrQvtC90YLQsNC60YJcclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBbJGNybSwgJGNvbnRhY3QsICR1cGRhdGVdLFxyXG4gICAgLyoqXHJcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQutC+0L3RgtCw0LrRglxyXG4gICAgICovXHJcbiAgICBkZWxldGU6IFskY3JtLCAkY29udGFjdCwgJGRlbGV0ZV0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC+0L/QuNGB0LDQvdC40LUg0L/QvtC70LXQuSDQutC+0L3RgtCw0LrRgtCwXHJcbiAgICAgKi9cclxuICAgIGZpZWxkczogWyRjcm0sICRjb250YWN0LCAkZmllbGRzXVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBOYXZ2eSA9IG5ldyBOYXZ2eSgpXHJcblxyXG4gIC8qKlxyXG4gICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGL0Lkg0LrQvtC90YLQsNC60YJcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbnRhY3RBZGQpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxudW1iZXIsIG51bWJlciwgaUJYUmVzdFBhcmFtQ3JtQ29udGFjdEFkZD4odGhpcy51cmwuYWRkLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60L7QvdGC0LDQutGCINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtQ29udGFjdEdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBDcm1Db250YWN0LmdldFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC60L7QvdGC0LDQutGC0L7QslxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbUNybUNvbnRhY3RMaXN0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5wYWdOYXYoXHJcbiAgICAgIHRoaXMudXJsLmxpc3QsXHJcbiAgICAgIC8vIGNybS5jb250YWN0Lmxpc3Qg0LbQtNGR0YIgb3JkZXIg0LIg0L3QuNC20L3QtdC8INGA0LXQs9C40YHRgtGA0LUgKCdhc2MnLydkZXNjJyksINCyINC+0YLQu9C40YfQuNC1XHJcbiAgICAgIC8vINC+0YIg0L7RgdGC0LDQu9GM0L3QvtCz0L4gUkVTVCBBUEkg4oCUINC/0YPQsdC70LjRh9C90YvQuSDRgtC40L8g0YPQvdC40YTQuNGG0LjRgNC+0LLQsNC9INC90LAgaUJYUmVzdFBhcmFtU29ydFxyXG4gICAgICAvLyAoJ0FTQycvJ0RFU0MnKSwg0LAg0YLRg9GCINC/0YDQuNCy0L7QtNC40Lwg0L7QsdGA0LDRgtC90L4g0Log0YLQvtC80YMsINGH0YLQviDRgNC10LDQu9GM0L3QviDQvdGD0LbQvdC+XHJcbiAgICAgIC8vINC+0YLQv9GA0LDQstC40YLRjCDQvdCwINCx0Y3QutC10L3QtC4g0KHQvC4gbG93ZXJDYXNlT3JkZXIuXHJcbiAgICAgIHsgLi4ucGFyYW0sIG9yZGVyOiBsb3dlckNhc2VPcmRlcihwYXJhbS5vcmRlcikgfSxcclxuICAgICAgQlhSZXN0TWFwQ3JtQ29udGFjdC5saXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5INC60L7QvdGC0LDQutGCXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1Db250YWN0VXBkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtQ3JtQ29udGFjdFVwZGF0ZT4odGhpcy51cmwudXBkYXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCj0LTQsNC70Y/QtdGCINC60L7QvdGC0LDQutGCXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZGVsZXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1Db250YWN0RGVsZXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtQ3JtQ29udGFjdERlbGV0ZT4odGhpcy51cmwuZGVsZXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC+0L/QuNGB0LDQvdC40LUg0L/QvtC70LXQuSDQutC+0L3RgtCw0LrRgtCwXHJcbiAgICovXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPFJlY29yZDxzdHJpbmcsIGFueT4sIFJlY29yZDxzdHJpbmcsIGFueT4sIHVuZGVmaW5lZD4odGhpcy51cmwuZmllbGRzKVxyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -1,4 +1,5 @@
1
1
  import { Navvy } from '../../services/navvy';
2
+ import { lowerCaseOrder } from '../../functions/lowerCaseOrder';
2
3
  import { $add, $crm, $deal, $delete, $fields, $get, $list, $update } from '../../consts/part-name-methods';
3
4
  import { BXRestMapCrmDeal } from '../../map/crm';
4
5
  import { BXRestNavvyCrmDealContact } from './deal/contact';
@@ -75,7 +76,12 @@ export class BXRestNavvyCrmDeal {
75
76
  * @param param
76
77
  */
77
78
  list(param) {
78
- return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmDeal.list);
79
+ return this.Navvy.pagNav(this.url.list,
80
+ // crm.deal.list ждёт order в нижнем регистре ('asc'/'desc'), в отличие
81
+ // от остального REST API — публичный тип унифицирован на iBXRestParamSort
82
+ // ('ASC'/'DESC'), а тут приводим обратно к тому, что реально нужно
83
+ // отправить на бэкенд. См. lowerCaseOrder.
84
+ { ...param, order: lowerCaseOrder(param.order) }, BXRestMapCrmDeal.list);
79
85
  }
80
86
  /**
81
87
  * Обновляет существующую сделку
@@ -98,4 +104,4 @@ export class BXRestNavvyCrmDeal {
98
104
  return this.Navvy.simple(this.url.fields);
99
105
  }
100
106
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2RlYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFRMUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTlELE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRTs7V0FFRztRQUNhLFlBQU8sR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUE7UUFDekQ7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFBO1FBQ3pEOztXQUVHO1FBQ2EsZ0JBQVcsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUE7UUFDakU7O1dBRUc7UUFDYSxjQUFTLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFBO1FBQzdEOztXQUVHO1FBQ2EsY0FBUyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQTtRQUM3RCxRQUFHLEdBQUc7WUFDSjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ3hCOztlQUVHO1lBQ0gsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDeEI7O2VBRUc7WUFDSCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUMxQjs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQzlCOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7WUFDOUI7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUMvQixDQUFBO1FBRU8sVUFBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7SUF3RDdCLENBQUM7SUF0REM7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQTZCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQXlDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3ZGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsS0FBNkI7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osS0FBSyxFQUNMLGdCQUFnQixDQUFDLEdBQUcsQ0FDckIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsS0FBOEI7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQ2IsS0FBSyxFQUNMLGdCQUFnQixDQUFDLElBQUksQ0FDdEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBZ0M7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBOEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUE4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBc0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyAkYWRkLCAkY3JtLCAkZGVhbCwgJGRlbGV0ZSwgJGZpZWxkcywgJGdldCwgJGxpc3QsICR1cGRhdGUgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUNybURlYWxBZGQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtRGVhbEdldCxcclxuICBpQlhSZXN0UGFyYW1Dcm1EZWFsTGlzdCxcclxuICBpQlhSZXN0UGFyYW1Dcm1EZWFsVXBkYXRlLFxyXG4gIGlCWFJlc3RQYXJhbUNybURlYWxEZWxldGVcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE1hcENybURlYWwgfSBmcm9tICcuLi8uLi9tYXAvY3JtJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1EZWFsQ29udGFjdCB9IGZyb20gJy4vZGVhbC9jb250YWN0J1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1EZWFsRGV0YWlscyB9IGZyb20gJy4vZGVhbC9kZXRhaWxzJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1EZWFsUHJvZHVjdFJvd3MgfSBmcm9tICcuL2RlYWwvcHJvZHVjdHJvd3MnXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybURlYWxSZWN1cnJpbmcgfSBmcm9tICcuL2RlYWwvcmVjdXJyaW5nJ1xuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1EZWFsVXNlckZpZWxkIH0gZnJvbSAnLi9kZWFsL3VzZXJmaWVsZCdcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlDcm1EZWFsIHtcbiAgLyoqXG4gICAqINCa0L7QvdGC0LDQutGC0Ysg0YHQtNC10LvQutC4IChgY3JtLmRlYWwuY29udGFjdC4qYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGFjdCA9IG5ldyBCWFJlc3ROYXZ2eUNybURlYWxDb250YWN0KClcbiAgLyoqXG4gICAqINCa0LDRgNGC0L7Rh9C60LAg0YHQtNC10LvQutC4IChgY3JtLmRlYWwuZGV0YWlscy4qYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGV0YWlscyA9IG5ldyBCWFJlc3ROYXZ2eUNybURlYWxEZXRhaWxzKClcbiAgLyoqXG4gICAqINCi0L7QstCw0YDQvdGL0LUg0L/QvtC30LjRhtC40Lgg0YHQtNC10LvQutC4IChgY3JtLmRlYWwucHJvZHVjdHJvd3MuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb2R1Y3RSb3dzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtRGVhbFByb2R1Y3RSb3dzKClcbiAgLyoqXG4gICAqINCo0LDQsdC70L7QvdGLINGA0LXQs9GD0LvRj9GA0L3Ri9GFINGB0LTQtdC70L7QuiAoYGNybS5kZWFsLnJlY3VycmluZy4qYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVjdXJyaW5nID0gbmV3IEJYUmVzdE5hdnZ5Q3JtRGVhbFJlY3VycmluZygpXG4gIC8qKlxuICAgKiDQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQv9C+0LvRjyDRgdC00LXQu9C+0LogKGBjcm0uZGVhbC51c2VyZmllbGQuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJGaWVsZCA9IG5ldyBCWFJlc3ROYXZ2eUNybURlYWxVc2VyRmllbGQoKVxuICB1cmwgPSB7XHJcbiAgICAvKipcclxuICAgICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGD0Y4g0YHQtNC10LvQutGDXHJcbiAgICAgKi9cclxuICAgIGFkZDogWyRjcm0sICRkZWFsLCAkYWRkXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQtNC10LvQutGDINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAgICovXHJcbiAgICBnZXQ6IFskY3JtLCAkZGVhbCwgJGdldF0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRgdC00LXQu9C+0LpcclxuICAgICAqL1xyXG4gICAgbGlzdDogWyRjcm0sICRkZWFsLCAkbGlzdF0sXHJcbiAgICAvKipcclxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidGD0Y4g0YHQtNC10LvQutGDXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogWyRjcm0sICRkZWFsLCAkdXBkYXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YHQtNC10LvQutGDXHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZTogWyRjcm0sICRkZWFsLCAkZGVsZXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7Qv9C40YHQsNC90LjQtSDQv9C+0LvQtdC5INGB0LTQtdC70LrQuFxyXG4gICAgICovXHJcbiAgICBmaWVsZHM6IFskY3JtLCAkZGVhbCwgJGZpZWxkc11cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICAvKipcclxuICAgKiDQodC+0LfQtNCw0LXRgiDQvdC+0LLRg9GOINGB0LTQtdC70LrRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtRGVhbEFkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0UGFyYW1Dcm1EZWFsQWRkPih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQtNC10LvQutGDINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtRGVhbEdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBDcm1EZWFsLmdldFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INGB0LTQtdC70L7QulxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbUNybURlYWxMaXN0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5wYWdOYXYoXHJcbiAgICAgIHRoaXMudXJsLmxpc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBDcm1EZWFsLmxpc3RcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidGD0Y4g0YHQtNC10LvQutGDXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1EZWFsVXBkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtQ3JtRGVhbFVwZGF0ZT4odGhpcy51cmwudXBkYXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCj0LTQsNC70Y/QtdGCINGB0LTQtdC70LrRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGRlbGV0ZShwYXJhbTogaUJYUmVzdFBhcmFtQ3JtRGVhbERlbGV0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RQYXJhbUNybURlYWxEZWxldGU+KHRoaXMudXJsLmRlbGV0ZSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtC/0LjRgdCw0L3QuNC1INC/0L7Qu9C10Lkg0YHQtNC10LvQutC4XHJcbiAgICovXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPFJlY29yZDxzdHJpbmcsIGFueT4sIFJlY29yZDxzdHJpbmcsIGFueT4sIHVuZGVmaW5lZD4odGhpcy51cmwuZmllbGRzKVxyXG4gIH1cclxufVxyXG5cclxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2RlYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBUTFHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUU5RCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ0U7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFBO1FBQ3pEOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQTtRQUN6RDs7V0FFRztRQUNhLGdCQUFXLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFBO1FBQ2pFOztXQUVHO1FBQ2EsY0FBUyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQTtRQUM3RDs7V0FFRztRQUNhLGNBQVMsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUE7UUFDN0QsUUFBRyxHQUFHO1lBQ0o7O2VBRUc7WUFDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUN4Qjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ3hCOztlQUVHO1lBQ0gsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDMUI7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUM5Qjs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQzlCOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7U0FDL0IsQ0FBQTtRQUVPLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBNEQ3QixDQUFDO0lBMURDOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxLQUE2QjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUF5QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN2RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQTZCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLEtBQUssRUFDTCxnQkFBZ0IsQ0FBQyxHQUFHLENBQ3JCLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQThCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtRQUNiLHVFQUF1RTtRQUN2RSwwRUFBMEU7UUFDMUUsbUVBQW1FO1FBQ25FLDJDQUEyQztRQUMzQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ2hELGdCQUFnQixDQUFDLElBQUksQ0FDdEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBZ0M7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBOEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUE4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBc0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyBsb3dlckNhc2VPcmRlciB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9sb3dlckNhc2VPcmRlcidcclxuaW1wb3J0IHsgJGFkZCwgJGNybSwgJGRlYWwsICRkZWxldGUsICRmaWVsZHMsICRnZXQsICRsaXN0LCAkdXBkYXRlIH0gZnJvbSAnLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUNybURlYWxBZGQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtRGVhbEdldCxcclxuICBpQlhSZXN0UGFyYW1Dcm1EZWFsTGlzdCxcclxuICBpQlhSZXN0UGFyYW1Dcm1EZWFsVXBkYXRlLFxyXG4gIGlCWFJlc3RQYXJhbUNybURlYWxEZWxldGVcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE1hcENybURlYWwgfSBmcm9tICcuLi8uLi9tYXAvY3JtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybURlYWxDb250YWN0IH0gZnJvbSAnLi9kZWFsL2NvbnRhY3QnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtRGVhbERldGFpbHMgfSBmcm9tICcuL2RlYWwvZGV0YWlscydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1EZWFsUHJvZHVjdFJvd3MgfSBmcm9tICcuL2RlYWwvcHJvZHVjdHJvd3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtRGVhbFJlY3VycmluZyB9IGZyb20gJy4vZGVhbC9yZWN1cnJpbmcnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtRGVhbFVzZXJGaWVsZCB9IGZyb20gJy4vZGVhbC91c2VyZmllbGQnXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlDcm1EZWFsIHtcclxuICAvKipcclxuICAgKiDQmtC+0L3RgtCw0LrRgtGLINGB0LTQtdC70LrQuCAoYGNybS5kZWFsLmNvbnRhY3QuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjb250YWN0ID0gbmV3IEJYUmVzdE5hdnZ5Q3JtRGVhbENvbnRhY3QoKVxyXG4gIC8qKlxyXG4gICAqINCa0LDRgNGC0L7Rh9C60LAg0YHQtNC10LvQutC4IChgY3JtLmRlYWwuZGV0YWlscy4qYCkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGRldGFpbHMgPSBuZXcgQlhSZXN0TmF2dnlDcm1EZWFsRGV0YWlscygpXHJcbiAgLyoqXHJcbiAgICog0KLQvtCy0LDRgNC90YvQtSDQv9C+0LfQuNGG0LjQuCDRgdC00LXQu9C60LggKGBjcm0uZGVhbC5wcm9kdWN0cm93cy4qYCkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHByb2R1Y3RSb3dzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtRGVhbFByb2R1Y3RSb3dzKClcclxuICAvKipcclxuICAgKiDQqNCw0LHQu9C+0L3RiyDRgNC10LPRg9C70Y/RgNC90YvRhSDRgdC00LXQu9C+0LogKGBjcm0uZGVhbC5yZWN1cnJpbmcuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSByZWN1cnJpbmcgPSBuZXcgQlhSZXN0TmF2dnlDcm1EZWFsUmVjdXJyaW5nKClcclxuICAvKipcclxuICAgKiDQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQv9C+0LvRjyDRgdC00LXQu9C+0LogKGBjcm0uZGVhbC51c2VyZmllbGQuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyRmllbGQgPSBuZXcgQlhSZXN0TmF2dnlDcm1EZWFsVXNlckZpZWxkKClcclxuICB1cmwgPSB7XHJcbiAgICAvKipcclxuICAgICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGD0Y4g0YHQtNC10LvQutGDXHJcbiAgICAgKi9cclxuICAgIGFkZDogWyRjcm0sICRkZWFsLCAkYWRkXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQtNC10LvQutGDINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAgICovXHJcbiAgICBnZXQ6IFskY3JtLCAkZGVhbCwgJGdldF0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRgdC00LXQu9C+0LpcclxuICAgICAqL1xyXG4gICAgbGlzdDogWyRjcm0sICRkZWFsLCAkbGlzdF0sXHJcbiAgICAvKipcclxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidGD0Y4g0YHQtNC10LvQutGDXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogWyRjcm0sICRkZWFsLCAkdXBkYXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YHQtNC10LvQutGDXHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZTogWyRjcm0sICRkZWFsLCAkZGVsZXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7Qv9C40YHQsNC90LjQtSDQv9C+0LvQtdC5INGB0LTQtdC70LrQuFxyXG4gICAgICovXHJcbiAgICBmaWVsZHM6IFskY3JtLCAkZGVhbCwgJGZpZWxkc11cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICAvKipcclxuICAgKiDQodC+0LfQtNCw0LXRgiDQvdC+0LLRg9GOINGB0LTQtdC70LrRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtRGVhbEFkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0UGFyYW1Dcm1EZWFsQWRkPih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQtNC10LvQutGDINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtRGVhbEdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBDcm1EZWFsLmdldFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INGB0LTQtdC70L7QulxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbUNybURlYWxMaXN0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5wYWdOYXYoXHJcbiAgICAgIHRoaXMudXJsLmxpc3QsXHJcbiAgICAgIC8vIGNybS5kZWFsLmxpc3Qg0LbQtNGR0YIgb3JkZXIg0LIg0L3QuNC20L3QtdC8INGA0LXQs9C40YHRgtGA0LUgKCdhc2MnLydkZXNjJyksINCyINC+0YLQu9C40YfQuNC1XHJcbiAgICAgIC8vINC+0YIg0L7RgdGC0LDQu9GM0L3QvtCz0L4gUkVTVCBBUEkg4oCUINC/0YPQsdC70LjRh9C90YvQuSDRgtC40L8g0YPQvdC40YTQuNGG0LjRgNC+0LLQsNC9INC90LAgaUJYUmVzdFBhcmFtU29ydFxyXG4gICAgICAvLyAoJ0FTQycvJ0RFU0MnKSwg0LAg0YLRg9GCINC/0YDQuNCy0L7QtNC40Lwg0L7QsdGA0LDRgtC90L4g0Log0YLQvtC80YMsINGH0YLQviDRgNC10LDQu9GM0L3QviDQvdGD0LbQvdC+XHJcbiAgICAgIC8vINC+0YLQv9GA0LDQstC40YLRjCDQvdCwINCx0Y3QutC10L3QtC4g0KHQvC4gbG93ZXJDYXNlT3JkZXIuXHJcbiAgICAgIHsgLi4ucGFyYW0sIG9yZGVyOiBsb3dlckNhc2VPcmRlcihwYXJhbS5vcmRlcikgfSxcclxuICAgICAgQlhSZXN0TWFwQ3JtRGVhbC5saXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YHRg9GJ0LXRgdGC0LLRg9GO0YnRg9GOINGB0LTQtdC70LrRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIHVwZGF0ZShwYXJhbTogaUJYUmVzdFBhcmFtQ3JtRGVhbFVwZGF0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RQYXJhbUNybURlYWxVcGRhdGU+KHRoaXMudXJsLnVwZGF0ZSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQo9C00LDQu9GP0LXRgiDRgdC00LXQu9C60YNcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBkZWxldGUocGFyYW06IGlCWFJlc3RQYXJhbUNybURlYWxEZWxldGUpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBpQlhSZXN0UGFyYW1Dcm1EZWFsRGVsZXRlPih0aGlzLnVybC5kZWxldGUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7Qv9C40YHQsNC90LjQtSDQv9C+0LvQtdC5INGB0LTQtdC70LrQuFxyXG4gICAqL1xyXG4gIGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB1bmRlZmluZWQ+KHRoaXMudXJsLmZpZWxkcylcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Navvy } from '../../services/navvy';
2
+ import { lowerCaseOrder } from '../../functions/lowerCaseOrder';
2
3
  import { $add, $crm, $delete, $fields, $get, $lead, $list, $update } from '../../consts/part-name-methods';
3
4
  import { BXRestMapCrmLead } from '../../map/crm';
4
5
  import { BXRestNavvyCrmLeadContact } from './lead/contact';
@@ -70,7 +71,12 @@ export class BXRestNavvyCrmLead {
70
71
  * @param param
71
72
  */
72
73
  list(param) {
73
- return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmLead.list);
74
+ return this.Navvy.pagNav(this.url.list,
75
+ // crm.lead.list ждёт order в нижнем регистре ('asc'/'desc'), в отличие
76
+ // от остального REST API — публичный тип унифицирован на iBXRestParamSort
77
+ // ('ASC'/'DESC'), а тут приводим обратно к тому, что реально нужно
78
+ // отправить на бэкенд. См. lowerCaseOrder.
79
+ { ...param, order: lowerCaseOrder(param.order) }, BXRestMapCrmLead.list);
74
80
  }
75
81
  /**
76
82
  * Обновляет существующий лид
@@ -93,4 +99,4 @@ export class BXRestNavvyCrmLead {
93
99
  return this.Navvy.simple(this.url.fields);
94
100
  }
95
101
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2xlYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFRMUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTlELE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRTs7V0FFRztRQUNhLFlBQU8sR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUE7UUFDekQ7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFBO1FBQ3pEOztXQUVHO1FBQ2EsZ0JBQVcsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUE7UUFDakU7O1dBRUc7UUFDYSxjQUFTLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFBO1FBQzdELFFBQUcsR0FBRztZQUNKOztlQUVHO1lBQ0gsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDeEI7O2VBRUc7WUFDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUN4Qjs7ZUFFRztZQUNILElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQzFCOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7WUFDOUI7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUM5Qjs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQy9CLENBQUE7UUFFTyxVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQXdEN0IsQ0FBQztJQXREQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsS0FBNkI7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBeUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdkYsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxLQUE2QjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFDWixLQUFLLEVBQ0wsZ0JBQWdCLENBQUMsR0FBRyxDQUNyQixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUE4QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixLQUFLLEVBQ0wsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUE4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQWdDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQThDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFzRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2hHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7ICRhZGQsICRjcm0sICRkZWxldGUsICRmaWVsZHMsICRnZXQsICRsZWFkLCAkbGlzdCwgJHVwZGF0ZSB9IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0UGFyYW1Dcm1MZWFkQWRkLFxyXG4gIGlCWFJlc3RQYXJhbUNybUxlYWRHZXQsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtTGVhZExpc3QsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtTGVhZFVwZGF0ZSxcclxuICBpQlhSZXN0UGFyYW1Dcm1MZWFkRGVsZXRlXHJcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvY3JtJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBDcm1MZWFkIH0gZnJvbSAnLi4vLi4vbWFwL2NybSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1MZWFkQ29udGFjdCB9IGZyb20gJy4vbGVhZC9jb250YWN0J1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybUxlYWREZXRhaWxzIH0gZnJvbSAnLi9sZWFkL2RldGFpbHMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtTGVhZFByb2R1Y3RSb3dzIH0gZnJvbSAnLi9sZWFkL3Byb2R1Y3Ryb3dzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybUxlYWRVc2VyRmllbGQgfSBmcm9tICcuL2xlYWQvdXNlcmZpZWxkJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5Q3JtTGVhZCB7XHJcbiAgLyoqXG4gICAqINCa0L7QvdGC0LDQutGC0Ysg0LvQuNC00LAgKGBjcm0ubGVhZC5jb250YWN0LipgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb250YWN0ID0gbmV3IEJYUmVzdE5hdnZ5Q3JtTGVhZENvbnRhY3QoKVxyXG4gIC8qKlxuICAgKiDQmtCw0YDRgtC+0YfQutCwINC70LjQtNCwIChgY3JtLmxlYWQuZGV0YWlscy4qYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGV0YWlscyA9IG5ldyBCWFJlc3ROYXZ2eUNybUxlYWREZXRhaWxzKClcclxuICAvKipcbiAgICog0KLQvtCy0LDRgNGLINC70LjQtNCwIChgY3JtLmxlYWQucHJvZHVjdHJvd3MuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb2R1Y3RSb3dzID0gbmV3IEJYUmVzdE5hdnZ5Q3JtTGVhZFByb2R1Y3RSb3dzKClcclxuICAvKipcbiAgICog0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LUg0L/QvtC70Y8g0LvQuNC00LAgKGBjcm0ubGVhZC51c2VyZmllbGQuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJGaWVsZCA9IG5ldyBCWFJlc3ROYXZ2eUNybUxlYWRVc2VyRmllbGQoKVxyXG4gIHVybCA9IHtcclxuICAgIC8qKlxyXG4gICAgICog0KHQvtC30LTQsNC10YIg0L3QvtCy0YvQuSDQu9C40LRcclxuICAgICAqL1xyXG4gICAgYWRkOiBbJGNybSwgJGxlYWQsICRhZGRdLFxyXG4gICAgLyoqXHJcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQu9C40LQg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDXHJcbiAgICAgKi9cclxuICAgIGdldDogWyRjcm0sICRsZWFkLCAkZ2V0XSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC70LjQtNC+0LJcclxuICAgICAqL1xyXG4gICAgbGlzdDogWyRjcm0sICRsZWFkLCAkbGlzdF0sXHJcbiAgICAvKipcclxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidC40Lkg0LvQuNC0XHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogWyRjcm0sICRsZWFkLCAkdXBkYXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LvQuNC0XHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZTogWyRjcm0sICRsZWFkLCAkZGVsZXRlXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7Qv9C40YHQsNC90LjQtSDQv9C+0LvQtdC5INC70LjQtNCwXHJcbiAgICAgKi9cclxuICAgIGZpZWxkczogWyRjcm0sICRsZWFkLCAkZmllbGRzXVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBOYXZ2eSA9IG5ldyBOYXZ2eSgpXHJcblxyXG4gIC8qKlxyXG4gICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGL0Lkg0LvQuNC0XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgYWRkKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1MZWFkQWRkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8bnVtYmVyLCBudW1iZXIsIGlCWFJlc3RQYXJhbUNybUxlYWRBZGQ+KHRoaXMudXJsLmFkZCwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQu9C40LQg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZ2V0KHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1MZWFkR2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMudXJsLmdldCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcENybUxlYWQuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LvQuNC00L7QslxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbUNybUxlYWRMaXN0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5wYWdOYXYoXHJcbiAgICAgIHRoaXMudXJsLmxpc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBDcm1MZWFkLmxpc3RcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidC40Lkg0LvQuNC0XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1MZWFkVXBkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtQ3JtTGVhZFVwZGF0ZT4odGhpcy51cmwudXBkYXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCj0LTQsNC70Y/QtdGCINC70LjQtFxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGRlbGV0ZShwYXJhbTogaUJYUmVzdFBhcmFtQ3JtTGVhZERlbGV0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RQYXJhbUNybUxlYWREZWxldGU+KHRoaXMudXJsLmRlbGV0ZSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtC/0LjRgdCw0L3QuNC1INC/0L7Qu9C10Lkg0LvQuNC00LBcclxuICAgKi9cclxuICBmaWVsZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8UmVjb3JkPHN0cmluZywgYW55PiwgUmVjb3JkPHN0cmluZywgYW55PiwgdW5kZWZpbmVkPih0aGlzLnVybC5maWVsZHMpXHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvY3JtL2xlYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBUTFHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUU5RCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ0U7O1dBRUc7UUFDYSxZQUFPLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFBO1FBQ3pEOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQTtRQUN6RDs7V0FFRztRQUNhLGdCQUFXLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFBO1FBQ2pFOztXQUVHO1FBQ2EsY0FBUyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQTtRQUM3RCxRQUFHLEdBQUc7WUFDSjs7ZUFFRztZQUNILEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ3hCOztlQUVHO1lBQ0gsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDeEI7O2VBRUc7WUFDSCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUMxQjs7ZUFFRztZQUNILE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQzlCOztlQUVHO1lBQ0gsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7WUFDOUI7O2VBRUc7WUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUMvQixDQUFBO1FBRU8sVUFBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7SUE0RDdCLENBQUM7SUExREM7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLEtBQTZCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQXlDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3ZGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsS0FBNkI7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osS0FBSyxFQUNMLGdCQUFnQixDQUFDLEdBQUcsQ0FDckIsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsS0FBOEI7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1FBQ2IsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxtRUFBbUU7UUFDbkUsMkNBQTJDO1FBQzNDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDaEQsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUE4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQWdDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQThDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFzRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2hHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IGxvd2VyQ2FzZU9yZGVyIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2xvd2VyQ2FzZU9yZGVyJ1xyXG5pbXBvcnQgeyAkYWRkLCAkY3JtLCAkZGVsZXRlLCAkZmllbGRzLCAkZ2V0LCAkbGVhZCwgJGxpc3QsICR1cGRhdGUgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXHJcbmltcG9ydCB7XHJcbiAgaUJYUmVzdFBhcmFtQ3JtTGVhZEFkZCxcclxuICBpQlhSZXN0UGFyYW1Dcm1MZWFkR2V0LFxyXG4gIGlCWFJlc3RQYXJhbUNybUxlYWRMaXN0LFxyXG4gIGlCWFJlc3RQYXJhbUNybUxlYWRVcGRhdGUsXHJcbiAgaUJYUmVzdFBhcmFtQ3JtTGVhZERlbGV0ZVxyXG59IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2NybSdcclxuaW1wb3J0IHsgQlhSZXN0TWFwQ3JtTGVhZCB9IGZyb20gJy4uLy4uL21hcC9jcm0nXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Q3JtTGVhZENvbnRhY3QgfSBmcm9tICcuL2xlYWQvY29udGFjdCdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1MZWFkRGV0YWlscyB9IGZyb20gJy4vbGVhZC9kZXRhaWxzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUNybUxlYWRQcm9kdWN0Um93cyB9IGZyb20gJy4vbGVhZC9wcm9kdWN0cm93cydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlDcm1MZWFkVXNlckZpZWxkIH0gZnJvbSAnLi9sZWFkL3VzZXJmaWVsZCdcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUNybUxlYWQge1xyXG4gIC8qKlxyXG4gICAqINCa0L7QvdGC0LDQutGC0Ysg0LvQuNC00LAgKGBjcm0ubGVhZC5jb250YWN0LipgKS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY29udGFjdCA9IG5ldyBCWFJlc3ROYXZ2eUNybUxlYWRDb250YWN0KClcclxuICAvKipcclxuICAgKiDQmtCw0YDRgtC+0YfQutCwINC70LjQtNCwIChgY3JtLmxlYWQuZGV0YWlscy4qYCkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGRldGFpbHMgPSBuZXcgQlhSZXN0TmF2dnlDcm1MZWFkRGV0YWlscygpXHJcbiAgLyoqXHJcbiAgICog0KLQvtCy0LDRgNGLINC70LjQtNCwIChgY3JtLmxlYWQucHJvZHVjdHJvd3MuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBwcm9kdWN0Um93cyA9IG5ldyBCWFJlc3ROYXZ2eUNybUxlYWRQcm9kdWN0Um93cygpXHJcbiAgLyoqXHJcbiAgICog0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LUg0L/QvtC70Y8g0LvQuNC00LAgKGBjcm0ubGVhZC51c2VyZmllbGQuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyRmllbGQgPSBuZXcgQlhSZXN0TmF2dnlDcm1MZWFkVXNlckZpZWxkKClcclxuICB1cmwgPSB7XHJcbiAgICAvKipcclxuICAgICAqINCh0L7Qt9C00LDQtdGCINC90L7QstGL0Lkg0LvQuNC0XHJcbiAgICAgKi9cclxuICAgIGFkZDogWyRjcm0sICRsZWFkLCAkYWRkXSxcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LvQuNC0INC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAgICovXHJcbiAgICBnZXQ6IFskY3JtLCAkbGVhZCwgJGdldF0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQu9C40LTQvtCyXHJcbiAgICAgKi9cclxuICAgIGxpc3Q6IFskY3JtLCAkbGVhZCwgJGxpc3RdLFxyXG4gICAgLyoqXHJcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5INC70LjQtFxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IFskY3JtLCAkbGVhZCwgJHVwZGF0ZV0sXHJcbiAgICAvKipcclxuICAgICAqINCj0LTQsNC70Y/QtdGCINC70LjQtFxyXG4gICAgICovXHJcbiAgICBkZWxldGU6IFskY3JtLCAkbGVhZCwgJGRlbGV0ZV0sXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC+0L/QuNGB0LDQvdC40LUg0L/QvtC70LXQuSDQu9C40LTQsFxyXG4gICAgICovXHJcbiAgICBmaWVsZHM6IFskY3JtLCAkbGVhZCwgJGZpZWxkc11cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICAvKipcclxuICAgKiDQodC+0LfQtNCw0LXRgiDQvdC+0LLRi9C5INC70LjQtFxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtTGVhZEFkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0UGFyYW1Dcm1MZWFkQWRkPih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LvQuNC0INC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRg1xyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtQ3JtTGVhZEdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBDcm1MZWFkLmdldFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC70LjQtNC+0LJcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBsaXN0KHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1MZWFkTGlzdCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkucGFnTmF2KFxyXG4gICAgICB0aGlzLnVybC5saXN0LFxyXG4gICAgICAvLyBjcm0ubGVhZC5saXN0INC20LTRkdGCIG9yZGVyINCyINC90LjQttC90LXQvCDRgNC10LPQuNGB0YLRgNC1ICgnYXNjJy8nZGVzYycpLCDQsiDQvtGC0LvQuNGH0LjQtVxyXG4gICAgICAvLyDQvtGCINC+0YHRgtCw0LvRjNC90L7Qs9C+IFJFU1QgQVBJIOKAlCDQv9GD0LHQu9C40YfQvdGL0Lkg0YLQuNC/INGD0L3QuNGE0LjRhtC40YDQvtCy0LDQvSDQvdCwIGlCWFJlc3RQYXJhbVNvcnRcclxuICAgICAgLy8gKCdBU0MnLydERVNDJyksINCwINGC0YPRgiDQv9GA0LjQstC+0LTQuNC8INC+0LHRgNCw0YLQvdC+INC6INGC0L7QvNGDLCDRh9GC0L4g0YDQtdCw0LvRjNC90L4g0L3Rg9C20L3QvlxyXG4gICAgICAvLyDQvtGC0L/RgNCw0LLQuNGC0Ywg0L3QsCDQsdGN0LrQtdC90LQuINCh0LwuIGxvd2VyQ2FzZU9yZGVyLlxyXG4gICAgICB7IC4uLnBhcmFtLCBvcmRlcjogbG93ZXJDYXNlT3JkZXIocGFyYW0ub3JkZXIpIH0sXHJcbiAgICAgIEJYUmVzdE1hcENybUxlYWQubGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J7QsdC90L7QstC70Y/QtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0LjQuSDQu9C40LRcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbUNybUxlYWRVcGRhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBpQlhSZXN0UGFyYW1Dcm1MZWFkVXBkYXRlPih0aGlzLnVybC51cGRhdGUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0KPQtNCw0LvRj9C10YIg0LvQuNC0XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZGVsZXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Dcm1MZWFkRGVsZXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtQ3JtTGVhZERlbGV0ZT4odGhpcy51cmwuZGVsZXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC+0L/QuNGB0LDQvdC40LUg0L/QvtC70LXQuSDQu9C40LTQsFxyXG4gICAqL1xyXG4gIGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB1bmRlZmluZWQ+KHRoaXMudXJsLmZpZWxkcylcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==