bx-rest 0.0.34 → 0.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 (101) hide show
  1. package/README.md +60 -4
  2. package/esm2020/functions/mapResult.mjs +2 -2
  3. package/esm2020/map/disk/base.mjs +57 -0
  4. package/esm2020/map/disk/folder.mjs +17 -0
  5. package/esm2020/map/disk/storage.mjs +17 -0
  6. package/esm2020/map/lists/element.mjs +8 -8
  7. package/esm2020/map/lists.mjs +19 -0
  8. package/esm2020/map/task.mjs +115 -0
  9. package/esm2020/map/user.mjs +89 -0
  10. package/esm2020/public-api.mjs +4 -2
  11. package/esm2020/request/disk/file.mjs +38 -0
  12. package/esm2020/request/disk/folder.mjs +46 -0
  13. package/esm2020/request/disk/storage.mjs +46 -0
  14. package/esm2020/request/disk.mjs +19 -0
  15. package/esm2020/request/lists/element.mjs +5 -7
  16. package/esm2020/request/tasks/task.mjs +61 -0
  17. package/esm2020/request/tasks.mjs +17 -0
  18. package/esm2020/request/user.mjs +23 -55
  19. package/esm2020/request-navvy/disk/file.mjs +43 -0
  20. package/esm2020/request-navvy/disk/folder.mjs +45 -0
  21. package/esm2020/request-navvy/disk/operation.mjs +95 -0
  22. package/esm2020/request-navvy/disk/storage.mjs +54 -0
  23. package/esm2020/request-navvy/disk.mjs +21 -0
  24. package/esm2020/request-navvy/lists/element.mjs +24 -0
  25. package/esm2020/request-navvy/lists.mjs +25 -0
  26. package/esm2020/request-navvy/tasks/task.mjs +64 -0
  27. package/esm2020/request-navvy/tasks.mjs +17 -0
  28. package/esm2020/request-navvy/user.mjs +53 -0
  29. package/esm2020/rest.mjs +42 -4
  30. package/esm2020/services/base.mjs +3 -2
  31. package/esm2020/services/http/HttpBX.mjs +15 -35
  32. package/esm2020/services/http/HttpData.mjs +2 -8
  33. package/esm2020/services/http/http.mjs +8 -8
  34. package/esm2020/services/http/sessionKey.mjs +36 -20
  35. package/esm2020/settings.mjs +4 -5
  36. package/esm2020/typification/rest/base/answer.mjs +2 -0
  37. package/esm2020/typification/rest/base/filterGenerator.mjs +2 -0
  38. package/esm2020/typification/rest/batch/batchRequestParam.mjs +1 -1
  39. package/esm2020/typification/rest/disk/file.mjs +2 -0
  40. package/esm2020/typification/rest/disk/folder.mjs +2 -0
  41. package/esm2020/typification/rest/disk/map.mjs +2 -0
  42. package/esm2020/typification/rest/disk/storage/uploadfile.mjs +2 -0
  43. package/esm2020/typification/rest/lists/element/get.mjs +1 -1
  44. package/esm2020/typification/rest/task/fieldsForSend.mjs +2 -0
  45. package/esm2020/typification/rest/task/people/base.mjs +2 -0
  46. package/esm2020/typification/rest/task/task.mjs +2 -0
  47. package/esm2020/typification/settings.mjs +1 -1
  48. package/fesm2015/bx-rest.mjs +1094 -312
  49. package/fesm2015/bx-rest.mjs.map +1 -1
  50. package/fesm2020/bx-rest.mjs +1092 -312
  51. package/fesm2020/bx-rest.mjs.map +1 -1
  52. package/functions/mapResult.d.ts +4 -2
  53. package/map/disk/base.d.ts +12 -0
  54. package/map/disk/folder.d.ts +9 -0
  55. package/map/disk/storage.d.ts +9 -0
  56. package/map/lists/element.d.ts +4 -4
  57. package/map/lists.d.ts +9 -0
  58. package/map/task.d.ts +8 -0
  59. package/map/user.d.ts +12 -0
  60. package/package.json +1 -1
  61. package/public-api.d.ts +3 -1
  62. package/request/disk/file.d.ts +25 -0
  63. package/request/disk/folder.d.ts +26 -0
  64. package/request/disk/storage.d.ts +34 -0
  65. package/request/disk.d.ts +10 -0
  66. package/request/lists/element.d.ts +3 -5
  67. package/request/tasks/task.d.ts +55 -0
  68. package/request/tasks.d.ts +8 -0
  69. package/request/user.d.ts +9 -20
  70. package/request-navvy/disk/file.d.ts +19 -0
  71. package/request-navvy/disk/folder.d.ts +11 -0
  72. package/request-navvy/disk/operation.d.ts +23 -0
  73. package/request-navvy/disk/storage.d.ts +23 -0
  74. package/request-navvy/disk.d.ts +12 -0
  75. package/request-navvy/lists/element.d.ts +12 -0
  76. package/request-navvy/lists.d.ts +15 -0
  77. package/request-navvy/tasks/task.d.ts +16 -0
  78. package/request-navvy/tasks.d.ts +8 -0
  79. package/request-navvy/user.d.ts +19 -0
  80. package/rest.d.ts +25 -1
  81. package/services/http/HttpBX.d.ts +3 -12
  82. package/services/http/HttpData.d.ts +1 -3
  83. package/services/http/http.d.ts +0 -5
  84. package/services/http/sessionKey.d.ts +13 -2
  85. package/typification/rest/base/{httpAnswerBX.d.ts → answer.d.ts} +1 -1
  86. package/typification/rest/base/filterGenerator.d.ts +5 -0
  87. package/typification/rest/batch/batchRequestParam.d.ts +2 -2
  88. package/typification/rest/disk/file.d.ts +14 -0
  89. package/typification/rest/disk/folder.d.ts +47 -0
  90. package/typification/rest/disk/map.d.ts +6 -0
  91. package/typification/rest/disk/storage/uploadfile.d.ts +9 -0
  92. package/typification/rest/lists/element/get.d.ts +9 -1
  93. package/typification/rest/task/fieldsForSend.d.ts +61 -0
  94. package/typification/rest/task/people/base.d.ts +12 -0
  95. package/typification/rest/task/task.d.ts +102 -0
  96. package/typification/settings.d.ts +3 -4
  97. package/esm2020/services/map/base.mjs +0 -14
  98. package/esm2020/services/map/rest/user.mjs +0 -89
  99. package/esm2020/typification/rest/base/httpAnswerBX.mjs +0 -2
  100. package/services/map/base.d.ts +0 -6
  101. package/services/map/rest/user.d.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/bx-rest.module.ts","../../../projects/bx-rest/src/services/snack-bar/toast-message/toast-message.component.ts","../../../projects/bx-rest/src/services/snack-bar/toast-message/toast-message.component.html","../../../projects/bx-rest/src/services/snack-bar/snack-bar.service.ts","../../../projects/bx-rest/src/functions/serializeJavascript.ts","../../../projects/bx-rest/src/services/vanilla/JSON.ts","../../../projects/bx-rest/src/services/vanilla/сookies.ts","../../../projects/bx-rest/src/store/auth.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/settings.ts","../../../projects/bx-rest/src/typification/rest/api-lib.ts","../../../projects/bx-rest/src/services/http/sessionKey.ts","../../../projects/bx-rest/src/services/http/HttpData.ts","../../../projects/bx-rest/src/services/http/base/base.ts","../../../projects/bx-rest/src/services/http/base/http.ts","../../../projects/bx-rest/src/services/http/http.ts","../../../projects/bx-rest/src/functions/mapResult.ts","../../../projects/bx-rest/src/services/http/HttpBX.ts","../../../projects/bx-rest/src/map/base.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/services/map/base.ts","../../../projects/bx-rest/src/services/map/rest/user.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/rest.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $deger = 'deger'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\n","import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","import { Component, inject, Inject, ViewEncapsulation } from '@angular/core'\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar'\nimport { BxRestModule } from '../../../request/bx-rest.module'\n\n@Component({\n selector: 'app-view',\n templateUrl: './toast-message.component.html',\n styleUrls: ['./toast-message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [BxRestModule],\n})\nexport class ToastMessageComponent {\n\n snackBarRef = inject(MatSnackBarRef)\n\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: { message: string, type: 'error' | 'warning' | 'success' }) {\n }\n\n getClass():string{\n switch (this.data.type){\n case 'error':\n case 'warning':\n case 'success':\n return this.data.type + '-message';\n }\n return '';\n }\n}\n","<div class=\"w-100 d-flex\">\n <span matSnackBarLabel [class]=\"getClass()\">\n {{ data.message }}\n</span>\n <span matSnackBarActions [class]=\"getClass()\">\n <button mat-button matSnackBarAction (click)=\"snackBarRef.dismissWithAction()\">\n <mat-icon>\n close\n </mat-icon>\n </button>\n</span>\n</div>\n\n","/**\n * Сервис для вывода сообщений пользователю\n * TODO: логирование\n */\nimport { Injectable } from '@angular/core'\nimport { ToastMessageComponent } from '../../services/snack-bar/toast-message/toast-message.component'\nimport { MatSnackBar } from '@angular/material/snack-bar'\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class SnackBarService {\n\n constructor(private snackBar: MatSnackBar) {\n }\n\n error(message: string, sec = 12): void {\n this.standardMessage(message, sec, 'error')\n }\n\n warning(message: string, sec = 7): void {\n this.standardMessage(message, sec, 'warning');\n }\n\n success(message: string, sec = 7): void {\n this.standardMessage(message, sec, 'success');\n }\n\n standardMessage(message: string, sec = 5, name = 'error'): void{\n this.snackBar.open(message);\n this.snackBar.openFromComponent(ToastMessageComponent, {\n duration: sec * 1000,\n data: {\n message: message,\n type: name\n },\n panelClass: name + '-box'\n });\n }\n}\n","// Generate an internal UID to make the regexp pattern harder to guess.\nconst UID_LENGTH = 16;\nconst UID = generateUID();\nconst PLACE_HOLDER_REGEXP = new RegExp('(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\\\d+)__@\"', 'g');\n\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code]\\s*}/g;\nconst IS_PURE_FUNCTION = /function.*?\\(/;\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\nconst UNSAFE_CHARS_REGEXP = /[<>\\/\\u2028\\u2029]/g;\n\nconst RESERVED_SYMBOLS = ['*', 'async'];\n\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\n// Unicode char counterparts which are safe to use in JavaScript strings.\nconst ESCAPED_CHARS: {[key: string]: string} = {\n '<': '\\\\u003C',\n '>': '\\\\u003E',\n '/': '\\\\u002F',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\n\nfunction escapeUnsafeChars(unsafeChar: string): string {\n return (ESCAPED_CHARS.hasOwnProperty(unsafeChar)) ? ESCAPED_CHARS[unsafeChar] : '';\n}\n\nfunction generateUID() {\n let bytes = window.crypto.getRandomValues(new Uint32Array(UID_LENGTH))\n let result = '';\n for (let i = 0; i < UID_LENGTH; ++i) {\n result += bytes[i].toString(16);\n }\n return result;\n}\n\nfunction deleteFunctions(obj: any) {\n let functionKeys = [];\n for (let key in obj) {\n if (typeof obj[key] === \"function\") {\n functionKeys.push(key);\n }\n }\n for (let i = 0; i < functionKeys.length; i++) {\n delete obj[functionKeys[i]];\n }\n}\n\nfunction serialize(obj: any, options: any = {}): any {\n // Backwards-compatibility for `space` as the second argument.\n if (typeof options === 'number' || typeof options === 'string') {\n options = {space: options};\n }\n\n let functions: Function[] = [];\n let regexps: any[] = [];\n let dates: any[] = [];\n let maps: any[] = [];\n let sets: any[] = [];\n let arrays: any[] = [];\n let undefs: any[] = [];\n let infinities: any[] = [];\n let bigInts: any[] = [];\n let urls: any[] = [];\n\n // Returns placeholders for functions and regexps (identified by index)\n // which are later replaced by their string representation.\n function replacer(key: string, value: any) {\n\n // For nested function\n if (options.ignoreFunction) {\n deleteFunctions(value);\n }\n\n if (!value && value !== undefined) {\n return value;\n }\n\n // let origValue: any = this[key];\n let origValue: any = value;\n let type = typeof origValue;\n\n switch (type){\n case 'object':\n\n if (origValue instanceof RegExp) {\n return '@__R-' + UID + '-' + (regexps.push(origValue) - 1) + '__@';\n } else if (origValue instanceof Date) {\n return '@__D-' + UID + '-' + (dates.push(origValue) - 1) + '__@';\n } else if (origValue instanceof Map) {\n return '@__M-' + UID + '-' + (maps.push(origValue) - 1) + '__@';\n } else if (origValue instanceof Set) {\n return '@__S-' + UID + '-' + (sets.push(origValue) - 1) + '__@';\n }\n\n if (origValue instanceof Array) {\n let isSparse = origValue.filter(function () {\n return true\n }).length !== origValue.length;\n if (isSparse) {\n return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@';\n }\n }\n\n if (origValue instanceof URL) {\n return '@__L-' + UID + '-' + (urls.push(origValue) - 1) + '__@';\n }\n break;\n case 'function':\n return '@__F-' + UID + '-' + (functions.push(origValue) - 1) + '__@';\n case 'undefined':\n return '@__U-' + UID + '-' + (undefs.push(origValue) - 1) + '__@';\n case 'number':\n return '@__I-' + UID + '-' + (infinities.push(origValue) - 1) + '__@';\n case 'bigint':\n return '@__B-' + UID + '-' + (bigInts.push(origValue) - 1) + '__@';\n }\n\n return value;\n }\n\n function serializeFunc(fn: Function) {\n let serializedFn = fn.toString();\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\n throw new TypeError('Serializing native function: ' + fn.name);\n }\n\n // pure functions, example: {key: function() {}}\n if (IS_PURE_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n // arrow functions, example: arg1 => arg1+5\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n let argsStartsAt = serializedFn.indexOf('(');\n let def = serializedFn.slice(0, argsStartsAt)\n .trim()\n .split(' ')\n .filter(function (val) {\n return val.length > 0\n });\n\n let nonReservedSymbols = def.filter(function (val) {\n return RESERVED_SYMBOLS.indexOf(val) === -1\n });\n\n // enhanced literal objects, example: {key() {}}\n if (nonReservedSymbols.length > 0) {\n return (def.indexOf('async') > -1 ? 'async ' : '') + 'function'\n + (def.join('').indexOf('*') > -1 ? '*' : '')\n + serializedFn.slice(argsStartsAt);\n }\n\n // arrow functions\n return serializedFn;\n }\n\n // Check if the parameter is function\n if (options.ignoreFunction && typeof obj === \"function\") {\n obj = undefined;\n }\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (obj === undefined) {\n return String(obj);\n }\n\n let str: string = '';\n\n // Creates a JSON string representation of the value.\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\n if (options.isJSON && !options.space) {\n str = JSON.stringify(obj);\n } else {\n str = JSON.stringify(obj, options.isJSON ? undefined : replacer, options.space);\n }\n\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\n // their safe Unicode char counterpart. This _must_ happen before the\n // regexps and functions are serialized and added back to the string.\n if (options.unsafe !== true) {\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\n }\n\n if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {\n return str;\n }\n\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\n // JSON string with their string representations. If the original value can\n // not be found, then `undefined` is used.\n return str.replace(PLACE_HOLDER_REGEXP, function (match, backSlash, type, valueIndex) {\n // The placeholder may not be preceded by a backslash. This is to prevent\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\n // invalid JS.\n if (backSlash) {\n return match;\n }\n\n switch (type){\n case 'D':\n return \"new Date(\\\"\" + dates[valueIndex].toISOString() + \"\\\")\"\n case 'R':\n return \"new RegExp(\" + serialize(regexps[valueIndex].source) + \", \\\"\" + regexps[valueIndex].flags + \"\\\")\"\n case 'M':\n return \"new Map(\" + serialize(Array.from(maps[valueIndex].entries()), options) + \")\"\n case 'S':\n return \"new Set(\" + serialize(Array.from(sets[valueIndex].values()), options) + \")\"\n case 'A':\n return \"Array.prototype.slice.call(\" + serialize(Object.assign({length: arrays[valueIndex].length}, arrays[valueIndex]), options) + \")\"\n case 'U':\n return 'undefined'\n case 'I':\n return infinities[valueIndex]\n case 'B':\n return \"BigInt(\\\"\" + bigInts[valueIndex] + \"\\\")\"\n case 'L':\n return \"new URL(\\\"\" + urls[valueIndex].toString() + \"\\\")\"\n }\n\n let fn = functions[valueIndex];\n\n return serializeFunc(fn);\n });\n}\n\nexport default serialize\n","import { Injectable } from '@angular/core'\nimport serialize from '../../functions/serializeJavascript'\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class JSONServices {\n static deserialize(data: any) {\n return eval('(' + data + ')')\n }\n\n static serialize(data: any ) {\n return serialize(data)\n }\n}\n","import { Injectable } from '@angular/core'\nimport JSON from '../../services/vanilla/JSON'\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class CookiesServices {\n\n static get(name: string): string {\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n if (results)\n return results[2]\n else\n return ''\n }\n\n static set(name: string, value: string, age: number = 0) {\n let string = name + '=' + value + ';'\n if(age) {\n string += ' max-age=' + age\n }\n string += '; SameSite=None; Secure'\n document.cookie = string\n }\n\n static setObj(name: string, value: any, age: number = 0) {\n let string = name + '=' + JSON.serialize(value) + ';'\n if(age) {\n string += ' max-age=' + age\n }\n string += '; SameSite=None; Secure'\n document.cookie = string\n }\n\n static getObj<T>(name: string): T | false {\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n if (results) {\n return JSON.deserialize(results[2])\n }\n\n return false\n }\n}\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport saveApplicationAuth from '../typification/auth/save'\nimport clone from 'just-clone'\nexport interface saveApplicationAuthPath {\n access_token?: string, // основной авторизационный токен, требуемый для доступа к REST API\n client_endpoint?: string, // адрес REST-интерфейса портала\n domain?: string,\n expires?: number,\n expires_in?: number,\n member_id?: string,\n refresh_token?: string, // дополнительный авторизационный токен, служащий для продления сохраненной авторизации\n scope?: string,\n server_endpoint?: string, // адрес REST-интерфейса сервера\n status?: string, // статус приложения на портале\n user_id?: number\n type?: string\n}\nexport const save = createAction('[Auth Component] Save', props<saveApplicationAuth | saveApplicationAuthPath>())\nexport const saveAccessToken = createAction('[Auth Component] SaveAccessToken', props<saveApplicationAuthPath>())\n\nexport const initialState: saveApplicationAuth = {\n access_token: '',\n client_endpoint: '',\n domain: '',\n expires: 0,\n expires_in: 0,\n member_id: '',\n refresh_token: '',\n scope: '',\n server_endpoint: '',\n status: '',\n user_id: 0\n}\n\nconst _authReducer = createReducer(\n initialState,\n on(saveAccessToken, (s, data) => {\n let copy = clone(s)\n return Object.assign(copy, data)\n }),\n);\n\nexport function authReducer(state = initialState, action: Action) {\n return _authReducer(state, action);\n}\n","export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNum(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\nimport JSON from '../../services/vanilla/JSON'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageServices {\n\n static get(name: string): any {\n return localStorage.getItem(name)\n }\n\n static getObj<T>(name: string): T | null {\n return JSON.deserialize(localStorage.getItem(name))\n }\n\n static set(name: string, value: string): void {\n localStorage.setItem(name, value)\n }\n\n static setObj(name: string, value: any): void {\n let get = this.get(name)\n if(get && typeof get === 'object'){\n localStorage.setItem(\n name,\n JSON.serialize(\n Object.assign(\n get,\n value\n )\n )\n )\n } else {\n localStorage.setItem(name, JSON.serialize(value))\n }\n }\n\n static del(name: string): void {\n localStorage.removeItem(name)\n }\n\n}\n","import { iRestSettings } from './typification/settings'\r\n\r\nexport const REST_SETTINGS: iRestSettings = {\r\n support: {\r\n map: true,\r\n result: true\r\n },\r\n auth: 'cookies',\r\n urls: {\r\n home: 'b24.trace-studio.com'\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iRestLib } from './lib'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RestServices {\r\n BX24: iRestLib | false = false\r\n\r\n constructor() {\r\n // @ts-ignore\r\n this.BX24 = (window.BX24) ? window.BX24 : false\r\n }\r\n\r\n init(callBack: Function) {\r\n return (this.BX24) ? this.BX24.init(callBack) : false\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\nimport Cookies from '../../services/vanilla/сookies'\nimport { Store } from '@ngrx/store'\nimport saveApplicationAuth from '../../typification/auth/save'\n// import { environment as env } from 'bx-rest/environments/environment'\nimport { filter, Observable, of, Subscription, take } from 'rxjs'\nimport { ActivatedRoute, ParamMap } from '@angular/router'\nimport { saveAccessToken, saveApplicationAuthPath } from '../../store/auth'\nimport { map } from 'rxjs/operators'\nimport { BaseServices } from '../base'\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\nimport { RestServices } from '../../typification/rest/api-lib'\nimport { REST_SETTINGS } from '../../settings'\n\ntype IKeyAuth = 'sessid' | 'auth' | string\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class SessionKeyServices extends BaseServices {\n\n authHave = false\n authData$: Observable<saveApplicationAuth>\n authData: saveApplicationAuth | undefined\n subscribe = {\n authData: new Subscription()\n }\n\n constructor(\n public store: Store<{ auth: saveApplicationAuth }>,\n private route: ActivatedRoute,\n public BxApiLib: RestServices,\n ) {\n super()\n this.authData$ = this.store.select('auth')\n this.authData$.subscribe(authData => {\n if ((authData && !authData.access_token.length) || !authData) {\n // получаем токен по собственным каналом (в битриксе приложение trace:apps.trace)\n window.addEventListener('message', (event: MessageEvent) => {\n if (event.origin !== window.origin) { // проверяем что это не наше сообщение (с текущего приложения)\n if (event.data && event.data.param) {\n if (typeof event.data.param === 'string') {\n event.data.param = JSON.parse(event.data.param)\n }\n\n let save: saveApplicationAuthPath = {}\n\n if (event.data.param.access_token) {\n let param = event.data.param;\n save.access_token = event.data.param.access_token\n save = {\n access_token: (param.access_token) ? param.access_token : undefined,\n client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\n domain: (param.domain) ? param.domain : undefined,\n expires: (param.expires) ? param.expires : undefined,\n expires_in: (param.expires_in) ? param.expires_in : undefined,\n member_id: (param.member_id) ? param.member_id : undefined,\n refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\n scope: (param.scope) ? param.scope : undefined,\n server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\n status: (param.status) ? param.status : undefined,\n user_id: (param.user_id) ? param.user_id : undefined,\n type: (param.type) ? param.type : undefined,\n }\n }\n\n if (Object.keys(save).length && save.access_token) {\n this.store.dispatch(saveAccessToken(save))\n this.subscribeAll()\n }\n }\n }\n })\n\n this.subscribe.authData = this.route.queryParamMap\n .pipe(\n filter(param =>\n param.has('AUTH_ID')\n || param.has('access_token')\n || param.has('REFRESH_ID')\n || param.has('DOMAIN')\n )\n )\n .subscribe((param: ParamMap) => {\n let save: saveApplicationAuthPath = {}\n if (param.has('AUTH_ID') && !authData.access_token.length) {\n const get = param.get('AUTH_ID')\n if (get) {\n Cookies.set('auth', get) // потом убрать\n save.access_token = get\n }\n }\n\n if (param.has('access_token') && !authData.access_token.length) {\n const get = param.get('access_token')\n if (get) {\n Cookies.set('auth', get) // потом убрать\n save.access_token = get\n }\n }\n\n if (param.has('REFRESH_ID') && !authData.refresh_token.length) {\n const get = param.get('REFRESH_ID')\n if (get) {\n save.refresh_token = get\n }\n }\n\n if (param.has('DOMAIN') && !authData.domain.length) {\n const get = param.get('DOMAIN')\n if (get) {\n save.domain = get\n }\n }\n if (Object.keys(save).length && save.access_token) {\n this.store.dispatch(saveAccessToken(save))\n this.subscribeAll()\n } else {\n // если битрикс не шлёт нужные мне параметры на прямую\n // просим их мне отдать так как описано это в документации\n let f = () => {\n if (this.BxApiLib.BX24) {\n const initDate = this.BxApiLib.BX24.getAuth()\n this.store.dispatch(saveAccessToken(initDate))\n }\n }\n\n this.BxApiLib.init(f)\n }\n\n })\n } else if (this.getAuth().length) {\n this.authHave = true\n }\n\n this.authData = authData\n })\n }\n\n subscribeAll() {\n this.subscribe.authData.unsubscribe()\n }\n\n getAuth(): string {\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()) {\n return (<any>window).BX.bitrix_sessid()\n } else if (this.getSessid().length) {\n let str = this.getSessid()\n return (str) ? str : ''\n } else {\n return Cookies.get('auth')\n }\n }\n\n getKeyAuth(): IKeyAuth {\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()\n || this.getSessid().length) {\n return 'sessid'\n } else {\n return 'auth'\n }\n }\n\n getSessid() {\n const check = new URLSearchParams(document.location.search).get('sessid')\n if (check) {\n LocalStorage.set('sessid', check)\n return check\n } else if (LocalStorage.get('sessid')) {\n return LocalStorage.get('sessid')\n }\n return ''\n }\n\n setAuthParams<T>(params: any): boolean {\n const keyAuth = this.getKeyAuth()\n if (params[keyAuth]) {\n return true\n } else if (keyAuth) {\n params[keyAuth] = this.getAuth()\n return true\n }\n return false\n }\n\n getAuthParams(): Observable<string | undefined> {\n switch (REST_SETTINGS.auth) {\n case 'cookies':\n return of(this.getAuth())\n default:\n return this.authData$.pipe(\n take(1),\n map(v => (v) ? v.access_token : undefined)\n )\n }\n }\n\n getBaseUrl(): Observable<string | undefined> {\n return of(this.prepareBaseAddress(REST_SETTINGS.urls.home, 'rest')) // TODO: вынести в настройки\n // return this.authData$.pipe( // TODO: разобраться позже\n // take(1),\n // map(v => (v && v.domain) ? this.prepareBaseAddress(v.domain) : undefined)\n // )\n }\n\n // getHomeUrl(): string {\n // return env.urls.home\n // }\n}\n","import { BaseServices } from '../../services/base'\r\nimport { HttpParams } from '@angular/common/http'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\r\n\r\nexport class HttpData extends BaseServices {\r\n\r\n defSettings: iHttpParamSettings = {\r\n timeZone: {\r\n calc: true,\r\n levelOut: false\r\n }\r\n }\r\n\r\n getHttpParamsGet( // не так уж и сложно сделать сложенный HttpParams, да гугл?\r\n obj: any,\r\n sendHttpParams: HttpParams = new HttpParams(),\r\n thisArray = false,\r\n nesting: string[] = [],\r\n // settings = this.defSettings\r\n _ = this.defSettings\r\n ): any {\r\n for (const key in obj) {\r\n let setKey = ''\r\n if (nesting.length) {\r\n let first = nesting[0]\r\n setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n : first + '[' + key + ']'\r\n } else {\r\n setKey = key\r\n }\r\n switch (typeof obj[key]) {\r\n case 'string':\r\n sendHttpParams = sendHttpParams.set(setKey, obj[key])\r\n break\r\n case 'symbol':\r\n case 'number':\r\n case 'bigint':\r\n case 'boolean':\r\n sendHttpParams = sendHttpParams.set(setKey, String(obj[key]))\r\n break\r\n case 'object':\r\n nesting.push(key)\r\n sendHttpParams = this.getHttpParamsGet(obj[key], sendHttpParams, false, nesting)\r\n nesting.pop()\r\n break\r\n case 'function':\r\n case 'undefined':\r\n default:\r\n console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj)\r\n }\r\n }\r\n return sendHttpParams\r\n }\r\n\r\n getHttpParamsPost(\r\n obj: any,\r\n sendHttpParams: FormData = new FormData(),\r\n thisArray = false,\r\n nesting: string[] = [],\r\n settings = this.defSettings\r\n ): any {\r\n\r\n if (obj instanceof Blob) {\r\n let first = nesting[0]\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, obj)\r\n return sendHttpParams\r\n } else if (obj instanceof Date) {\r\n let first = nesting[0]\r\n let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString())\r\n return sendHttpParams\r\n } else {\r\n for (const key in obj) {\r\n let setKey = ''\r\n if (nesting.length) {\r\n let first = nesting[0]\r\n setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n : first + '[' + key + ']'\r\n } else {\r\n setKey = key\r\n }\r\n switch (typeof obj[key]) {\r\n case 'string':\r\n sendHttpParams.set(setKey, obj[key])\r\n break\r\n case 'symbol':\r\n case 'number':\r\n case 'bigint':\r\n case 'boolean':\r\n sendHttpParams.set(setKey, String(obj[key]))\r\n break\r\n case 'object':\r\n nesting.push(key)\r\n sendHttpParams = this.getHttpParamsPost(\r\n obj[key],\r\n sendHttpParams,\r\n false,\r\n nesting,\r\n settings\r\n )\r\n nesting.pop()\r\n break\r\n case 'function':\r\n case 'undefined':\r\n default:\r\n console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj)\r\n }\r\n }\r\n }\r\n return sendHttpParams\r\n }\r\n\r\n mapResult<T>(v: iHttpAnswerBX<T> | undefined): T | undefined {\r\n if (v && (v.result || typeof v.result === 'boolean')) {\r\n return v.result\r\n }\r\n return undefined\r\n }\r\n\r\n sliceArrayIntoChunks(arr: any[], chunkSize: number) {\r\n const res = [];\r\n for (let i = 0; i < arr.length; i += chunkSize) {\r\n const chunk = arr.slice(i, i + chunkSize);\r\n res.push(chunk);\r\n }\r\n return res;\r\n }\r\n\r\n removingMultipleSlashes(str: string) {\r\n return str.replace(/\\/{2,}/g, '/')\r\n }\r\n}\r\n","// import { iHttpParamSettings } from '../../../typification/rest/settings'\r\n// import { iHttpParamSettings } from 'bx-rest/typification/rest/settings'\r\n\r\nimport { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport SnackBarService from '../../../services/snack-bar/snack-bar.service'\r\nimport { Observable, of, } from 'rxjs'\r\nimport { HttpData } from '../../../services/http/HttpData'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class BaseHttp extends HttpData {\r\n\r\n protected constructor(public http: HttpClient, public snackBar: SnackBarService) {\r\n super()\r\n }\r\n\r\n abstract httpGet<T>(\r\n url: string,\r\n params: any,\r\n textError: string,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n abstract httpPost<T>(url: string,\r\n params: any ,\r\n textError: string,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n handleError<T>(\r\n result?: T,\r\n textError = 'получения данных') {\r\n return (error: Error): Observable<T> => {\r\n console.error(`failed: ${error.message}`)\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return of(result as T)\r\n };\r\n }\r\n}\r\n","import { Observable, throwError } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { HttpParams } from '@angular/common/http'\r\nimport { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { BaseHttp } from '../../../services/http/base/base'\r\n\r\nexport class BaseHttpServices extends BaseHttp {\r\n\r\n public httpGet<T>(\r\n url: string,\r\n params = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.http.get<T | undefined>(url, {\r\n params: this.getHttpParamsGet(params, new HttpParams(), false, [], settings)\r\n }).pipe(\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n public httpPost<T>(url: string,\r\n params: any = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.http.post<T | undefined>(\r\n url,\r\n this.getHttpParamsPost(params, new FormData(), false, [], settings)\r\n ).pipe(\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n // TODO: доделать\r\n // httpPostBaseWithFile<T>(url: string,\r\n // params: any = {},\r\n // textError = ''): Observable<T | undefined> {\r\n // let searchFile = Object.values(params).find((i: any) => i instanceof Blob)\r\n // if (searchFile) {\r\n // return this.http.post<T | undefined>(url, this.getHttpParamsPost(params)).pipe(\r\n // catchError(err => {\r\n // this.snackBar.error('Ошибка: ' + textError)\r\n // console.error(err)\r\n // return throwError(() => err)\r\n // })\r\n // )\r\n // } else {\r\n // return this.httpPost(url, params, textError)\r\n // }\r\n // }\r\n}\r\n","import { Observable, throwError, take, mergeMap, forkJoin } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\r\nimport SessionKeyServices from '../../services/http/sessionKey'\r\nimport clone from 'just-clone'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\nimport {\r\n iBatchRequestAnswer, iBatchRequestParam,\r\n iBatchRequestParamArr,\r\n iBatchRequestParamHttp, keyBatch\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport flatten from 'just-flatten-it'\r\nimport { BaseHttpServices } from './base/http'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class HttpServices extends BaseHttpServices {\r\n\r\n constructor(http: HttpClient, snackBar: SnackBarService, public session: SessionKeyServices) {\r\n super(http, snackBar)\r\n }\r\n\r\n timeNowOnServer() {\r\n return this.httpGet<{ result?: Date, error?: string }>('server.time').pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return new Date(v.result)\r\n }\r\n return undefined\r\n }),\r\n )\r\n }\r\n\r\n /**\r\n * Это пиздец а не метод\r\n * @param param\r\n */\r\n branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n const size = 50 // больше не отдаст\r\n let subarray = [] //массив в который будет выведен результат.\r\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n }\r\n\r\n return forkJoin(\r\n subarray.map(i => {\r\n return this.httpPost('batch.json', {\r\n halt: 0,\r\n cmd: Object.assign({}, ...i.map(x => {\r\n return {[x[0]]: x[1]}\r\n }))\r\n })\r\n })\r\n ) as Observable<iBatchRequestAnswer<A>[]>\r\n }\r\n\r\n prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n (obj, key) => {\r\n obj[key] = '';\r\n return obj;\r\n },\r\n {} as iBatchRequestParamHttp\r\n );\r\n for (let key in param) {\r\n if(typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString()\r\n }\r\n }\r\n return res\r\n }\r\n\r\n mapBranchResult<T>(res: iBatchRequestAnswer<T>[]){\r\n return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {[key:keyBatch]: T}\r\n }\r\n\r\n mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[]{\r\n return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))\r\n }\r\n\r\n override httpPost<T>(url: string,\r\n params: any = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.session.getAuthParams().pipe(\r\n mergeMap(auth => {\r\n if (auth) {\r\n const paramsClone = clone(params)\r\n paramsClone[this.session.getKeyAuth()] = auth\r\n return this.session.getBaseUrl().pipe(mergeMap(v => {\r\n if (v) {\r\n return this.http.post<T | undefined>(\r\n this.prepareBaseAddress(v) + url,\r\n this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))\r\n .pipe(\r\n take(1),\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n return throwError(() => 'get base url error')\r\n }))\r\n } else {\r\n this.snackBar.error('Error: Auth not get')\r\n return throwError(() => 'auth not get')\r\n }\r\n }))\r\n }\r\n\r\n override httpGet<T>(\r\n url: string,\r\n params: any = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.session.getAuthParams().pipe(\r\n mergeMap(auth => {\r\n if (auth) {\r\n if (params === null) {\r\n params = {}\r\n }\r\n const paramsClone = clone(params)\r\n paramsClone[this.session.getKeyAuth()] = auth\r\n let options = {\r\n params: this.getHttpParamsGet(paramsClone)\r\n }\r\n\r\n return this.session.getBaseUrl().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.http.get<T>(this.prepareBaseAddress(v) + url, options).pipe(\r\n take(1),\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return throwError(() => err)\r\n }))\r\n }\r\n return throwError(() => 'get base url error')\r\n })\r\n )\r\n } else {\r\n this.snackBar.error('Error: Auth not get')\r\n return throwError(() => 'auth not get')\r\n }\r\n })\r\n )\r\n }\r\n\r\n getNameMethod(arr: string[]) {\r\n return arr.join('.')\r\n }\r\n\r\n}\r\n","import iHttpAnswerBX from '../typification/rest/base/httpAnswerBX';\r\n\r\nexport function mapResult<T>(v: iHttpAnswerBX<T> | undefined): T | undefined {\r\n if (v && (v.result || typeof v.result === 'boolean')) {\r\n return v.result\r\n }\r\n return undefined\r\n}\r\n","import { Observable, throwError, take, mergeMap, forkJoin } from 'rxjs'\nimport { catchError, map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\nimport clone from 'just-clone'\nimport { iHttpParamSettings } from '../../typification/rest/settings'\nimport BaseHttpServices from '../../services/http/http'\nimport {\n iBatchRequestAnswer, iBatchRequestParam,\n iBatchRequestParamArr,\n iBatchRequestParamHttp, keyBatch\n} from '../../typification/rest/batch/batchRequestParam'\nimport flatten from 'just-flatten-it'\nimport { REST_SETTINGS } from '../../settings'\nimport { mapResult } from '../../functions/mapResult'\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\n\ntype TransformFunction<T, R> = (input: T) => R;\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class HttpBXServices extends BaseHttpServices {\n\n override timeNowOnServer() {\n return this.httpGet<{ result?: Date, error?: string }>('server.time').pipe(\n map(v => {\n if (v && v.result) {\n return new Date(v.result)\n }\n return undefined\n }),\n )\n }\n\n /**\n * Это пиздец а не метод\n * @param param\n */\n override branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): Observable<iBatchRequestAnswer<A>[] | undefined> {\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\n const size = 50 // больше не отдаст\n let subarray = [] //массив в который будет выведен результат.\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\n }\n\n return forkJoin(\n subarray.map(i => {\n return this.httpPost('batch.json', {\n halt: 0,\n cmd: Object.assign({}, ...i.map(x => {\n return {[x[0]]: x[1]}\n }))\n })\n })\n ) as Observable<iBatchRequestAnswer<A>[]>\n }\n\n override prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\n (obj, key) => {\n obj[key] = '';\n return obj;\n },\n {} as iBatchRequestParamHttp\n );\n for (let key in param) {\n if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\n res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString()\n }\n }\n return res\n }\n\n override mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\n return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {\n [key: keyBatch]: T\n }\n }\n\n override mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\n return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))\n }\n\n post<T>(name: string[],\n params: any,\n textError: string,\n mapHttp?: undefined,\n settings?: iHttpParamSettings): Observable<iHttpAnswerBX<T> | undefined>\n post<T, R>(name: string[],\n params: any,\n textError: string,\n mapHttp: TransformFunction<T, R>,\n settings?: iHttpParamSettings): Observable<iHttpAnswerBX<R> | undefined>\n post<T, R>(name: string[],\n params: any = {},\n textError = '',\n mapHttp: TransformFunction<T, R> | undefined = undefined,\n settings: iHttpParamSettings = this.defSettings) {\n return this.httpPost<iHttpAnswerBX<T>>(this.getNameMethod(name), params, textError, settings).pipe(\n map(v => {\n console.log('result', v)\n if (v && v.result && REST_SETTINGS.support.map && mapHttp) {\n // console.log('result2', v, Array.isArray(v.result)\n // ? Object.assign(v, {result: v.result.map(i => mapHttp(i))}) as iHttpAnswerBX<R>\n // : Object.assign(v, {result: mapHttp(v.result)}) as iHttpAnswerBX<R>)\n\n // Array.isArray(v.result)\n // ? Object.assign(v, {result: v.result.map(i => mapHttp(i))}) as iHttpAnswerBX<R>\n // :\n return Object.assign(v, {result: mapHttp(v.result)}) as iHttpAnswerBX<R>\n }\n return v\n }\n ),\n map(v => (v && REST_SETTINGS.support.result) ? mapResult : v)\n )\n }\n\n get<T, R = T>(name: string[],\n params: any = {},\n textError = '',\n mapHttp: TransformFunction<T, R> = (v: any) => {\n return v\n },\n settings: iHttpParamSettings = this.defSettings) {\n return this.httpGet<iHttpAnswerBX<T>>(this.getNameMethod(name), params, textError, settings).pipe(\n map(v => {\n if (v && v.result && REST_SETTINGS.support.map) {\n return Array.isArray(v.result)\n ? Object.assign(v, {result: v.result.map(i => mapHttp(i))}) as iHttpAnswerBX<R>\n : Object.assign(v, {result: mapHttp(v.result)}) as iHttpAnswerBX<R>\n }\n return v\n }\n ),\n map(v => (v && REST_SETTINGS.support.result) ? mapResult : v)\n )\n }\n\n override httpPost<T>(url: string,\n params: any = {},\n textError = '',\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n return this.session.getAuthParams().pipe(\n mergeMap(auth => {\n if (auth) {\n const paramsClone = clone(params)\n paramsClone[this.session.getKeyAuth()] = auth\n return this.session.getBaseUrl().pipe(\n mergeMap(v => {\n if (v) {\n return this.http.post<T | undefined>(\n this.prepareBaseAddress(v) + url,\n this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))\n .pipe(\n take(1),\n catchError(err => {\n if (!textError.length && err.error.error_description) {\n textError = err.error.error_description\n }\n\n this.snackBar.error('Ошибка: ' + textError)\n return throwError(() => err)\n })\n )\n }\n return throwError(() => 'get base url error')\n }))\n } else {\n this.snackBar.error('Error: Auth not get')\n return throwError(() => 'auth not get')\n }\n }))\n }\n\n override httpGet<T>(\n url: string,\n params: any = {},\n textError = '',\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n return this.session.getAuthParams().pipe(\n mergeMap(auth => {\n if (auth) {\n if (params === null) {\n params = {}\n }\n const paramsClone = clone(params)\n paramsClone[this.session.getKeyAuth()] = auth\n let options = {\n params: this.getHttpParamsGet(paramsClone)\n }\n\n return this.session.getBaseUrl().pipe(\n mergeMap(v => {\n if (v) {\n return this.http.get<T>(this.prepareBaseAddress(v) + url, options).pipe(\n take(1),\n catchError(err => {\n if (!textError.length && err.error.error_description) {\n textError = err.error.error_description\n }\n\n this.snackBar.error('Ошибка: ' + textError)\n return throwError(() => err)\n }))\n }\n return throwError(() => 'get base url error')\n })\n )\n } else {\n this.snackBar.error('Error: Auth not get')\n return throwError(() => 'auth not get')\n }\n })\n )\n }\n\n override getNameMethod(arr: string[]) {\n return arr.join('.')\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../services/base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BaseMapServices extends BaseServices{\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BaseMapServices from '../base'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestListsElementMap extends BaseMapServices {\r\n\r\n get(item: iBXRestHttpListsElement): iBXRestListsElement\r\n {\r\n return Object.assign(item,{\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: this.toNum(item.CREATED_BY),\r\n IBLOCK_ID: this.toNum(item.IBLOCK_ID),\r\n ID: this.toNum(item.ID)\r\n })\r\n }\r\n\r\n}\r\n","import { $add, $delete, $element, $file, $get, $lists, $update, $url } from '../../consts/part-name-metods'\r\n\r\nimport HttpBXServices from '../../services/http/HttpBX'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestListsElement {\r\n url = {\r\n add: [$lists, $element, $add], // Метод создаёт элемент списка\r\n delete: [$lists, $element, $delete], // Метод удаляет элемент списка\r\n get: [$lists, $element, $get], // Метод возвращает список элементов или элемент\r\n update: [$lists, $element, $update], //\tМетод обновляет элемент списка\r\n getFileUrl: [$lists, $element, $get, $file, $url] // Метод возвращает путь к файлу\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n private mapResult: BXRestListsElementMap\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.http.post<iBXRestHttpListsElement[], iBXRestListsElement[]>(\r\n this.url.get,\r\n pram,\r\n 'Не Удалось получить элемент списка',\r\n (v: iBXRestHttpListsElement[]) => v.map( i => this.mapResult.get(i))\r\n )\r\n }\r\n\r\n customPipe() {\r\n\r\n }\r\n\r\n // add(param: iRestBXParamListsElementAdd) {\r\n // return this.http.post<iHttpAnswerBX<number>>(this.url.add, param)\r\n // }\r\n}\r\n","import {\r\n $add,\r\n $delete,\r\n $get,\r\n $iblock,\r\n $id,\r\n $lists,\r\n $type,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from './lists/element'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestLists {\r\n url = {\r\n add: [$lists, $add], // Метод создаёт список\r\n delete: [$lists, $delete], // Метод удаляет список\r\n get: [$lists, $get], // Метод возвращает данные по спискам\r\n update: [$lists, $update], // Метод обновляет существующий список\r\n getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока\r\n }\r\n\r\n constructor(\r\n public element: BXRestListsElement\r\n ) {\r\n }\r\n\r\n // constructor(\r\n // private http: HttpBXServices,\r\n // private listsMap: ListsMapServices\r\n // ) {\r\n // }\r\n\r\n // get(pram: iBXRestParamListGet): Observable<ItemLists[] | undefined> {\r\n // return this.http.post<iHttpAnswerBX<ItemListsBX[]>>(this.url.get, pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BaseMapServices extends BaseServices {\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BaseMapServices from '../base'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../../../typification/rest/user/user'\r\nimport clone from 'just-clone'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BitrixApiUserMapServices extends BaseMapServices {\r\n\r\n HttpToBX(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(clone(user), {\r\n ID: this.toNum(user.ID),\r\n IS_ONLINE: this.toBool(user.IS_ONLINE),\r\n DATE_REGISTER: this.toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = this.toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: this.toStr(user.ID),\r\n IS_ONLINE: this.toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: this.getBXStrTime(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: this.toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { Observable, of } from 'rxjs'\nimport { first, mergeMap } from 'rxjs/operators'\nimport clone from 'just-clone'\nimport { iBXGetParam } from '../typification/rest/user/get'\nimport HttpBXServices from '../services/http/HttpBX'\nimport UserFilterSearch from '../typification/rest/user/UserFilterSearch'\nimport { Store } from '@ngrx/store'\nimport { saveArr, storeUsers } from '../store/users'\nimport { BitrixApiUserMapServices } from '../services/map/rest/user'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../services/snack-bar/snack-bar.service'\nimport iHttpAnswerBX from '../typification/rest/base/httpAnswerBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../consts/part-name-metods'\nimport { Injectable } from '@angular/core'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestUser {\n\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n current: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n user$: Observable<storeUsers>\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n private store: Store<{ users: storeUsers }>,\n private userMap: BitrixApiUserMapServices,\n ) {\n this.user$ = this.store.select('users')\n }\n\n admin() {\n return this.http.get<boolean>(this.url.admin)\n }\n\n get(params: iBXGetParam = {}) {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iBXRestUserHttp[], iBXRestUser[]>\n (\n this.url.get,\n copyParams,\n 'Не удалось получить пользователей',\n (v: iBXRestUserHttp[]) => {return v.map( i => this.userMap.HttpToBX(i))}\n )\n // .pipe(\n // tap(v => {\n // if (v && v.result) {\n // this.saveArrUser(v.result)\n // }\n // })\n // )\n }\n\n current(update = false) {\n if (update) {\n return this.getSelfHttp()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.getSelfHttp()\n }\n }),\n first()\n )\n }\n }\n\n private getSelfHttp() {\n return this.http.get<iBXRestUserHttp, iBXRestUser>\n (this.url.current, {}, 'Не удалось получить пользователя')\n // .pipe(\n // tap(v => {\n // if (v) {\n // this.store.dispatch(saveSelf({self: v}))\n // }\n // }),\n // )\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iHttpAnswerBX<boolean> | undefined>(this.url.access, {ACCESS: access}, textError)\n }\n\n // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n // if (!Object.keys(params).length) {\n // params = clone(this.def.params)\n // }\n //\n // const saveAllUser = compare(params, this.def.params)\n // return this.user$.pipe(\n // take(1),\n // mergeMap(v => {\n // if (v.load.all) {\n // if (compare(this.def.params, params)) {\n // return of(clone(v.data))\n // }\n // }\n //\n // return this.getEndArray(params).pipe(\n // take(1),\n // map(v => {\n // if (v && v.result) {\n // let cl = clone(v.result)\n // return this.saveArrUser(cl)\n // }\n // return undefined\n // }),\n // )\n // }),\n // tap(v => {\n // if (v && v.length && saveAllUser) {\n // this.store.dispatch(loadAll({load: true}))\n // }\n // params.start = this.def.params.start\n // })\n // )\n // }\n\n private saveArrUser(users: iBXRestUserHttp[]) {\n let result: iBXRestUser [] = []\n for (const user of users) {\n result.push(this.userMap.HttpToBX(user))\n }\n this.store.dispatch(saveArr({arr: result}))\n\n return result\n }\n\n search(params: string | UserFilterSearch) {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp[]>>(\n this.url.search,\n params,\n 'Сервер не отвечает на запрос поиска'\n )\n }\n\n fields() {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttpField>>(this.url.fields)\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]) {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.userMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n this.snackBar.error('Одно из указанных полей отправлено не верно')\n }\n }\n return this.http.post<iBXRestUserHttp[]>(\n this.url.update,\n sendData,\n 'Не удалось обновить пользователя с ID' + user.ID\n )\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n // return this.get(params).pipe(\n // mergeMap(items => {\n // if (items && items.result && typeof items.result === 'object') {\n // if (items.next) {\n // params.start = items.next\n // return this.getEndArray(params).pipe(map(vEnd => {\n // if (vEnd && items.result && vEnd.result) {\n // return {result: [...items.result, ...vEnd.result]}\n // }\n // return (items) ? items : undefined\n // }))\n // }\n // return of(items)\n // } else {\n // return of(undefined)\n // }\n // }),\n // )\n // }\n\n private setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { BXRestUser } from './request/user'\r\nimport BXRestLists from './request/lists'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRest {\r\n constructor(\r\n public user: BXRestUser,\r\n public lists: BXRestLists\r\n ) {\r\n }\r\n}\r\n","/*\n * Public API Surface of bx-rest\n */\n\nexport { BXRest } from './rest'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","JSON","save","initialState","Cookies","LocalStorage","i2","i3.RestServices","BaseHttpServices","BaseMapServices","i1.BXRestListsElement","mergeMap","i2.BitrixApiUserMapServices"],"mappings":"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"}
1
+ {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/settings.ts","../../../projects/bx-rest/src/functions/mapResult.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/bx-rest.module.ts","../../../projects/bx-rest/src/services/snack-bar/toast-message/toast-message.component.ts","../../../projects/bx-rest/src/services/snack-bar/toast-message/toast-message.component.html","../../../projects/bx-rest/src/services/snack-bar/snack-bar.service.ts","../../../projects/bx-rest/src/functions/serializeJavascript.ts","../../../projects/bx-rest/src/services/vanilla/JSON.ts","../../../projects/bx-rest/src/services/vanilla/сookies.ts","../../../projects/bx-rest/src/store/auth.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/typification/rest/api-lib.ts","../../../projects/bx-rest/src/services/http/sessionKey.ts","../../../projects/bx-rest/src/services/http/HttpData.ts","../../../projects/bx-rest/src/services/http/base/base.ts","../../../projects/bx-rest/src/services/http/base/http.ts","../../../projects/bx-rest/src/services/http/http.ts","../../../projects/bx-rest/src/services/http/HttpBX.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/map/base.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/tasks/task.ts","../../../projects/bx-rest/src/request/tasks.ts","../../../projects/bx-rest/src/request/disk/file.ts","../../../projects/bx-rest/src/request/disk/folder.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/base.ts","../../../projects/bx-rest/src/map/disk/folder.ts","../../../projects/bx-rest/src/request-navvy/disk/folder.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/rest.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { iRestSettings } from './typification/settings'\r\n\r\nexport const REST_SETTINGS: iRestSettings = {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth'\r\n },\r\n urls: {\r\n home: 'b24.trace-studio.com'\r\n }\r\n}\r\n","import { iBXRestAnswer } from '../typification/rest/base/answer'\r\n\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T>): NonNullable<T>\r\nexport function BXRestMapResult(v: undefined): undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined): T | undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined) {\r\n if (v && (v.result || typeof v.result === 'boolean')) {\r\n return v.result\r\n }\r\n return undefined\r\n}\r\n","export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $deger = 'deger'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\n","import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","import { Component, inject, Inject, ViewEncapsulation } from '@angular/core'\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar'\nimport { BxRestModule } from '../../../request/bx-rest.module'\n\n@Component({\n selector: 'app-view',\n templateUrl: './toast-message.component.html',\n styleUrls: ['./toast-message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [BxRestModule],\n})\nexport class ToastMessageComponent {\n\n snackBarRef = inject(MatSnackBarRef)\n\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: { message: string, type: 'error' | 'warning' | 'success' }) {\n }\n\n getClass():string{\n switch (this.data.type){\n case 'error':\n case 'warning':\n case 'success':\n return this.data.type + '-message';\n }\n return '';\n }\n}\n","<div class=\"w-100 d-flex\">\n <span matSnackBarLabel [class]=\"getClass()\">\n {{ data.message }}\n</span>\n <span matSnackBarActions [class]=\"getClass()\">\n <button mat-button matSnackBarAction (click)=\"snackBarRef.dismissWithAction()\">\n <mat-icon>\n close\n </mat-icon>\n </button>\n</span>\n</div>\n\n","/**\n * Сервис для вывода сообщений пользователю\n * TODO: логирование\n */\nimport { Injectable } from '@angular/core'\nimport { ToastMessageComponent } from '../../services/snack-bar/toast-message/toast-message.component'\nimport { MatSnackBar } from '@angular/material/snack-bar'\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class SnackBarService {\n\n constructor(private snackBar: MatSnackBar) {\n }\n\n error(message: string, sec = 12): void {\n this.standardMessage(message, sec, 'error')\n }\n\n warning(message: string, sec = 7): void {\n this.standardMessage(message, sec, 'warning');\n }\n\n success(message: string, sec = 7): void {\n this.standardMessage(message, sec, 'success');\n }\n\n standardMessage(message: string, sec = 5, name = 'error'): void{\n this.snackBar.open(message);\n this.snackBar.openFromComponent(ToastMessageComponent, {\n duration: sec * 1000,\n data: {\n message: message,\n type: name\n },\n panelClass: name + '-box'\n });\n }\n}\n","// Generate an internal UID to make the regexp pattern harder to guess.\nconst UID_LENGTH = 16;\nconst UID = generateUID();\nconst PLACE_HOLDER_REGEXP = new RegExp('(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\\\d+)__@\"', 'g');\n\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code]\\s*}/g;\nconst IS_PURE_FUNCTION = /function.*?\\(/;\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\nconst UNSAFE_CHARS_REGEXP = /[<>\\/\\u2028\\u2029]/g;\n\nconst RESERVED_SYMBOLS = ['*', 'async'];\n\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\n// Unicode char counterparts which are safe to use in JavaScript strings.\nconst ESCAPED_CHARS: {[key: string]: string} = {\n '<': '\\\\u003C',\n '>': '\\\\u003E',\n '/': '\\\\u002F',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\n\nfunction escapeUnsafeChars(unsafeChar: string): string {\n return (ESCAPED_CHARS.hasOwnProperty(unsafeChar)) ? ESCAPED_CHARS[unsafeChar] : '';\n}\n\nfunction generateUID() {\n let bytes = window.crypto.getRandomValues(new Uint32Array(UID_LENGTH))\n let result = '';\n for (let i = 0; i < UID_LENGTH; ++i) {\n result += bytes[i].toString(16);\n }\n return result;\n}\n\nfunction deleteFunctions(obj: any) {\n let functionKeys = [];\n for (let key in obj) {\n if (typeof obj[key] === \"function\") {\n functionKeys.push(key);\n }\n }\n for (let i = 0; i < functionKeys.length; i++) {\n delete obj[functionKeys[i]];\n }\n}\n\nfunction serialize(obj: any, options: any = {}): any {\n // Backwards-compatibility for `space` as the second argument.\n if (typeof options === 'number' || typeof options === 'string') {\n options = {space: options};\n }\n\n let functions: Function[] = [];\n let regexps: any[] = [];\n let dates: any[] = [];\n let maps: any[] = [];\n let sets: any[] = [];\n let arrays: any[] = [];\n let undefs: any[] = [];\n let infinities: any[] = [];\n let bigInts: any[] = [];\n let urls: any[] = [];\n\n // Returns placeholders for functions and regexps (identified by index)\n // which are later replaced by their string representation.\n function replacer(key: string, value: any) {\n\n // For nested function\n if (options.ignoreFunction) {\n deleteFunctions(value);\n }\n\n if (!value && value !== undefined) {\n return value;\n }\n\n // let origValue: any = this[key];\n let origValue: any = value;\n let type = typeof origValue;\n\n switch (type){\n case 'object':\n\n if (origValue instanceof RegExp) {\n return '@__R-' + UID + '-' + (regexps.push(origValue) - 1) + '__@';\n } else if (origValue instanceof Date) {\n return '@__D-' + UID + '-' + (dates.push(origValue) - 1) + '__@';\n } else if (origValue instanceof Map) {\n return '@__M-' + UID + '-' + (maps.push(origValue) - 1) + '__@';\n } else if (origValue instanceof Set) {\n return '@__S-' + UID + '-' + (sets.push(origValue) - 1) + '__@';\n }\n\n if (origValue instanceof Array) {\n let isSparse = origValue.filter(function () {\n return true\n }).length !== origValue.length;\n if (isSparse) {\n return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@';\n }\n }\n\n if (origValue instanceof URL) {\n return '@__L-' + UID + '-' + (urls.push(origValue) - 1) + '__@';\n }\n break;\n case 'function':\n return '@__F-' + UID + '-' + (functions.push(origValue) - 1) + '__@';\n case 'undefined':\n return '@__U-' + UID + '-' + (undefs.push(origValue) - 1) + '__@';\n case 'number':\n return '@__I-' + UID + '-' + (infinities.push(origValue) - 1) + '__@';\n case 'bigint':\n return '@__B-' + UID + '-' + (bigInts.push(origValue) - 1) + '__@';\n }\n\n return value;\n }\n\n function serializeFunc(fn: Function) {\n let serializedFn = fn.toString();\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\n throw new TypeError('Serializing native function: ' + fn.name);\n }\n\n // pure functions, example: {key: function() {}}\n if (IS_PURE_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n // arrow functions, example: arg1 => arg1+5\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n let argsStartsAt = serializedFn.indexOf('(');\n let def = serializedFn.slice(0, argsStartsAt)\n .trim()\n .split(' ')\n .filter(function (val) {\n return val.length > 0\n });\n\n let nonReservedSymbols = def.filter(function (val) {\n return RESERVED_SYMBOLS.indexOf(val) === -1\n });\n\n // enhanced literal objects, example: {key() {}}\n if (nonReservedSymbols.length > 0) {\n return (def.indexOf('async') > -1 ? 'async ' : '') + 'function'\n + (def.join('').indexOf('*') > -1 ? '*' : '')\n + serializedFn.slice(argsStartsAt);\n }\n\n // arrow functions\n return serializedFn;\n }\n\n // Check if the parameter is function\n if (options.ignoreFunction && typeof obj === \"function\") {\n obj = undefined;\n }\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (obj === undefined) {\n return String(obj);\n }\n\n let str: string = '';\n\n // Creates a JSON string representation of the value.\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\n if (options.isJSON && !options.space) {\n str = JSON.stringify(obj);\n } else {\n str = JSON.stringify(obj, options.isJSON ? undefined : replacer, options.space);\n }\n\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\n // their safe Unicode char counterpart. This _must_ happen before the\n // regexps and functions are serialized and added back to the string.\n if (options.unsafe !== true) {\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\n }\n\n if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {\n return str;\n }\n\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\n // JSON string with their string representations. If the original value can\n // not be found, then `undefined` is used.\n return str.replace(PLACE_HOLDER_REGEXP, function (match, backSlash, type, valueIndex) {\n // The placeholder may not be preceded by a backslash. This is to prevent\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\n // invalid JS.\n if (backSlash) {\n return match;\n }\n\n switch (type){\n case 'D':\n return \"new Date(\\\"\" + dates[valueIndex].toISOString() + \"\\\")\"\n case 'R':\n return \"new RegExp(\" + serialize(regexps[valueIndex].source) + \", \\\"\" + regexps[valueIndex].flags + \"\\\")\"\n case 'M':\n return \"new Map(\" + serialize(Array.from(maps[valueIndex].entries()), options) + \")\"\n case 'S':\n return \"new Set(\" + serialize(Array.from(sets[valueIndex].values()), options) + \")\"\n case 'A':\n return \"Array.prototype.slice.call(\" + serialize(Object.assign({length: arrays[valueIndex].length}, arrays[valueIndex]), options) + \")\"\n case 'U':\n return 'undefined'\n case 'I':\n return infinities[valueIndex]\n case 'B':\n return \"BigInt(\\\"\" + bigInts[valueIndex] + \"\\\")\"\n case 'L':\n return \"new URL(\\\"\" + urls[valueIndex].toString() + \"\\\")\"\n }\n\n let fn = functions[valueIndex];\n\n return serializeFunc(fn);\n });\n}\n\nexport default serialize\n","import { Injectable } from '@angular/core'\nimport serialize from '../../functions/serializeJavascript'\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class JSONServices {\n static deserialize(data: any) {\n return eval('(' + data + ')')\n }\n\n static serialize(data: any ) {\n return serialize(data)\n }\n}\n","import { Injectable } from '@angular/core'\nimport JSON from '../../services/vanilla/JSON'\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class CookiesServices {\n\n static get(name: string): string {\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n if (results)\n return results[2]\n else\n return ''\n }\n\n static set(name: string, value: string, age: number = 0) {\n let string = name + '=' + value + ';'\n if(age) {\n string += ' max-age=' + age\n }\n string += '; SameSite=None; Secure'\n document.cookie = string\n }\n\n static setObj(name: string, value: any, age: number = 0) {\n let string = name + '=' + JSON.serialize(value) + ';'\n if(age) {\n string += ' max-age=' + age\n }\n string += '; SameSite=None; Secure'\n document.cookie = string\n }\n\n static getObj<T>(name: string): T | false {\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n if (results) {\n return JSON.deserialize(results[2])\n }\n\n return false\n }\n}\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport saveApplicationAuth from '../typification/auth/save'\nimport clone from 'just-clone'\nexport interface saveApplicationAuthPath {\n access_token?: string, // основной авторизационный токен, требуемый для доступа к REST API\n client_endpoint?: string, // адрес REST-интерфейса портала\n domain?: string,\n expires?: number,\n expires_in?: number,\n member_id?: string,\n refresh_token?: string, // дополнительный авторизационный токен, служащий для продления сохраненной авторизации\n scope?: string,\n server_endpoint?: string, // адрес REST-интерфейса сервера\n status?: string, // статус приложения на портале\n user_id?: number\n type?: string\n}\nexport const save = createAction('[Auth Component] Save', props<saveApplicationAuth | saveApplicationAuthPath>())\nexport const saveAccessToken = createAction('[Auth Component] SaveAccessToken', props<saveApplicationAuthPath>())\n\nexport const initialState: saveApplicationAuth = {\n access_token: '',\n client_endpoint: '',\n domain: '',\n expires: 0,\n expires_in: 0,\n member_id: '',\n refresh_token: '',\n scope: '',\n server_endpoint: '',\n status: '',\n user_id: 0\n}\n\nconst _authReducer = createReducer(\n initialState,\n on(saveAccessToken, (s, data) => {\n let copy = clone(s)\n return Object.assign(copy, data)\n }),\n);\n\nexport function authReducer(state = initialState, action: Action) {\n return _authReducer(state, action);\n}\n","export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\nimport { REST_SETTINGS } from '../settings';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNum(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n\r\n return this.prepareBaseAddress(REST_SETTINGS.urls.home)\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\nimport JSON from '../../services/vanilla/JSON'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageServices {\n\n static get(name: string): any {\n return localStorage.getItem(name)\n }\n\n static getObj<T>(name: string): T | null {\n return JSON.deserialize(localStorage.getItem(name))\n }\n\n static set(name: string, value: string): void {\n localStorage.setItem(name, value)\n }\n\n static setObj(name: string, value: any): void {\n let get = this.get(name)\n if(get && typeof get === 'object'){\n localStorage.setItem(\n name,\n JSON.serialize(\n Object.assign(\n get,\n value\n )\n )\n )\n } else {\n localStorage.setItem(name, JSON.serialize(value))\n }\n }\n\n static del(name: string): void {\n localStorage.removeItem(name)\n }\n\n}\n","import { Injectable } from '@angular/core'\r\nimport { iRestLib } from './lib'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RestServices {\r\n BX24: iRestLib | false = false\r\n\r\n constructor() {\r\n // @ts-ignore\r\n this.BX24 = (window.BX24) ? window.BX24 : false\r\n }\r\n\r\n init(callBack: Function) {\r\n return (this.BX24) ? this.BX24.init(callBack) : false\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core'\nimport Cookies from '../../services/vanilla/сookies'\nimport { Store } from '@ngrx/store'\nimport saveApplicationAuth from '../../typification/auth/save'\n// import { environment as env } from 'bx-rest/environments/environment'\nimport { filter, Observable, of, Subscription, take } from 'rxjs'\nimport { ActivatedRoute, ParamMap } from '@angular/router'\nimport { saveAccessToken, saveApplicationAuthPath } from '../../store/auth'\nimport { map } from 'rxjs/operators'\nimport { BaseServices } from '../base'\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\nimport { RestServices } from '../../typification/rest/api-lib'\nimport { REST_SETTINGS } from '../../settings'\n\ntype IKeyAuth = 'sessid' | 'auth' | string\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class SessionKeyServices extends BaseServices {\n\n authHave = false\n authData$: Observable<saveApplicationAuth>\n authData: saveApplicationAuth | undefined\n subscribe = {\n authData: new Subscription()\n }\n\n REST_SETTINGS\n\n constructor(\n public store: Store<{ auth: saveApplicationAuth }>,\n private route: ActivatedRoute,\n public BxApiLib: RestServices,\n @Optional() @Inject(REST_SETTINGS) REST_SETTINGS: {\n auth: 'cookies',\n urls: {\n home: ''\n }\n }\n ) {\n super()\n this.REST_SETTINGS = REST_SETTINGS\n this.authData$ = this.store.select('auth')\n this.authData$.subscribe(authData => {\n if ((authData && !authData.access_token.length) || !authData) {\n // получаем токен по собственным каналом (в битриксе приложение trace:apps.trace)\n window.addEventListener('message', (event: MessageEvent) => {\n if (event.origin !== window.origin) { // проверяем что это не наше сообщение (с текущего приложения)\n if (event.data && event.data.param) {\n if (typeof event.data.param === 'string') {\n event.data.param = JSON.parse(event.data.param)\n }\n\n let save: saveApplicationAuthPath = {}\n\n if (event.data.param.access_token) {\n let param = event.data.param;\n save.access_token = event.data.param.access_token\n save = {\n access_token: (param.access_token) ? param.access_token : undefined,\n client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\n domain: (param.domain) ? param.domain : undefined,\n expires: (param.expires) ? param.expires : undefined,\n expires_in: (param.expires_in) ? param.expires_in : undefined,\n member_id: (param.member_id) ? param.member_id : undefined,\n refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\n scope: (param.scope) ? param.scope : undefined,\n server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\n status: (param.status) ? param.status : undefined,\n user_id: (param.user_id) ? param.user_id : undefined,\n type: (param.type) ? param.type : undefined,\n }\n }\n\n if (Object.keys(save).length && save.access_token) {\n this.store.dispatch(saveAccessToken(save))\n this.subscribeAll()\n }\n }\n }\n })\n\n this.subscribe.authData = this.route.queryParamMap\n .pipe(\n filter(param =>\n param.has('AUTH_ID')\n || param.has('access_token')\n || param.has('REFRESH_ID')\n || param.has('DOMAIN')\n )\n )\n .subscribe((param: ParamMap) => {\n let save: saveApplicationAuthPath = {}\n if (param.has('AUTH_ID') && !authData.access_token.length) {\n const get = param.get('AUTH_ID')\n if (get) {\n Cookies.set('auth', get) // потом убрать\n save.access_token = get\n }\n }\n\n if (param.has('access_token') && !authData.access_token.length) {\n const get = param.get('access_token')\n if (get) {\n Cookies.set('auth', get) // потом убрать\n save.access_token = get\n }\n }\n\n if (param.has('REFRESH_ID') && !authData.refresh_token.length) {\n const get = param.get('REFRESH_ID')\n if (get) {\n save.refresh_token = get\n }\n }\n\n if (param.has('DOMAIN') && !authData.domain.length) {\n const get = param.get('DOMAIN')\n if (get) {\n save.domain = get\n }\n }\n if (Object.keys(save).length && save.access_token) {\n this.store.dispatch(saveAccessToken(save))\n this.subscribeAll()\n } else {\n // если битрикс не шлёт нужные мне параметры на прямую\n // просим их мне отдать так как описано это в документации\n let f = () => {\n if (this.BxApiLib.BX24) {\n const initDate = this.BxApiLib.BX24.getAuth()\n this.store.dispatch(saveAccessToken(initDate))\n }\n }\n\n this.BxApiLib.init(f)\n }\n\n })\n } else if (this.getAuth().length) {\n this.authHave = true\n }\n\n this.authData = authData\n })\n }\n\n subscribeAll() {\n this.subscribe.authData.unsubscribe()\n }\n\n getAuth(): string {\n switch (REST_SETTINGS.auth.key){\n case 'auth':\n return Cookies.get('auth')\n default:\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()) {\n return (<any>window).BX.bitrix_sessid()\n } else if (this.getSessid().length) {\n let str = this.getSessid()\n return (str) ? str : ''\n } else {\n return Cookies.get('auth')\n }\n }\n }\n\n getKeyAuth(): IKeyAuth {\n if(REST_SETTINGS.auth.key.length){\n return REST_SETTINGS.auth.key\n } else {\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()\n || this.getSessid().length) {\n return 'sessid'\n } else {\n return 'auth'\n }\n }\n }\n\n getSessid() {\n const check = new URLSearchParams(document.location.search).get('sessid')\n if (check) {\n LocalStorage.set('sessid', check)\n return check\n } else if (LocalStorage.get('sessid')) {\n return LocalStorage.get('sessid')\n }\n return ''\n }\n\n setAuthParams<T>(params: any): boolean {\n const keyAuth = this.getKeyAuth()\n if (params[keyAuth]) {\n return true\n } else if (keyAuth) {\n params[keyAuth] = this.getAuth()\n return true\n }\n return false\n }\n\n getAuthParams(): Observable<string | undefined> {\n switch (REST_SETTINGS.auth.source) {\n case 'cookies':\n return of(this.getAuth())\n default:\n return this.authData$.pipe(\n take(1),\n map(v => (v) ? v.access_token : undefined)\n )\n }\n }\n\n getBaseUrl(): Observable<string | undefined> {\n return of(this.prepareBaseAddress(this.REST_SETTINGS.urls.home, 'rest'))\n // return this.authData$.pipe( // TODO: разобраться позже\n // take(1),\n // map(v => (v && v.domain) ? this.prepareBaseAddress(v.domain) : undefined)\n // )\n }\n\n // getHomeUrl(): string {\n // return env.urls.home\n // }\n}\n","import { BaseServices } from '../base'\r\nimport { HttpParams } from '@angular/common/http'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\n\r\nexport class HttpData extends BaseServices {\r\n\r\n defSettings: iHttpParamSettings = {\r\n timeZone: {\r\n calc: true,\r\n levelOut: false\r\n }\r\n }\r\n\r\n getHttpParamsGet( // не так уж и сложно сделать сложенный HttpParams, да гугл?\r\n obj: any,\r\n sendHttpParams: HttpParams = new HttpParams(),\r\n thisArray = false,\r\n nesting: string[] = [],\r\n // settings = this.defSettings\r\n _ = this.defSettings\r\n ): any {\r\n for (const key in obj) {\r\n let setKey = ''\r\n if (nesting.length) {\r\n let first = nesting[0]\r\n setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n : first + '[' + key + ']'\r\n } else {\r\n setKey = key\r\n }\r\n switch (typeof obj[key]) {\r\n case 'string':\r\n sendHttpParams = sendHttpParams.set(setKey, obj[key])\r\n break\r\n case 'symbol':\r\n case 'number':\r\n case 'bigint':\r\n case 'boolean':\r\n sendHttpParams = sendHttpParams.set(setKey, String(obj[key]))\r\n break\r\n case 'object':\r\n nesting.push(key)\r\n sendHttpParams = this.getHttpParamsGet(obj[key], sendHttpParams, false, nesting)\r\n nesting.pop()\r\n break\r\n case 'function':\r\n case 'undefined':\r\n default:\r\n console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj)\r\n }\r\n }\r\n return sendHttpParams\r\n }\r\n\r\n getHttpParamsPost(\r\n obj: any,\r\n sendHttpParams: FormData = new FormData(),\r\n thisArray = false,\r\n nesting: string[] = [],\r\n settings = this.defSettings\r\n ): any {\r\n\r\n if (obj instanceof Blob) {\r\n let first = nesting[0]\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, obj)\r\n return sendHttpParams\r\n } else if (obj instanceof Date) {\r\n let first = nesting[0]\r\n let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString())\r\n return sendHttpParams\r\n } else {\r\n for (const key in obj) {\r\n let setKey = ''\r\n if (nesting.length) {\r\n let first = nesting[0]\r\n setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n : first + '[' + key + ']'\r\n } else {\r\n setKey = key\r\n }\r\n switch (typeof obj[key]) {\r\n case 'string':\r\n sendHttpParams.set(setKey, obj[key])\r\n break\r\n case 'symbol':\r\n case 'number':\r\n case 'bigint':\r\n case 'boolean':\r\n sendHttpParams.set(setKey, String(obj[key]))\r\n break\r\n case 'object':\r\n nesting.push(key)\r\n sendHttpParams = this.getHttpParamsPost(\r\n obj[key],\r\n sendHttpParams,\r\n false,\r\n nesting,\r\n settings\r\n )\r\n nesting.pop()\r\n break\r\n case 'function':\r\n case 'undefined':\r\n default:\r\n console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj)\r\n }\r\n }\r\n }\r\n return sendHttpParams\r\n }\r\n\r\n sliceArrayIntoChunks(arr: any[], chunkSize: number) {\r\n const res = [];\r\n for (let i = 0; i < arr.length; i += chunkSize) {\r\n const chunk = arr.slice(i, i + chunkSize);\r\n res.push(chunk);\r\n }\r\n return res;\r\n }\r\n\r\n removingMultipleSlashes(str: string) {\r\n return str.replace(/\\/{2,}/g, '/')\r\n }\r\n}\r\n","// import { iHttpParamSettings } from '../../../typification/rest/settings'\r\n// import { iHttpParamSettings } from 'bx-rest/typification/rest/settings'\r\n\r\nimport { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport SnackBarService from '../../../services/snack-bar/snack-bar.service'\r\nimport { Observable, of, } from 'rxjs'\r\nimport { HttpData } from '../../../services/http/HttpData'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class BaseHttp extends HttpData {\r\n\r\n protected constructor(public http: HttpClient, public snackBar: SnackBarService) {\r\n super()\r\n }\r\n\r\n abstract httpGet<T>(\r\n url: string,\r\n params: any,\r\n textError: string,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n abstract httpPost<T>(url: string,\r\n params: any ,\r\n textError: string,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n handleError<T>(\r\n result?: T,\r\n textError = 'получения данных') {\r\n return (error: Error): Observable<T> => {\r\n console.error(`failed: ${error.message}`)\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return of(result as T)\r\n };\r\n }\r\n}\r\n","import { Observable, throwError } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { HttpParams } from '@angular/common/http'\r\nimport { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { BaseHttp } from '../../../services/http/base/base'\r\n\r\nexport class BaseHttpServices extends BaseHttp {\r\n\r\n public httpGet<T>(\r\n url: string,\r\n params = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.http.get<T | undefined>(url, {\r\n params: this.getHttpParamsGet(params, new HttpParams(), false, [], settings)\r\n }).pipe(\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n public httpPost<T>(url: string,\r\n params: any = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.http.post<T | undefined>(\r\n url,\r\n this.getHttpParamsPost(params, new FormData(), false, [], settings)\r\n ).pipe(\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n // TODO: доделать\r\n // httpPostBaseWithFile<T>(url: string,\r\n // params: any = {},\r\n // textError = ''): Observable<T | undefined> {\r\n // let searchFile = Object.values(params).find((i: any) => i instanceof Blob)\r\n // if (searchFile) {\r\n // return this.http.post<T | undefined>(url, this.getHttpParamsPost(params)).pipe(\r\n // catchError(err => {\r\n // this.snackBar.error('Ошибка: ' + textError)\r\n // console.error(err)\r\n // return throwError(() => err)\r\n // })\r\n // )\r\n // } else {\r\n // return this.httpPost(url, params, textError)\r\n // }\r\n // }\r\n}\r\n","import { Observable, throwError, take, mergeMap, forkJoin } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\r\nimport SessionKeyServices from '../../services/http/sessionKey'\r\nimport clone from 'just-clone'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\nimport {\r\n iBatchRequestAnswer, iBatchRequestParam,\r\n iBatchRequestParamArr,\r\n iBatchRequestParamHttp,\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport { BaseHttpServices } from './base/http'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class HttpServices extends BaseHttpServices {\r\n\r\n constructor(http: HttpClient, snackBar: SnackBarService, public session: SessionKeyServices) {\r\n super(http, snackBar)\r\n }\r\n\r\n timeNowOnServer() {\r\n return this.httpGet<{ result?: Date, error?: string }>('server.time').pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return new Date(v.result)\r\n }\r\n return undefined\r\n }),\r\n )\r\n }\r\n\r\n /**\r\n * Это пиздец а не метод\r\n * @param param\r\n */\r\n branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n const size = 50 // больше не отдаст\r\n let subarray = [] //массив в который будет выведен результат.\r\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n }\r\n\r\n return forkJoin(\r\n subarray.map(i => {\r\n return this.httpPost('batch.json', {\r\n halt: 0,\r\n cmd: Object.assign({}, ...i.map(x => {\r\n return {[x[0]]: x[1]}\r\n }))\r\n })\r\n })\r\n ) as Observable<iBatchRequestAnswer<A>[]>\r\n }\r\n\r\n prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n (obj, key) => {\r\n obj[key] = '';\r\n return obj;\r\n },\r\n {} as iBatchRequestParamHttp\r\n );\r\n for (let key in param) {\r\n if(typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString()\r\n }\r\n }\r\n return res\r\n }\r\n\r\n // mapBranchResult<T>(res: iBatchRequestAnswer<T>[]){\r\n // return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {[key:keyBatch]: T}\r\n // }\r\n //\r\n // mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[]{\r\n // return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))\r\n // }\r\n\r\n override httpPost<T>(url: string,\r\n params: any = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.session.getAuthParams().pipe(\r\n mergeMap(auth => {\r\n if (auth) {\r\n const paramsClone = clone(params)\r\n paramsClone[this.session.getKeyAuth()] = auth\r\n return this.session.getBaseUrl().pipe(mergeMap(v => {\r\n if (v) {\r\n return this.http.post<T | undefined>(\r\n this.prepareBaseAddress(v) + url,\r\n this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))\r\n .pipe(\r\n take(1),\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n return throwError(() => 'get base url error')\r\n }))\r\n } else {\r\n this.snackBar.error('Error: Auth not get')\r\n return throwError(() => 'auth not get')\r\n }\r\n }))\r\n }\r\n\r\n override httpGet<T>(\r\n url: string,\r\n params: any = {},\r\n textError = '',\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n return this.session.getAuthParams().pipe(\r\n mergeMap(auth => {\r\n if (auth) {\r\n if (params === null) {\r\n params = {}\r\n }\r\n const paramsClone = clone(params)\r\n paramsClone[this.session.getKeyAuth()] = auth\r\n let options = {\r\n params: this.getHttpParamsGet(paramsClone)\r\n }\r\n\r\n return this.session.getBaseUrl().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.http.get<T>(this.prepareBaseAddress(v) + url, options).pipe(\r\n take(1),\r\n catchError(err => {\r\n if (!textError.length && err.error.error_description) {\r\n textError = err.error.error_description\r\n }\r\n\r\n this.snackBar.error('Ошибка: ' + textError)\r\n return throwError(() => err)\r\n }))\r\n }\r\n return throwError(() => 'get base url error')\r\n })\r\n )\r\n } else {\r\n this.snackBar.error('Error: Auth not get')\r\n return throwError(() => 'auth not get')\r\n }\r\n })\r\n )\r\n }\r\n\r\n getNameMethod(arr: string[]) {\r\n return arr.join('.')\r\n }\r\n\r\n}\r\n","import { Observable, throwError, take, mergeMap, forkJoin } from 'rxjs'\nimport { catchError, map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\nimport clone from 'just-clone'\nimport { iHttpParamSettings } from '../../typification/rest/settings'\nimport BaseHttpServices from '../../services/http/http'\nimport {\n iBatchRequestAnswer, iBatchRequestParam,\n iBatchRequestParamArr,\n iBatchRequestParamHttp,\n} from '../../typification/rest/batch/batchRequestParam'\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\n\n// type TransformFunction<T, R> = (input: T) => R;\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class HttpBXServices extends BaseHttpServices {\n\n override timeNowOnServer() {\n return this.httpGet<{ result?: Date, error?: string }>('server.time').pipe(\n map(v => {\n if (v && v.result) {\n return new Date(v.result)\n }\n return undefined\n }),\n )\n }\n\n /**\n * Это пиздец а не метод\n * @param param\n */\n override branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): Observable<iBatchRequestAnswer<A>[] | undefined> {\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\n const size = 50 // больше не отдаст\n let subarray = [] //массив в который будет выведен результат.\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\n }\n\n return forkJoin(\n subarray.map(i => {\n return this.httpPost('batch.json', {\n halt: 0,\n cmd: Object.assign({}, ...i.map(x => {\n return {[x[0]]: x[1]}\n }))\n })\n })\n ) as Observable<iBatchRequestAnswer<A>[]>\n }\n\n override prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\n (obj, key) => {\n obj[key] = '';\n return obj;\n },\n {} as iBatchRequestParamHttp\n );\n for (let key in param) {\n if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\n res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString()\n }\n }\n return res\n }\n\n // override mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\n // return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {\n // [key: keyBatch]: T\n // }\n // }\n //\n // override mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\n // return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))\n // }\n\n post<T>(name: string[],\n params: any = {},\n textError = '',\n settings: iHttpParamSettings = this.defSettings) {\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params, textError, settings)\n }\n\n get<T>(name: string[],\n params: any = {},\n textError = '',\n settings: iHttpParamSettings = this.defSettings) {\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params, textError, settings)\n }\n\n override httpPost<T>(url: string,\n params: any = {},\n textError = '',\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n return this.session.getAuthParams().pipe(\n mergeMap(auth => {\n if (auth) {\n const paramsClone = clone(params)\n paramsClone[this.session.getKeyAuth()] = auth\n return this.session.getBaseUrl().pipe(\n mergeMap(v => {\n if (v) {\n return this.http.post<T | undefined>(\n this.prepareBaseAddress(v) + url,\n this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))\n .pipe(\n take(1),\n catchError(err => {\n if (!textError.length && err.error.error_description) {\n textError = err.error.error_description\n }\n\n this.snackBar.error('Ошибка: ' + textError)\n return throwError(() => err)\n })\n )\n }\n return throwError(() => 'get base url error')\n }))\n } else {\n this.snackBar.error('Error: Auth not get')\n return throwError(() => 'auth not get')\n }\n }))\n }\n\n override httpGet<T>(\n url: string,\n params: any = {},\n textError = '',\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n return this.session.getAuthParams().pipe(\n mergeMap(auth => {\n if (auth) {\n if (params === null) {\n params = {}\n }\n const paramsClone = clone(params)\n paramsClone[this.session.getKeyAuth()] = auth\n let options = {\n params: this.getHttpParamsGet(paramsClone)\n }\n\n return this.session.getBaseUrl().pipe(\n mergeMap(v => {\n if (v) {\n return this.http.get<T>(this.prepareBaseAddress(v) + url, options).pipe(\n take(1),\n catchError(err => {\n if (!textError.length && err.error.error_description) {\n textError = err.error.error_description\n }\n\n this.snackBar.error('Ошибка: ' + textError)\n return throwError(() => err)\n }))\n }\n return throwError(() => 'get base url error')\n })\n )\n } else {\n this.snackBar.error('Error: Auth not get')\n return throwError(() => 'auth not get')\n }\n })\n )\n }\n\n override getNameMethod(arr: string[]) {\n return arr.join('.')\n }\n\n}\n\n","import { $add, $delete, $element, $file, $get, $lists, $update, $url } from '../../consts/part-name-metods'\r\n\r\nimport HttpBXServices from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestListsElement {\r\n url = {\r\n add: [$lists, $element, $add], // Метод создаёт элемент списка\r\n delete: [$lists, $element, $delete], // Метод удаляет элемент списка\r\n get: [$lists, $element, $get], // Метод возвращает список элементов или элемент\r\n update: [$lists, $element, $update], //\tМетод обновляет элемент списка\r\n getFileUrl: [$lists, $element, $get, $file, $url] // Метод возвращает путь к файлу\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n // private mapResult: BXRestListsElementMap\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.http.post<iBXRestHttpListsElement[]>(\r\n this.url.get,\r\n pram,\r\n 'Не Удалось получить элемент списка'\r\n )\r\n }\r\n\r\n customPipe() {\r\n\r\n }\r\n\r\n // add(param: iRestBXParamListsElementAdd) {\r\n // return this.http.post<iHttpAnswerBX<number>>(this.url.add, param)\r\n // }\r\n}\r\n","import {\r\n $add,\r\n $delete,\r\n $get,\r\n $iblock,\r\n $id,\r\n $lists,\r\n $type,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from './lists/element'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestLists {\r\n url = {\r\n add: [$lists, $add], // Метод создаёт список\r\n delete: [$lists, $delete], // Метод удаляет список\r\n get: [$lists, $get], // Метод возвращает данные по спискам\r\n update: [$lists, $update], // Метод обновляет существующий список\r\n getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока\r\n }\r\n\r\n constructor(\r\n public element: BXRestListsElement\r\n ) {\r\n }\r\n\r\n // constructor(\r\n // private http: HttpBXServices,\r\n // private listsMap: ListsMapServices\r\n // ) {\r\n // }\r\n\r\n // get(pram: iBXRestParamListGet): Observable<ItemLists[] | undefined> {\r\n // return this.http.post<iHttpAnswerBX<ItemListsBX[]>>(this.url.get, pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../services/base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BaseMapServices extends BaseServices{\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BaseMapServices from '../base'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapListsElement extends BaseMapServices {\r\n\r\n get(items: iBXRestHttpListsElement[]): iBXRestListsElement[] {\r\n return items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: this.toNum(item.CREATED_BY),\r\n IBLOCK_ID: this.toNum(item.IBLOCK_ID),\r\n ID: this.toNum(item.ID)\r\n }))\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BaseMapServices from './base'\r\nimport BXRestListsElementMap from './lists/element'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapLists extends BaseMapServices {\r\n\r\n constructor(public element: BXRestListsElementMap) {\r\n super()\r\n }\r\n\r\n // get(itemLists: iBXRestHttpListsElement): iBXRestListsElement\r\n // {\r\n // return {\r\n // ACTIVE: itemLists.ACTIVE === 'Y',\r\n // API_CODE: this.toStr(itemLists.API_CODE),\r\n // BIZPROC: itemLists.BIZPROC === 'Y',\r\n // CANONICAL_PAGE_URL: this.toStr(itemLists.CANONICAL_PAGE_URL),\r\n // CODE: itemLists.CODE,\r\n // DESCRIPTION: this.toStr(itemLists.DESCRIPTION),\r\n // DESCRIPTION_TYPE: itemLists.DESCRIPTION_TYPE,\r\n // DETAIL_PAGE_URL: this.toStr(itemLists.DETAIL_PAGE_URL),\r\n // EDIT_FILE_AFTER: this.toStr(itemLists.EDIT_FILE_AFTER),\r\n // EDIT_FILE_BEFORE: this.toStr(itemLists.EDIT_FILE_BEFORE),\r\n // ELEMENTS_NAME: this.toStr(itemLists.ELEMENTS_NAME),\r\n // ELEMENT_NAME: this.toStr(itemLists.ELEMENT_NAME),\r\n // EXTERNAL_ID: this.toStr(itemLists.EXTERNAL_ID),\r\n // IBLOCK_TYPE_ID: this.toStr(itemLists.IBLOCK_TYPE_ID),\r\n // ID: Number(itemLists.ID),\r\n // INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n // INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n // LANG_DIR: this.toStr(itemLists.LANG_DIR),\r\n // LAST_CONV_ELEMENT: this.toNum(itemLists.LAST_CONV_ELEMENT),\r\n // LID: this.toStr(itemLists.LID),\r\n // LIST_MODE: this.toStr(itemLists.LIST_MODE),\r\n // LIST_PAGE_URL: this.toStr(itemLists.LIST_PAGE_URL),\r\n // NAME: this.toStr(itemLists.NAME),\r\n // PICTURE: this.toStr(itemLists.PICTURE),\r\n // PROPERTY_INDEX: this.toStr(itemLists.PROPERTY_INDEX),\r\n // REST_ON: itemLists.REST_ON === 'Y',\r\n // RIGHTS_MODE: this.toStr(itemLists.RIGHTS_MODE),\r\n // RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n // RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n // RSS_FILE_DAYS: this.toStr(itemLists.RSS_FILE_DAYS),\r\n // RSS_FILE_LIMIT: this.toStr(itemLists.RSS_FILE_LIMIT),\r\n // RSS_TTL: Number(itemLists.RSS_TTL),\r\n // RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n // SECTIONS_NAME: this.toStr(itemLists.SECTIONS_NAME),\r\n // SECTION_CHOOSER: this.toStr(itemLists.SECTION_CHOOSER),\r\n // SECTION_NAME: this.toStr(itemLists.SECTION_NAME),\r\n // SECTION_PAGE_URL: this.toStr(itemLists.SECTION_PAGE_URL),\r\n // SECTION_PROPERTY: this.toStr(itemLists.SECTION_PROPERTY),\r\n // SERVER_NAME: this.toStr(itemLists.SERVER_NAME),\r\n // SOCNET_GROUP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n // SORT: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n // TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n // TMP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n // VERSION: Number(itemLists.VERSION),\r\n // WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n // XML_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n // }\r\n // }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from '../../request/lists/element'\r\nimport { map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.BXRestListsElement.get(pram).pipe(\r\n map(v => (v) ? this.BXRestMap.get(BXRestMapResult(v)) : undefined),\r\n )\r\n }\r\n\r\n // add(param: iRestBXParamListsElementAdd) {\r\n // return this.http.post<iHttpAnswerBX<number>>(this.url.add, param)\r\n // }\r\n}\r\n","import {\r\n $add,\r\n $delete,\r\n $get,\r\n $iblock,\r\n $id,\r\n $lists,\r\n $type,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestNavvyListsElement } from './lists/element'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestNavvyLists {\r\n url = {\r\n add: [$lists, $add], // Метод создаёт список\r\n delete: [$lists, $delete], // Метод удаляет список\r\n get: [$lists, $get], // Метод возвращает данные по спискам\r\n update: [$lists, $update], // Метод обновляет существующий список\r\n getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока\r\n }\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement\r\n ) {\r\n }\r\n\r\n // constructor(\r\n // private http: HttpBXServices,\r\n // private listsMap: ListsMapServices\r\n // ) {\r\n // }\r\n\r\n // get(pram: iBXRestParamListGet): Observable<ItemLists[] | undefined> {\r\n // return this.http.post<iHttpAnswerBX<ItemListsBX[]>>(this.url.get, pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { of } from 'rxjs'\nimport clone from 'just-clone'\nimport { iBXGetParam } from '../typification/rest/user/get'\nimport HttpBXServices from '../services/http/HttpBX'\nimport UserFilterSearch from '../typification/rest/user/UserFilterSearch'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../services/snack-bar/snack-bar.service'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../consts/part-name-metods'\nimport { Injectable } from '@angular/core'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestUser {\n\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n current: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n // private userMap: BitrixApiUserMapServices,\n ) {\n }\n\n admin() {\n return this.http.get<boolean>(this.url.admin)\n }\n\n get(params: iBXGetParam = {}) {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iBXRestUserHttp[]>\n (\n this.url.get,\n copyParams,\n 'Не удалось получить пользователей'\n )\n // .pipe(\n // tap(v => {\n // if (v && v.result) {\n // this.saveArrUser(v.result)\n // }\n // })\n // )\n }\n\n current() {\n return this.http.get<iBXRestUserHttp>\n (this.url.current, {}, 'Не удалось получить пользователя')\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iBXRestAnswer<boolean> | undefined>(this.url.access, {ACCESS: access}, textError)\n }\n\n // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n // if (!Object.keys(params).length) {\n // params = clone(this.def.params)\n // }\n //\n // const saveAllUser = compare(params, this.def.params)\n // return this.user$.pipe(\n // take(1),\n // mergeMap(v => {\n // if (v.load.all) {\n // if (compare(this.def.params, params)) {\n // return of(clone(v.data))\n // }\n // }\n //\n // return this.getEndArray(params).pipe(\n // take(1),\n // map(v => {\n // if (v && v.result) {\n // let cl = clone(v.result)\n // return this.saveArrUser(cl)\n // }\n // return undefined\n // }),\n // )\n // }),\n // tap(v => {\n // if (v && v.length && saveAllUser) {\n // this.store.dispatch(loadAll({load: true}))\n // }\n // params.start = this.def.params.start\n // })\n // )\n // }\n\n // private saveArrUser(users: iBXRestUserHttp[]) {\n // let result: iBXRestUser [] = []\n // for (const user of users) {\n // result.push(this.userMap.HttpToBX(user))\n // }\n // this.store.dispatch(saveArr({arr: result}))\n //\n // return result\n // }\n\n search(params: string | UserFilterSearch) {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iBXRestAnswer<iBXRestUserHttp[]>>(\n this.url.search,\n params,\n 'Сервер не отвечает на запрос поиска'\n )\n }\n\n fields() {\n return this.http.get<iBXRestAnswer<iBXRestUserHttpField>>(this.url.fields)\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]) {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n // const userBX = this.userMap.BXtoHttp(user)\n // for (const field of fieldUpdate) {\n // if (userBX[field]) {\n // sendData[field] = userBX[field]\n // } else {\n // this.snackBar.error('Одно из указанных полей отправлено не верно')\n // }\n // }\n return this.http.post<iBXRestUserHttp[]>(\n this.url.update,\n sendData,\n 'Не удалось обновить пользователя с ID' + user.ID\n )\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n // return this.get(params).pipe(\n // mergeMap(items => {\n // if (items && items.result && typeof items.result === 'object') {\n // if (items.next) {\n // params.start = items.next\n // return this.getEndArray(params).pipe(map(vEnd => {\n // if (vEnd && items.result && vEnd.result) {\n // return {result: [...items.result, ...vEnd.result]}\n // }\n // return (items) ? items : undefined\n // }))\n // }\n // return of(items)\n // } else {\n // return of(undefined)\n // }\n // }),\n // )\n // }\n\n private setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n}\n\n","import { Injectable } from '@angular/core'\nimport {\n $add, $approve, $attach, $complete, $counters, $deger, $delegate, $delete, $disapprove, $favorite, $files,\n $get, $getaccess, $getFields, $getlist, $history, $list, $pause, $planner, $renew, $result, $start,\n $task, $tasks, $update\n} from '../../consts/part-name-metods'\nimport HttpBXServices from '../../services/http/HttpBX'\nimport { iBXRestParamTaskAdd } from '../../typification/rest/task/fieldsForSend'\nimport { iBXRestHttpTask } from '../../typification/rest/task/task'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestTasksTask {\n\n url = {\n add: [$tasks, $task, $add], // Создает задачу\n approve: [$tasks, $task, $approve], // Позволяет принять задачу\n complete: [$tasks, $task, $complete], // Переводит задачу в статус «завершена»\n counters: {\n get: [$tasks, $task, $counters, $get], //Получает счетчики пользователя\n },\n deger: [$tasks, $task, $deger], // Переводит задачу в статус «отложена»\n delegate: [$tasks, $task, $delegate], // Метод для делегирования задачи\n delete: [$tasks, $task, $delete], // Удаляет задачу\n disapprove: [$tasks, $task, $disapprove], // Позволяет отклонить задачу\n favorite: {\n add: [$tasks, $task, $favorite, $add], // Добавляет задачи в \"Избранное\"\n delete: [$tasks, $task, $favorite, $delete], // Удаляет задачи из \"Избранного\"\n },\n files: {\n attach: [$tasks, $task, $files, $attach], // Прикрепляет загруженный на диск файл к задаче\n },\n get: [$tasks, $task, $get], // Возвращает информацию о конкретной задаче\n getFields: [$tasks, $task, $getFields], // Возвращает все доступные поля\n getaccess: [$tasks, $task, $getaccess], // Метод для проверки доступа к задаче\n history: {\n list: [$tasks, $task, $history, $list], // Получает историю задачи\n },\n list: [$tasks, $task, $list], // Возвращает массив задач, каждая из которых содержит массив полей\n pause: [$tasks, $task, $pause], // Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\n renew: [$tasks, $task, $renew], // Возобновляет задачу после ее завершения\n start: [$tasks, $task, $start], // Переводит задачу в статус «выполняется»\n startwatch: [$tasks, $task, 'startwatch'], // Позволяет наблюдать за задачей\n stopwatch: [$tasks, $task, 'stopwatch'], // Останавливает наблюдение за задачей\n update: [$tasks, $task, $update], // Обновляет задачу\n result: {\n list: [$tasks, $task, $result, $list], // Просмотр списка результатов к задаче\n addFromComment: [$tasks, $task, $result, 'addFromComment'], // Создание результата задачи из комментария\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан\n },\n planner: {\n getlist: [$task, $planner, $getlist], // Возвращает массив, содержащий идентификаторы задач в плане на день\n }\n }\n\n constructor(\n private http: HttpBXServices,\n ) {\n }\n\n add(param: { fields: iBXRestParamTaskAdd }) {\n return this.http.post<{ task: iBXRestHttpTask }>(this.url.add, param)\n }\n\n /*\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\n let sendTask: Record<string, any> = {}\n let taskTS: Record<string, any> = task\n if (updateFields.length) {\n for (let updateField of updateFields) {\n if (taskTS[camelCase(updateField)]) {\n sendTask[updateField] = taskTS[camelCase(updateField)]\n }\n }\n if (Object.values(sendTask).length) {\n return this.http.post(\n this.url.update,\n {taskId: taskId, fields: sendTask},\n 'error to update task')\n } else {\n this.snackBar.error('not valid send data task')\n console.error('not valid send data task', sendTask, task)\n return of(undefined)\n }\n }\n\n this.snackBar.warning('not have field for update')\n return of(undefined)\n }\n\n get(requestArray: RequestApiTaskBX): Observable<TaskBX | undefined> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n }\n return this.http.post<AnswerApiTaskOneBXHttp>(this.url.get, requestArray).pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.task) ? v.task : undefined),\n map(v => (v) ? this.taskBXMap.TaskBXHttpToTaskBX(v) : undefined)\n )\n }\n\n list(requestArray: RequestApiTaskListBX = {}): Observable<AnswerApiTaskBX | undefined> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n }\n return this.http.post<AnswerApiTaskBXHttp | undefined>(this.url.list, requestArray).pipe(\n map(v => {\n if (v && v.result && v.result.tasks) {\n const tasks = v.result.tasks.map(i => this.taskBXMap.TaskBXHttpToTaskBX(i))\n this.store.dispatch(addToTaskList({data: tasks}))\n return Object.assign(\n v,\n {\n result:\n {\n tasks: tasks\n }\n }\n )\n\n }\n return undefined\n }\n )\n )\n }\n\n listArray(requestArray: RequestApiTaskListBX = {}) {\n return this.list(requestArray).pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.tasks) ? v.tasks : [])\n )\n }\n\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n if (cache) {\n return this.storeTask$.pipe(\n take(1),\n mergeMap(tasks => {\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\n if (filter.length === ids.length) {\n return of(filter)\n }\n }\n return this.getEndListArray(requestArray)\n })\n )\n }\n return this.getEndListArray(requestArray)\n }\n return this.getEndListArray(requestArray)\n }\n\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\n return this.list(requestArray).pipe(\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\n if (items && items.result && typeof items.result.tasks === 'object') {\n const items$ = of(items.result.tasks)\n if (items.next) {\n this.nowLoad$.next({\n total: (items.total) ? items.total : 0,\n next: items.next\n })\n requestArray.start = items.next\n return this.getEndListArray(requestArray).pipe(\n map(vEnd => {\n if (vEnd && items.result.tasks) {\n return [...items.result.tasks, ...vEnd]\n }\n return (items.result.tasks) ? items.result.tasks : []\n }))\n }\n this.nowLoad$.next({\n total: 0,\n next: 0\n })\n return items$\n } else {\n return of([])\n }\n })\n )\n }\n\n getFields() {\n return this.storeTask$.pipe(\n mergeMap(v => {\n if (v && !v.data.fields) {\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\n tap(v => {\n if (v && v.result) {\n this.store.dispatch(saveFields(v.result))\n }\n }),\n map(v => {\n if (v && v.result && v.result.fields) {\n return {result: v.result.fields}\n }\n\n return undefined\n })\n )\n }\n if (v.data.fields) {\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\n } else {\n return of(undefined)\n }\n })\n )\n }\n\n deleteResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\n }\n\n addResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\n .pipe(\n map(v => {\n if (v && v.result) {\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\n }\n return undefined\n }))\n }\n\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\n .pipe(\n map(v => {\n if (v && v.result) {\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\n }\n return undefined\n }))\n }\n\n getPlannerList() {s\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\n }\n\n getaccess(id: number, users: number[] = []) {\n return this.http.post<iHttpAnswerBX<iGetAccessTask>>(this.url.getaccess, {taskId: id, user: users})\n .pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.allowedActions) ? v.allowedActions : undefined)\n )\n }\n */\n}\n\n","import { Injectable } from '@angular/core'\nimport { BXRestTasksTask } from './tasks/task'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestTasks {\n\n constructor(\n public task: BXRestTasksTask,\n ) {\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto,\r\n $delete,\r\n $disk,\r\n $file,\r\n $get,\r\n $getFields,\r\n $markdeleted,\r\n $moveto,\r\n $rename, $restore\r\n} from '../../consts/part-name-metods'\r\nimport HttpBXServices from '../../services/http/HttpBX'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFile {\r\n url = {\r\n getfields: [$disk, $file, $getFields], // Возвращает описание полей файла\r\n get: [$disk, $file, $get], // Возвращает файл по идентификатору\r\n rename: [$disk, $file, $rename], // Переименовывает файл\r\n copyto: [$disk, $file, $copyto], // Копирует файл в указанную папку\r\n moveto: [$disk, $file, $moveto], // Перемещает файл в указанную папку\r\n delete: [$disk, $file, $delete], // Уничтожает файл навсегда\r\n markdeleted: [$disk, $file, $markdeleted], // Перемещает файл в корзину\r\n restore: [$disk, $file, $restore], // Восстанавливает файл из корзины\r\n uploadversion: [$disk, $file, 'uploadversion'], // Загружает новую версию файла\r\n getVersions: [$disk, $file, 'getVersions'], // Возвращает список версий файла\r\n restoreFromVersion: [$disk, $file, 'restoreFromVersion'], // Восстанавливает файл из конкретной версии\r\n getExternalLink: [$disk, $file, 'getexternallink'] //\tВозвращает публичную ссылку на файл\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n get(id: number) {\r\n return this.http.post<iBXRestFileHttp>(this.url.get, {id: id}, 'Не удалось получить файл')\r\n }\r\n\r\n markDel(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id},\r\n 'Не удалось переместить файл в корзину')\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto, $disk, $folder, $get, $getchildren, $getFields,\r\n $markdeleted, $moveto, $rename, $restore, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport HttpBXServices from '../../services/http/HttpBX'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFolder {\r\n url = {\r\n getfields: [$disk, $folder, $getFields], // Возвращает описание полей папки\r\n get: [$disk, $folder, $get], // Возвращает папку по идентификатору\r\n getchildren: [$disk, $folder, $getchildren], // Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n addsubfolder: [$disk, $folder, 'addsubfolder'], // Создает дочернюю папку\r\n copyto: [$disk, $folder, $copyto], // Копирует папку в указанную папку\r\n moveto: [$disk, $folder, $moveto], // Перемещает папку в указанную папку\r\n rename: [$disk, $folder, $rename], // Переименовывает папку\r\n deletetree: [$disk, $folder, 'deletetree'], // Уничтожает папку и всё её дочерние элементы навсегда\r\n markdeleted: [$disk, $folder, $markdeleted], // Перемещает папку в корзину\r\n restore: [$disk, $folder, $restore], //\tВосстанавливает папку из корзины\r\n uploadfile: [$disk, $folder, $uploadfile], // Загружает новый файл в указанную папку\r\n getExternalLink: [$disk, $folder, 'getExternalLink'] // Метод возвращает публичную ссылку\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n uploadfile(id: number, fileContent: string[]) {\r\n return this.http.post(\r\n this.url.uploadfile,\r\n {\r\n id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n data: {\r\n NAME: fileContent[0]\r\n } // Обязательное поле NAME - имя нового файла\r\n // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n }\r\n )\r\n }\r\n\r\n getchildren(id: number) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n {id: id},\r\n 'get folders and files'\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDisk {\r\n constructor(\r\n public file: BXRestDiskFile,\r\n public folder: BXRestDiskFolder\r\n ) {\r\n }\r\n}\r\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\n","import { Injectable } from '@angular/core'\r\nimport clone from 'just-clone'\r\nimport BaseMapServices from './base'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user/user'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUserMap extends BaseMapServices {\r\n\r\n current(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(clone(user), {\r\n ID: this.toNum(user.ID),\r\n IS_ONLINE: this.toBool(user.IS_ONLINE),\r\n DATE_REGISTER: this.toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = this.toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: this.toStr(user.ID),\r\n IS_ONLINE: this.toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: this.getBXStrTime(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: this.toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { Observable, of, tap } from 'rxjs'\nimport { first, map, mergeMap } from 'rxjs/operators'\nimport { Store } from '@ngrx/store'\nimport { saveSelf, storeUsers } from '../store/users'\nimport { Injectable } from '@angular/core'\nimport { BXRestUser } from '../request/user'\nimport { BXRestUserMap } from '../map/user'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyUser {\n\n user$: Observable<storeUsers>\n\n constructor(\n private BXRestUser: BXRestUser,\n private store: Store<{ users: storeUsers }>,\n private BXRestUserMap: BXRestUserMap\n ) {\n this.user$ = this.store.select('users')\n }\n\n current(update = false) {\n if (update) {\n return this.self()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.self()\n }\n }),\n first()\n )\n }\n }\n\n private self() {\n return this.BXRestUser.current()\n .pipe(\n map(v => {\n if (v && v.result) {\n return this.BXRestUserMap.current(v.result)\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n this.store.dispatch(saveSelf({self: v}))\n }\n }),\n )\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport BaseMapServices from './base'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../typification/rest/task/task'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTaskMap extends BaseMapServices {\r\n\r\n TaskBXHttpToTaskBX(item: iBXRestHttpTask): iBXRestTask {\r\n let result: iBXRestTask = {}\r\n if(item.id) { result.id = this.toNum(item.id) }\r\n if(item.parentId) { result.parentId = this.toNum(item.parentId) }\r\n if(item.priority) { result.priority = this.toNum(item.priority) }\r\n if(item.status) { result.status = this.toNum(item.status) }\r\n if(item.multitask) { result.multitask = item.multitask === 'Y' }\r\n if(item.groupId) { result.groupId = this.toNum(item.groupId) }\r\n if(item.stageId) { result.stageId = this.toNum(item.stageId) }\r\n if(item.createdBy) { result.createdBy = this.toNum(item.createdBy) }\r\n if(item.createdDate) { result.createdDate = this.toDate(item.createdDate) }\r\n if(item.responsibleId) { result.responsibleId = this.toNum(item.responsibleId) }\r\n if(item.changedBy) { result.changedBy = this.toNum(item.changedBy) }\r\n if(item.changedDate) { result.changedDate = this.toDate(item.changedDate) }\r\n if(item.statusChangedBy) { result.statusChangedBy = this.toNum(item.statusChangedBy) }\r\n if(item.statusChangedDate) { result.statusChangedDate = this.toDate(item.statusChangedDate) }\r\n if(item.closedBy) { result.closedBy = this.toNum(item.closedBy) }\r\n if(item.closedDate) { result.closedDate = this.toDate(item.closedDate) }\r\n if(item.dateStart) { result.dateStart = this.toDate(item.dateStart) }\r\n if(item.deadline) { result.deadline = this.toDate(item.deadline) }\r\n if(item.startDatePlan) { result.startDatePlan = this.toDate(item.startDatePlan) }\r\n if(item.endDatePlan) { result.endDatePlan = this.toDate(item.endDatePlan) }\r\n if(item.forumTopicId) { result.forumTopicId = this.toNum(item.forumTopicId) }\r\n if(item.forumId) { result.forumId = this.toNum(item.forumId) }\r\n if(item.viewedDate) { result.viewedDate = this.toDate(item.viewedDate) }\r\n if(item.sorting) { result.sorting = this.toNum(item.sorting) }\r\n if(item.durationPlan) { result.durationPlan = this.toNum(item.durationPlan) }\r\n if(item.descriptionInBbcode) { result.descriptionInBbcode = item.descriptionInBbcode === 'Y' }\r\n if(item.accomplices) { result.accomplices = item.accomplices.map(i =>this.toNum(i)) }\r\n if(item.subStatus) { result.subStatus = this.toNum(item.subStatus) }\r\n if(item.creator) { result.creator = Object.assign(item.creator, {id: this.toNum(item.creator.id)}) }\r\n if(item.responsible) { result.responsible = Object.assign(item.responsible, {id: this.toNum(item.responsible.id)}) }\r\n if(item.accomplicesData) {\r\n result.accomplicesData =\r\n Object.values(item.accomplicesData).map(i => Object.assign(i, {id: this.toNum(i.id)})) }\r\n if(item.allowTimeTracking) { result.allowTimeTracking = item.allowTimeTracking === 'Y' }\r\n\r\n return Object.assign(item, result)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport { iBXRestParamTaskAdd } from '../../typification/rest/task/fieldsForSend'\nimport { map } from 'rxjs/operators';\nimport { BXRestTaskMap } from '../../map/task'\nimport { BXRestTasksTask } from '../../request/tasks/task'\n\n// export interface TimeProcess {\n// total: number,\n// next: number\n// }\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyTasksTask {\n\n // pageSize = 50\n // nowLoad$ = new ReplaySubject<TimeProcess>(1)\n\n // def: { select: iBXRestTaskFieldsName[] } = {\n // select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',\n // 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',\n // 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',\n // 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',\n // 'TAGS', 'ALLOW_TIME_TRACKING'\n // ]\n // }\n\n // storeTask$: Observable<iStoreTask>\n\n constructor(\n private BXRestTasks: BXRestTasksTask,\n private snackBar: SnackBarService,\n // private store: Store<{ tasks: IStoreTask }>,\n private taskMap: BXRestTaskMap,\n // private taskResultMap: BitrixApiTaskResultMapServices\n ) {\n // this.storeTask$ = this.store.select('tasks')\n // this.nowLoad$.next({\n // total: 0,\n // next: 0\n // })\n }\n\n add(param: { fields: iBXRestParamTaskAdd }) {\n return this.BXRestTasks.add(param).pipe(\n map(v => {\n if (v && v.result && v.result.task) {\n return this.taskMap.TaskBXHttpToTaskBX(v.result.task)\n }\n return undefined\n }\n ))\n // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(\n // map(v => {\n // if (v && v.result && v.result.task) {\n // return Object.assign(\n // v,\n // {\n // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)\n // })\n // }\n // return undefined\n // }\n // ))\n }\n\n /*\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\n let sendTask: Record<string, any> = {}\n let taskTS: Record<string, any> = task\n if (updateFields.length) {\n for (let updateField of updateFields) {\n if (taskTS[camelCase(updateField)]) {\n sendTask[updateField] = taskTS[camelCase(updateField)]\n }\n }\n if (Object.values(sendTask).length) {\n return this.http.post(\n this.url.update,\n {taskId: taskId, fields: sendTask},\n 'error to update task')\n } else {\n this.snackBar.error('not valid send data task')\n console.error('not valid send data task', sendTask, task)\n return of(undefined)\n }\n }\n\n this.snackBar.warning('not have field for update')\n return of(undefined)\n }\n\n get(requestArray: RequestApiTaskBX): Observable<TaskBX | undefined> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n }\n return this.http.post<AnswerApiTaskOneBXHttp>(this.url.get, requestArray).pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.task) ? v.task : undefined),\n map(v => (v) ? this.taskBXMap.TaskBXHttpToTaskBX(v) : undefined)\n )\n }\n\n list(requestArray: RequestApiTaskListBX = {}): Observable<AnswerApiTaskBX | undefined> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n }\n return this.http.post<AnswerApiTaskBXHttp | undefined>(this.url.list, requestArray).pipe(\n map(v => {\n if (v && v.result && v.result.tasks) {\n const tasks = v.result.tasks.map(i => this.taskBXMap.TaskBXHttpToTaskBX(i))\n this.store.dispatch(addToTaskList({data: tasks}))\n return Object.assign(\n v,\n {\n result:\n {\n tasks: tasks\n }\n }\n )\n\n }\n return undefined\n }\n )\n )\n }\n\n listArray(requestArray: RequestApiTaskListBX = {}) {\n return this.list(requestArray).pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.tasks) ? v.tasks : [])\n )\n }\n\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n if (cache) {\n return this.storeTask$.pipe(\n take(1),\n mergeMap(tasks => {\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\n if (filter.length === ids.length) {\n return of(filter)\n }\n }\n return this.getEndListArray(requestArray)\n })\n )\n }\n return this.getEndListArray(requestArray)\n }\n return this.getEndListArray(requestArray)\n }\n\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\n return this.list(requestArray).pipe(\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\n if (items && items.result && typeof items.result.tasks === 'object') {\n const items$ = of(items.result.tasks)\n if (items.next) {\n this.nowLoad$.next({\n total: (items.total) ? items.total : 0,\n next: items.next\n })\n requestArray.start = items.next\n return this.getEndListArray(requestArray).pipe(\n map(vEnd => {\n if (vEnd && items.result.tasks) {\n return [...items.result.tasks, ...vEnd]\n }\n return (items.result.tasks) ? items.result.tasks : []\n }))\n }\n this.nowLoad$.next({\n total: 0,\n next: 0\n })\n return items$\n } else {\n return of([])\n }\n })\n )\n }\n\n getFields() {\n return this.storeTask$.pipe(\n mergeMap(v => {\n if (v && !v.data.fields) {\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\n tap(v => {\n if (v && v.result) {\n this.store.dispatch(saveFields(v.result))\n }\n }),\n map(v => {\n if (v && v.result && v.result.fields) {\n return {result: v.result.fields}\n }\n\n return undefined\n })\n )\n }\n if (v.data.fields) {\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\n } else {\n return of(undefined)\n }\n })\n )\n }\n\n deleteResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\n }\n\n addResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\n .pipe(\n map(v => {\n if (v && v.result) {\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\n }\n return undefined\n }))\n }\n\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\n .pipe(\n map(v => {\n if (v && v.result) {\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\n }\n return undefined\n }))\n }\n\n getPlannerList() {\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\n }\n\n getaccess(id: number, users: number[] = []) {\n return this.http.post<iHttpAnswerBX<iGetAccessTask>>(this.url.getaccess, {taskId: id, user: users})\n .pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.allowedActions) ? v.allowedActions : undefined)\n )\n }\n */\n}\n","import { Injectable } from '@angular/core'\nimport { BXRestNavvyTasksTask } from './tasks/task'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyTasks {\n\n constructor(public task: BXRestNavvyTasksTask) {\n }\n}\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../../services/base'\r\nimport { map } from 'rxjs/operators'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile extends BaseServices {\r\n\r\n constructor(private BXRestDiskFile: BXRestDiskFile) {\r\n super()\r\n }\r\n\r\n get(id: number) {\r\n return this.BXRestDiskFile.get(id).pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n let newResult = Object.assign(v.result, {SIZE: this.toNum(v.result.SIZE)})\r\n return Object.assign(v, {\r\n result: newResult\r\n })\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n markDel(id: number) {\r\n return this.BXRestDiskFile.markDel(id)\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n let newResult = Object.assign(v.result, {SIZE: this.toNum(v.result.SIZE)})\r\n return Object.assign(v, {\r\n result: newResult\r\n })\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BaseMapServices from '../base'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileAndFolderMap } from '../../typification/rest/disk/map';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskBase extends BaseMapServices {\r\n\r\n separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n let result: iBXRestFileAndFolderMap = {file: [], folder: []}\r\n for (let i of arr) {\r\n if (this.instanceOfiFile(i)) {\r\n result.file.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n SIZE: this.toNum(i.SIZE),\r\n }\r\n )\r\n )\r\n } else if (this.instanceOfiFolder(i)) {\r\n result.folder.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n }\r\n )\r\n )\r\n }\r\n }\r\n return result\r\n }\r\n\r\n instanceOfiFile(object: any): object is iBXRestFile {\r\n return object && object.TYPE && object.TYPE === 'file'\r\n }\r\n\r\n instanceOfiFolder(object: any): object is iBXRestFolder {\r\n return object && object.TYPE && object.TYPE === 'folder'\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport BXRestMapDiskBase from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n getContent(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n return this.separationFoldersAndFiles(arr)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskNavvyFolder {\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n }\r\n\r\n // uploadfile(id: number, fileContent: string[]) {\r\n // return this.httpPost(\r\n // this.url.uploadfile,\r\n // {\r\n // id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n // fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n // data: {\r\n // NAME: fileContent[0]\r\n // } // Обязательное поле NAME - имя нового файла\r\n // // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n // }\r\n // )\r\n // }\r\n\r\n getchildren(id: number) {\r\n return this.BXRestDiskFolder.getchildren(id).pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return this.BXRestMapDiskFolder.getContent(BXRestMapResult(v))\r\n }\r\n return {file: [], folder: []}\r\n })\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n return this.separationFoldersAndFiles(arr)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport HttpBXServices from '../../services/http/HttpBX'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskStorage {\r\n url = {\r\n getfields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getlist: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n gettypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addfolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getchildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadfile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getforapp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getforapp, {}, 'get root app folder'\r\n )\r\n }\r\n\r\n // TODO: разобраться с фильтром\r\n getchildren(param: {id: number, filter?: any}) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param,\r\n 'get root app folders and files'\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<any>(this.url.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestFile>(this.url.uploadfile, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskStorage } from '../../request/disk/storage'\r\nimport { map } from 'rxjs/operators';\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n // BXDiskFolder$ = new Observable<BXDiskFolderStore>()\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n\r\n ) {\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.folder.app) {\r\n // return of(saveData.folder.app)\r\n // }\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n map(v => BXRestMapResult(v)),\r\n // tap(v => {\r\n // if (v) {\r\n // this.store.dispatch(saveFolderAppInfo({value: v}))\r\n // }\r\n // })\r\n )\r\n // }\r\n // )\r\n // )\r\n }\r\n\r\n // TODO: разобраться с фильтром позже\r\n getchildren(param: { id: number, filter?: any }) {\r\n return this.BXRestDiskStorage.getchildren(param).pipe(\r\n map(v => BXRestMapResult(v)),\r\n map(v => {\r\n if (v && v.length) {\r\n return this.BXRestMapDiskStorage.getchildren(v)\r\n }\r\n return {file: [], folder: []}\r\n })\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param).pipe(\r\n map(v => BXRestMapResult(v))\r\n )\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadfile(param);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskNavvyFolder } from './folder'\r\nimport { map, mergeMap, take } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport { of } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n constructor(\r\n public folder: BXRestDiskNavvyFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: { name: string, val: string }) {\r\n return this.storage.getforapp().pipe(\r\n take(1),\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadfile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).pipe(\r\n map(v => BXRestMapResult(v)),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getchildren(v.ID)\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n return this.storage.getforapp().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID})\r\n // .pipe(\r\n // tap(v => {\r\n // if (v) {\r\n // this.store.dispatch(saveContentRootAppInfo({value: v}))\r\n // }\r\n // })\r\n // )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n // )\r\n // )\r\n }\r\n\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of(find)\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}})\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestDiskNavvyFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDisk {\r\n constructor(\r\n public file: BXRestNavvyDiskFile,\r\n public folder: BXRestDiskNavvyFolder,\r\n public operation: BXRestNavvyDiskOperation\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestUser } from './request/user'\r\nimport BXRestLists from './request/lists'\r\nimport BXRestListsMap from './map/lists'\r\nimport BXRestNavvyLists from './request-navvy/lists'\r\nimport { BXRestNavvyTasks } from './request-navvy/tasks'\r\nimport { BXRestTasks } from './request/tasks'\r\nimport { BXRestNavvyUser } from './request-navvy/user'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestNavvyDisk } from './request-navvy/disk'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRest {\r\n constructor(\r\n public user: BXRestUser,\r\n public lists: BXRestLists,\r\n public tasks: BXRestTasks,\r\n public disk: BXRestDisk\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvy {\r\n constructor(\r\n public user: BXRestNavvyUser,\r\n public lists: BXRestNavvyLists,\r\n public tasks: BXRestNavvyTasks,\r\n public disk: BXRestNavvyDisk\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMap {\r\n constructor(\r\n public lists: BXRestListsMap\r\n ) {\r\n }\r\n}\r\n","/*\n * Public API Surface of bx-rest\n */\nexport { REST_SETTINGS } from './settings';\nexport { BXRestMapResult } from './functions/mapResult'\nexport { BXRest, BXRestNavvy, BXRestMap } from './rest'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","JSON","save","initialState","Cookies","LocalStorage","BaseHttpServices","i1.BXRestListsElement","BXRestListsElementMap","i1.BXRestNavvyListsElement","i1.BXRestTasksTask","i1.BXRestDiskFile","i2.BXRestDiskFolder","mergeMap","i1.BXRestUser","i2","i3.BXRestUserMap","i2.BXRestTaskMap","i1.BXRestNavvyTasksTask","take","i1.BXRestDiskNavvyFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskFile","i2.BXRestDiskNavvyFolder","i3.BXRestNavvyDiskOperation","i2.BXRestTasks","i3.BXRestDisk","i5.BXRestNavvyTasks","i6.BXRestNavvyDisk","BXRestListsMap"],"mappings":"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"}