bx-rest 0.1.10 → 0.1.11

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 (37) hide show
  1. package/esm2020/request/task/elapseditem.mjs +62 -0
  2. package/esm2020/request/task.mjs +17 -0
  3. package/esm2020/request/tasks/task.mjs +124 -1
  4. package/esm2020/request-navvy/task/elapseditem.mjs +261 -0
  5. package/esm2020/request-navvy/task.mjs +17 -0
  6. package/esm2020/request-navvy/tasks/task.mjs +124 -1
  7. package/esm2020/rest.mjs +28 -24
  8. package/esm2020/services/permission.mjs +43 -0
  9. package/esm2020/typification/permission.mjs +2 -0
  10. package/esm2020/typification/rest/task/access/getaccess.mjs +2 -0
  11. package/esm2020/typification/rest/task/elapseditem/add.mjs +2 -0
  12. package/esm2020/typification/rest/task/elapseditem/del.mjs +2 -0
  13. package/esm2020/typification/rest/task/elapseditem/get.mjs +2 -0
  14. package/esm2020/typification/rest/task/elapseditem/isActionAllowedParam.mjs +2 -0
  15. package/esm2020/typification/rest/task/elapseditem/item.mjs +2 -0
  16. package/esm2020/typification/rest/task/elapseditem/update.mjs +2 -0
  17. package/fesm2015/bx-rest.mjs +633 -6
  18. package/fesm2015/bx-rest.mjs.map +1 -1
  19. package/fesm2020/bx-rest.mjs +631 -6
  20. package/fesm2020/bx-rest.mjs.map +1 -1
  21. package/package.json +1 -1
  22. package/request/task/elapseditem.d.ts +38 -0
  23. package/request/task.d.ts +8 -0
  24. package/request/tasks/task.d.ts +2 -0
  25. package/request-navvy/task/elapseditem.d.ts +36 -0
  26. package/request-navvy/task.d.ts +8 -0
  27. package/request-navvy/tasks/task.d.ts +4 -0
  28. package/rest.d.ts +6 -2
  29. package/services/permission.d.ts +9 -0
  30. package/typification/permission.d.ts +27 -0
  31. package/typification/rest/task/access/getaccess.d.ts +37 -0
  32. package/typification/rest/task/elapseditem/add.d.ts +10 -0
  33. package/typification/rest/task/elapseditem/del.d.ts +4 -0
  34. package/typification/rest/task/elapseditem/get.d.ts +28 -0
  35. package/typification/rest/task/elapseditem/isActionAllowedParam.d.ts +5 -0
  36. package/typification/rest/task/elapseditem/item.d.ts +26 -0
  37. package/typification/rest/task/elapseditem/update.d.ts +10 -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.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.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/services/navvy.ts","../../../projects/bx-rest/src/request-navvy/user.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/map/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.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/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/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/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\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 current(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(clone(user), {\r\n ID: this.toNum(user.ID),\r\n IS_ONLINE: this.toBool(user.IS_ONLINE),\r\n DATE_REGISTER: this.toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = this.toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: this.toStr(user.ID),\r\n IS_ONLINE: this.toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: this.getBXStrTime(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: this.toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { throwError } from 'rxjs'\nimport clone from 'just-clone'\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport { HttpBXServices } from '../services/http/HttpBX'\nimport UserFilterSearch from '../typification/rest/user/UserFilterSearch'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../consts/part-name-metods'\nimport { Injectable } from '@angular/core'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\nimport { BXRestUserMap } from '../map/user'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestUser {\n\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n current: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n constructor(\n private http: HttpBXServices,\n private BXRestUserMap: BXRestUserMap\n ) {\n }\n\n admin() {\n return this.http.get<boolean>(this.url.admin)\n }\n\n get(params: iBXRestParamUserGet = {}) {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iBXRestUserHttp[]>\n (\n this.url.get,\n copyParams\n )\n }\n\n current() {\n return this.http.get<iBXRestUserHttp>(this.url.current, {})\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: string | UserFilterSearch) {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iBXRestAnswer<iBXRestUserHttp[]>>(\n this.url.search,\n params\n )\n }\n\n 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 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","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\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 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'\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'\n// import { AnswerApiTaskBX } from '../../typification/rest/task/answers/task';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestTasksTask {\n\n url = {\n add: [$tasks, $task, $add], // Создает задачу\n approve: [$tasks, $task, $approve], // Позволяет принять задачу\n complete: [$tasks, $task, $complete], // Переводит задачу в статус «завершена»\n counters: {\n get: [$tasks, $task, $counters, $get], //Получает счетчики пользователя\n },\n deger: [$tasks, $task, $deger], // Переводит задачу в статус «отложена»\n delegate: [$tasks, $task, $delegate], // Метод для делегирования задачи\n delete: [$tasks, $task, $delete], // Удаляет задачу\n disapprove: [$tasks, $task, $disapprove], // Позволяет отклонить задачу\n favorite: {\n add: [$tasks, $task, $favorite, $add], // Добавляет задачи в \"Избранное\"\n delete: [$tasks, $task, $favorite, $delete], // Удаляет задачи из \"Избранного\"\n },\n files: {\n attach: [$tasks, $task, $files, $attach], // Прикрепляет загруженный на диск файл к задаче\n },\n get: [$tasks, $task, $get], // Возвращает информацию о конкретной задаче\n getFields: [$tasks, $task, $getFields], // Возвращает все доступные поля\n getaccess: [$tasks, $task, $getaccess], // Метод для проверки доступа к задаче\n history: {\n list: [$tasks, $task, $history, $list], // Получает историю задачи\n },\n list: [$tasks, $task, $list], // Возвращает массив задач, каждая из которых содержит массив полей\n pause: [$tasks, $task, $pause], // Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\n renew: [$tasks, $task, $renew], // Возобновляет задачу после ее завершения\n start: [$tasks, $task, $start], // Переводит задачу в статус «выполняется»\n startwatch: [$tasks, $task, 'startwatch'], // Позволяет наблюдать за задачей\n stopwatch: [$tasks, $task, 'stopwatch'], // Останавливает наблюдение за задачей\n update: [$tasks, $task, $update], // Обновляет задачу\n result: {\n list: [$tasks, $task, $result, $list], // Просмотр списка результатов к задаче\n addFromComment: [$tasks, $task, $result, 'addFromComment'], // Создание результата задачи из комментария\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан\n },\n planner: {\n getlist: [$task, $planner, $getlist], // Возвращает массив, содержащий идентификаторы задач в плане на день\n }\n }\n\n constructor(\n private http: HttpBXServices,\n ) {\n }\n\n add(param: { fields: iBXRestParamTaskAdd }) {\n return this.http.post<{ task: iBXRestHttpTask }>(this.url.add, param)\n }\n\n /*\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\n let sendTask: Record<string, any> = {}\n let taskTS: Record<string, any> = task\n if (updateFields.length) {\n for (let updateField of updateFields) {\n if (taskTS[camelCase(updateField)]) {\n sendTask[updateField] = taskTS[camelCase(updateField)]\n }\n }\n if (Object.values(sendTask).length) {\n return this.http.post(\n this.url.update,\n {taskId: taskId, fields: sendTask},\n 'error to update task')\n } else {\n this.snackBar.error('not valid send data task')\n console.error('not valid send data task', sendTask, task)\n return of(undefined)\n }\n }\n\n this.snackBar.warning('not have field for update')\n return of(undefined)\n }\n */\n\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 getaccess(id: number, users: number[] = []) {\n return this.http.post<iHttpAnswerBX<iGetAccessTask>>(this.url.getaccess, {taskId: id, user: users})\n .pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.allowedActions) ? v.allowedActions : undefined)\n )\n }\n */\n}\n\n","import { Injectable } from '@angular/core'\nimport { BXRestTasksTask } from './tasks/task'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestTasks {\n\n constructor(\n public task: BXRestTasksTask,\n ) {\n }\n\n}\n\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto,\r\n $delete,\r\n $disk,\r\n $file,\r\n $get,\r\n $getFields,\r\n $markdeleted,\r\n $moveto,\r\n $rename, $restore\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFile {\r\n url = {\r\n getfields: [$disk, $file, $getFields], // Возвращает описание полей файла\r\n get: [$disk, $file, $get], // Возвращает файл по идентификатору\r\n rename: [$disk, $file, $rename], // Переименовывает файл\r\n copyto: [$disk, $file, $copyto], // Копирует файл в указанную папку\r\n moveto: [$disk, $file, $moveto], // Перемещает файл в указанную папку\r\n delete: [$disk, $file, $delete], // Уничтожает файл навсегда\r\n markdeleted: [$disk, $file, $markdeleted], // Перемещает файл в корзину\r\n restore: [$disk, $file, $restore], // Восстанавливает файл из корзины\r\n uploadversion: [$disk, $file, 'uploadversion'], // Загружает новую версию файла\r\n getVersions: [$disk, $file, 'getVersions'], // Возвращает список версий файла\r\n restoreFromVersion: [$disk, $file, 'restoreFromVersion'], // Восстанавливает файл из конкретной версии\r\n getExternalLink: [$disk, $file, 'getexternallink'] //\tВозвращает публичную ссылку на файл\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n get(id: number) {\r\n return this.http.post<iBXRestFileHttp>(this.url.get, {id: id})\r\n }\r\n\r\n markDel(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id})\r\n }\r\n}\r\n","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 SnackBarService from './snack-bar/snack-bar.service'\r\nimport { 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\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Navvy {\r\n\r\n constructor(\r\n private snackBar: SnackBarService,\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","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 { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport { Navvy } from '../services/navvy'\nimport { iBXRestUser } from '../typification/rest/user/user'\nimport UserFilterSearch from '../typification/rest/user/UserFilterSearch'\nimport { SessionStorage } from '../services/vanilla/sessionStorage';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyUser {\n\n constructor(\n private BXRestUser: BXRestUser,\n private BXRestUserMap: BXRestUserMap,\n private Navvy: Navvy,\n ) {\n }\n\n get(params: iBXRestParamUserGet = {}) {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.get(params), 'Не удалось получить пользователей')\n }\n\n current(update = false) {\n if (update) {\n return this.self()\n } else {\n let self = SessionStorage.getItem(this.constructor.name + this.self.name) as iBXRestUser\n if(self){\n return of(self)\n }\n return this.self()\n }\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]) {\n return this.Navvy.mapAndSnackBarError(\n this.BXRestUser.update(user, fieldUpdate),\n 'Не удалось обновить пользователя с ID' + user.ID\n )\n }\n\n private self() {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.current(), 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v) {\n return this.BXRestUserMap.current(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 search(params: string | UserFilterSearch) {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.search(params), 'Сервер не отвечает на запрос поиска')\n }\n\n access(access: string[]) {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.access(access), 'Не удалось получить права')\n }\n\n fields() {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.fields(), 'Не удалось поля')\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}\n\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapListsElement extends BaseMapServices {\r\n\r\n get(items: iBXRestHttpListsElement[]): iBXRestListsElement[] {\r\n return items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: this.toNum(item.CREATED_BY),\r\n IBLOCK_ID: this.toNum(item.IBLOCK_ID),\r\n ID: this.toNum(item.ID)\r\n }))\r\n }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from '../../request/lists/element'\r\nimport { map } from 'rxjs/operators'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestListsElement.get(param),\r\n 'Не удалось получить элемент списка'\r\n ).pipe(\r\n map(v => (v) ? this.BXRestMap.get(v) : undefined),\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestListsElement.add(param),\r\n 'Не удалось получить элемент списка'\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport BXRestListsElementMap from './lists/element'\r\nimport { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLists extends BaseMapServices {\r\n\r\n constructor(public element: BXRestListsElementMap) {\r\n super()\r\n }\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 private 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: Number(itemLists.ID),\r\n INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n LANG_DIR: this.toStr(itemLists.LANG_DIR),\r\n LAST_CONV_ELEMENT: this.toNum(itemLists.LAST_CONV_ELEMENT),\r\n LID: this.toStr(itemLists.LID),\r\n LIST_MODE: this.toStr(itemLists.LIST_MODE),\r\n LIST_PAGE_URL: this.toStr(itemLists.LIST_PAGE_URL),\r\n NAME: this.toStr(itemLists.NAME),\r\n PICTURE: this.toStr(itemLists.PICTURE),\r\n PROPERTY_INDEX: this.toStr(itemLists.PROPERTY_INDEX),\r\n REST_ON: itemLists.REST_ON === 'Y',\r\n RIGHTS_MODE: this.toStr(itemLists.RIGHTS_MODE),\r\n RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n RSS_FILE_DAYS: this.toStr(itemLists.RSS_FILE_DAYS),\r\n RSS_FILE_LIMIT: this.toStr(itemLists.RSS_FILE_LIMIT),\r\n RSS_TTL: Number(itemLists.RSS_TTL),\r\n RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n SECTIONS_NAME: this.toStr(itemLists.SECTIONS_NAME),\r\n SECTION_CHOOSER: this.toStr(itemLists.SECTION_CHOOSER),\r\n SECTION_NAME: this.toStr(itemLists.SECTION_NAME),\r\n SECTION_PAGE_URL: this.toStr(itemLists.SECTION_PAGE_URL),\r\n SECTION_PROPERTY: this.toStr(itemLists.SECTION_PROPERTY),\r\n SERVER_NAME: this.toStr(itemLists.SERVER_NAME),\r\n SOCNET_GROUP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n SORT: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n VERSION: Number(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n }\r\n }\r\n\r\n}\r\n","import { 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 { map } from 'rxjs/operators'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLists {\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement,\r\n private BXRestLists: BXRestLists,\r\n private Navvy: Navvy,\r\n private mapList: BXRestMapLists\r\n ) {\r\n }\r\n\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestLists.get(param), 'Не удалось получить список').pipe(\r\n map(v => this.mapList.get(v))\r\n )\r\n }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../typification/rest/task/task'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTaskMap extends BaseMapServices {\r\n\r\n add(item: iBXRestHttpTask): iBXRestTask{\r\n return this.TaskBXHttpToTaskBX(item)\r\n }\r\n\r\n get(item: iBXRestHttpTask): iBXRestTask{\r\n return this.TaskBXHttpToTaskBX(item)\r\n }\r\n\r\n list(item: iBXRestHttpTask[]): iBXRestTask[]{\r\n return item.map( i => this.TaskBXHttpToTaskBX(i))\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 SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport { map } from 'rxjs/operators';\nimport { BXRestTaskMap } from '../../map/task'\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 { tap } from 'rxjs';\nimport { SessionStorage } from '../../services/vanilla/sessionStorage'\n\n// export interface TimeProcess {\n// total: number,\n// next: number\n// }\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyTasksTask {\n\n // pageSize = 50\n // nowLoad$ = new ReplaySubject<TimeProcess>(1)\n\n def: { select: iBXRestTaskFieldsName[] } = {\n select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',\n 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',\n 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',\n 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',\n 'TAGS', 'ALLOW_TIME_TRACKING'\n ]\n }\n\n // storeTask$: Observable<iStoreTask>\n\n constructor(\n private BXRestTasksTask: BXRestTasksTask,\n private snackBar: SnackBarService,\n // private store: Store<{ tasks: IStoreTask }>,\n private taskMap: BXRestTaskMap,\n // private taskResultMap: BitrixApiTaskResultMapServices\n private Navvy: Navvy,\n ) {\n // this.storeTask$ = this.store.select('tasks')\n // this.nowLoad$.next({\n // total: 0,\n // next: 0\n // })\n }\n\n add(param: { fields: iBXRestParamTaskAdd }) {\n return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.add(param), 'Не удалось получить задачу').pipe(\n map(v => {\n if (v && v.task) {\n return this.taskMap.add(v.task)\n }\n return undefined\n }\n ))\n // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(\n // map(v => {\n // if (v && v.result && v.result.task) {\n // return Object.assign(\n // v,\n // {\n // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)\n // })\n // }\n // return undefined\n // }\n // ))\n }\n\n /*\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\n let sendTask: Record<string, any> = {}\n let taskTS: Record<string, any> = task\n if (updateFields.length) {\n for (let updateField of updateFields) {\n if (taskTS[camelCase(updateField)]) {\n sendTask[updateField] = taskTS[camelCase(updateField)]\n }\n }\n if (Object.values(sendTask).length) {\n return this.http.post(\n this.url.update,\n {taskId: taskId, fields: sendTask},\n 'error to update task')\n } else {\n this.snackBar.error('not valid send data task')\n console.error('not valid send data task', sendTask, task)\n return of(undefined)\n }\n }\n\n this.snackBar.warning('not have field for update')\n return of(undefined)\n }\n */\n\n get(requestArray: iBXRestParamTaskGet) {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n }\n return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.get(requestArray), 'Не удалось получить задачу').pipe(\n map(v => (v && v.task) ? v.task : undefined),\n map(v => (v) ? this.taskMap.get(v) : undefined)\n )\n }\n\n\n list(param: iBXRestParamTasksList = {}) {\n if (!param.select) {\n param.select = this.def.select\n }\n return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.list(param), 'Не удалось получить задачи').pipe(\n map(v => (v && v.tasks) ? v.tasks : undefined),\n map(v => (v) ? this.taskMap.list(v) : undefined),\n tap(v => {\n if (v) {\n SessionStorage.setItem(this.constructor.name + this.list.name, v)\n }\n }\n )\n )\n }\n /*\n listArray(requestArray: RequestApiTaskListBX = {}) {\n return this.list(requestArray).pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.tasks) ? v.tasks : [])\n )\n }\n\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n if (cache) {\n return this.storeTask$.pipe(\n take(1),\n mergeMap(tasks => {\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\n if (filter.length === ids.length) {\n return of(filter)\n }\n }\n return this.getEndListArray(requestArray)\n })\n )\n }\n return this.getEndListArray(requestArray)\n }\n return this.getEndListArray(requestArray)\n }\n\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\n return this.list(requestArray).pipe(\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\n if (items && items.result && typeof items.result.tasks === 'object') {\n const items$ = of(items.result.tasks)\n if (items.next) {\n this.nowLoad$.next({\n total: (items.total) ? items.total : 0,\n next: items.next\n })\n requestArray.start = items.next\n return this.getEndListArray(requestArray).pipe(\n map(vEnd => {\n if (vEnd && items.result.tasks) {\n return [...items.result.tasks, ...vEnd]\n }\n return (items.result.tasks) ? items.result.tasks : []\n }))\n }\n this.nowLoad$.next({\n total: 0,\n next: 0\n })\n return items$\n } else {\n return of([])\n }\n })\n )\n }\n\n getFields() {\n return this.storeTask$.pipe(\n mergeMap(v => {\n if (v && !v.data.fields) {\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\n tap(v => {\n if (v && v.result) {\n this.store.dispatch(saveFields(v.result))\n }\n }),\n map(v => {\n if (v && v.result && v.result.fields) {\n return {result: v.result.fields}\n }\n\n return undefined\n })\n )\n }\n if (v.data.fields) {\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\n } else {\n return of(undefined)\n }\n })\n )\n }\n\n deleteResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\n }\n\n addResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\n .pipe(\n map(v => {\n if (v && v.result) {\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\n }\n return undefined\n }))\n }\n\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\n .pipe(\n map(v => {\n if (v && v.result) {\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\n }\n return undefined\n }))\n }\n\n getPlannerList() {\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\n }\n\n getaccess(id: number, users: number[] = []) {\n return this.http.post<iHttpAnswerBX<iGetAccessTask>>(this.url.getaccess, {taskId: id, user: users})\n .pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.allowedActions) ? v.allowedActions : undefined)\n )\n }\n */\n}\n","import { Injectable } from '@angular/core'\nimport { BXRestNavvyTasksTask } from './tasks/task'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyTasks {\n\n constructor(public task: BXRestNavvyTasksTask) {\n }\n}\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileAndFolderMap } from '../../typification/rest/disk/map';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskBase extends BaseMapServices {\r\n\r\n separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n let result: iBXRestFileAndFolderMap = {file: [], folder: []}\r\n for (let i of arr) {\r\n if (this.instanceOfiFile(i)) {\r\n result.file.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n SIZE: this.toNum(i.SIZE),\r\n }\r\n )\r\n )\r\n } else if (this.instanceOfiFolder(i)) {\r\n result.folder.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n }\r\n )\r\n )\r\n }\r\n }\r\n return result\r\n }\r\n\r\n instanceOfiFile(object: any): object is iBXRestFile {\r\n return object && object.TYPE && object.TYPE === 'file'\r\n }\r\n\r\n instanceOfiFolder(object: any): object is iBXRestFolder {\r\n return object && object.TYPE && object.TYPE === 'folder'\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport BXRestMapDiskBase from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n getContent(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n return this.separationFoldersAndFiles(arr)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFolder {\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder,\r\n private Navvy: Navvy,\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n }\r\n\r\n // uploadfile(id: number, fileContent: string[]) {\r\n // return this.httpPost(\r\n // this.url.uploadfile,\r\n // {\r\n // id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n // fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n // data: {\r\n // NAME: fileContent[0]\r\n // } // Обязательное поле NAME - имя нового файла\r\n // // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n // }\r\n // )\r\n // }\r\n\r\n getchildren(id: number) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskFolder.getchildren(id), 'get folders and files').pipe(\r\n map(v => {\r\n if (v) {\r\n return this.BXRestMapDiskFolder.getContent(v)\r\n }\r\n return {file: [], folder: []}\r\n })\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../../services/base'\r\nimport { map } from 'rxjs/operators'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile extends BaseServices {\r\n\r\n constructor(\r\n private BXRestDiskFile: BXRestDiskFile,\r\n private Navvy: Navvy,\r\n ) {\r\n super()\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskFile.get(id), 'Не удалось получить файл').pipe(\r\n map(v => {\r\n if (v) {\r\n return Object.assign(v, {SIZE: this.toNum(v.SIZE)})\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n markDel(id: number) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskFile.markDel(id), 'Не удалось переместить файл в корзину')\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n return Object.assign(v, {SIZE: this.toNum(v.SIZE)})\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n return this.separationFoldersAndFiles(arr)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskStorage {\r\n url = {\r\n getfields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getlist: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n gettypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addfolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getchildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadfile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getforapp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getforapp, {}\r\n )\r\n }\r\n\r\n // TODO: разобраться с фильтром\r\n getchildren(param: {id: number, filter?: any}) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<any>(this.url.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestFile>(this.url.uploadfile, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskStorage } from '../../request/disk/storage'\r\nimport { map } from 'rxjs/operators';\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { SessionStorage } from '../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { of, tap } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n // BXDiskFolder$ = new Observable<BXDiskFolderStore>()\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage,\r\n private Navvy: Navvy,\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n\r\n ) {\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of(res)\r\n } else {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskStorage.getforapp(), 'get root app folder').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 // TODO: разобраться с фильтром позже\r\n getchildren(param: { id: number, filter?: any }) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestDiskStorage.getchildren(param),\r\n 'get root app folders and files'\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n return this.BXRestMapDiskStorage.getchildren(v)\r\n }\r\n return {file: [], folder: []}\r\n })\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param).pipe(\r\n map(v => BXRestMapResult(v))\r\n )\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadfile(param);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFolder } from './folder'\r\nimport { map, mergeMap, take } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport { of } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n constructor(\r\n public folder: BXRestNavvyDiskFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: { name: string, val: string }) {\r\n return this.storage.getforapp().pipe(\r\n take(1),\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadfile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).pipe(\r\n map(v => BXRestMapResult(v)),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getchildren(v.ID)\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n return this.storage.getforapp().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID})\r\n // .pipe(\r\n // tap(v => {\r\n // if (v) {\r\n // this.store.dispatch(saveContentRootAppInfo({value: v}))\r\n // }\r\n // })\r\n // )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n // )\r\n // )\r\n }\r\n\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of(find)\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}})\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport 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 { map } from 'rxjs/operators'\r\nimport { BXRestDiskAttachedObject } from '../../request/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\nimport BXRestMapDiskAttachedObject from '../../map/disk/attachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskAttachedObject {\r\n\r\n constructor(\r\n private BXRestDiskAttachedObject: BXRestDiskAttachedObject,\r\n private mapAttachedObject: BXRestMapDiskAttachedObject,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestDiskAttachedObject.get(id),\r\n 'Не удалось получить прикреплённый файл'\r\n ).pipe(\r\n map(v => this.mapAttachedObject.get(v))\r\n )\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\r\n constructor(\r\n private BXRestBizprocWorkflow: BXRestBizprocWorkflow,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.Navvy.mapAndSnackBarError(\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 } from 'rxjs'\r\nimport { BXRestNavvyBizprocWorkflow } from './bizproc/workflow'\r\n\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 *\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 ).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 }))\r\n }\r\n return forkJoin(reques)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n\r\n return of(false)\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 constructor(\r\n private BXRestLogBlogPost: BXRestLogBlogPost,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestLogBlogPost.add(param), 'При добавлении поста')\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.mapAndSnackBarError(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 { map } from 'rxjs/operators'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestRestCalendarEvent {\r\n\r\n constructor(\r\n private BXRestCalendarEvent: BXRestCalendarEvent,\r\n private Navvy: Navvy,\r\n private eventMap: BXRestMapCalendarEvent\r\n ) {\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestCalendarEvent.get(param),\r\n 'Не удалось получить информацию о событии из календаря'\r\n ).pipe(\r\n map(v => this.eventMap.get(v))\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 {\r\n iBXRestParamSonetGroupGet\r\n} from '../typification/rest/sonet_group/get'\r\nimport { map } from 'rxjs/operators'\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 constructor(\r\n private BXRestSonetGroup: BXRestSonetGroup,\r\n private mapSonetGroup: BXRestMapSonetGroup,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestSonetGroup.get(param), 'Не удалось список групп').pipe(\r\n map(v => this.mapSonetGroup.get(v))\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\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\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRest {\r\n constructor(\r\n public user: BXRestUser,\r\n public lists: BXRestLists,\r\n public tasks: BXRestTasks,\r\n public disk: BXRestDisk,\r\n public bizproc: BXRestBizproc,\r\n public log: BXRestLog,\r\n public calendar: BXRestCalendar,\r\n public sonet_group: BXRestSonetGroup,\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvy {\r\n constructor(\r\n public user: BXRestNavvyUser,\r\n public lists: BXRestNavvyLists,\r\n public tasks: BXRestNavvyTasks,\r\n public disk: BXRestNavvyDisk,\r\n public bizproc: BXRestNavvyBizproc,\r\n public log: BXRestNavvyLog,\r\n public calendar: BXRestNavvyCalendar,\r\n public sonet_group: BXRestNavvySonetGroup,\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","/*\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'\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","i1.BXRestListsElement","i2.HttpBXServices","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.BXRestUser","i3.Navvy","BXRestListsElementMap","i2.Navvy","i1.BXRestNavvyListsElement","i2.BXRestLists","i4.BXRestMapLists","i2.BXRestTaskMap","i1.BXRestNavvyTasksTask","mergeMap","i1.BXRestNavvyDiskFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskOperation","i3.BXRestNavvyDiskFolder","i4.BXRestNavvyDiskAttachedObject","i1.BXRestNavvyBizprocWorkflow","i2.BXRestNavvyLists","i1.BXRestNavvyLogBlogPost","i2.BXRestNavvyLogBlogComment","i3.BXRestMapCalendarEvent","i1.BXRestRestCalendarEvent","i1.BXRestSonetGroup","i2.BXRestMapSonetGroup","i3.BXRestTasks","i4.BXRestDisk","i5.BXRestBizproc","i6.BXRestLog","i7.BXRestCalendar","i8.BXRestSonetGroup","i9.BXRestNavvyUser","i10.BXRestNavvyLists","i11.BXRestNavvyTasks","i12.BXRestNavvyDisk","i13.BXRestNavvyBizproc","i14.BXRestNavvyLog","i15.BXRestNavvyCalendar","i16.BXRestNavvySonetGroup","i17.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/map/base.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request/user.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/services/navvy.ts","../../../projects/bx-rest/src/request-navvy/user.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/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/request-navvy/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/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/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/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\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 current(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(clone(user), {\r\n ID: this.toNum(user.ID),\r\n IS_ONLINE: this.toBool(user.IS_ONLINE),\r\n DATE_REGISTER: this.toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = this.toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: this.toStr(user.ID),\r\n IS_ONLINE: this.toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: this.getBXStrTime(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: this.toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { throwError } from 'rxjs'\nimport clone from 'just-clone'\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport { HttpBXServices } from '../services/http/HttpBX'\nimport UserFilterSearch from '../typification/rest/user/UserFilterSearch'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../consts/part-name-metods'\nimport { Injectable } from '@angular/core'\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\nimport { BXRestUserMap } from '../map/user'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestUser {\n\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n current: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n constructor(\n private http: HttpBXServices,\n private BXRestUserMap: BXRestUserMap\n ) {\n }\n\n admin() {\n return this.http.get<boolean>(this.url.admin)\n }\n\n get(params: iBXRestParamUserGet = {}) {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iBXRestUserHttp[]>\n (\n this.url.get,\n copyParams\n )\n }\n\n current() {\n return this.http.get<iBXRestUserHttp>(this.url.current, {})\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: string | UserFilterSearch) {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iBXRestAnswer<iBXRestUserHttp[]>>(\n this.url.search,\n params\n )\n }\n\n 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 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","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\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 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// import { AnswerApiTaskBX } from '../../typification/rest/task/answers/task';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestTasksTask {\n\n url = {\n add: [$tasks, $task, $add], // Создает задачу\n approve: [$tasks, $task, $approve], // Позволяет принять задачу\n complete: [$tasks, $task, $complete], // Переводит задачу в статус «завершена»\n counters: {\n get: [$tasks, $task, $counters, $get], //Получает счетчики пользователя\n },\n deger: [$tasks, $task, $deger], // Переводит задачу в статус «отложена»\n delegate: [$tasks, $task, $delegate], // Метод для делегирования задачи\n delete: [$tasks, $task, $delete], // Удаляет задачу\n disapprove: [$tasks, $task, $disapprove], // Позволяет отклонить задачу\n favorite: {\n add: [$tasks, $task, $favorite, $add], // Добавляет задачи в \"Избранное\"\n delete: [$tasks, $task, $favorite, $delete], // Удаляет задачи из \"Избранного\"\n },\n files: {\n attach: [$tasks, $task, $files, $attach], // Прикрепляет загруженный на диск файл к задаче\n },\n get: [$tasks, $task, $get], // Возвращает информацию о конкретной задаче\n getFields: [$tasks, $task, $getFields], // Возвращает все доступные поля\n getaccess: [$tasks, $task, $getaccess], // Метод для проверки доступа к задаче\n history: {\n list: [$tasks, $task, $history, $list], // Получает историю задачи\n },\n list: [$tasks, $task, $list], // Возвращает массив задач, каждая из которых содержит массив полей\n pause: [$tasks, $task, $pause], // Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\n renew: [$tasks, $task, $renew], // Возобновляет задачу после ее завершения\n start: [$tasks, $task, $start], // Переводит задачу в статус «выполняется»\n startwatch: [$tasks, $task, 'startwatch'], // Позволяет наблюдать за задачей\n stopwatch: [$tasks, $task, 'stopwatch'], // Останавливает наблюдение за задачей\n update: [$tasks, $task, $update], // Обновляет задачу\n result: {\n list: [$tasks, $task, $result, $list], // Просмотр списка результатов к задаче\n addFromComment: [$tasks, $task, $result, 'addFromComment'], // Создание результата задачи из комментария\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан\n },\n planner: {\n getlist: [$task, $planner, $getlist], // Возвращает массив, содержащий идентификаторы задач в плане на день\n }\n }\n\n constructor(\n private http: HttpBXServices,\n ) {\n }\n\n add(param: { fields: iBXRestParamTaskAdd }) {\n return this.http.post<{ task: iBXRestHttpTask }>(this.url.add, param)\n }\n\n /*\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\n let sendTask: Record<string, any> = {}\n let taskTS: Record<string, any> = task\n if (updateFields.length) {\n for (let updateField of updateFields) {\n if (taskTS[camelCase(updateField)]) {\n sendTask[updateField] = taskTS[camelCase(updateField)]\n }\n }\n if (Object.values(sendTask).length) {\n return this.http.post(\n this.url.update,\n {taskId: taskId, fields: sendTask},\n 'error to update task')\n } else {\n this.snackBar.error('not valid send data task')\n console.error('not valid send data task', sendTask, task)\n return of(undefined)\n }\n }\n\n this.snackBar.warning('not have field for update')\n return of(undefined)\n }\n */\n\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 markDel(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id})\r\n }\r\n}\r\n","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 SnackBarService from './snack-bar/snack-bar.service'\r\nimport { 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\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Navvy {\r\n\r\n constructor(\r\n private snackBar: SnackBarService,\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","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 { iBXRestParamUserGet } from '../typification/rest/user/get'\nimport { Navvy } from '../services/navvy'\nimport { iBXRestUser } from '../typification/rest/user/user'\nimport UserFilterSearch from '../typification/rest/user/UserFilterSearch'\nimport { SessionStorage } from '../services/vanilla/sessionStorage';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyUser {\n\n constructor(\n private BXRestUser: BXRestUser,\n private BXRestUserMap: BXRestUserMap,\n private Navvy: Navvy,\n ) {\n }\n\n get(params: iBXRestParamUserGet = {}) {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.get(params), 'Не удалось получить пользователей')\n }\n\n current(update = false) {\n if (update) {\n return this.self()\n } else {\n let self = SessionStorage.getItem(this.constructor.name + this.self.name) as iBXRestUser\n if(self){\n return of(self)\n }\n return this.self()\n }\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]) {\n return this.Navvy.mapAndSnackBarError(\n this.BXRestUser.update(user, fieldUpdate),\n 'Не удалось обновить пользователя с ID' + user.ID\n )\n }\n\n private self() {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.current(), 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v) {\n return this.BXRestUserMap.current(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 search(params: string | UserFilterSearch) {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.search(params), 'Сервер не отвечает на запрос поиска')\n }\n\n access(access: string[]) {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.access(access), 'Не удалось получить права')\n }\n\n fields() {\n return this.Navvy.mapAndSnackBarError(this.BXRestUser.fields(), 'Не удалось поля')\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}\n\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapListsElement extends BaseMapServices {\r\n\r\n get(items: iBXRestHttpListsElement[]): iBXRestListsElement[] {\r\n return items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: this.toNum(item.CREATED_BY),\r\n IBLOCK_ID: this.toNum(item.IBLOCK_ID),\r\n ID: this.toNum(item.ID)\r\n }))\r\n }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from '../../request/lists/element'\r\nimport { map } from 'rxjs/operators'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestListsElement.get(param),\r\n 'Не удалось получить элемент списка'\r\n ).pipe(\r\n map(v => (v) ? this.BXRestMap.get(v) : undefined),\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestListsElement.add(param),\r\n 'Не удалось получить элемент списка'\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport BXRestListsElementMap from './lists/element'\r\nimport { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLists extends BaseMapServices {\r\n\r\n constructor(public element: BXRestListsElementMap) {\r\n super()\r\n }\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 private 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: Number(itemLists.ID),\r\n INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n LANG_DIR: this.toStr(itemLists.LANG_DIR),\r\n LAST_CONV_ELEMENT: this.toNum(itemLists.LAST_CONV_ELEMENT),\r\n LID: this.toStr(itemLists.LID),\r\n LIST_MODE: this.toStr(itemLists.LIST_MODE),\r\n LIST_PAGE_URL: this.toStr(itemLists.LIST_PAGE_URL),\r\n NAME: this.toStr(itemLists.NAME),\r\n PICTURE: this.toStr(itemLists.PICTURE),\r\n PROPERTY_INDEX: this.toStr(itemLists.PROPERTY_INDEX),\r\n REST_ON: itemLists.REST_ON === 'Y',\r\n RIGHTS_MODE: this.toStr(itemLists.RIGHTS_MODE),\r\n RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n RSS_FILE_DAYS: this.toStr(itemLists.RSS_FILE_DAYS),\r\n RSS_FILE_LIMIT: this.toStr(itemLists.RSS_FILE_LIMIT),\r\n RSS_TTL: Number(itemLists.RSS_TTL),\r\n RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n SECTIONS_NAME: this.toStr(itemLists.SECTIONS_NAME),\r\n SECTION_CHOOSER: this.toStr(itemLists.SECTION_CHOOSER),\r\n SECTION_NAME: this.toStr(itemLists.SECTION_NAME),\r\n SECTION_PAGE_URL: this.toStr(itemLists.SECTION_PAGE_URL),\r\n SECTION_PROPERTY: this.toStr(itemLists.SECTION_PROPERTY),\r\n SERVER_NAME: this.toStr(itemLists.SERVER_NAME),\r\n SOCNET_GROUP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n SORT: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n VERSION: Number(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n }\r\n }\r\n\r\n}\r\n","import { 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 { map } from 'rxjs/operators'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLists {\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement,\r\n private BXRestLists: BXRestLists,\r\n private Navvy: Navvy,\r\n private mapList: BXRestMapLists\r\n ) {\r\n }\r\n\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestLists.get(param), 'Не удалось получить список').pipe(\r\n map(v => this.mapList.get(v))\r\n )\r\n }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { 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 { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../typification/rest/task/task'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTaskMap extends BaseMapServices {\r\n\r\n add(item: iBXRestHttpTask): iBXRestTask{\r\n return this.TaskBXHttpToTaskBX(item)\r\n }\r\n\r\n get(item: iBXRestHttpTask): iBXRestTask{\r\n return this.TaskBXHttpToTaskBX(item)\r\n }\r\n\r\n list(item: iBXRestHttpTask[]): iBXRestTask[]{\r\n return item.map( i => this.TaskBXHttpToTaskBX(i))\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 SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport { map } from 'rxjs/operators'\nimport { BXRestTaskMap } from '../../map/task'\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 { tap } from 'rxjs'\nimport { SessionStorage } from '../../services/vanilla/sessionStorage'\nimport { iBXRestParamTaskGetAccess } from '../../typification/rest/task/access/getaccess'\n\n// export interface TimeProcess {\n// total: number,\n// next: number\n// }\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyTasksTask {\n\n // pageSize = 50\n // nowLoad$ = new ReplaySubject<TimeProcess>(1)\n\n def: { select: iBXRestTaskFieldsName[] } = {\n select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',\n 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',\n 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',\n 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',\n 'TAGS', 'ALLOW_TIME_TRACKING'\n ]\n }\n\n // storeTask$: Observable<iStoreTask>\n\n constructor(\n private BXRestTasksTask: BXRestTasksTask,\n private snackBar: SnackBarService,\n // private store: Store<{ tasks: IStoreTask }>,\n private taskMap: BXRestTaskMap,\n // private taskResultMap: BitrixApiTaskResultMapServices\n private Navvy: Navvy,\n ) {\n // this.storeTask$ = this.store.select('tasks')\n // this.nowLoad$.next({\n // total: 0,\n // next: 0\n // })\n }\n\n add(param: { fields: iBXRestParamTaskAdd }) {\n return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.add(param), 'Не удалось получить задачу').pipe(\n map(v => {\n if (v && v.task) {\n return this.taskMap.add(v.task)\n }\n return undefined\n }\n ))\n // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(\n // map(v => {\n // if (v && v.result && v.result.task) {\n // return Object.assign(\n // v,\n // {\n // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)\n // })\n // }\n // return undefined\n // }\n // ))\n }\n\n /*\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\n let sendTask: Record<string, any> = {}\n let taskTS: Record<string, any> = task\n if (updateFields.length) {\n for (let updateField of updateFields) {\n if (taskTS[camelCase(updateField)]) {\n sendTask[updateField] = taskTS[camelCase(updateField)]\n }\n }\n if (Object.values(sendTask).length) {\n return this.http.post(\n this.url.update,\n {taskId: taskId, fields: sendTask},\n 'error to update task')\n } else {\n this.snackBar.error('not valid send data task')\n console.error('not valid send data task', sendTask, task)\n return of(undefined)\n }\n }\n\n this.snackBar.warning('not have field for update')\n return of(undefined)\n }\n */\n\n get(requestArray: iBXRestParamTaskGet) {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n }\n return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.get(requestArray), 'Не удалось получить задачу').pipe(\n map(v => (v && v.task) ? v.task : undefined),\n map(v => (v) ? this.taskMap.get(v) : undefined)\n )\n }\n\n\n list(param: iBXRestParamTasksList = {}) {\n if (!param.select) {\n param.select = this.def.select\n }\n return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.list(param), 'Не удалось получить задачи').pipe(\n map(v => (v && v.tasks) ? v.tasks : undefined),\n map(v => (v) ? this.taskMap.list(v) : undefined),\n tap(v => {\n if (v) {\n SessionStorage.setItem(this.constructor.name + this.list.name, v)\n }\n }\n )\n )\n }\n\n /*\n listArray(requestArray: RequestApiTaskListBX = {}) {\n return this.list(requestArray).pipe(\n map(v => this.http.mapResult(v)),\n map(v => (v && v.tasks) ? v.tasks : [])\n )\n }\n\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\n if (!requestArray.select) {\n requestArray.select = this.def.select\n if (cache) {\n return this.storeTask$.pipe(\n take(1),\n mergeMap(tasks => {\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\n if (filter.length === ids.length) {\n return of(filter)\n }\n }\n return this.getEndListArray(requestArray)\n })\n )\n }\n return this.getEndListArray(requestArray)\n }\n return this.getEndListArray(requestArray)\n }\n\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\n return this.list(requestArray).pipe(\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\n if (items && items.result && typeof items.result.tasks === 'object') {\n const items$ = of(items.result.tasks)\n if (items.next) {\n this.nowLoad$.next({\n total: (items.total) ? items.total : 0,\n next: items.next\n })\n requestArray.start = items.next\n return this.getEndListArray(requestArray).pipe(\n map(vEnd => {\n if (vEnd && items.result.tasks) {\n return [...items.result.tasks, ...vEnd]\n }\n return (items.result.tasks) ? items.result.tasks : []\n }))\n }\n this.nowLoad$.next({\n total: 0,\n next: 0\n })\n return items$\n } else {\n return of([])\n }\n })\n )\n }\n\n getFields() {\n return this.storeTask$.pipe(\n mergeMap(v => {\n if (v && !v.data.fields) {\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\n tap(v => {\n if (v && v.result) {\n this.store.dispatch(saveFields(v.result))\n }\n }),\n map(v => {\n if (v && v.result && v.result.fields) {\n return {result: v.result.fields}\n }\n\n return undefined\n })\n )\n }\n if (v.data.fields) {\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\n } else {\n return of(undefined)\n }\n })\n )\n }\n\n deleteResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\n }\n\n addResultFromComment(commentID: number) {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\n .pipe(\n map(v => {\n if (v && v.result) {\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\n }\n return undefined\n }))\n }\n\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\n .pipe(\n map(v => {\n if (v && v.result) {\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\n }\n return undefined\n }))\n }\n\n getPlannerList() {\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\n }\n */\n\n getaccess(param: iBXRestParamTaskGetAccess) {\n return this.Navvy.mapAndSnackBarError(\n this.BXRestTasksTask.getaccess(param),\n 'Не удалось получить права на указанных пользователей'\n ).pipe(\n map(v => (v && v.allowedActions) ? v.allowedActions : undefined)\n )\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { BXRestNavvyTasksTask } from './tasks/task'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BXRestNavvyTasks {\n\n constructor(public task: BXRestNavvyTasksTask) {\n }\n}\n","import { Injectable } from '@angular/core'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { mergeMap, of, tap } from 'rxjs'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { BXRestElapseditem } from '../../request/task/elapseditem'\r\nimport { Navvy } from '../../services/navvy'\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 SnackBarService from '../../services/snack-bar/snack-bar.service'\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\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyElapseditem {\r\n\r\n constructor(\r\n private BXRestElapseditem: BXRestElapseditem,\r\n private BXRestNavvyUser: BXRestNavvyUser,\r\n private BXRestNavvyTasks: BXRestNavvyTasks,\r\n private Navvy: Navvy,\r\n private snackBar: SnackBarService\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.mapAndSnackBarError(\r\n this.BXRestElapseditem.getList(param),\r\n 'не удалось получить время по задачам'\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.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestElapseditem.add(param),\r\n 'Не удалось добавить запись о времени',\r\n )\r\n } else {\r\n this.snackBar.error('Отсутствуют права добавление записи затраченного времени')\r\n return of(false)\r\n }\r\n }))\r\n } else {\r\n this.snackBar.error('Отсутствуют права на чтение задачи')\r\n return of(false)\r\n }\r\n }))\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return 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.Navvy.mapAndSnackBarError(\r\n this.BXRestElapseditem.update(param),\r\n 'Не удалось обновить запись о времени',\r\n )\r\n } else {\r\n this.snackBar.error('Отсутствуют права на изменение записи затраченного времени')\r\n return of(false)\r\n }\r\n }))\r\n\r\n } else {\r\n this.snackBar.error('Отсутствуют права на чтение задачи')\r\n return of(false)\r\n }\r\n }))\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 getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date, cache = false) {\r\n return this.getAll({\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 cache\r\n ).pipe(\r\n map(v => this.http.mapResult(v))\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 }).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 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 })\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.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n this.Navvy.mapAndSnackBarError(this.BXRestElapseditem.isActionAllowed(param), '').pipe(\r\n catchError(v => {\r\n console.error(v)\r\n return of(false)\r\n })\r\n )\r\n }\r\n return of(false)\r\n })\r\n )\r\n }\r\n\r\n 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().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 }).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.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.Navvy.mapAndSnackBarError(this.BXRestElapseditem.del(param), 'Не удалось удалить запись')\r\n .pipe(\r\n map(v => (v === null)),\r\n )\r\n } else {\r\n this.snackBar.error('Отсутствуют права на удаление записи затраченного времени')\r\n return of(false)\r\n }\r\n }))\r\n } else {\r\n this.snackBar.error('Отсутствуют права на чтение задачи')\r\n return of(false)\r\n }\r\n })\r\n )\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)[]){\r\n return this.separationFoldersAndFiles(arr)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFolder {\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder,\r\n private Navvy: Navvy,\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n }\r\n\r\n // uploadfile(id: number, fileContent: string[]) {\r\n // return this.httpPost(\r\n // this.url.uploadfile,\r\n // {\r\n // id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n // fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n // data: {\r\n // NAME: fileContent[0]\r\n // } // Обязательное поле NAME - имя нового файла\r\n // // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n // }\r\n // )\r\n // }\r\n\r\n getchildren(id: number) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskFolder.getchildren(id), 'get folders and files').pipe(\r\n map(v => {\r\n if (v) {\r\n return this.BXRestMapDiskFolder.getContent(v)\r\n }\r\n return {file: [], folder: []}\r\n })\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../../services/base'\r\nimport { map } from 'rxjs/operators'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile extends BaseServices {\r\n\r\n constructor(\r\n private BXRestDiskFile: BXRestDiskFile,\r\n private Navvy: Navvy,\r\n ) {\r\n super()\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskFile.get(id), 'Не удалось получить файл').pipe(\r\n map(v => {\r\n if (v) {\r\n return Object.assign(v, {SIZE: this.toNum(v.SIZE)})\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n markDel(id: number) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskFile.markDel(id), 'Не удалось переместить файл в корзину')\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n return Object.assign(v, {SIZE: this.toNum(v.SIZE)})\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n return this.separationFoldersAndFiles(arr)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskStorage {\r\n url = {\r\n getfields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getlist: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n gettypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addfolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getchildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadfile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getforapp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getforapp, {}\r\n )\r\n }\r\n\r\n // TODO: разобраться с фильтром\r\n getchildren(param: {id: number, filter?: any}) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<any>(this.url.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestFile>(this.url.uploadfile, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskStorage } from '../../request/disk/storage'\r\nimport { map } from 'rxjs/operators';\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { SessionStorage } from '../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { of, tap } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n // BXDiskFolder$ = new Observable<BXDiskFolderStore>()\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage,\r\n private Navvy: Navvy,\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n\r\n ) {\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of(res)\r\n } else {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestDiskStorage.getforapp(), 'get root app folder').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 // TODO: разобраться с фильтром позже\r\n getchildren(param: { id: number, filter?: any }) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestDiskStorage.getchildren(param),\r\n 'get root app folders and files'\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n return this.BXRestMapDiskStorage.getchildren(v)\r\n }\r\n return {file: [], folder: []}\r\n })\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param).pipe(\r\n map(v => BXRestMapResult(v))\r\n )\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadfile(param);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFolder } from './folder'\r\nimport { map, mergeMap, take } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\nimport { of } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n constructor(\r\n public folder: BXRestNavvyDiskFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: { name: string, val: string }) {\r\n return this.storage.getforapp().pipe(\r\n take(1),\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadfile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).pipe(\r\n map(v => BXRestMapResult(v)),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getchildren(v.ID)\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n return this.storage.getforapp().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID})\r\n // .pipe(\r\n // tap(v => {\r\n // if (v) {\r\n // this.store.dispatch(saveContentRootAppInfo({value: v}))\r\n // }\r\n // })\r\n // )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n // )\r\n // )\r\n }\r\n\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of(find)\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}})\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport 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 { map } from 'rxjs/operators'\r\nimport { BXRestDiskAttachedObject } from '../../request/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\nimport BXRestMapDiskAttachedObject from '../../map/disk/attachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskAttachedObject {\r\n\r\n constructor(\r\n private BXRestDiskAttachedObject: BXRestDiskAttachedObject,\r\n private mapAttachedObject: BXRestMapDiskAttachedObject,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestDiskAttachedObject.get(id),\r\n 'Не удалось получить прикреплённый файл'\r\n ).pipe(\r\n map(v => this.mapAttachedObject.get(v))\r\n )\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\r\n constructor(\r\n private BXRestBizprocWorkflow: BXRestBizprocWorkflow,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.Navvy.mapAndSnackBarError(\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 } from 'rxjs'\r\nimport { BXRestNavvyBizprocWorkflow } from './bizproc/workflow'\r\n\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 *\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 ).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 }))\r\n }\r\n return forkJoin(reques)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n\r\n return of(false)\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 constructor(\r\n private BXRestLogBlogPost: BXRestLogBlogPost,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.mapAndSnackBarError(this.BXRestLogBlogPost.add(param), 'При добавлении поста')\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.mapAndSnackBarError(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 { map } from 'rxjs/operators'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestRestCalendarEvent {\r\n\r\n constructor(\r\n private BXRestCalendarEvent: BXRestCalendarEvent,\r\n private Navvy: Navvy,\r\n private eventMap: BXRestMapCalendarEvent\r\n ) {\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestCalendarEvent.get(param),\r\n 'Не удалось получить информацию о событии из календаря'\r\n ).pipe(\r\n map(v => this.eventMap.get(v))\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 {\r\n iBXRestParamSonetGroupGet\r\n} from '../typification/rest/sonet_group/get'\r\nimport { map } from 'rxjs/operators'\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 constructor(\r\n private BXRestSonetGroup: BXRestSonetGroup,\r\n private mapSonetGroup: BXRestMapSonetGroup,\r\n private Navvy: Navvy,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.Navvy.mapAndSnackBarError(\r\n this.BXRestSonetGroup.get(param), 'Не удалось список групп').pipe(\r\n map(v => this.mapSonetGroup.get(v))\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\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\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 ) {\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 ) {\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","/*\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'\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","i1.BXRestListsElement","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.BXRestUser","i3.Navvy","BXRestListsElementMap","i2.Navvy","i1.BXRestNavvyListsElement","i2.BXRestLists","i4.BXRestMapLists","i2.BXRestTaskMap","i1.BXRestNavvyTasksTask","i1.BXRestNavvyElapseditem","mergeMap","i1.BXRestNavvyDiskFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskOperation","i3.BXRestNavvyDiskFolder","i4.BXRestNavvyDiskAttachedObject","i1.BXRestNavvyBizprocWorkflow","i2.BXRestNavvyLists","i1.BXRestNavvyLogBlogPost","i2.BXRestNavvyLogBlogComment","i3.BXRestMapCalendarEvent","i1.BXRestRestCalendarEvent","i1.BXRestSonetGroup","i2.BXRestMapSonetGroup","i3.BXRestTask","i4.BXRestTasks","i5.BXRestDisk","i6.BXRestBizproc","i7.BXRestLog","i8.BXRestCalendar","i9.BXRestSonetGroup","i10.BXRestNavvyUser","i11.BXRestNavvyLists","i12.BXRestNavvyTask","i13.BXRestNavvyTasks","i14.BXRestNavvyDisk","i15.BXRestNavvyBizproc","i16.BXRestNavvyLog","i17.BXRestNavvyCalendar","i18.BXRestNavvySonetGroup","i19.BXRestMapLists"],"mappings":"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"}