bx-rest 0.2.1 → 0.2.3

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 (58) hide show
  1. package/README.md +32 -2
  2. package/esm2022/map/calendar.mjs +17 -0
  3. package/esm2022/map/lists/element.mjs +1 -1
  4. package/esm2022/map/lists.mjs +10 -3
  5. package/esm2022/map/log/blogpost.mjs +82 -0
  6. package/esm2022/map/log.mjs +17 -0
  7. package/esm2022/map/task/commentitem.mjs +54 -0
  8. package/esm2022/map/task/elapseditem.mjs +20 -3
  9. package/esm2022/map/task/result.mjs +15 -0
  10. package/esm2022/map/task/stages.mjs +21 -0
  11. package/esm2022/map/task.mjs +23 -0
  12. package/esm2022/map/tasks.mjs +17 -0
  13. package/esm2022/map/user.mjs +9 -6
  14. package/esm2022/map.mjs +33 -0
  15. package/esm2022/public-api.mjs +2 -1
  16. package/esm2022/request/task/elapseditem.mjs +2 -2
  17. package/esm2022/request/user.mjs +8 -27
  18. package/esm2022/request-navvy/task/elapseditem.mjs +8 -8
  19. package/esm2022/request-navvy/task/operation/elapseditem.mjs +6 -20
  20. package/esm2022/request-navvy/user.mjs +23 -3
  21. package/esm2022/services/Navvy/NavvyAlternativePaginationNavigation.mjs +26 -35
  22. package/esm2022/services/Navvy/NavvyPagNav.mjs +3 -3
  23. package/esm2022/services/Navvy/extends/NavvyPagNavBase.mjs +5 -2
  24. package/esm2022/services/navvy.mjs +2 -2
  25. package/esm2022/typification/rest/base/ApiPaginationBX.mjs +1 -1
  26. package/esm2022/typification/rest/task/commentitem/commentitem.mjs +2 -0
  27. package/esm2022/typification/rest/task/elapseditem/get.mjs +1 -1
  28. package/esm2022/typification/rest/task/elapseditem/item.mjs +1 -1
  29. package/esm2022/typification/rest/task/stages/stage.mjs +2 -0
  30. package/fesm2022/bx-rest.mjs +453 -203
  31. package/fesm2022/bx-rest.mjs.map +1 -1
  32. package/map/calendar.d.ts +8 -0
  33. package/map/lists.d.ts +5 -0
  34. package/map/log/blogpost.d.ts +10 -0
  35. package/map/log.d.ts +8 -0
  36. package/map/task/commentitem.d.ts +10 -0
  37. package/map/task/elapseditem.d.ts +5 -1
  38. package/map/task/result.d.ts +6 -0
  39. package/map/task/stages.d.ts +8 -0
  40. package/map/task.d.ts +14 -0
  41. package/map/tasks.d.ts +8 -0
  42. package/map/user.d.ts +4 -3
  43. package/map.d.ts +24 -0
  44. package/package.json +1 -1
  45. package/public-api.d.ts +1 -0
  46. package/request/task/elapseditem.d.ts +1 -1
  47. package/request/user.d.ts +2 -4
  48. package/request-navvy/task/elapseditem.d.ts +3 -3
  49. package/request-navvy/task/operation/elapseditem.d.ts +5 -10
  50. package/request-navvy/user.d.ts +8 -8
  51. package/services/Navvy/NavvyAlternativePaginationNavigation.d.ts +6 -13
  52. package/services/Navvy/extends/NavvyPagNavBase.d.ts +2 -1
  53. package/services/navvy.d.ts +2 -4
  54. package/typification/rest/base/ApiPaginationBX.d.ts +8 -0
  55. package/typification/rest/task/commentitem/commentitem.d.ts +36 -0
  56. package/typification/rest/task/elapseditem/get.d.ts +2 -7
  57. package/typification/rest/task/elapseditem/item.d.ts +0 -1
  58. package/typification/rest/task/stages/stage.d.ts +19 -0
@@ -1 +1 @@
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/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/services/vanilla/sessionStorage.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/map/base.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task.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/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/calendar/event.ts","../../../projects/bx-rest/src/request/calendar.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/services/Navvy/NavvySupport.ts","../../../projects/bx-rest/src/services/Navvy/NavvySimple.ts","../../../projects/bx-rest/src/services/Navvy/extends/NavvyPagNavBase.ts","../../../projects/bx-rest/src/services/Navvy/NavvyAlternativePaginationNavigation.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNav.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNavWithUselessKey.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/services/permission.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task.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/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/interlayer/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.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 BX_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\nexport const $bizproc = 'bizproc'\r\nexport const $workflow = 'workflow'\r\nexport const $instances = 'instances'\r\nexport const $terminate = '$terminate'\r\nexport const $kill = 'kill'\r\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\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","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 { BX_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(BX_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\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorage {\r\n\r\n static setItem(name: string, value: any){\r\n sessionStorage.setItem(name, JSON.stringify(value))\r\n }\r\n\r\n static getItem<T>(name: string){\r\n const res = sessionStorage.getItem(name)\r\n if(res){\r\n return JSON.parse(res) as T\r\n }\r\n return undefined\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 saveApplicationAuth from '../../typification/auth/save'\nimport { Observable, of, Subscription } from 'rxjs'\n// import { ActivatedRoute, ParamMap } from '@angular/router'\nimport { BaseServices } from '../base'\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\nimport { RestServices } from '../../typification/rest/api-lib'\nimport { BX_REST_SETTINGS } from '../../settings'\nimport iBXRestAuth from '../../typification/auth/save'\nimport { SessionStorage } from '../vanilla/sessionStorage'\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: saveApplicationAuth | undefined\n subscribe = {\n authData: new Subscription()\n }\n\n constructor(\n // private route: ActivatedRoute,\n public BxApiLib: RestServices,\n ) {\n super()\n let authData = SessionStorage.getItem<iBXRestAuth>(this.constructor.name)\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 if (event.data.param.access_token) {\n let param = event.data.param;\n let 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 if (Object.keys(save).length && save.access_token) {\n SessionStorage.setItem(this.constructor.name, save)\n this.subscribeAll()\n }\n }\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 if(!save) {\n let save = {\n 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 (param.has('AUTH_ID') && !authData?.access_token.length) {\n const get = param.get('AUTH_ID')\n if (get) {\n Cookies.set('auth', get) //TODO: потом убрать\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) // TODO: потом убрать\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 SessionStorage.setItem(this.constructor.name, save)\n this.subscribeAll()\n } else {\n // если битрикс не шлёт нужные мне параметры на прямую\n // просим их мне отдать так как описано это в документации\n let f = () => {\n if (this.BxApiLib.BX24) {\n const initDate = this.BxApiLib.BX24.getAuth()\n SessionStorage.setItem(this.constructor.name, save)\n }\n }\n\n this.BxApiLib.init(f)\n }\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 (BX_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 (BX_REST_SETTINGS.auth.key.length) {\n return BX_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(): string | undefined {\n switch (BX_REST_SETTINGS.auth.source) {\n case 'cookies':\n return this.getAuth()\n default:\n return (this.authData) ? this.authData.access_token : undefined\n }\n }\n\n getBaseUrl(): Observable<string | undefined> {\n return of(this.prepareBaseAddress(BX_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\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 '../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 settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n abstract httpPost<T>(url: string,\r\n params: any ,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n handleError<T>(\r\n result?: T) {\r\n return (error: Error): Observable<T> => {\r\n console.error(`failed: ${error.message}`)\r\n return of(result as T)\r\n };\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { HttpParams } from '@angular/common/http'\r\nimport { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { BaseHttp } from './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 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 })\r\n }\r\n\r\n public httpPost<T>(url: string,\r\n params: any = {},\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 )\r\n }\r\n}\r\n","import { Observable, throwError, mergeMap } from 'rxjs'\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 { BaseHttpServices } from './base/http'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport 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 override httpPost<T>(url: string,\r\n params: any = {},\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n let auth = this.session.getAuthParams()\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 }\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 settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n let auth = this.session.getAuthParams()\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)\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","import { Observable, throwError, mergeMap, forkJoin } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\nimport clone from 'just-clone'\nimport { iHttpParamSettings } from '../../typification/rest/settings'\nimport { HttpServices } from './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 class HttpBXServices extends HttpServices {\n\n 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 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 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 settings: iHttpParamSettings = this.defSettings) {\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\n }\n\n get<T>(name: string[],\n params: any = {},\n settings: iHttpParamSettings = this.defSettings) {\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\n }\n\n override httpPost<T>(url: string,\n params: any = {},\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n let auth = this.session.getAuthParams()\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 }\n return throwError(() => 'get base url error')\n }))\n } else {\n return throwError(() => 'auth not get')\n }\n }\n\n override httpGet<T>(\n url: string,\n params: any = {},\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n let auth = this.session.getAuthParams()\n\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)\n }\n return throwError(() => 'get base url error')\n })\n )\n } else {\n return throwError(() => 'auth not get')\n }\n\n }\n\n 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 class BaseMapServices extends BaseServices{\r\n\r\n}\r\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 get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined\r\n {\r\n return (v) ? v.map(i => this.userHttpToTrace(i)) : undefined\r\n }\r\n\r\n current(v: iBXRestUserHttp): iBXRestUser {\r\n return this.userHttpToTrace(v)\r\n }\r\n\r\n private userHttpToTrace(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 { Injectable } from '@angular/core'\r\nimport { $list } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUserUserfield {\r\n url = {\r\n list: ['userfield', $list]\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n list() {\r\n return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n }\r\n}\r\n","import { share, throwError } from 'rxjs'\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport { HttpBXServices } from '../services/http/HttpBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\nimport { $get, $search, $update, $user } from '../consts/part-name-metods'\nimport { Injectable } from '@angular/core'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\nimport { BXRestUserMap } from '../map/user'\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\nimport { BXRestUserUserfield } from './user/userfield'\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 }\n\n constructor(\n private http: HttpBXServices,\n private BXRestUserMap: BXRestUserMap,\n public userfield: BXRestUserUserfield\n ) {\n }\n\n admin() {\n return this.http.get<boolean>(this.url.admin)\n }\n\n get(params: iBXRestParamUserGet = {}) {\n return this.http.post<iBXRestUserHttp[]>\n (\n this.url.get,\n params\n )\n }\n\n current(update = false) {\n let request = this.http.get<iBXRestUserHttp>(this.url.current, {})\n if(update) {\n return request\n } else {\n return request.pipe(\n share()\n )\n }\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.BXRestUserMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n return throwError(() => 'One sent field is empty')\n }\n }\n return this.http.post<iBXRestUserHttp[]>(\n this.url.update,\n sendData\n )\n } else {\n return throwError(() => 'All sent field for edit is empty')\n }\n }\n\n search(params: iBXRestParamUserSearch) {\n return this.http.get<iBXRestUserHttp[]>(this.url.search, params)\n }\n\n access(access: string[]) {\n return this.http.get<iBXRestAnswer<boolean> | undefined>(this.url.access, {ACCESS: access})\n }\n\n fields() {\n return this.http.get<iBXRestAnswer<iBXRestUserHttpField>>(this.url.fields)\n }\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { $add, $delete, $field, $get, $lists, $type, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestListsField {\r\n url = {\r\n add: [$lists, $field, $add], // Метод создает поле списка\r\n delete: [$lists, $field, $delete], // Метод удаляет поле списка\r\n get: [$lists, $field, $get], // Метод возвращает данные поля\r\n type: {\r\n get: [$lists, $field, $type, $get], // Метод возвращает доступные типа полей для указанного списка\r\n },\r\n update: [$lists, $field, $update], // Метод обновляет поле списка\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.http.post<{ [key: string]: iBXRestFieldItem }>(this.url.get, param)\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 {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\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], // Метод удаляет элемент списка // TODO: Реализовать\r\n get: [$lists, $element, $get], // Метод возвращает список элементов или элемент\r\n update: [$lists, $element, $update], //\tМетод обновляет элемент списка // TODO: Реализовать\r\n getFileUrl: [$lists, $element, $get, $file, $url] // Метод возвращает путь к файлу // TODO: Реализовать\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\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 add(param: iBXRestParamListsElementAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\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\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport BXRestListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport 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 public field: BXRestListsField,\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListGet) {\r\n return this.http.post<iBXRestListItemHttp[]>(this.url.get, pram)\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 {\r\n $add, $delete, $elapseditem, $get, $getlist, $getmanifest, $isactionallowed, $task, $update\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { iBXRestElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestElapseditem {\r\n\r\n url = {\r\n getmanifest: [$task, $elapseditem, $getmanifest], // Возвращает список методов и их описание\r\n getlist: [$task, $elapseditem, $getlist], // Возвращает список записей о затраченном времени по задаче\r\n get: [$task, $elapseditem, $get], // Возвращает запись о затраченном времени по ее идентификатору\r\n add: [$task, $elapseditem, $add], // Добавляет затраченное время к задаче\r\n delete: [$task, $elapseditem, $delete], // Удаляет запись о затраченном времени\r\n isactionallowed: [$task, $elapseditem, $isactionallowed], // Проверяет разрешено ли действие\r\n update: [$task, $elapseditem, $update], // Изменяет параметры записи о затраченном времени\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet | undefined = undefined\r\n ) {\r\n return this.http.post<iBXRestElapsedItemHttp[]>(this.url.getlist, param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.http.post<number>(\r\n this.url.add,\r\n param,\r\n {\r\n timeZone: {\r\n calc: false,\r\n levelOut: false\r\n }\r\n }\r\n )\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.http.post<null>\r\n (\r\n this.url.update,\r\n param,\r\n {\r\n timeZone: {\r\n calc: false,\r\n levelOut: false\r\n }\r\n }\r\n )\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.http.post<null>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * ITEMID - обязателен в конечной отправке но не обязателен для ACTION_ELAPSED_TIME_ADD,\r\n * поэтому этом методе можно ставить \"1\" например, так же метод может выдавать ошибки о не доступности задачи\r\n * поэтому рекомендую воспользоваться аналогичным методом в пространстве имен navvy\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.http.post<boolean>(this.url.isactionallowed, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestElapseditem,\r\n ) {\r\n }\r\n\r\n}\r\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 { iBXRestHttpTask } from '../../typification/rest/task/task'\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\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\n get(requestArray: iBXRestParamTaskGet) {\n return this.http.post<{ task: iBXRestHttpTask | undefined }>(this.url.get, requestArray)\n }\n\n list(param: iBXRestParamTasksList = {}) {\n return this.http.post<{tasks: iBXRestHttpTask[] | undefined}>(this.url.list, param)\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\n getaccess(param: iBXRestParamTaskGetAccess) {\n return this.http.post<iBXRestTaskGetAccess>(this.url.getaccess, param)\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 markdeleted(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id})\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 )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $disk, $get } from '../../consts/part-name-metods'\r\nimport { iBXRestDiskAttachedObjectHttp } from '../../typification/rest/disk/AttachedObject'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskAttachedObject {\r\n url = {\r\n get: [$disk, 'attachedObject', $get]\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<iBXRestDiskAttachedObjectHttp>(this.url.get, {id: id})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject';\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 public attachedObject: BXRestDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $workflow, $list} from '../../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowInstance {\r\n\r\n url = {\r\n list: [$bizproc, $workflow, $instances, $list], // Возвращает список запущенных бизнес-процессов. Алиас bizproc.workflow.instances\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $template, $workflow, $list, $add, $delete, $update } from '../../../consts/part-name-metods'\r\nimport {\r\n iBXRestParamBizprocWorkflowTemplateList\r\n} from '../../../typification/rest/bizproc/workflow/template/list'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowTemplate {\r\n\r\n url = {\r\n add: [$bizproc, $workflow, $template, $add],\t// Добавляет шаблон Бизнес-процесса // TODO: реализовать\r\n delete: [$bizproc, $workflow, $template, $delete], // Удаляет шаблон Бизнес-процесса // TODO: реализовать\r\n update: [$bizproc, $workflow, $template, $update],\t// Изменяет шаблон Бизнес-процесса // TODO: реализовать\r\n list: [$bizproc, $workflow, $template, $list] // Возвращает список шаблонов Бизнес-процессов, установленных на сайте\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n return this.http.post(this.url.list, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $start, $terminate, $workflow, $kill} from '../../consts/part-name-metods'\r\nimport { BXRestBizprocWorkflowInstance } from './workflow/instance'\r\nimport { BXRestBizprocWorkflowTemplate } from './workflow/template'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflow {\r\n\r\n url = {\r\n instances: [$bizproc, $workflow, $instances], // Возвращает список запущенных бизнес-процессов // TODO: реализовать\r\n terminate: [$bizproc, $workflow, $terminate], // Останавливает активный Бизнес-процесс // TODO: реализовать\r\n start: [$bizproc, $workflow, $start], // Запускает Бизнес-процесс\r\n kill: [$bizproc, $workflow, $kill], // Удаляет запущенный бизнес-процесс // TODO: реализовать\r\n }\r\n\r\n constructor(\r\n public instances: BXRestBizprocWorkflowInstance,\r\n public template: BXRestBizprocWorkflowTemplate,\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.http.post<string>(this.url.start, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $add, $activity, $delete, $list, $update, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocActivity {\r\n url = {\r\n add: [$bizproc, $activity, $add], // Добавляет новое действие в бизнес-процесс\r\n delete: [$bizproc, $activity, $delete], // Удаляет действие\r\n list: [$bizproc, $activity, $list], // Возвращает список установленных приложением действий\r\n update: [$bizproc, $activity, $update], // Позволяет обновить поля действия\r\n log: [$bizproc, $activity, $log]// Записывает информацию в лог бизнес-процесса\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $task, $complete, $list } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocTask {\r\n url = {\r\n complete: [$bizproc, $task, $complete], // Осуществляет выполнение заданий БП\r\n list: [$bizproc, $task, $list], // Возвращает список заданий бизнес-процессов\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $delete, $update, $list, $robot, $add } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocRobot {\r\n url = {\r\n add: [$bizproc, $robot, $add], // Регистрирует нового робота\r\n delete: [$bizproc, $robot, $delete], // Удаляет зарегистрированного робота\r\n list: [$bizproc, $robot, $list], // Список зарегистрированных приложением роботов\r\n update: [$bizproc, $robot, $update] // Обновляет поля робота\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $event, $send } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocEvent {\r\n url = {\r\n send: [$bizproc, $event, $send], // Возвращает действию выходные параметры, заданные в описании действия\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestBizprocWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizprocActivity } from './bizproc/activity'\r\nimport { BXRestBizprocTask } from './bizproc/task'\r\nimport { BXRestBizprocRobot } from './bizproc/robot'\r\nimport { BXRestBizprocEvent } from './bizproc/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestBizprocWorkflow,\r\n public activity: BXRestBizprocActivity,\r\n public task: BXRestBizprocTask,\r\n public robot: BXRestBizprocRobot,\r\n public event: BXRestBizprocEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX';\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.http.post<boolean>(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLog {\r\n\r\n constructor(\r\n public blogPost: BXRestLogBlogPost,\r\n public blogComment: BXRestLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { iBXRestCalendarEventGetAnswerHttp } from '../../typification/rest/calendar/get/answer'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendarEvent {\r\n\r\n url = {\r\n add: [$calendar, $event, $add], //\tДобавляет новое событие\r\n delete: [$calendar, $event, $delete], // Удаляет событие\r\n get: [$calendar, $event, $get], // Возвращает список событий календаря\r\n getNearest: [$calendar, $event, $get, $nearest], // Возвращает список будущих событий для текущего пользователя\r\n update: [$calendar, $event, $get, $update], // Редактирует существующее событие\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.http.post<iBXRestCalendarEventGetAnswerHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $create,\r\n $delete,\r\n $get,\r\n $sonet_group,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\r\n iBXRestParamSonetGroupGet, iBXRestParamSonetHttp\r\n} from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestSonetGroup {\r\n\r\n url = {\r\n create: [$sonet_group, $create], // Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n delete: [$sonet_group, $delete], // Удаляет группу соцсети\r\n // feature: {\r\n // access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n // },\r\n get: [$sonet_group, $get], // Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n setowner: [$sonet_group, 'setowner'], // Изменяет владельца группы\r\n update: [$sonet_group, $update], // Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n // user: {\r\n // add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n // delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n // get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n // groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n // invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n // request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n // update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n // },\r\n // workgroup: {\r\n // list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n // get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n // }\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n // // TODO: filter и select позже нормально описать\r\n // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n // return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n // this.url.get,\r\n // {\r\n // order: select,\r\n // filter: filter\r\n // }\r\n // )\r\n // }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.http.post<iBXRestParamSonetHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $server,\r\n $time\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestServer {\r\n url = {\r\n time: [$server, $time]\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n time(){\r\n return this.http.post<string>(this.url.time)\r\n }\r\n}\r\n","import { Observable, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\nexport type ReturnTypeNavvy<T, R> = T extends R ? T : R;\r\n\r\nexport abstract class NavvySupport<C, M, T, R> {\r\n\r\n pageSize = 50 // больше всё равно не дас\r\n\r\n protected constructor(\r\n public requestClass: C,\r\n public mapClass: M\r\n ) {\r\n }\r\n\r\n mapAndSnackBarError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n // errorText: string\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n // this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n mapResult<T, R>(param: iBXRestAnswer<T> | undefined, map: (mapParam: T) => R): iBXRestAnswer<R> | undefined {\r\n return (param && param.result) ? Object.assign(param, {result: map(param.result)}) : undefined\r\n }\r\n\r\n abstract resultVanilla(): Observable<iBXRestAnswer<T> | undefined>\r\n\r\n abstract mapForVanilla(): ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n\r\n abstract result(): ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\nimport { NavvySupport, ReturnTypeNavvy } from './NavvySupport'\r\n\r\nexport class NavvySimple<C, M, T, R> extends NavvySupport<C, M, T, R> {\r\n\r\n constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n public func: Observable<iBXRestAnswer<T> | undefined>,\r\n public testError: string = '',\r\n public map: ((param: T) => R) | undefined = undefined\r\n // private snackBar: SnackBarService,\r\n ) {\r\n super(requestClass, mapClass)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func\r\n }\r\n\r\n mapForVanilla() {\r\n return this.func.pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v,{result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.mapAndSnackBarError(this.func).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n}\r\n","import { NavvySupport, ReturnTypeNavvy } from '../NavvySupport'\r\nimport { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\n\r\nexport abstract class NavvyPagNavBase<C, M, T, R, P> extends NavvySupport<C, M, T, R> {\r\n\r\n // load: number = 0\r\n\r\n public constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n protected func: (param: P) => Observable<iBXRestAnswer<T> | undefined>,\r\n protected param: P,\r\n protected testError: string = '',\r\n protected map: ((param: T | undefined) => R | undefined) | undefined = undefined) {\r\n super(requestClass, mapClass)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func.call(this.requestClass, this.param)\r\n }\r\n\r\n mapForVanilla() {\r\n return this.mapForVanillaEnd(this.func, this.param)\r\n }\r\n\r\n protected mapForVanillaEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return func.call(this.requestClass, param).pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v, {result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.resultEnd(this.func, this.param)\r\n }\r\n\r\n protected resultEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return this.mapAndSnackBarError(func.call(this.requestClass, param)).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n\r\n abstract resultAll(): any// : ReturnType<Observable<T | undefined>, Observable<R | undefined>>[]\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { concatMap, from, mergeMap, Observable, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { iBXRestElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport clone from 'just-clone'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<C, M> extends NavvyPagNavBase<C, M, iBXRestElapsedItemHttp[], iBXRestElapsedItemHttp[], iBXRestParamElapseditemGet | undefined>{\r\n\r\n resultAll(){\r\n return this.mapAndSnackBarError(this.getAllTaskElapsedItem(this.func.call, this.param))\r\n }\r\n\r\n /**\r\n * Метод в котором все должно крутиться, не конечный вариант\r\n * работаем от частного к общему\r\n *\r\n * @param func\r\n * @param param\r\n */\r\n private getAllTaskElapsedItem(\r\n func: (param: iBXRestParamElapseditemGet | undefined) => Observable<iBXRestAnswer<iBXRestElapsedItemHttp[]> | undefined>,\r\n param: iBXRestParamElapseditemGet | undefined = undefined\r\n ) {\r\n return func.call(this.requestClass, param).pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n param = (param) ? param : {}\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n let requests: iBXRestParamElapseditemGet[] = []\r\n for (let i = 0; i < this.pageSize; i + this.pageSize) {\r\n let paramClone = clone(param)\r\n paramClone.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: (items.next + i) / this.pageSize + 1\r\n }\r\n }\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return from(requests).pipe(\r\n concatMap(param => func.call(this.requestClass, param)),\r\n )\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n }\r\n }\r\n return from([items])\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n /*\r\n getAll<T>(request: Observable<iBXRestAnswer<T> | undefined>,\r\n errorText: string) {\r\n return request.pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n }\r\n }\r\n ),\r\n // map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n */\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// TODO: реализовать загрузку всего в очереди\r\nexport class NavvyPagNav<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, last, mergeMap, throwError } from 'rxjs'\r\nimport clone from 'just-clone'\r\n\r\nexport class NavvyPagNavWithUselessKey<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, {[key: string]: T}, R[], P> {\r\n resultAll() {\r\n let save: (T | R)[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v)\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n return this.mapForVanillaEnd(this.func, this.param).pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = 0; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n /*\r\n return from(requests.map(param => this.resultEnd(this.func, param))).pipe(\r\n // toArray(),\r\n mergeMap(v => {\r\n return v\r\n })\r\n )\r\n */\r\n\r\n return from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n }\r\n }\r\n return from([1]).pipe(\r\n concatMap(_ => this.resultEnd(this.func, this.param)),\r\n )\r\n // return from([BXRestMapResult(items)])\r\n // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { NavvySimple } from './Navvy/NavvySimple'\r\nimport { NavvyAlterPagNav } from './Navvy/NavvyAlternativePaginationNavigation'\r\nimport { iBXRestElapsedItemHttp } from '../typification/rest/task/elapseditem/item'\r\nimport { iBXRestParamElapseditemGet } from '../typification/rest/task/elapseditem/get'\r\nimport { NavvyPagNav } from './Navvy/NavvyPagNav'\r\nimport { iBXRestPagination } from '../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavWithUselessKey } from './Navvy/NavvyPagNavWithUselessKey'\r\n\r\nexport class Navvy<C, M> {\r\n\r\n constructor(\r\n protected requestClass: C,\r\n protected mapClass: M\r\n // private snackBar: SnackBarService,\r\n ) {\r\n }\r\n\r\n simple<T, R>(\r\n func: () => Observable<iBXRestAnswer<T> | undefined>,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined\r\n ) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass), testError, map)\r\n }\r\n\r\n simpleWithArg<T, R, A>(\r\n func: (param: A) => Observable<iBXRestAnswer<T> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass, arg), testError, map)\r\n }\r\n\r\n PagNav<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n PagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: { [key: string]: T } | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNavWithUselessKey(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n alterPagNav(\r\n func: (param: iBXRestParamElapseditemGet | undefined) => Observable<iBXRestAnswer<iBXRestElapsedItemHttp[]> | undefined>,\r\n arg: iBXRestParamElapseditemGet | undefined = undefined,\r\n testError: string = '',\r\n map: ((param: iBXRestElapsedItemHttp[] | undefined) => iBXRestElapsedItemHttp[] | undefined) | undefined = undefined) {\r\n return new NavvyAlterPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestUserUserfield } from '../../request/user/userfield'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyUserUserfield {\r\n\r\n Navvy: Navvy<BXRestUserUserfield, undefined>\r\n\r\n constructor(\r\n private BXRestUserUserfield: BXRestUserUserfield\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestUserUserfield, undefined)\r\n }\r\n\r\n list() {\r\n return this.Navvy.simple(this.BXRestUserUserfield.list, 'Не удалось получить список кастомных полей')\r\n }\r\n}\r\n","import { of, tap } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\nimport { BXRestUser } from '../request/user'\nimport { BXRestUserMap } from '../map/user'\nimport { Navvy } from '../services/navvy'\nimport { iBXRestUserHttp } from '../typification/rest/user/user'\nimport { SessionStorage } from '../services/vanilla/sessionStorage'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport clone from 'just-clone'\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\nimport { BXRestNavvyUserUserfield } from './user/userfield'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyUser {\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n private Navvy: Navvy<BXRestUser, BXRestUserMap>\n\n constructor(\n private BXRestUserMap: BXRestUserMap,\n private BXRestUser: BXRestUser,\n public userfield: BXRestNavvyUserUserfield\n ) {\n this.Navvy = new Navvy(this.BXRestUser, this.BXRestUserMap)\n }\n\n admin() {\n return this.Navvy.simple(\n this.BXRestUser.admin,\n 'Информация о возможных принадлежности человека к администратору не получена'\n )\n }\n\n get(params: iBXRestParamUserGet = {}){\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n\n return this.Navvy.PagNav(\n this.BXRestUser.get,\n copyParams,\n 'Не удалось получить пользователей',\n this.BXRestUserMap.get\n )\n }\n\n current(update = false) {\n return this.Navvy.simpleWithArg(\n this.self,\n update,\n '',\n this.BXRestUserMap.current\n )\n }\n\n /*\n update(user: iBXRestUser, fieldUpdate: string[]) {\n return this.Navvy.simple(\n this.BXRestUser.update(user, fieldUpdate),\n 'Не удалось обновить пользователя с ID' + user.ID\n )\n }\n */\n search(params: string | iBXRestParamUserSearch) {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.Navvy.PagNav(\n this.BXRestUser.search,\n params,\n 'Сервер не отвечает на запрос поиска',\n this.BXRestUserMap.get\n )\n }\n\n access(params: string[]) {\n return this.Navvy.simpleWithArg(\n this.BXRestUser.access,\n params,\n 'Не удалось получить права'\n )\n }\n\n fields() {\n return this.Navvy.simple(this.BXRestUser.fields, 'Не удалось поля')\n }\n\n private self(update = false) {\n if (update) {\n return this.BXRestUser.current(update)\n } else {\n let self = SessionStorage.getItem(this.constructor.name + this.self.name) as iBXRestUserHttp\n if (self) {\n return of({result: self} as iBXRestAnswer<iBXRestUserHttp>)\n }\n return this.BXRestUser.current(update)\n .pipe(\n map(v => {\n if (v) {\n return v\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n SessionStorage.setItem(this.constructor.name + this.self.name, v)\n }\n }),\n )\n }\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 // 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: iBXRestParamUserGet) {\n if(!params.FILTER) {\n params.FILTER = {}\n }\n\n if (!params.hasOwnProperty('ACTIVE')) {\n params.FILTER.ACTIVE = this.def.params.ACTIVE\n }\n if (params.FILTER.ACTIVE && params.FILTER.ACTIVE === 2) {\n delete params.FILTER.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\n delete params.FILTER.UF_DEPARTMENT\n }\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapListsField {\r\n get(v: { [key: string]: iBXRestFieldItem } | undefined):iBXRestFieldItem[] | undefined {\r\n return (v) ? Object.values(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestListsField from '../../request/lists/field'\r\nimport { iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestNavvyListsField {\r\n private Navvy: Navvy<BXRestListsField, BXRestMapListsField>\r\n\r\n constructor(\r\n private BXRestListsField: BXRestListsField,\r\n private BXRestMapListsField: BXRestMapListsField,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsField, this.BXRestMapListsField)\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.Navvy.PagNavWithUselessKey(\r\n this.BXRestListsField.get,\r\n param,\r\n 'Не удалось получить поля списка',\r\n this.BXRestMapListsField.get\r\n )\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[] | undefined): iBXRestListsElement[] | undefined {\r\n\r\n return (items)\r\n ? 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 : undefined\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 BXRestListsElementMap from '../../map/lists/element'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n private Navvy: Navvy<BXRestListsElement, BXRestListsElementMap>\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsElement, this.BXRestMap)\r\n }\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.PagNav(\r\n this.BXRestListsElement.get,\r\n param,\r\n 'Не удалось получить элемент списка',\r\n this.BXRestMap.get\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestListsElement.add, param, 'Не удалось добавить элемент списка')\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLists extends BaseMapServices {\r\n\r\n get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n return (value) ? value.map(i => this.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n }\r\n\r\n protected iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\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: this.toNum(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: this.toNum(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.toNum(itemLists.SORT),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: this.toStr(itemLists.TMP_ID),\r\n VERSION: this.toNum(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: this.toStr(itemLists.XML_ID),\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyListsElement } from './lists/element'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLists {\r\n\r\n protected Navvy: Navvy<BXRestLists, BXRestMapLists>\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement,\r\n public field: BXRestNavvyListsField,\r\n protected mapList: BXRestMapLists,\r\n protected BXRestLists: BXRestLists,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLists, this.mapList)\r\n }\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.PagNav(this.BXRestLists.get, param,'Не удалось получить список', this.mapList.get)\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 { SessionStorage } from './vanilla/sessionStorage'\r\nimport { iBXRestPermission, iBXRestPermissionAddictionItem } from '../typification/permission'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Permission {\r\n\r\n static get(){\r\n return SessionStorage.getItem('permission') as iBXRestPermission\r\n }\r\n\r\n static set(param: iBXRestPermission){\r\n SessionStorage.setItem('permission', Object.assign(this.get(), param))\r\n }\r\n\r\n static setTaskElapsedItem(idTask: number, ElapsedItem: iBXRestPermissionAddictionItem){\r\n let permission = Permission.get()\r\n if(permission.tasks) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if(findTask){\r\n let findTaskElapsedItem = findTask.elapsedItem.find(i => i.id === ElapsedItem.id)\r\n if(findTaskElapsedItem) {\r\n if(ElapsedItem.verified.edit){\r\n findTaskElapsedItem.verified.edit = ElapsedItem.verified.edit\r\n findTaskElapsedItem.edit = ElapsedItem.edit\r\n }\r\n if(ElapsedItem.verified.del){\r\n findTaskElapsedItem.verified.del = ElapsedItem.verified.del\r\n findTaskElapsedItem.del = ElapsedItem.del\r\n }\r\n } else {\r\n findTask.elapsedItem.push(ElapsedItem)\r\n }\r\n }\r\n SessionStorage.setItem('permission', permission)\r\n }\r\n }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../../typification/rest/task/task'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasksTask extends BaseMapServices{\r\n getaccess(v: iBXRestTaskGetAccess | undefined){\r\n return (v && v.allowedActions) ? v.allowedActions : undefined\r\n }\r\n\r\n add(item: { task: iBXRestHttpTask } | undefined): iBXRestTask | undefined {\r\n return (item) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n get(item: {task: iBXRestHttpTask | undefined } | undefined ): iBXRestTask | undefined {\r\n return (item && item.task) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n list(item: {tasks: iBXRestHttpTask[] | undefined} | undefined): iBXRestTask[] | undefined{\r\n return (item && item.tasks) ? item.tasks.map( i => this.TaskBXHttpToTaskBX(i)) : undefined\r\n }\r\n\r\n private 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 { BXRestTasksTask } from '../../request/tasks/task'\nimport { iBXRestTaskFieldsName } from '../../typification/rest/task/base/fieldsName'\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\nimport { Navvy } from '../../services/navvy'\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\nimport { iBXRestParamTaskGetAccess } from '../../typification/rest/task/access/getaccess'\nimport { BXRestMapTasksTask } from '../../map/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 Navvy: Navvy<BXRestTasksTask, BXRestMapTasksTask>\n\n constructor(\n private BXRestTasksTask: BXRestTasksTask,\n // private snackBar: SnackBarService,\n // private store: Store<{ tasks: IStoreTask }>,\n private BXRestMapTasksTask: BXRestMapTasksTask,\n\n // private taskResultMap: BitrixApiTaskResultMapServices\n ) {\n this.Navvy = new Navvy(this.BXRestTasksTask, this.BXRestMapTasksTask)\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.Navvy.simpleWithArg(\n this.BXRestTasksTask.add,\n param,\n 'Не удалось добавить задачу',\n this.BXRestMapTasksTask.add\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\n get(param: iBXRestParamTaskGet) {\n if (!param.select) {\n param.select = this.def.select\n }\n return this.Navvy.simpleWithArg(\n this.BXRestTasksTask.get,\n param,\n 'Не удалось получить задачу',\n this.BXRestMapTasksTask.get\n )\n }\n\n\n list(param: iBXRestParamTasksList = {}) {\n if (!param.select) {\n param.select = this.def.select\n }\n return this.Navvy.simpleWithArg(\n this.BXRestTasksTask.list,\n param,\n 'Не удалось получить список задач',\n this.BXRestMapTasksTask.list\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\n getaccess(param: iBXRestParamTaskGetAccess) {\n return this.Navvy.simpleWithArg(\n this.BXRestTasksTask.getaccess,\n param,\n 'Не удалось получить права на указанных пользователей',\n this.BXRestMapTasksTask.getaccess\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\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskElapseditem {\r\n update(p: null){\r\n return (p == null)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestElapseditem } from '../../../request/task/elapseditem'\r\nimport { BXRestMapTaskElapseditem } from '../../../map/task/elapseditem'\r\nimport { Navvy } from '../../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyOperationElapseditem {\r\n\r\n private Navvy: Navvy<BXRestElapseditem, BXRestMapTaskElapseditem>\r\n\r\n constructor(\r\n private BXRestElapseditem: BXRestElapseditem,\r\n private BXRestMapElapseditem: BXRestMapTaskElapseditem,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem)\r\n }\r\n\r\n getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestElapseditem.getList,\r\n {\r\n ORDER: {\r\n ID: 'DESC'\r\n },\r\n FILTER: {\r\n USER_ID: idsUsers,\r\n '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru'),\r\n '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru'),\r\n }\r\n }\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport { mergeMap, of, tap, throwError } from 'rxjs'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { BXRestElapseditem } from '../../request/task/elapseditem'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { Permission } from '../../services/permission'\r\nimport { BXRestNavvyUser } from '../user'\r\nimport { BXRestNavvyTasks } from '../tasks'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskElapseditem } from '../../map/task/elapseditem'\r\nimport { BXRestNavvyOperationElapseditem } from './operation/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyElapseditem {\r\n private Navvy: Navvy<BXRestElapseditem, BXRestMapTaskElapseditem>\r\n\r\n constructor(\r\n private BXRestElapseditem: BXRestElapseditem,\r\n private BXRestNavvyUser: BXRestNavvyUser,\r\n private BXRestNavvyTasks: BXRestNavvyTasks,\r\n private BXRestMapElapseditem: BXRestMapTaskElapseditem,\r\n public operation: BXRestNavvyOperationElapseditem\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem)\r\n }\r\n\r\n /*\r\n call(methodName: string, ...args: any[]){\r\n if (typeof this[methodName] === 'function') {\r\n return this[methodName](...args);\r\n }\r\n return this[methodName](...args);\r\n }\r\n */\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet | undefined = undefined\r\n ) {\r\n if (param) {\r\n if (!param.TASKID && !param.SELECT) {\r\n param.SELECT = ['*']\r\n }\r\n if (!param.TASKID && !param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: 50,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n return this.Navvy.alterPagNav(this.BXRestElapseditem.getList, param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.checkPermissionAddTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.add(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n }))\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.update(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })), 'Не удалось обновить элемент списка', this.BXRestMapElapseditem.update)\r\n }\r\n\r\n /*\r\n getAll(\r\n params: RequestParamsElapsedGetList | undefined = undefined,\r\n cache = false\r\n ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {\r\n return this.get(params, cache)\r\n .pipe(\r\n mergeMap(items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n /*\r\n getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {\r\n return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>\r\n (this.url.getlist, params, 'не удалось получить время по задачам')\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n const newResult: BXRestElapsed[] = []\r\n for (let task of v.result) {\r\n newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))\r\n }\r\n return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>\r\n }\r\n return undefined\r\n }),\r\n tap(v => {\r\n if (v && params) {\r\n this.store.dispatch(saveHttpTaskTime({\r\n filter: clone(params),\r\n time: v\r\n }))\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n isAllowedModify(idTask: number, idItem: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask) {\r\n let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n if (find && find.verified.edit) {\r\n return of(find.edit)\r\n }\r\n }\r\n }\r\n\r\n return this.isActionAllowed({\r\n TASKID: idTask,\r\n ITEMID: 2,\r\n ACTIONID: idItem\r\n }).result().pipe(\r\n tap(v => {\r\n if (v !== undefined) {\r\n Permission.setTaskElapsedItem(idTask,\r\n {\r\n id: idItem,\r\n edit: v,\r\n del: false,\r\n verified: {\r\n edit: true,\r\n del: false,\r\n }\r\n })\r\n }\r\n })\r\n )\r\n }\r\n\r\n private isAllowedRemove(idTask: number, idItem: number) {\r\n return this.isActionAllowed(\r\n {\r\n TASKID: idTask,\r\n ITEMID: 3,\r\n ACTIONID: idItem\r\n }).result()\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n return this.BXRestElapseditem.isActionAllowed(param)\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n })\r\n ))\r\n }\r\n\r\n checkPermissionAddTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n private checkPermissionReadTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission.ACCEPT)\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID].ACCEPT : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.del(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })\r\n ), 'Не удалось удалить элемент списка', v => (v === null))\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestNavvyElapseditem,\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)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFolder {\r\n\r\n private Navvy: Navvy<BXRestDiskFolder, BXRestMapDiskFolder>\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder,\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFolder, this.BXRestMapDiskFolder)\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.Navvy.simpleWithArg(\r\n this.BXRestDiskFolder.getchildren,\r\n id,\r\n 'get folders and files',\r\n this.BXRestMapDiskFolder.getContent\r\n )\r\n }\r\n\r\n}\r\n","import { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapDiskFile extends BaseMapServices {\r\n\r\n get(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n\r\n markdeleted(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile {\r\n\r\n private Navvy: Navvy<BXRestDiskFile, BXRestMapDiskFile>\r\n\r\n constructor(\r\n private BXRestDiskFile: BXRestDiskFile,\r\n private BXRestMapDiskFile: BXRestMapDiskFile,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFile, this.BXRestMapDiskFile)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.get,\r\n id,\r\n 'Не удалось получить файл',\r\n this.BXRestMapDiskFile.get\r\n )\r\n }\r\n\r\n markdeleted(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.markdeleted,\r\n id,\r\n 'Не удалось переместить файл в корзину',\r\n this.BXRestMapDiskFile.markdeleted\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\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n\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\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\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, {}\r\n )\r\n }\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param\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 { iBXRestParamUploadFile } from '../../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../../typification/rest/disk/storage/getchildren'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../../typification/rest/disk/folder'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyInterlayerDiskStorage {\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getforapp.name)\r\n if (res) {\r\n return of(res)\r\n } else {\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n }),\r\n shareReplay(1)\r\n )\r\n }\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.BXRestDiskStorage.getchildren(param)\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param)\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 BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\nimport { BXRestNavvyInterlayerDiskStorage } from './interlayer/storage'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n private Navvy: Navvy<BXRestNavvyInterlayerDiskStorage, BXRestMapDiskStorage>\r\n\r\n constructor(\r\n private BXRestNavvyInterlayerDiskStorage: BXRestNavvyInterlayerDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage,\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestNavvyInterlayerDiskStorage, this.BXRestMapDiskStorage)\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n // console.log('this.getforappEnd', this.getforappEnd)\r\n return this.Navvy.simple(this.BXRestNavvyInterlayerDiskStorage.getforapp, 'get root app folder')\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestNavvyInterlayerDiskStorage.getchildren,\r\n param,\r\n 'get root app folders and files',\r\n this.BXRestMapDiskStorage.getchildren\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.uploadfile, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } 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: BXRestNavvyDiskFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: {\r\n name: string,\r\n val: string\r\n }) {\r\n return this.storage.getforapp().result().pipe(\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 }).result()\r\n }\r\n return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\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).mapForVanilla()\r\n }\r\n return of(undefined)\r\n })\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\r\n\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID}).result()\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({result: find})\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}}).result()\r\n }\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n return (v) ? this.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n }\r\n\r\n private iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n return Object.assign(v, {\r\n ID: this.toNum(v.ID),\r\n OBJECT_ID: this.toNum(v.OBJECT_ID),\r\n ENTITY_ID: this.toNum(v.ENTITY_ID),\r\n CREATE_TIME: this.toDate(v.CREATE_TIME),\r\n CREATED_BY: this.toNum(v.CREATED_BY),\r\n SIZE: this.toNum(v.SIZE)\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskAttachedObject } from '../../request/disk/attachedObject'\r\nimport BXRestMapDiskAttachedObject from '../../map/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskAttachedObject {\r\n private Navvy: Navvy<BXRestDiskAttachedObject, BXRestMapDiskAttachedObject>\r\n\r\n constructor(\r\n private BXRestDiskAttachedObject: BXRestDiskAttachedObject,\r\n private mapAttachedObject: BXRestMapDiskAttachedObject,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskAttachedObject, this.mapAttachedObject)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskAttachedObject.get, id,\r\n 'Не удалось получить прикрепленные файлы',\r\n this.mapAttachedObject.get)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDisk {\r\n constructor(\r\n public operation: BXRestNavvyDiskOperation,\r\n public file: BXRestNavvyDiskFile,\r\n public folder: BXRestNavvyDiskFolder,\r\n public attachedObject: BXRestNavvyDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizprocWorkflow } from '../../request/bizproc/workflow'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizprocWorkflow {\r\n private Navvy: Navvy<BXRestBizprocWorkflow, undefined>\r\n\r\n constructor(\r\n private BXRestBizprocWorkflow: BXRestBizprocWorkflow,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestBizprocWorkflow, undefined)\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestBizprocWorkflow.start, param,\r\n 'Не удалось запустить бизнес процесс'\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBizprocWorkflow } from './bizproc/workflow'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestNavvyBizprocWorkflow,\r\n private BXRestNavvyLists: BXRestNavvyLists\r\n ) {\r\n }\r\n\r\n /**\r\n * Метод по запуску бизнес процессов из ленты\r\n * TODO: продумать работу с такими методами-исключениями\r\n *\r\n * @param id\r\n * @param parametersElement\r\n * @param parametersBizproc\r\n * @param templateIDs\r\n */\r\n startProcFormNewsFeed(\r\n id: number,\r\n parametersElement: { [key: string]: string },\r\n parametersBizproc: { [key: string]: string },\r\n templateIDs: number[]\r\n ) {\r\n return this.BXRestNavvyLists.element.add(\r\n {\r\n IBLOCK_TYPE_ID: 'bitrix_processes',\r\n IBLOCK_ID: id,\r\n ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n // как ещё уникальнее сделать я просто не знаю\r\n // это поле обязательно без него не работает\r\n FIELDS: {\r\n NAME: parametersElement['NAME'],\r\n ...parametersElement\r\n }\r\n }\r\n ).result().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (Object.keys(parametersBizproc).length) {\r\n let reques: Observable<string | undefined>[] = []\r\n for (let templateID of templateIDs) {\r\n reques.push(this.workflow.start(\r\n {\r\n TEMPLATE_ID: templateID,\r\n DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n PARAMETERS: parametersBizproc\r\n }).result())\r\n }\r\n return forkJoin(reques)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { BXRestLogBlogPost } from '../../request/log/blogpost'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n private Navvy: Navvy<BXRestLogBlogPost, undefined>\r\n\r\n constructor(\r\n private BXRestLogBlogPost: BXRestLogBlogPost,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLogBlogPost, undefined)\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLog {\r\n\r\n constructor(\r\n public blogPost: BXRestNavvyLogBlogPost,\r\n public blogComment: BXRestNavvyLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestCalendarEventGetAnswer,\r\n iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/get/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendarEvent extends BaseMapServices {\r\n\r\n get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined{\r\n return (item) ? item.map(i => this.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n }\r\n\r\n private CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n return {\r\n ...item,\r\n ID: this.toNum(item.ID),\r\n MEETING_HOST: this.toNum(item.MEETING_HOST),\r\n OWNER_ID: this.toNum(item.OWNER_ID),\r\n PARENT_ID: this.toNum(item.PARENT_ID),\r\n RECURRENCE_ID: this.toNum(item.RECURRENCE_ID),\r\n SECT_ID: this.toNum(item.SECT_ID),\r\n SECTION_ID: this.toNum(item.SECTION_ID),\r\n TZ_OFFSET_FROM: this.toNum(item.TZ_OFFSET_FROM),\r\n TZ_OFFSET_TO: this.toNum(item.TZ_OFFSET_TO),\r\n VERSION: this.toNum(item.VERSION),\r\n DATE_CREATE: this.toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM: this.toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}),\r\n ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n ? this.toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n : null,\r\n DATE_TO: this.toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_TO}),\r\n TIMESTAMP_X: this.toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM_TS_UTC: this.toNum(item.DATE_FROM_TS_UTC),\r\n DATE_TO_TS_UTC: this.toNum(item.DATE_TO_TS_UTC),\r\n DELETED: item.DELETED === 'Y',\r\n DT_LENGTH: this.toNum(item.DT_LENGTH),\r\n DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n EXDATE: item.EXDATE.split(';').map(dateStr => this.toDate(dateStr, 'dd.MM.yyyy')),\r\n RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n ...item.RRULE,\r\n UNTIL: this.toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n '~UNTIL': this.toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n } : null,\r\n ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n return {id: i.id, entryId: this.toNum(i.entryId), status: i.status}\r\n }) : []\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { BXRestCalendarEvent } from '../../request/calendar/event'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestRestCalendarEvent {\r\n private Navvy: Navvy<BXRestMapCalendarEvent, undefined>\r\n\r\n constructor(\r\n private BXRestCalendarEvent: BXRestCalendarEvent,\r\n private eventMap: BXRestMapCalendarEvent,\r\n ) {\r\n this.Navvy = new Navvy(this.eventMap, undefined)\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestCalendarEvent.get,\r\n param,\r\n 'Не удалось получить календарь',\r\n this.eventMap.get\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestParamSonet, iBXRestParamSonetHttp } from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapSonetGroup extends BaseMapServices {\r\n\r\n get(items: iBXRestParamSonetHttp[] | undefined ): iBXRestParamSonet[] | undefined {\r\n return (items) ? items.map(i => this.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n }\r\n\r\n private iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestParamSonetHttp): iBXRestParamSonet {\r\n return Object.assign(items,{\r\n ID: this.toNum(items.ID),\r\n DATE_CREATE: this.toDate(items.DATE_CREATE),\r\n DATE_UPDATE: this.toDate(items.DATE_UPDATE),\r\n ACTIVE: items.ACTIVE == 'Y',\r\n VISIBLE: items.VISIBLE == 'Y',\r\n OPENED: items.OPENED == 'Y',\r\n CLOSED: items.CLOSED == 'Y',\r\n SUBJECT_ID: this.toNum(items.SUBJECT_ID),\r\n OWNER_ID: this.toNum(items.OWNER_ID),\r\n NUMBER_OF_MEMBERS: this.toNum(items.OWNER_ID),\r\n DATE_ACTIVITY: this.toDate(items.DATE_ACTIVITY),\r\n PROJECT: items.OPENED == 'Y',\r\n IS_EXTRANET: items.OPENED == 'Y',\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group/get'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvySonetGroup {\r\n\r\n private Navvy: Navvy<BXRestSonetGroup, BXRestMapSonetGroup>\r\n\r\n constructor(\r\n private BXRestSonetGroup: BXRestSonetGroup,\r\n private mapSonetGroup: BXRestMapSonetGroup,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestSonetGroup, this.mapSonetGroup)\r\n }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestSonetGroup.get, param,\r\n 'Не удалось получить рабочую группу',\r\n this.mapSonetGroup.get\r\n )\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapServer extends BaseMapServices {\r\n time(v: string | undefined) {\r\n return (v) ? this.toDate(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestServer } from '../request/server'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyServer {\r\n\r\n protected Navvy: Navvy<BXRestServer, BXRestMapServer>\r\n\r\n constructor(\r\n private BXRestServer: BXRestServer,\r\n public BXRestMapServer: BXRestMapServer\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestServer, BXRestMapServer)\r\n }\r\n\r\n time(){\r\n return this.Navvy.simple(\r\n this.BXRestServer.time,\r\n 'Не удалось получить время сервера',\r\n this.BXRestMapServer.time\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 { BXRestMapLists } from './map/lists'\r\nimport { BXRestTasks } from './request/tasks'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestBizproc } from './request/bizproc'\r\nimport { BXRestLog } from './request/log'\r\nimport { BXRestCalendar } from './request/calendar'\r\nimport { BXRestSonetGroup } from './request/sonet_group'\r\nimport { BXRestTask } from './request/task'\r\nimport { BXRestServer } from './request/server'\r\n// Navvy\r\nimport { BXRestNavvyLists } from './request-navvy/lists'\r\nimport { BXRestNavvyTasks } from './request-navvy/tasks'\r\nimport { BXRestNavvyUser } from './request-navvy/user'\r\nimport { BXRestNavvyDisk } from './request-navvy/disk'\r\nimport { BXRestNavvyBizproc } from './request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from './request-navvy/log'\r\nimport { BXRestNavvyCalendar } from './request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from './request-navvy/sonet_group'\r\nimport { BXRestNavvyTask } from './request-navvy/task'\r\nimport { BXRestNavvyServer } from './request-navvy/server'\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 task: BXRestTask,\r\n public tasks: BXRestTasks,\r\n public disk: BXRestDisk,\r\n public bizproc: BXRestBizproc,\r\n public log: BXRestLog,\r\n public calendar: BXRestCalendar,\r\n public sonet_group: BXRestSonetGroup,\r\n public server: BXRestServer\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 task: BXRestNavvyTask,\r\n public tasks: BXRestNavvyTasks,\r\n public disk: BXRestNavvyDisk,\r\n public bizproc: BXRestNavvyBizproc,\r\n public log: BXRestNavvyLog,\r\n public calendar: BXRestNavvyCalendar,\r\n public sonet_group: BXRestNavvySonetGroup,\r\n public server: BXRestNavvyServer\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: BXRestMapLists\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","/*\n * Public API Surface of bx-rest\n */\nexport { BX_REST_SETTINGS } from './settings';\nexport { BXRestMapResult } from './functions/mapResult'\nexport { BXRest, BXRestNavvy, BXRestMap } from './rest'\nexport { Navvy } from './services/navvy'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","JSON","Cookies","LocalStorage","i1.RestServices","i1.HttpBXServices","i2.BXRestUserMap","i3.BXRestUserUserfield","i2.HttpBXServices","i1.BXRestElapseditem","i1.BXRestTasksTask","i1.BXRestDiskFile","i2.BXRestDiskFolder","i3.BXRestDiskAttachedObject","i1.BXRestBizprocWorkflowInstance","i2.BXRestBizprocWorkflowTemplate","i3.HttpBXServices","i1.BXRestBizprocWorkflow","i2.BXRestBizprocActivity","i3.BXRestBizprocTask","i4.BXRestBizprocRobot","i5.BXRestBizprocEvent","i1.BXRestLogBlogPost","i2.BXRestLogBlogComment","i1.BXRestCalendarEvent","i1.BXRestUserUserfield","i1.BXRestUserMap","i2.BXRestUser","i3.BXRestNavvyUserUserfield","i1.BXRestMapListsField","BXRestListsElementMap","i2.BXRestMapLists","i3.BXRestLists","i2.BXRestMapTasksTask","i1.BXRestNavvyTasksTask","i2.BXRestMapTaskElapseditem","i2.BXRestNavvyUser","i3.BXRestNavvyTasks","i4.BXRestMapTaskElapseditem","i5.BXRestNavvyOperationElapseditem","i1.BXRestNavvyElapseditem","i2.BXRestMapDiskFile","i1.BXRestDiskStorage","mergeMap","i1.BXRestNavvyDiskFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskOperation","i3.BXRestNavvyDiskFolder","i4.BXRestNavvyDiskAttachedObject","i1.BXRestNavvyBizprocWorkflow","i2.BXRestNavvyLists","i1.BXRestNavvyLogBlogPost","i2.BXRestNavvyLogBlogComment","i2.BXRestMapCalendarEvent","i1.BXRestRestCalendarEvent","i1.BXRestSonetGroup","i2.BXRestMapSonetGroup","i1.BXRestServer","i2.BXRestMapServer","i1.BXRestUser","i2.BXRestLists","i3.BXRestTask","i4.BXRestTasks","i5.BXRestDisk","i6.BXRestBizproc","i7.BXRestLog","i8.BXRestCalendar","i9.BXRestSonetGroup","i10.BXRestServer","i11.BXRestNavvyUser","i12.BXRestNavvyLists","i13.BXRestNavvyTask","i14.BXRestNavvyTasks","i15.BXRestNavvyDisk","i16.BXRestNavvyBizproc","i17.BXRestNavvyLog","i18.BXRestNavvyCalendar","i19.BXRestNavvySonetGroup","i20.BXRestNavvyServer","i21.BXRestMapLists"],"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/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/services/vanilla/sessionStorage.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/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task.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/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/calendar/event.ts","../../../projects/bx-rest/src/request/calendar.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/services/Navvy/NavvySupport.ts","../../../projects/bx-rest/src/services/Navvy/NavvySimple.ts","../../../projects/bx-rest/src/services/Navvy/extends/NavvyPagNavBase.ts","../../../projects/bx-rest/src/services/Navvy/NavvyAlternativePaginationNavigation.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNav.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNavWithUselessKey.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/map/base.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/services/permission.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task.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/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/interlayer/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.ts","../../../projects/bx-rest/src/rest.ts","../../../projects/bx-rest/src/map/calendar.ts","../../../projects/bx-rest/src/map/log/blogpost.ts","../../../projects/bx-rest/src/map/log.ts","../../../projects/bx-rest/src/map/task/commentitem.ts","../../../projects/bx-rest/src/map/task/result.ts","../../../projects/bx-rest/src/map/task/stages.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/map/tasks.ts","../../../projects/bx-rest/src/map.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 BX_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\nexport const $bizproc = 'bizproc'\r\nexport const $workflow = 'workflow'\r\nexport const $instances = 'instances'\r\nexport const $terminate = '$terminate'\r\nexport const $kill = 'kill'\r\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\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","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 { BX_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(BX_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\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorage {\r\n\r\n static setItem(name: string, value: any){\r\n sessionStorage.setItem(name, JSON.stringify(value))\r\n }\r\n\r\n static getItem<T>(name: string){\r\n const res = sessionStorage.getItem(name)\r\n if(res){\r\n return JSON.parse(res) as T\r\n }\r\n return undefined\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 saveApplicationAuth from '../../typification/auth/save'\nimport { Observable, of, Subscription } from 'rxjs'\n// import { ActivatedRoute, ParamMap } from '@angular/router'\nimport { BaseServices } from '../base'\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\nimport { RestServices } from '../../typification/rest/api-lib'\nimport { BX_REST_SETTINGS } from '../../settings'\nimport iBXRestAuth from '../../typification/auth/save'\nimport { SessionStorage } from '../vanilla/sessionStorage'\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: saveApplicationAuth | undefined\n subscribe = {\n authData: new Subscription()\n }\n\n constructor(\n // private route: ActivatedRoute,\n public BxApiLib: RestServices,\n ) {\n super()\n let authData = SessionStorage.getItem<iBXRestAuth>(this.constructor.name)\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 if (event.data.param.access_token) {\n let param = event.data.param;\n let 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 if (Object.keys(save).length && save.access_token) {\n SessionStorage.setItem(this.constructor.name, save)\n this.subscribeAll()\n }\n }\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 if(!save) {\n let save = {\n 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 (param.has('AUTH_ID') && !authData?.access_token.length) {\n const get = param.get('AUTH_ID')\n if (get) {\n Cookies.set('auth', get) //TODO: потом убрать\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) // TODO: потом убрать\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 SessionStorage.setItem(this.constructor.name, save)\n this.subscribeAll()\n } else {\n // если битрикс не шлёт нужные мне параметры на прямую\n // просим их мне отдать так как описано это в документации\n let f = () => {\n if (this.BxApiLib.BX24) {\n const initDate = this.BxApiLib.BX24.getAuth()\n SessionStorage.setItem(this.constructor.name, save)\n }\n }\n\n this.BxApiLib.init(f)\n }\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 (BX_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 (BX_REST_SETTINGS.auth.key.length) {\n return BX_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(): string | undefined {\n switch (BX_REST_SETTINGS.auth.source) {\n case 'cookies':\n return this.getAuth()\n default:\n return (this.authData) ? this.authData.access_token : undefined\n }\n }\n\n getBaseUrl(): Observable<string | undefined> {\n return of(this.prepareBaseAddress(BX_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\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 '../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 settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n abstract httpPost<T>(url: string,\r\n params: any ,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n handleError<T>(\r\n result?: T) {\r\n return (error: Error): Observable<T> => {\r\n console.error(`failed: ${error.message}`)\r\n return of(result as T)\r\n };\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { HttpParams } from '@angular/common/http'\r\nimport { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { BaseHttp } from './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 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 })\r\n }\r\n\r\n public httpPost<T>(url: string,\r\n params: any = {},\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 )\r\n }\r\n}\r\n","import { Observable, throwError, mergeMap } from 'rxjs'\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 { BaseHttpServices } from './base/http'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport 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 override httpPost<T>(url: string,\r\n params: any = {},\r\n settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n let auth = this.session.getAuthParams()\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 }\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 settings: iHttpParamSettings = this.defSettings\r\n ): Observable<T | undefined> {\r\n let auth = this.session.getAuthParams()\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)\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","import { Observable, throwError, mergeMap, forkJoin } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\nimport clone from 'just-clone'\nimport { iHttpParamSettings } from '../../typification/rest/settings'\nimport { HttpServices } from './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 class HttpBXServices extends HttpServices {\n\n 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 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 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 settings: iHttpParamSettings = this.defSettings) {\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\n }\n\n get<T>(name: string[],\n params: any = {},\n settings: iHttpParamSettings = this.defSettings) {\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\n }\n\n override httpPost<T>(url: string,\n params: any = {},\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n let auth = this.session.getAuthParams()\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 }\n return throwError(() => 'get base url error')\n }))\n } else {\n return throwError(() => 'auth not get')\n }\n }\n\n override httpGet<T>(\n url: string,\n params: any = {},\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n let auth = this.session.getAuthParams()\n\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)\n }\n return throwError(() => 'get base url error')\n })\n )\n } else {\n return throwError(() => 'auth not get')\n }\n\n }\n\n getNameMethod(arr: string[]) {\n return arr.join('.')\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { $list } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUserUserfield {\r\n url = {\r\n list: ['userfield', $list]\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n list() {\r\n return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n }\r\n}\r\n","import { share } from 'rxjs'\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport { HttpBXServices } from '../services/http/HttpBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\nimport { $get, $search, $update, $user } from '../consts/part-name-metods'\nimport { Injectable } from '@angular/core'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\nimport { BXRestUserUserfield } from './user/userfield'\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 }\n\n constructor(\n private http: HttpBXServices,\n public userfield: BXRestUserUserfield\n ) {\n }\n\n admin() {\n return this.http.get<boolean>(this.url.admin)\n }\n\n get(params: iBXRestParamUserGet = {}) {\n return this.http.post<iBXRestUserHttp[]>\n (\n this.url.get,\n params\n )\n }\n\n current(update = false) {\n let request = this.http.get<iBXRestUserHttp>(this.url.current, {})\n if (update) {\n return request\n } else {\n return request.pipe(\n share()\n )\n }\n }\n\n update(user: Partial<iBXRestUser>) {\n return this.http.post<iBXRestUserHttp[]>(\n this.url.update,\n user\n )\n }\n\n search(params: iBXRestParamUserSearch) {\n return this.http.get<iBXRestUserHttp[]>(this.url.search, params)\n }\n\n access(access: string[]) {\n return this.http.get<iBXRestAnswer<boolean> | undefined>(this.url.access, {ACCESS: access})\n }\n\n fields() {\n return this.http.get<iBXRestAnswer<iBXRestUserHttpField>>(this.url.fields)\n }\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { $add, $delete, $field, $get, $lists, $type, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestListsField {\r\n url = {\r\n add: [$lists, $field, $add], // Метод создает поле списка\r\n delete: [$lists, $field, $delete], // Метод удаляет поле списка\r\n get: [$lists, $field, $get], // Метод возвращает данные поля\r\n type: {\r\n get: [$lists, $field, $type, $get], // Метод возвращает доступные типа полей для указанного списка\r\n },\r\n update: [$lists, $field, $update], // Метод обновляет поле списка\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.http.post<{ [key: string]: iBXRestFieldItem }>(this.url.get, param)\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 {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\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], // Метод удаляет элемент списка // TODO: Реализовать\r\n get: [$lists, $element, $get], // Метод возвращает список элементов или элемент\r\n update: [$lists, $element, $update], //\tМетод обновляет элемент списка // TODO: Реализовать\r\n getFileUrl: [$lists, $element, $get, $file, $url] // Метод возвращает путь к файлу // TODO: Реализовать\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\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 add(param: iBXRestParamListsElementAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\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\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport BXRestListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport 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 public field: BXRestListsField,\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListGet) {\r\n return this.http.post<iBXRestListItemHttp[]>(this.url.get, pram)\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 {\r\n $add, $delete, $elapseditem, $get, $getlist, $getmanifest, $isactionallowed, $task, $update\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { iBXRestElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestElapseditem {\r\n\r\n url = {\r\n getmanifest: [$task, $elapseditem, $getmanifest], // Возвращает список методов и их описание\r\n getlist: [$task, $elapseditem, $getlist], // Возвращает список записей о затраченном времени по задаче\r\n get: [$task, $elapseditem, $get], // Возвращает запись о затраченном времени по ее идентификатору\r\n add: [$task, $elapseditem, $add], // Добавляет затраченное время к задаче\r\n delete: [$task, $elapseditem, $delete], // Удаляет запись о затраченном времени\r\n isactionallowed: [$task, $elapseditem, $isactionallowed], // Проверяет разрешено ли действие\r\n update: [$task, $elapseditem, $update], // Изменяет параметры записи о затраченном времени\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n return this.http.post<iBXRestElapsedItemHttp[]>(this.url.getlist, param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.http.post<number>(\r\n this.url.add,\r\n param,\r\n {\r\n timeZone: {\r\n calc: false,\r\n levelOut: false\r\n }\r\n }\r\n )\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.http.post<null>\r\n (\r\n this.url.update,\r\n param,\r\n {\r\n timeZone: {\r\n calc: false,\r\n levelOut: false\r\n }\r\n }\r\n )\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.http.post<null>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * ITEMID - обязателен в конечной отправке но не обязателен для ACTION_ELAPSED_TIME_ADD,\r\n * поэтому этом методе можно ставить \"1\" например, так же метод может выдавать ошибки о не доступности задачи\r\n * поэтому рекомендую воспользоваться аналогичным методом в пространстве имен navvy\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.http.post<boolean>(this.url.isactionallowed, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestElapseditem,\r\n ) {\r\n }\r\n\r\n}\r\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 { iBXRestHttpTask } from '../../typification/rest/task/task'\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\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\n get(requestArray: iBXRestParamTaskGet) {\n return this.http.post<{ task: iBXRestHttpTask | undefined }>(this.url.get, requestArray)\n }\n\n list(param: iBXRestParamTasksList = {}) {\n return this.http.post<{tasks: iBXRestHttpTask[] | undefined}>(this.url.list, param)\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\n getaccess(param: iBXRestParamTaskGetAccess) {\n return this.http.post<iBXRestTaskGetAccess>(this.url.getaccess, param)\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 markdeleted(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id})\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 )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $disk, $get } from '../../consts/part-name-metods'\r\nimport { iBXRestDiskAttachedObjectHttp } from '../../typification/rest/disk/AttachedObject'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskAttachedObject {\r\n url = {\r\n get: [$disk, 'attachedObject', $get]\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<iBXRestDiskAttachedObjectHttp>(this.url.get, {id: id})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject';\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 public attachedObject: BXRestDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $workflow, $list} from '../../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowInstance {\r\n\r\n url = {\r\n list: [$bizproc, $workflow, $instances, $list], // Возвращает список запущенных бизнес-процессов. Алиас bizproc.workflow.instances\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $template, $workflow, $list, $add, $delete, $update } from '../../../consts/part-name-metods'\r\nimport {\r\n iBXRestParamBizprocWorkflowTemplateList\r\n} from '../../../typification/rest/bizproc/workflow/template/list'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowTemplate {\r\n\r\n url = {\r\n add: [$bizproc, $workflow, $template, $add],\t// Добавляет шаблон Бизнес-процесса // TODO: реализовать\r\n delete: [$bizproc, $workflow, $template, $delete], // Удаляет шаблон Бизнес-процесса // TODO: реализовать\r\n update: [$bizproc, $workflow, $template, $update],\t// Изменяет шаблон Бизнес-процесса // TODO: реализовать\r\n list: [$bizproc, $workflow, $template, $list] // Возвращает список шаблонов Бизнес-процессов, установленных на сайте\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n return this.http.post(this.url.list, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $start, $terminate, $workflow, $kill} from '../../consts/part-name-metods'\r\nimport { BXRestBizprocWorkflowInstance } from './workflow/instance'\r\nimport { BXRestBizprocWorkflowTemplate } from './workflow/template'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflow {\r\n\r\n url = {\r\n instances: [$bizproc, $workflow, $instances], // Возвращает список запущенных бизнес-процессов // TODO: реализовать\r\n terminate: [$bizproc, $workflow, $terminate], // Останавливает активный Бизнес-процесс // TODO: реализовать\r\n start: [$bizproc, $workflow, $start], // Запускает Бизнес-процесс\r\n kill: [$bizproc, $workflow, $kill], // Удаляет запущенный бизнес-процесс // TODO: реализовать\r\n }\r\n\r\n constructor(\r\n public instances: BXRestBizprocWorkflowInstance,\r\n public template: BXRestBizprocWorkflowTemplate,\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.http.post<string>(this.url.start, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $add, $activity, $delete, $list, $update, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocActivity {\r\n url = {\r\n add: [$bizproc, $activity, $add], // Добавляет новое действие в бизнес-процесс\r\n delete: [$bizproc, $activity, $delete], // Удаляет действие\r\n list: [$bizproc, $activity, $list], // Возвращает список установленных приложением действий\r\n update: [$bizproc, $activity, $update], // Позволяет обновить поля действия\r\n log: [$bizproc, $activity, $log]// Записывает информацию в лог бизнес-процесса\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $task, $complete, $list } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocTask {\r\n url = {\r\n complete: [$bizproc, $task, $complete], // Осуществляет выполнение заданий БП\r\n list: [$bizproc, $task, $list], // Возвращает список заданий бизнес-процессов\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $delete, $update, $list, $robot, $add } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocRobot {\r\n url = {\r\n add: [$bizproc, $robot, $add], // Регистрирует нового робота\r\n delete: [$bizproc, $robot, $delete], // Удаляет зарегистрированного робота\r\n list: [$bizproc, $robot, $list], // Список зарегистрированных приложением роботов\r\n update: [$bizproc, $robot, $update] // Обновляет поля робота\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $event, $send } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocEvent {\r\n url = {\r\n send: [$bizproc, $event, $send], // Возвращает действию выходные параметры, заданные в описании действия\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestBizprocWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizprocActivity } from './bizproc/activity'\r\nimport { BXRestBizprocTask } from './bizproc/task'\r\nimport { BXRestBizprocRobot } from './bizproc/robot'\r\nimport { BXRestBizprocEvent } from './bizproc/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestBizprocWorkflow,\r\n public activity: BXRestBizprocActivity,\r\n public task: BXRestBizprocTask,\r\n public robot: BXRestBizprocRobot,\r\n public event: BXRestBizprocEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX';\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.http.post<boolean>(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLog {\r\n\r\n constructor(\r\n public blogPost: BXRestLogBlogPost,\r\n public blogComment: BXRestLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { iBXRestCalendarEventGetAnswerHttp } from '../../typification/rest/calendar/get/answer'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendarEvent {\r\n\r\n url = {\r\n add: [$calendar, $event, $add], //\tДобавляет новое событие\r\n delete: [$calendar, $event, $delete], // Удаляет событие\r\n get: [$calendar, $event, $get], // Возвращает список событий календаря\r\n getNearest: [$calendar, $event, $get, $nearest], // Возвращает список будущих событий для текущего пользователя\r\n update: [$calendar, $event, $get, $update], // Редактирует существующее событие\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.http.post<iBXRestCalendarEventGetAnswerHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $create,\r\n $delete,\r\n $get,\r\n $sonet_group,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\r\n iBXRestParamSonetGroupGet, iBXRestParamSonetHttp\r\n} from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestSonetGroup {\r\n\r\n url = {\r\n create: [$sonet_group, $create], // Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n delete: [$sonet_group, $delete], // Удаляет группу соцсети\r\n // feature: {\r\n // access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n // },\r\n get: [$sonet_group, $get], // Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n setowner: [$sonet_group, 'setowner'], // Изменяет владельца группы\r\n update: [$sonet_group, $update], // Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n // user: {\r\n // add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n // delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n // get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n // groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n // invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n // request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n // update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n // },\r\n // workgroup: {\r\n // list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n // get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n // }\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n // // TODO: filter и select позже нормально описать\r\n // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n // return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n // this.url.get,\r\n // {\r\n // order: select,\r\n // filter: filter\r\n // }\r\n // )\r\n // }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.http.post<iBXRestParamSonetHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $server,\r\n $time\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestServer {\r\n url = {\r\n time: [$server, $time]\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n time(){\r\n return this.http.post<string>(this.url.time)\r\n }\r\n}\r\n","import { Observable, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\nexport type ReturnTypeNavvy<T, R> = T extends R ? T : R;\r\n\r\nexport abstract class NavvySupport<C, M, T, R> {\r\n\r\n pageSize = 50 // больше всё равно не дас\r\n\r\n protected constructor(\r\n public requestClass: C,\r\n public mapClass: M\r\n ) {\r\n }\r\n\r\n mapAndSnackBarError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n // errorText: string\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n // this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n mapResult<T, R>(param: iBXRestAnswer<T> | undefined, map: (mapParam: T) => R): iBXRestAnswer<R> | undefined {\r\n return (param && param.result) ? Object.assign(param, {result: map(param.result)}) : undefined\r\n }\r\n\r\n abstract resultVanilla(): Observable<iBXRestAnswer<T> | undefined>\r\n\r\n abstract mapForVanilla(): ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n\r\n abstract result(): ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\nimport { NavvySupport, ReturnTypeNavvy } from './NavvySupport'\r\n\r\nexport class NavvySimple<C, M, T, R> extends NavvySupport<C, M, T, R> {\r\n\r\n constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n public func: Observable<iBXRestAnswer<T> | undefined>,\r\n public testError: string = '',\r\n public map: ((param: T) => R) | undefined = undefined\r\n // private snackBar: SnackBarService,\r\n ) {\r\n super(requestClass, mapClass)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func\r\n }\r\n\r\n mapForVanilla() {\r\n return this.func.pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v,{result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.mapAndSnackBarError(this.func).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n}\r\n","import { NavvySupport, ReturnTypeNavvy } from '../NavvySupport'\r\nimport { Observable, ReplaySubject } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\n\r\nexport abstract class NavvyPagNavBase<C, M, T, R, P> extends NavvySupport<C, M, T, R> {\r\n\r\n // load: number = 0\r\n\r\n load$ = new ReplaySubject<number>(1)\r\n\r\n public constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n protected func: (param: P) => Observable<iBXRestAnswer<T> | undefined>,\r\n protected param: P,\r\n protected testError: string = '',\r\n protected map: ((param: T | undefined) => R | undefined) | undefined = undefined) {\r\n super(requestClass, mapClass)\r\n this.load$.next(0.001)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func.call(this.requestClass, this.param)\r\n }\r\n\r\n mapForVanilla() {\r\n return this.mapForVanillaEnd(this.func, this.param)\r\n }\r\n\r\n protected mapForVanillaEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return func.call(this.requestClass, param).pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v, {result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.resultEnd(this.func, this.param)\r\n }\r\n\r\n protected resultEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return this.mapAndSnackBarError(func.call(this.requestClass, param)).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n\r\n abstract resultAll(): any// : ReturnType<Observable<T | undefined>, Observable<R | undefined>>[]\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, tap, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport clone from 'just-clone'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAlternativePagination } from '../../typification/rest/base/ApiPaginationBX'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<C, M, T, R, P extends iBXRestAlternativePagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: i / this.pageSize + 1\r\n }\r\n }\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param =>\r\n this.resultEnd(this.func, param).pipe(\r\n tap(_ => {\r\n if(param && param.PARAMS && items.total) {\r\n this.load$.next((param.PARAMS.NAV_PARAMS.iNumPage * this.pageSize + this.pageSize)/items.total)\r\n }\r\n }),\r\n )\r\n ),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([] as ReturnTypeNavvy<T, R>[])\r\n }\r\n\r\n /*\r\n getAll<T>(request: Observable<iBXRestAnswer<T> | undefined>,\r\n errorText: string) {\r\n return request.pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n }\r\n }\r\n ),\r\n // map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n */\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// TODO: реализовать загрузку всего в очереди\r\nexport class NavvyPagNav<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, last, mergeMap, throwError } from 'rxjs'\r\nimport clone from 'just-clone'\r\n\r\nexport class NavvyPagNavWithUselessKey<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, {[key: string]: T}, R[], P> {\r\n resultAll() {\r\n let save: (T | R)[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v)\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n return this.mapForVanillaEnd(this.func, this.param).pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = 0; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n /*\r\n return from(requests.map(param => this.resultEnd(this.func, param))).pipe(\r\n // toArray(),\r\n mergeMap(v => {\r\n return v\r\n })\r\n )\r\n */\r\n\r\n return from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n }\r\n }\r\n return from([1]).pipe(\r\n concatMap(_ => this.resultEnd(this.func, this.param)),\r\n )\r\n // return from([BXRestMapResult(items)])\r\n // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { NavvySimple } from './Navvy/NavvySimple'\r\nimport { NavvyAlterPagNav } from './Navvy/NavvyAlternativePaginationNavigation'\r\nimport { NavvyPagNav } from './Navvy/NavvyPagNav'\r\nimport { iBXRestAlternativePagination, iBXRestPagination } from '../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavWithUselessKey } from './Navvy/NavvyPagNavWithUselessKey'\r\n\r\nexport class Navvy<C, M> {\r\n\r\n constructor(\r\n protected requestClass: C,\r\n protected mapClass: M\r\n // private snackBar: SnackBarService,\r\n ) {\r\n }\r\n\r\n simple<T, R>(\r\n func: () => Observable<iBXRestAnswer<T> | undefined>,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined\r\n ) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass), testError, map)\r\n }\r\n\r\n simpleWithArg<T, R, A>(\r\n func: (param: A) => Observable<iBXRestAnswer<T> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass, arg), testError, map)\r\n }\r\n\r\n PagNav<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n PagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: { [key: string]: T } | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNavWithUselessKey(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n alterPagNav<T, R, A extends iBXRestAlternativePagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyAlterPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\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 class BaseMapServices extends BaseServices{\r\n\r\n}\r\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 BXRestMapUser extends BaseMapServices {\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined\r\n {\r\n return (v) ? v.map(i => this.userHttpToTrace(i)) : undefined\r\n }\r\n\r\n current(v: iBXRestUserHttp): iBXRestUser {\r\n return this.userHttpToTrace(v)\r\n }\r\n\r\n private userHttpToTrace(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(\r\n 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 { Injectable } from '@angular/core'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestUserUserfield } from '../../request/user/userfield'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyUserUserfield {\r\n\r\n Navvy: Navvy<BXRestUserUserfield, undefined>\r\n\r\n constructor(\r\n private BXRestUserUserfield: BXRestUserUserfield\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestUserUserfield, undefined)\r\n }\r\n\r\n list() {\r\n return this.Navvy.simple(this.BXRestUserUserfield.list, 'Не удалось получить список кастомных полей')\r\n }\r\n}\r\n","import { of, tap } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\nimport { BXRestUser } from '../request/user'\nimport { Navvy } from '../services/navvy'\nimport { iBXRestUserHttp } from '../typification/rest/user/user'\nimport { SessionStorage } from '../services/vanilla/sessionStorage'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport clone from 'just-clone'\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\nimport { BXRestNavvyUserUserfield } from './user/userfield'\nimport { BXRestMapUser } from '../map/user'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyUser {\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n private Navvy: Navvy<BXRestUser, BXRestMapUser>\n\n constructor(\n private BXRestUserMap: BXRestMapUser,\n private BXRestUser: BXRestUser,\n public userfield: BXRestNavvyUserUserfield\n ) {\n this.Navvy = new Navvy(this.BXRestUser, this.BXRestUserMap)\n }\n\n admin() {\n return this.Navvy.simple(\n this.BXRestUser.admin,\n 'Информация о возможных принадлежности человека к администратору не получена'\n )\n }\n\n get(params: iBXRestParamUserGet = {}){\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n\n return this.Navvy.PagNav(\n this.BXRestUser.get,\n copyParams,\n 'Не удалось получить пользователей',\n this.BXRestUserMap.get\n )\n }\n\n current(update = false) {\n return this.Navvy.simpleWithArg(\n this.self,\n update,\n '',\n this.BXRestUserMap.current\n )\n }\n\n /*\n update(user: iBXRestUser, fieldUpdate: string[]) {\n\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.BXRestUserMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n return throwError(() => 'One sent field is empty')\n }\n }\n return this.http.post<iBXRestUserHttp[]>(\n this.url.update,\n sendData\n )\n } else {\n return throwError(() => 'All sent field for edit is empty')\n }\n return this.Navvy.simple(\n this.BXRestUser.update(user, fieldUpdate),\n 'Не удалось обновить пользователя с ID' + user.ID\n )\n }\n */\n search(params: string | iBXRestParamUserSearch) {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.Navvy.PagNav(\n this.BXRestUser.search,\n params,\n 'Сервер не отвечает на запрос поиска',\n this.BXRestUserMap.get\n )\n }\n\n access(params: string[]) {\n return this.Navvy.simpleWithArg(\n this.BXRestUser.access,\n params,\n 'Не удалось получить права'\n )\n }\n\n fields() {\n return this.Navvy.simple(this.BXRestUser.fields, 'Не удалось поля')\n }\n\n private self(update = false) {\n if (update) {\n return this.BXRestUser.current(update)\n } else {\n let self = SessionStorage.getItem(this.constructor.name + this.self.name) as iBXRestUserHttp\n if (self) {\n return of({result: self} as iBXRestAnswer<iBXRestUserHttp>)\n }\n return this.BXRestUser.current(update)\n .pipe(\n map(v => {\n if (v) {\n return v\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n SessionStorage.setItem(this.constructor.name + this.self.name, v)\n }\n }),\n )\n }\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 // 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: iBXRestParamUserGet) {\n if(!params.FILTER) {\n params.FILTER = {}\n }\n\n if (!params.hasOwnProperty('ACTIVE')) {\n params.FILTER.ACTIVE = this.def.params.ACTIVE\n }\n if (params.FILTER.ACTIVE && params.FILTER.ACTIVE === 2) {\n delete params.FILTER.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\n delete params.FILTER.UF_DEPARTMENT\n }\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapListsField {\r\n get(v: { [key: string]: iBXRestFieldItem } | undefined):iBXRestFieldItem[] | undefined {\r\n return (v) ? Object.values(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestListsField from '../../request/lists/field'\r\nimport { iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestNavvyListsField {\r\n private Navvy: Navvy<BXRestListsField, BXRestMapListsField>\r\n\r\n constructor(\r\n private BXRestListsField: BXRestListsField,\r\n private BXRestMapListsField: BXRestMapListsField,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsField, this.BXRestMapListsField)\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.Navvy.PagNavWithUselessKey(\r\n this.BXRestListsField.get,\r\n param,\r\n 'Не удалось получить поля списка',\r\n this.BXRestMapListsField.get\r\n )\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[] | undefined): iBXRestListsElement[] | undefined {\r\n return (items)\r\n ? 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 : undefined\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 BXRestListsElementMap from '../../map/lists/element'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n private Navvy: Navvy<BXRestListsElement, BXRestListsElementMap>\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsElement, this.BXRestMap)\r\n }\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.PagNav(\r\n this.BXRestListsElement.get,\r\n param,\r\n 'Не удалось получить элемент списка',\r\n this.BXRestMap.get\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestListsElement.add, param, 'Не удалось добавить элемент списка')\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\nimport BXRestMapListsElement from './lists/element'\r\nimport { BXRestMapListsField } from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLists extends BaseMapServices {\r\n\r\n constructor(\r\n public element: BXRestMapListsElement,\r\n public field: BXRestMapListsField\r\n ) {\r\n super()\r\n }\r\n get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n return (value) ? value.map(i => this.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n }\r\n\r\n protected iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\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: this.toNum(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: this.toNum(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.toNum(itemLists.SORT),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: this.toStr(itemLists.TMP_ID),\r\n VERSION: this.toNum(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: this.toStr(itemLists.XML_ID),\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyListsElement } from './lists/element'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLists {\r\n\r\n protected Navvy: Navvy<BXRestLists, BXRestMapLists>\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement,\r\n public field: BXRestNavvyListsField,\r\n protected mapList: BXRestMapLists,\r\n protected BXRestLists: BXRestLists,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLists, this.mapList)\r\n }\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.PagNav(this.BXRestLists.get, param,'Не удалось получить список', this.mapList.get)\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 { SessionStorage } from './vanilla/sessionStorage'\r\nimport { iBXRestPermission, iBXRestPermissionAddictionItem } from '../typification/permission'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Permission {\r\n\r\n static get(){\r\n return SessionStorage.getItem('permission') as iBXRestPermission\r\n }\r\n\r\n static set(param: iBXRestPermission){\r\n SessionStorage.setItem('permission', Object.assign(this.get(), param))\r\n }\r\n\r\n static setTaskElapsedItem(idTask: number, ElapsedItem: iBXRestPermissionAddictionItem){\r\n let permission = Permission.get()\r\n if(permission.tasks) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if(findTask){\r\n let findTaskElapsedItem = findTask.elapsedItem.find(i => i.id === ElapsedItem.id)\r\n if(findTaskElapsedItem) {\r\n if(ElapsedItem.verified.edit){\r\n findTaskElapsedItem.verified.edit = ElapsedItem.verified.edit\r\n findTaskElapsedItem.edit = ElapsedItem.edit\r\n }\r\n if(ElapsedItem.verified.del){\r\n findTaskElapsedItem.verified.del = ElapsedItem.verified.del\r\n findTaskElapsedItem.del = ElapsedItem.del\r\n }\r\n } else {\r\n findTask.elapsedItem.push(ElapsedItem)\r\n }\r\n }\r\n SessionStorage.setItem('permission', permission)\r\n }\r\n }\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task/elapseditem/get'\r\nimport { BXRestNavvyElapseditem } from '../elapseditem'\r\n\r\nexport class BXRestNavvyOperationElapseditem {\r\n\r\n constructor(\r\n private BXRestNavvyElapseditem: BXRestNavvyElapseditem\r\n ) {\r\n }\r\n\r\n getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n const param: iBXRestParamElapseditemGet = {\r\n ORDER: {\r\n ID: 'DESC'\r\n },\r\n FILTER: {\r\n USER_ID: idsUsers,\r\n '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru'),\r\n '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru'),\r\n }\r\n }\r\n return this.BXRestNavvyElapseditem.getList(param)\r\n }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../../typification/rest/task/task'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasksTask extends BaseMapServices{\r\n getaccess(v: iBXRestTaskGetAccess | undefined){\r\n return (v && v.allowedActions) ? v.allowedActions : undefined\r\n }\r\n\r\n add(item: { task: iBXRestHttpTask } | undefined): iBXRestTask | undefined {\r\n return (item) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n get(item: {task: iBXRestHttpTask | undefined } | undefined ): iBXRestTask | undefined {\r\n return (item && item.task) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n list(item: {tasks: iBXRestHttpTask[] | undefined} | undefined): iBXRestTask[] | undefined{\r\n return (item && item.tasks) ? item.tasks.map( i => this.TaskBXHttpToTaskBX(i)) : undefined\r\n }\r\n\r\n private 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 { BXRestTasksTask } from '../../request/tasks/task'\nimport { iBXRestTaskFieldsName } from '../../typification/rest/task/base/fieldsName'\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\nimport { Navvy } from '../../services/navvy'\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\nimport { iBXRestParamTaskGetAccess } from '../../typification/rest/task/access/getaccess'\nimport { BXRestMapTasksTask } from '../../map/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 Navvy: Navvy<BXRestTasksTask, BXRestMapTasksTask>\n\n constructor(\n private BXRestTasksTask: BXRestTasksTask,\n // private snackBar: SnackBarService,\n // private store: Store<{ tasks: IStoreTask }>,\n private BXRestMapTasksTask: BXRestMapTasksTask,\n\n // private taskResultMap: BitrixApiTaskResultMapServices\n ) {\n this.Navvy = new Navvy(this.BXRestTasksTask, this.BXRestMapTasksTask)\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.Navvy.simpleWithArg(\n this.BXRestTasksTask.add,\n param,\n 'Не удалось добавить задачу',\n this.BXRestMapTasksTask.add\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\n get(param: iBXRestParamTaskGet) {\n if (!param.select) {\n param.select = this.def.select\n }\n return this.Navvy.simpleWithArg(\n this.BXRestTasksTask.get,\n param,\n 'Не удалось получить задачу',\n this.BXRestMapTasksTask.get\n )\n }\n\n\n list(param: iBXRestParamTasksList = {}) {\n if (!param.select) {\n param.select = this.def.select\n }\n return this.Navvy.simpleWithArg(\n this.BXRestTasksTask.list,\n param,\n 'Не удалось получить список задач',\n this.BXRestMapTasksTask.list\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\n getaccess(param: iBXRestParamTaskGetAccess) {\n return this.Navvy.simpleWithArg(\n this.BXRestTasksTask.getaccess,\n param,\n 'Не удалось получить права на указанных пользователей',\n this.BXRestMapTasksTask.getaccess\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 { iBXRestElapsedItem, iBXRestElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskElapseditem extends BaseMapServices {\r\n update(p: null) {\r\n return (p == null)\r\n }\r\n\r\n getList(v: iBXRestElapsedItemHttp[] | undefined) {\r\n return (v) ? v.map(i => this.ElapsedItemHttpToElapsedItem(i)) : undefined\r\n }\r\n\r\n ElapsedItemHttpToElapsedItem(item: iBXRestElapsedItemHttp): iBXRestElapsedItem {\r\n return Object.assign(item, {\r\n ID: this.toNum(item.ID),\r\n MINUTES: this.toNum(item.MINUTES),\r\n SECONDS: this.toNum(item.SECONDS),\r\n TASK_ID: this.toNum(item.TASK_ID),\r\n USER_ID: this.toNum(item.USER_ID),\r\n SOURCE: this.toNum(item.SOURCE),\r\n CREATED_DATE: this.toDate(item.CREATED_DATE),\r\n DATE_START: this.toDate(item.DATE_START),\r\n DATE_STOP: this.toDate(item.DATE_STOP),\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport { mergeMap, of, tap, throwError } from 'rxjs'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { BXRestElapseditem } from '../../request/task/elapseditem'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { Permission } from '../../services/permission'\r\nimport { BXRestNavvyUser } from '../user'\r\nimport { BXRestNavvyTasks } from '../tasks'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskElapseditem } from '../../map/task/elapseditem'\r\nimport { BXRestNavvyOperationElapseditem } from './operation/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyElapseditem {\r\n private Navvy: Navvy<BXRestElapseditem, BXRestMapTaskElapseditem>\r\n public operation: BXRestNavvyOperationElapseditem\r\n\r\n constructor(\r\n private BXRestElapseditem: BXRestElapseditem,\r\n private BXRestNavvyUser: BXRestNavvyUser,\r\n private BXRestNavvyTasks: BXRestNavvyTasks,\r\n private BXRestMapElapseditem: BXRestMapTaskElapseditem,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem)\r\n this.operation = new BXRestNavvyOperationElapseditem(this)\r\n }\r\n\r\n /*\r\n call(methodName: string, ...args: any[]){\r\n if (typeof this[methodName] === 'function') {\r\n return this[methodName](...args);\r\n }\r\n return this[methodName](...args);\r\n }\r\n */\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n if (param) {\r\n if (!param.TASKID && !param.SELECT) {\r\n param.SELECT = ['*']\r\n }\r\n if (!param.TASKID && !param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: 50,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n return this.Navvy.alterPagNav(\r\n this.BXRestElapseditem.getList,\r\n param,\r\n 'Не удалось получить список затраченного на задачу(-и) времени',\r\n this.BXRestMapElapseditem.getList\r\n )\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.checkPermissionAddTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.add(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n }))\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.update(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })), 'Не удалось обновить элемент списка', this.BXRestMapElapseditem.update)\r\n }\r\n\r\n /*\r\n getAll(\r\n params: RequestParamsElapsedGetList | undefined = undefined,\r\n cache = false\r\n ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {\r\n return this.get(params, cache)\r\n .pipe(\r\n mergeMap(items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n /*\r\n getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {\r\n return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>\r\n (this.url.getlist, params, 'не удалось получить время по задачам')\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n const newResult: BXRestElapsed[] = []\r\n for (let task of v.result) {\r\n newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))\r\n }\r\n return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>\r\n }\r\n return undefined\r\n }),\r\n tap(v => {\r\n if (v && params) {\r\n this.store.dispatch(saveHttpTaskTime({\r\n filter: clone(params),\r\n time: v\r\n }))\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n isAllowedModify(idTask: number, idItem: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask) {\r\n let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n if (find && find.verified.edit) {\r\n return of(find.edit)\r\n }\r\n }\r\n }\r\n\r\n return this.isActionAllowed({\r\n TASKID: idTask,\r\n ITEMID: 2,\r\n ACTIONID: idItem\r\n }).result().pipe(\r\n tap(v => {\r\n if (v !== undefined) {\r\n Permission.setTaskElapsedItem(idTask,\r\n {\r\n id: idItem,\r\n edit: v,\r\n del: false,\r\n verified: {\r\n edit: true,\r\n del: false,\r\n }\r\n })\r\n }\r\n })\r\n )\r\n }\r\n\r\n private isAllowedRemove(idTask: number, idItem: number) {\r\n return this.isActionAllowed(\r\n {\r\n TASKID: idTask,\r\n ITEMID: 3,\r\n ACTIONID: idItem\r\n }).result()\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n return this.BXRestElapseditem.isActionAllowed(param)\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n })\r\n ))\r\n }\r\n\r\n checkPermissionAddTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n private checkPermissionReadTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission.ACCEPT)\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID].ACCEPT : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.del(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })\r\n ), 'Не удалось удалить элемент списка', v => (v === null))\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestNavvyElapseditem,\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)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFolder {\r\n\r\n private Navvy: Navvy<BXRestDiskFolder, BXRestMapDiskFolder>\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder,\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFolder, this.BXRestMapDiskFolder)\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.Navvy.simpleWithArg(\r\n this.BXRestDiskFolder.getchildren,\r\n id,\r\n 'get folders and files',\r\n this.BXRestMapDiskFolder.getContent\r\n )\r\n }\r\n\r\n}\r\n","import { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapDiskFile extends BaseMapServices {\r\n\r\n get(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n\r\n markdeleted(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile {\r\n\r\n private Navvy: Navvy<BXRestDiskFile, BXRestMapDiskFile>\r\n\r\n constructor(\r\n private BXRestDiskFile: BXRestDiskFile,\r\n private BXRestMapDiskFile: BXRestMapDiskFile,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFile, this.BXRestMapDiskFile)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.get,\r\n id,\r\n 'Не удалось получить файл',\r\n this.BXRestMapDiskFile.get\r\n )\r\n }\r\n\r\n markdeleted(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.markdeleted,\r\n id,\r\n 'Не удалось переместить файл в корзину',\r\n this.BXRestMapDiskFile.markdeleted\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\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n\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\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\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, {}\r\n )\r\n }\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param\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 { iBXRestParamUploadFile } from '../../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../../typification/rest/disk/storage/getchildren'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../../typification/rest/disk/folder'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyInterlayerDiskStorage {\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getforapp.name)\r\n if (res) {\r\n return of(res)\r\n } else {\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n }),\r\n shareReplay(1)\r\n )\r\n }\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.BXRestDiskStorage.getchildren(param)\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param)\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 BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\nimport { BXRestNavvyInterlayerDiskStorage } from './interlayer/storage'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n private Navvy: Navvy<BXRestNavvyInterlayerDiskStorage, BXRestMapDiskStorage>\r\n\r\n constructor(\r\n private BXRestNavvyInterlayerDiskStorage: BXRestNavvyInterlayerDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage,\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestNavvyInterlayerDiskStorage, this.BXRestMapDiskStorage)\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n // console.log('this.getforappEnd', this.getforappEnd)\r\n return this.Navvy.simple(this.BXRestNavvyInterlayerDiskStorage.getforapp, 'get root app folder')\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestNavvyInterlayerDiskStorage.getchildren,\r\n param,\r\n 'get root app folders and files',\r\n this.BXRestMapDiskStorage.getchildren\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.uploadfile, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } 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: BXRestNavvyDiskFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: {\r\n name: string,\r\n val: string\r\n }) {\r\n return this.storage.getforapp().result().pipe(\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 }).result()\r\n }\r\n return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\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).mapForVanilla()\r\n }\r\n return of(undefined)\r\n })\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\r\n\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID}).result()\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({result: find})\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}}).result()\r\n }\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n return (v) ? this.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n }\r\n\r\n private iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n return Object.assign(v, {\r\n ID: this.toNum(v.ID),\r\n OBJECT_ID: this.toNum(v.OBJECT_ID),\r\n ENTITY_ID: this.toNum(v.ENTITY_ID),\r\n CREATE_TIME: this.toDate(v.CREATE_TIME),\r\n CREATED_BY: this.toNum(v.CREATED_BY),\r\n SIZE: this.toNum(v.SIZE)\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskAttachedObject } from '../../request/disk/attachedObject'\r\nimport BXRestMapDiskAttachedObject from '../../map/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskAttachedObject {\r\n private Navvy: Navvy<BXRestDiskAttachedObject, BXRestMapDiskAttachedObject>\r\n\r\n constructor(\r\n private BXRestDiskAttachedObject: BXRestDiskAttachedObject,\r\n private mapAttachedObject: BXRestMapDiskAttachedObject,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskAttachedObject, this.mapAttachedObject)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskAttachedObject.get, id,\r\n 'Не удалось получить прикрепленные файлы',\r\n this.mapAttachedObject.get)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDisk {\r\n constructor(\r\n public operation: BXRestNavvyDiskOperation,\r\n public file: BXRestNavvyDiskFile,\r\n public folder: BXRestNavvyDiskFolder,\r\n public attachedObject: BXRestNavvyDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizprocWorkflow } from '../../request/bizproc/workflow'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizprocWorkflow {\r\n private Navvy: Navvy<BXRestBizprocWorkflow, undefined>\r\n\r\n constructor(\r\n private BXRestBizprocWorkflow: BXRestBizprocWorkflow,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestBizprocWorkflow, undefined)\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestBizprocWorkflow.start, param,\r\n 'Не удалось запустить бизнес процесс'\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBizprocWorkflow } from './bizproc/workflow'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestNavvyBizprocWorkflow,\r\n private BXRestNavvyLists: BXRestNavvyLists\r\n ) {\r\n }\r\n\r\n /**\r\n * Метод по запуску бизнес процессов из ленты\r\n * TODO: продумать работу с такими методами-исключениями\r\n *\r\n * @param id\r\n * @param parametersElement\r\n * @param parametersBizproc\r\n * @param templateIDs\r\n */\r\n startProcFormNewsFeed(\r\n id: number,\r\n parametersElement: { [key: string]: string },\r\n parametersBizproc: { [key: string]: string },\r\n templateIDs: number[]\r\n ) {\r\n return this.BXRestNavvyLists.element.add(\r\n {\r\n IBLOCK_TYPE_ID: 'bitrix_processes',\r\n IBLOCK_ID: id,\r\n ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n // как ещё уникальнее сделать я просто не знаю\r\n // это поле обязательно без него не работает\r\n FIELDS: {\r\n NAME: parametersElement['NAME'],\r\n ...parametersElement\r\n }\r\n }\r\n ).result().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (Object.keys(parametersBizproc).length) {\r\n let reques: Observable<string | undefined>[] = []\r\n for (let templateID of templateIDs) {\r\n reques.push(this.workflow.start(\r\n {\r\n TEMPLATE_ID: templateID,\r\n DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n PARAMETERS: parametersBizproc\r\n }).result())\r\n }\r\n return forkJoin(reques)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { BXRestLogBlogPost } from '../../request/log/blogpost'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n private Navvy: Navvy<BXRestLogBlogPost, undefined>\r\n\r\n constructor(\r\n private BXRestLogBlogPost: BXRestLogBlogPost,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLogBlogPost, undefined)\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLog {\r\n\r\n constructor(\r\n public blogPost: BXRestNavvyLogBlogPost,\r\n public blogComment: BXRestNavvyLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestCalendarEventGetAnswer,\r\n iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/get/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendarEvent extends BaseMapServices {\r\n\r\n get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined{\r\n return (item) ? item.map(i => this.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n }\r\n\r\n private CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n return {\r\n ...item,\r\n ID: this.toNum(item.ID),\r\n MEETING_HOST: this.toNum(item.MEETING_HOST),\r\n OWNER_ID: this.toNum(item.OWNER_ID),\r\n PARENT_ID: this.toNum(item.PARENT_ID),\r\n RECURRENCE_ID: this.toNum(item.RECURRENCE_ID),\r\n SECT_ID: this.toNum(item.SECT_ID),\r\n SECTION_ID: this.toNum(item.SECTION_ID),\r\n TZ_OFFSET_FROM: this.toNum(item.TZ_OFFSET_FROM),\r\n TZ_OFFSET_TO: this.toNum(item.TZ_OFFSET_TO),\r\n VERSION: this.toNum(item.VERSION),\r\n DATE_CREATE: this.toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM: this.toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}),\r\n ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n ? this.toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n : null,\r\n DATE_TO: this.toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_TO}),\r\n TIMESTAMP_X: this.toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM_TS_UTC: this.toNum(item.DATE_FROM_TS_UTC),\r\n DATE_TO_TS_UTC: this.toNum(item.DATE_TO_TS_UTC),\r\n DELETED: item.DELETED === 'Y',\r\n DT_LENGTH: this.toNum(item.DT_LENGTH),\r\n DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n EXDATE: item.EXDATE.split(';').map(dateStr => this.toDate(dateStr, 'dd.MM.yyyy')),\r\n RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n ...item.RRULE,\r\n UNTIL: this.toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n '~UNTIL': this.toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n } : null,\r\n ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n return {id: i.id, entryId: this.toNum(i.entryId), status: i.status}\r\n }) : []\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { BXRestCalendarEvent } from '../../request/calendar/event'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestRestCalendarEvent {\r\n private Navvy: Navvy<BXRestMapCalendarEvent, undefined>\r\n\r\n constructor(\r\n private BXRestCalendarEvent: BXRestCalendarEvent,\r\n private eventMap: BXRestMapCalendarEvent,\r\n ) {\r\n this.Navvy = new Navvy(this.eventMap, undefined)\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestCalendarEvent.get,\r\n param,\r\n 'Не удалось получить календарь',\r\n this.eventMap.get\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestParamSonet, iBXRestParamSonetHttp } from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapSonetGroup extends BaseMapServices {\r\n\r\n get(items: iBXRestParamSonetHttp[] | undefined ): iBXRestParamSonet[] | undefined {\r\n return (items) ? items.map(i => this.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n }\r\n\r\n private iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestParamSonetHttp): iBXRestParamSonet {\r\n return Object.assign(items,{\r\n ID: this.toNum(items.ID),\r\n DATE_CREATE: this.toDate(items.DATE_CREATE),\r\n DATE_UPDATE: this.toDate(items.DATE_UPDATE),\r\n ACTIVE: items.ACTIVE == 'Y',\r\n VISIBLE: items.VISIBLE == 'Y',\r\n OPENED: items.OPENED == 'Y',\r\n CLOSED: items.CLOSED == 'Y',\r\n SUBJECT_ID: this.toNum(items.SUBJECT_ID),\r\n OWNER_ID: this.toNum(items.OWNER_ID),\r\n NUMBER_OF_MEMBERS: this.toNum(items.OWNER_ID),\r\n DATE_ACTIVITY: this.toDate(items.DATE_ACTIVITY),\r\n PROJECT: items.OPENED == 'Y',\r\n IS_EXTRANET: items.OPENED == 'Y',\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group/get'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvySonetGroup {\r\n\r\n private Navvy: Navvy<BXRestSonetGroup, BXRestMapSonetGroup>\r\n\r\n constructor(\r\n private BXRestSonetGroup: BXRestSonetGroup,\r\n private mapSonetGroup: BXRestMapSonetGroup,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestSonetGroup, this.mapSonetGroup)\r\n }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestSonetGroup.get, param,\r\n 'Не удалось получить рабочую группу',\r\n this.mapSonetGroup.get\r\n )\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapServer extends BaseMapServices {\r\n time(v: string | undefined) {\r\n return (v) ? this.toDate(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestServer } from '../request/server'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyServer {\r\n\r\n protected Navvy: Navvy<BXRestServer, BXRestMapServer>\r\n\r\n constructor(\r\n private BXRestServer: BXRestServer,\r\n public BXRestMapServer: BXRestMapServer\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestServer, BXRestMapServer)\r\n }\r\n\r\n time(){\r\n return this.Navvy.simple(\r\n this.BXRestServer.time,\r\n 'Не удалось получить время сервера',\r\n this.BXRestMapServer.time\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 { BXRestMapLists } from './map/lists'\r\nimport { BXRestTasks } from './request/tasks'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestBizproc } from './request/bizproc'\r\nimport { BXRestLog } from './request/log'\r\nimport { BXRestCalendar } from './request/calendar'\r\nimport { BXRestSonetGroup } from './request/sonet_group'\r\nimport { BXRestTask } from './request/task'\r\nimport { BXRestServer } from './request/server'\r\n// Navvy\r\nimport { BXRestNavvyLists } from './request-navvy/lists'\r\nimport { BXRestNavvyTasks } from './request-navvy/tasks'\r\nimport { BXRestNavvyUser } from './request-navvy/user'\r\nimport { BXRestNavvyDisk } from './request-navvy/disk'\r\nimport { BXRestNavvyBizproc } from './request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from './request-navvy/log'\r\nimport { BXRestNavvyCalendar } from './request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from './request-navvy/sonet_group'\r\nimport { BXRestNavvyTask } from './request-navvy/task'\r\nimport { BXRestNavvyServer } from './request-navvy/server'\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 task: BXRestTask,\r\n public tasks: BXRestTasks,\r\n public disk: BXRestDisk,\r\n public bizproc: BXRestBizproc,\r\n public log: BXRestLog,\r\n public calendar: BXRestCalendar,\r\n public sonet_group: BXRestSonetGroup,\r\n public server: BXRestServer\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 task: BXRestNavvyTask,\r\n public tasks: BXRestNavvyTasks,\r\n public disk: BXRestNavvyDisk,\r\n public bizproc: BXRestNavvyBizproc,\r\n public log: BXRestNavvyLog,\r\n public calendar: BXRestNavvyCalendar,\r\n public sonet_group: BXRestNavvySonetGroup,\r\n public server: BXRestNavvyServer\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: BXRestMapLists\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","import { BXRestMapCalendarEvent } from './calendar/event'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendar {\r\n constructor(public event: BXRestMapCalendarEvent) {\r\n }\r\n}\r\n","import { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestBlogPost, iBXRestBlogPostHttp } from '../../typification/rest/log/blogpost/get'\r\nimport { iBXRestBlogPostEssence, iBXRestBlogPostEssenceHttp } from '../../typification/rest/log/blogpost/essence'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLogBlogPost extends BaseMapServices {\r\n\r\n get(item: iBXRestBlogPostHttp[] | undefined): iBXRestBlogPost[] | undefined {\r\n return (item) ? item.map(i => this.iBlogPostBXHttpToiBlogPostBX(i)) : undefined\r\n }\r\n\r\n private iBlogPostBXHttpToiBlogPostBX(item: iBXRestBlogPostHttp): iBXRestBlogPost {\r\n return {\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n BLOG_ID: this.toNum(item.BLOG_ID),\r\n CATEGORY_ID: this.toNum(item.CATEGORY_ID),\r\n DATE_PUBLISH: this.toDate(item.DATE_PUBLISH),\r\n ENABLE_COMMENTS: item.ENABLE_COMMENTS === 'Y',\r\n HAS_COMMENT_IMAGES: item.HAS_COMMENT_IMAGES === 'Y',\r\n HAS_SOCNET_ALL: item.HAS_SOCNET_ALL === 'Y',\r\n HAS_IMAGES: item.HAS_IMAGES === 'Y',\r\n HAS_PROPS: item.HAS_PROPS === 'Y',\r\n HAS_TAGS: item.HAS_TAGS === 'Y',\r\n TITLE: item.TITLE,\r\n ID: this.toNum(item.ID),\r\n MICRO: item.MICRO === 'Y',\r\n PUBLISH_STATUS: item.PUBLISH_STATUS,\r\n NUM_COMMENTS: this.toNum(item.NUM_COMMENTS),\r\n UF_ANSWER_ID: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ANSWER_ID),\r\n UF_BLOG_POST_DOC: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_DOC),\r\n UF_BLOG_POST_FILE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_FILE),\r\n UF_BLOG_POST_F_EDIT: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_F_EDIT),\r\n UF_BLOG_POST_IMPRTNT: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_IMPRTNT),\r\n UF_BLOG_POST_URL_PRV: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_URL_PRV),\r\n UF_BLOG_POST_VOTE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_VOTE),\r\n UF_CATEGORY_CODE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_CATEGORY_CODE),\r\n UF_GRATITUDE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_GRATITUDE),\r\n UF_IMPRTANT_DATE_END: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_IMPRTANT_DATE_END),\r\n UF_MAIL_MESSAGE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_MAIL_MESSAGE),\r\n UF_ORIGINAL_ID: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ORIGINAL_ID),\r\n UF_STATUS: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_STATUS),\r\n CODE: item.CODE,\r\n DETAIL_TEXT: item.DETAIL_TEXT,\r\n FILES: (item.FILES) ? item.FILES.map(i => this.toNum(i)) : []\r\n }\r\n }\r\n\r\n private iBlogPostEssenceHttpToiBlogPostEssence(item: iBXRestBlogPostEssenceHttp | undefined): iBXRestBlogPostEssence | undefined {\r\n if(item) {\r\n return {\r\n EDIT_IN_LIST: item.EDIT_IN_LIST === 'Y',\r\n ID: this.toNum(item.ID),\r\n IS_SEARCHABLE: item.IS_SEARCHABLE === 'Y',\r\n MANDATORY: item.MANDATORY === 'Y',\r\n MULTIPLE: item.MULTIPLE === 'Y',\r\n SHOW_FILTER: item.SHOW_FILTER === 'Y',\r\n SHOW_IN_LIST: item.SHOW_IN_LIST === 'Y',\r\n SORT: this.toNum(item.SORT),\r\n EDIT_FORM_LABEL: item.EDIT_FORM_LABEL,\r\n ENTITY_ID: item.EDIT_FORM_LABEL,\r\n ENTITY_VALUE_ID: this.toNum(item.ENTITY_VALUE_ID),\r\n ERROR_MESSAGE: item.ERROR_MESSAGE,\r\n FIELD_NAME: item.FIELD_NAME,\r\n HELP_MESSAGE: item.HELP_MESSAGE,\r\n LIST_COLUMN_LABEL: item.HELP_MESSAGE,\r\n LIST_FILTER_LABEL: item.LIST_FILTER_LABEL,\r\n SETTINGS: item.SETTINGS,\r\n USER_TYPE: item.USER_TYPE,\r\n USER_TYPE_ID: item.USER_TYPE_ID,\r\n VALUE: item.SHOW_IN_LIST === 'Y',\r\n XML_ID: item.XML_ID // ??\r\n }\r\n } else {\r\n return undefined\r\n }\r\n }\r\n}\r\n","import { BXRestMapLogBlogPost } from './log/blogpost'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLog {\r\n constructor(\r\n public blogpost: BXRestMapLogBlogPost\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskCommentItem extends BaseMapServices {\r\n\r\n getlist(value: iBXRestTaskCommentHtml[] | undefined): iBXRestTaskComment[] | undefined {\r\n return value ? value.map(i => this.iCommentTaskHtmlToiCommentTask(i)) : undefined\r\n }\r\n\r\n get(value: iBXRestTaskCommentHtml | undefined): iBXRestTaskComment | undefined {\r\n return value ? this.iCommentTaskHtmlToiCommentTask(value) : undefined\r\n }\r\n\r\n private iCommentTaskHtmlToiCommentTask(item: iBXRestTaskCommentHtml): iBXRestTaskComment {\r\n if (item.ATTACHED_OBJECTS) {\r\n return {\r\n ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {\r\n return {\r\n ATTACHMENT_ID: this.toNum(i.ATTACHMENT_ID),\r\n FILE_ID: this.toNum(i.FILE_ID),\r\n SIZE: this.toNum(i.SIZE),\r\n DOWNLOAD_URL: i.DOWNLOAD_URL,\r\n NAME: i.NAME,\r\n VIEW_URL: i.VIEW_URL\r\n }\r\n }),\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n ID: this.toNum(item.ID),\r\n POST_DATE: this.toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n } else {\r\n return {\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n ID: this.toNum(item.ID),\r\n POST_DATE: this.toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\n// import { iTaskResult, iTaskResultHttp } from '@/lib/typification/bitrix/api/rest/task/result/result'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskResult extends BaseMapServices {\r\n // iTaskResultHttpToiTaskResult(item: iTaskResultHttp): iTaskResult {\r\n // return Object.assign(item, {\r\n // createdAt: this.toDate(item.createdAt),\r\n // updatedAt: this.toDate(item.updatedAt)\r\n // })\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskStage, iBXRestTaskStageHttp } from '../../typification/rest/task/stages/stage'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskStage extends BaseMapServices {\r\n\r\n get(value: iBXRestTaskStageHttp[] | undefined) : iBXRestTaskStage[] | undefined{\r\n return (value) ? value.map(i => Object.assign(i,\r\n {\r\n SORT: this.toNum(i.SORT),\r\n ID: this.toNum(i.ID),\r\n ENTITY_ID: this.toNum(i.ENTITY_ID)\r\n }\r\n )\r\n ) as iBXRestTaskStage[] : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskCommentItem } from './task/commentitem'\r\nimport { BXRestMapTaskElapseditem } from './task/elapseditem'\r\nimport { BXRestMapTaskStage } from './task/stages'\r\nimport { BXRestMapTaskResult } from './task/result'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTask {\r\n constructor(\r\n public commentItem: BXRestMapTaskCommentItem,\r\n public elapsedItem: BXRestMapTaskElapseditem,\r\n public result: BXRestMapTaskResult,\r\n public stages: BXRestMapTaskStage\r\n ) {\r\n }\r\n}\r\n","import { BXRestMapTasksTask } from './tasks/task'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasks {\r\n constructor(\r\n public task: BXRestMapTasksTask\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestMapUser } from './map/user'\r\nimport { BXRestMapSonetGroup } from './map/sonet_group'\r\nimport { BXRestMapServer } from './map/server'\r\nimport { BXRestMapLists } from './map/lists'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestMapCalendar } from './map/calendar'\r\nimport { BXRestMapLog } from './map/log'\r\nimport { BXRestMapTask } from './map/task'\r\nimport { BXRestMapTasks } from './map/tasks'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Map {\r\n constructor(\r\n public user: BXRestMapUser,\r\n public sonet_group: BXRestMapSonetGroup,\r\n public server: BXRestMapServer,\r\n public lists: BXRestMapLists,\r\n public disk: BXRestDisk,\r\n public calendar: BXRestMapCalendar,\r\n public log: BXRestMapLog,\r\n public task: BXRestMapTask,\r\n public tasks: BXRestMapTasks,\r\n ) {\r\n }\r\n}\r\n","/*\n * Public API Surface of bx-rest\n */\nexport { BX_REST_SETTINGS } from './settings';\nexport { BXRestMapResult } from './functions/mapResult'\nexport { BXRest, BXRestNavvy, BXRestMap } from './rest'\nexport { Navvy } from './services/navvy'\nexport { Map as BXMap } from './map'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","JSON","Cookies","LocalStorage","i1.RestServices","i1.HttpBXServices","i2.BXRestUserUserfield","i2.HttpBXServices","i1.BXRestElapseditem","i1.BXRestTasksTask","i1.BXRestDiskFile","i2.BXRestDiskFolder","i3.BXRestDiskAttachedObject","i1.BXRestBizprocWorkflowInstance","i2.BXRestBizprocWorkflowTemplate","i3.HttpBXServices","i1.BXRestBizprocWorkflow","i2.BXRestBizprocActivity","i3.BXRestBizprocTask","i4.BXRestBizprocRobot","i5.BXRestBizprocEvent","i1.BXRestLogBlogPost","i2.BXRestLogBlogComment","i1.BXRestCalendarEvent","i1.BXRestUserUserfield","i1.BXRestMapUser","i2.BXRestUser","i3.BXRestNavvyUserUserfield","i1.BXRestMapListsField","BXRestListsElementMap","i2.BXRestMapLists","i3.BXRestLists","i2.BXRestMapTasksTask","i1.BXRestNavvyTasksTask","i2.BXRestNavvyUser","i3.BXRestNavvyTasks","i4.BXRestMapTaskElapseditem","i1.BXRestNavvyElapseditem","i2.BXRestMapDiskFile","i1.BXRestDiskStorage","mergeMap","i1.BXRestNavvyDiskFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskOperation","i3.BXRestNavvyDiskFolder","i4.BXRestNavvyDiskAttachedObject","i1.BXRestNavvyBizprocWorkflow","i2.BXRestNavvyLists","i1.BXRestNavvyLogBlogPost","i2.BXRestNavvyLogBlogComment","i2.BXRestMapCalendarEvent","i1.BXRestRestCalendarEvent","i1.BXRestSonetGroup","i2.BXRestMapSonetGroup","i1.BXRestServer","i2.BXRestMapServer","i1.BXRestUser","i2.BXRestLists","i3.BXRestTask","i4.BXRestTasks","i5.BXRestDisk","i6.BXRestBizproc","i7.BXRestLog","i8.BXRestCalendar","i9.BXRestSonetGroup","i10.BXRestServer","i11.BXRestNavvyUser","i12.BXRestNavvyLists","i13.BXRestNavvyTask","i14.BXRestNavvyTasks","i15.BXRestNavvyDisk","i16.BXRestNavvyBizproc","i17.BXRestNavvyLog","i18.BXRestNavvyCalendar","i19.BXRestNavvySonetGroup","i20.BXRestNavvyServer","i21.BXRestMapLists","i1.BXRestMapCalendarEvent","i1.BXRestMapLogBlogPost","i1.BXRestMapTaskCommentItem","i2.BXRestMapTaskElapseditem","i3.BXRestMapTaskResult","i4.BXRestMapTaskStage","i1.BXRestMapTasksTask","i3.BXRestMapServer","i4.BXRestMapLists","i6.BXRestMapCalendar","i7.BXRestMapLog","i8.BXRestMapTask","i9.BXRestMapTasks","Map"],"mappings":"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"}