bx-rest 0.2.5 → 0.2.7

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.
@@ -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/request/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task.ts","../../../projects/bx-rest/src/request/tasks/task.ts","../../../projects/bx-rest/src/request/tasks.ts","../../../projects/bx-rest/src/request/disk/file.ts","../../../projects/bx-rest/src/request/disk/folder.ts","../../../projects/bx-rest/src/request/disk/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/calendar/event.ts","../../../projects/bx-rest/src/request/calendar.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/services/Navvy/NavvySupport.ts","../../../projects/bx-rest/src/services/Navvy/NavvySimple.ts","../../../projects/bx-rest/src/services/Navvy/extends/NavvyPagNavBase.ts","../../../projects/bx-rest/src/services/Navvy/NavvyAlternativePaginationNavigation.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNav.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNavWithUselessKey.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNavTasks.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/map/base.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/services/permission.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task.ts","../../../projects/bx-rest/src/map/disk/base.ts","../../../projects/bx-rest/src/map/disk/folder.ts","../../../projects/bx-rest/src/request-navvy/disk/folder.ts","../../../projects/bx-rest/src/map/disk/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/interlayer/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.ts","../../../projects/bx-rest/src/rest.ts","../../../projects/bx-rest/src/map/calendar.ts","../../../projects/bx-rest/src/map/log/blogpost.ts","../../../projects/bx-rest/src/map/log.ts","../../../projects/bx-rest/src/map/task/commentitem.ts","../../../projects/bx-rest/src/map/task/result.ts","../../../projects/bx-rest/src/map/task/stages.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/map/tasks.ts","../../../projects/bx-rest/src/map.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { iRestSettings } from './typification/settings'\r\n\r\nexport const BX_REST_SETTINGS: iRestSettings = {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth'\r\n },\r\n urls: {\r\n home: 'b24.trace-studio.com'\r\n }\r\n}\r\n","import { iBXRestAnswer } from '../typification/rest/base/answer'\r\n\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T>): NonNullable<T>\r\nexport function BXRestMapResult(v: undefined): undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined): T | undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined) {\r\n if (v && (v.result || typeof v.result === 'boolean')) {\r\n return v.result\r\n }\r\n return undefined\r\n}\r\n","export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $defer = 'defer'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\nexport const $bizproc = 'bizproc'\r\nexport const $workflow = 'workflow'\r\nexport const $instances = 'instances'\r\nexport const $terminate = '$terminate'\r\nexport const $kill = 'kill'\r\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\r\n","import { NgModule } from '@angular/core'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatButtonModule } from '@angular/material/button'\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatButtonModule\r\n ],\r\n exports: [\r\n MatButtonModule,\r\n MatIconModule\r\n ]\r\n})\r\nexport class BxRestModule { }\r\n","import { Component, inject, Inject, ViewEncapsulation } from '@angular/core'\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar'\r\nimport { BxRestModule } from '../../../request/bx-rest.module'\r\n\r\n@Component({\r\n selector: 'app-view',\r\n templateUrl: './toast-message.component.html',\r\n styleUrls: ['./toast-message.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [BxRestModule],\r\n})\r\nexport class ToastMessageComponent {\r\n\r\n snackBarRef = inject(MatSnackBarRef)\r\n\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: { message: string, type: 'error' | 'warning' | 'success' }) {\r\n }\r\n\r\n getClass():string{\r\n switch (this.data.type){\r\n case 'error':\r\n case 'warning':\r\n case 'success':\r\n return this.data.type + '-message';\r\n }\r\n return '';\r\n }\r\n}\r\n","<div class=\"w-100 d-flex\">\r\n <span matSnackBarLabel [class]=\"getClass()\">\r\n {{ data.message }}\r\n</span>\r\n <span matSnackBarActions [class]=\"getClass()\">\r\n <button mat-button matSnackBarAction (click)=\"snackBarRef.dismissWithAction()\">\r\n <mat-icon>\r\n close\r\n </mat-icon>\r\n </button>\r\n</span>\r\n</div>\r\n\r\n","/**\r\n * Сервис для вывода сообщений пользователю\r\n * TODO: логирование\r\n */\r\nimport { Injectable } from '@angular/core'\r\nimport { ToastMessageComponent } from '../../services/snack-bar/toast-message/toast-message.component'\r\nimport { MatSnackBar } from '@angular/material/snack-bar'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class SnackBarService {\r\n\r\n constructor(private snackBar: MatSnackBar) {\r\n }\r\n\r\n error(message: string, sec = 12): void {\r\n this.standardMessage(message, sec, 'error')\r\n }\r\n\r\n warning(message: string, sec = 7): void {\r\n this.standardMessage(message, sec, 'warning');\r\n }\r\n\r\n success(message: string, sec = 7): void {\r\n this.standardMessage(message, sec, 'success');\r\n }\r\n\r\n standardMessage(message: string, sec = 5, name = 'error'): void{\r\n this.snackBar.open(message);\r\n this.snackBar.openFromComponent(ToastMessageComponent, {\r\n duration: sec * 1000,\r\n data: {\r\n message: message,\r\n type: name\r\n },\r\n panelClass: name + '-box'\r\n });\r\n }\r\n}\r\n","// Generate an internal UID to make the regexp pattern harder to guess.\r\nconst UID_LENGTH = 16;\r\nconst UID = generateUID();\r\nconst PLACE_HOLDER_REGEXP = new RegExp('(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\\\d+)__@\"', 'g');\r\n\r\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code]\\s*}/g;\r\nconst IS_PURE_FUNCTION = /function.*?\\(/;\r\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\r\nconst UNSAFE_CHARS_REGEXP = /[<>\\/\\u2028\\u2029]/g;\r\n\r\nconst RESERVED_SYMBOLS = ['*', 'async'];\r\n\r\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\r\n// Unicode char counterparts which are safe to use in JavaScript strings.\r\nconst ESCAPED_CHARS: {[key: string]: string} = {\r\n '<': '\\\\u003C',\r\n '>': '\\\\u003E',\r\n '/': '\\\\u002F',\r\n '\\u2028': '\\\\u2028',\r\n '\\u2029': '\\\\u2029'\r\n};\r\n\r\nfunction escapeUnsafeChars(unsafeChar: string): string {\r\n return (ESCAPED_CHARS.hasOwnProperty(unsafeChar)) ? ESCAPED_CHARS[unsafeChar] : '';\r\n}\r\n\r\nfunction generateUID() {\r\n let bytes = window.crypto.getRandomValues(new Uint32Array(UID_LENGTH))\r\n let result = '';\r\n for (let i = 0; i < UID_LENGTH; ++i) {\r\n result += bytes[i].toString(16);\r\n }\r\n return result;\r\n}\r\n\r\nfunction deleteFunctions(obj: any) {\r\n let functionKeys = [];\r\n for (let key in obj) {\r\n if (typeof obj[key] === \"function\") {\r\n functionKeys.push(key);\r\n }\r\n }\r\n for (let i = 0; i < functionKeys.length; i++) {\r\n delete obj[functionKeys[i]];\r\n }\r\n}\r\n\r\nfunction serialize(obj: any, options: any = {}): any {\r\n // Backwards-compatibility for `space` as the second argument.\r\n if (typeof options === 'number' || typeof options === 'string') {\r\n options = {space: options};\r\n }\r\n\r\n let functions: Function[] = [];\r\n let regexps: any[] = [];\r\n let dates: any[] = [];\r\n let maps: any[] = [];\r\n let sets: any[] = [];\r\n let arrays: any[] = [];\r\n let undefs: any[] = [];\r\n let infinities: any[] = [];\r\n let bigInts: any[] = [];\r\n let urls: any[] = [];\r\n\r\n // Returns placeholders for functions and regexps (identified by index)\r\n // which are later replaced by their string representation.\r\n function replacer(key: string, value: any) {\r\n\r\n // For nested function\r\n if (options.ignoreFunction) {\r\n deleteFunctions(value);\r\n }\r\n\r\n if (!value && value !== undefined) {\r\n return value;\r\n }\r\n\r\n // let origValue: any = this[key];\r\n let origValue: any = value;\r\n let type = typeof origValue;\r\n\r\n switch (type){\r\n case 'object':\r\n\r\n if (origValue instanceof RegExp) {\r\n return '@__R-' + UID + '-' + (regexps.push(origValue) - 1) + '__@';\r\n } else if (origValue instanceof Date) {\r\n return '@__D-' + UID + '-' + (dates.push(origValue) - 1) + '__@';\r\n } else if (origValue instanceof Map) {\r\n return '@__M-' + UID + '-' + (maps.push(origValue) - 1) + '__@';\r\n } else if (origValue instanceof Set) {\r\n return '@__S-' + UID + '-' + (sets.push(origValue) - 1) + '__@';\r\n }\r\n\r\n if (origValue instanceof Array) {\r\n let isSparse = origValue.filter(function () {\r\n return true\r\n }).length !== origValue.length;\r\n if (isSparse) {\r\n return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@';\r\n }\r\n }\r\n\r\n if (origValue instanceof URL) {\r\n return '@__L-' + UID + '-' + (urls.push(origValue) - 1) + '__@';\r\n }\r\n break;\r\n case 'function':\r\n return '@__F-' + UID + '-' + (functions.push(origValue) - 1) + '__@';\r\n case 'undefined':\r\n return '@__U-' + UID + '-' + (undefs.push(origValue) - 1) + '__@';\r\n case 'number':\r\n return '@__I-' + UID + '-' + (infinities.push(origValue) - 1) + '__@';\r\n case 'bigint':\r\n return '@__B-' + UID + '-' + (bigInts.push(origValue) - 1) + '__@';\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function serializeFunc(fn: Function) {\r\n let serializedFn = fn.toString();\r\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\r\n throw new TypeError('Serializing native function: ' + fn.name);\r\n }\r\n\r\n // pure functions, example: {key: function() {}}\r\n if (IS_PURE_FUNCTION.test(serializedFn)) {\r\n return serializedFn;\r\n }\r\n\r\n // arrow functions, example: arg1 => arg1+5\r\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\r\n return serializedFn;\r\n }\r\n\r\n let argsStartsAt = serializedFn.indexOf('(');\r\n let def = serializedFn.slice(0, argsStartsAt)\r\n .trim()\r\n .split(' ')\r\n .filter(function (val) {\r\n return val.length > 0\r\n });\r\n\r\n let nonReservedSymbols = def.filter(function (val) {\r\n return RESERVED_SYMBOLS.indexOf(val) === -1\r\n });\r\n\r\n // enhanced literal objects, example: {key() {}}\r\n if (nonReservedSymbols.length > 0) {\r\n return (def.indexOf('async') > -1 ? 'async ' : '') + 'function'\r\n + (def.join('').indexOf('*') > -1 ? '*' : '')\r\n + serializedFn.slice(argsStartsAt);\r\n }\r\n\r\n // arrow functions\r\n return serializedFn;\r\n }\r\n\r\n // Check if the parameter is function\r\n if (options.ignoreFunction && typeof obj === \"function\") {\r\n obj = undefined;\r\n }\r\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\r\n // to the literal string: \"undefined\".\r\n if (obj === undefined) {\r\n return String(obj);\r\n }\r\n\r\n let str: string = '';\r\n\r\n // Creates a JSON string representation of the value.\r\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\r\n if (options.isJSON && !options.space) {\r\n str = JSON.stringify(obj);\r\n } else {\r\n str = JSON.stringify(obj, options.isJSON ? undefined : replacer, options.space);\r\n }\r\n\r\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\r\n // their safe Unicode char counterpart. This _must_ happen before the\r\n // regexps and functions are serialized and added back to the string.\r\n if (options.unsafe !== true) {\r\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\r\n }\r\n\r\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) {\r\n return str;\r\n }\r\n\r\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\r\n // JSON string with their string representations. If the original value can\r\n // not be found, then `undefined` is used.\r\n return str.replace(PLACE_HOLDER_REGEXP, function (match, backSlash, type, valueIndex) {\r\n // The placeholder may not be preceded by a backslash. This is to prevent\r\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\r\n // invalid JS.\r\n if (backSlash) {\r\n return match;\r\n }\r\n\r\n switch (type){\r\n case 'D':\r\n return \"new Date(\\\"\" + dates[valueIndex].toISOString() + \"\\\")\"\r\n case 'R':\r\n return \"new RegExp(\" + serialize(regexps[valueIndex].source) + \", \\\"\" + regexps[valueIndex].flags + \"\\\")\"\r\n case 'M':\r\n return \"new Map(\" + serialize(Array.from(maps[valueIndex].entries()), options) + \")\"\r\n case 'S':\r\n return \"new Set(\" + serialize(Array.from(sets[valueIndex].values()), options) + \")\"\r\n case 'A':\r\n return \"Array.prototype.slice.call(\" + serialize(Object.assign({length: arrays[valueIndex].length}, arrays[valueIndex]), options) + \")\"\r\n case 'U':\r\n return 'undefined'\r\n case 'I':\r\n return infinities[valueIndex]\r\n case 'B':\r\n return \"BigInt(\\\"\" + bigInts[valueIndex] + \"\\\")\"\r\n case 'L':\r\n return \"new URL(\\\"\" + urls[valueIndex].toString() + \"\\\")\"\r\n }\r\n\r\n let fn = functions[valueIndex];\r\n\r\n return serializeFunc(fn);\r\n });\r\n}\r\n\r\nexport default serialize\r\n","import { Injectable } from '@angular/core'\r\nimport serialize from '../../functions/serializeJavascript'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class JSONServices {\r\n static deserialize(data: any) {\r\n return eval('(' + data + ')')\r\n }\r\n\r\n static serialize(data: any ) {\r\n return serialize(data)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport JSON from '../../services/vanilla/JSON'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class CookiesServices {\r\n\r\n static get(name: string): string {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\r\n if (results)\r\n return results[2]\r\n else\r\n return ''\r\n }\r\n\r\n static set(name: string, value: string, age: number = 0) {\r\n let string = name + '=' + value + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static setObj(name: string, value: any, age: number = 0) {\r\n let string = name + '=' + JSON.serialize(value) + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static getObj<T>(name: string): T | false {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\r\n if (results) {\r\n return JSON.deserialize(results[2])\r\n }\r\n\r\n return false\r\n }\r\n}\r\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'\r\nimport JSON from '../../services/vanilla/JSON'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageServices {\r\n\r\n static get(name: string): any {\r\n return localStorage.getItem(name)\r\n }\r\n\r\n static getObj<T>(name: string): T | null {\r\n return JSON.deserialize(localStorage.getItem(name))\r\n }\r\n\r\n static set(name: string, value: string): void {\r\n localStorage.setItem(name, value)\r\n }\r\n\r\n static setObj(name: string, value: any): void {\r\n let get = this.get(name)\r\n if(get && typeof get === 'object'){\r\n localStorage.setItem(\r\n name,\r\n JSON.serialize(\r\n Object.assign(\r\n get,\r\n value\r\n )\r\n )\r\n )\r\n } else {\r\n localStorage.setItem(name, JSON.serialize(value))\r\n }\r\n }\r\n\r\n static del(name: string): void {\r\n localStorage.removeItem(name)\r\n }\r\n\r\n}\r\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'\r\nimport Cookies from '../../services/vanilla/сookies'\r\nimport saveApplicationAuth from '../../typification/auth/save'\r\nimport { Observable, of, Subscription } from 'rxjs'\r\n// import { ActivatedRoute, ParamMap } from '@angular/router'\r\nimport { BaseServices } from '../base'\r\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\r\nimport { RestServices } from '../../typification/rest/api-lib'\r\nimport { BX_REST_SETTINGS } from '../../settings'\r\nimport iBXRestAuth from '../../typification/auth/save'\r\nimport { SessionStorage } from '../vanilla/sessionStorage'\r\n\r\ntype IKeyAuth = 'sessid' | 'auth' | string\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class SessionKeyServices extends BaseServices {\r\n\r\n authHave = false\r\n authData: saveApplicationAuth | undefined\r\n subscribe = {\r\n authData: new Subscription()\r\n }\r\n\r\n constructor(\r\n // private route: ActivatedRoute,\r\n public BxApiLib: RestServices,\r\n ) {\r\n super()\r\n let authData = SessionStorage.getItem<iBXRestAuth>(this.constructor.name)\r\n if ((authData && !authData.access_token.length) || !authData) {\r\n // получаем токен по собственным каналом (в битриксе приложение trace:apps.trace)\r\n window.addEventListener('message', (event: MessageEvent) => {\r\n if (event.origin !== window.origin) { // проверяем что это не наше сообщение (с текущего приложения)\r\n if (event.data && event.data.param) {\r\n if (typeof event.data.param === 'string') {\r\n event.data.param = JSON.parse(event.data.param)\r\n }\r\n\r\n if (event.data.param.access_token) {\r\n let param = event.data.param;\r\n let save = {\r\n access_token: (param.access_token) ? param.access_token : undefined,\r\n client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\r\n domain: (param.domain) ? param.domain : undefined,\r\n expires: (param.expires) ? param.expires : undefined,\r\n expires_in: (param.expires_in) ? param.expires_in : undefined,\r\n member_id: (param.member_id) ? param.member_id : undefined,\r\n refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\r\n scope: (param.scope) ? param.scope : undefined,\r\n server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\r\n status: (param.status) ? param.status : undefined,\r\n user_id: (param.user_id) ? param.user_id : undefined,\r\n type: (param.type) ? param.type : undefined,\r\n }\r\n\r\n if (Object.keys(save).length && save.access_token) {\r\n SessionStorage.setItem(this.constructor.name, save)\r\n this.subscribeAll()\r\n }\r\n }\r\n }\r\n }\r\n })\r\n\r\n /*\r\n this.subscribe.authData = this.route.queryParamMap\r\n .pipe(\r\n filter(param =>\r\n param.has('AUTH_ID')\r\n || param.has('access_token')\r\n || param.has('REFRESH_ID')\r\n || param.has('DOMAIN')\r\n )\r\n )\r\n .subscribe((param: ParamMap) => {\r\n if(!save) {\r\n let save = {\r\n access_token: undefined,\r\n client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\r\n domain: (param.domain) ? param.domain : undefined,\r\n expires: (param.expires) ? param.expires : undefined,\r\n expires_in: (param.expires_in) ? param.expires_in : undefined,\r\n member_id: (param.member_id) ? param.member_id : undefined,\r\n refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\r\n scope: (param.scope) ? param.scope : undefined,\r\n server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\r\n status: (param.status) ? param.status : undefined,\r\n user_id: (param.user_id) ? param.user_id : undefined,\r\n type: (param.type) ? param.type : undefined,\r\n }\r\n }\r\n\r\n if (param.has('AUTH_ID') && !authData?.access_token.length) {\r\n const get = param.get('AUTH_ID')\r\n if (get) {\r\n Cookies.set('auth', get) //TODO: потом убрать\r\n save.access_token = get\r\n }\r\n }\r\n\r\n if (param.has('access_token') && !authData.access_token.length) {\r\n const get = param.get('access_token')\r\n if (get) {\r\n Cookies.set('auth', get) // TODO: потом убрать\r\n save.access_token = get\r\n }\r\n }\r\n\r\n if (param.has('REFRESH_ID') && !authData.refresh_token.length) {\r\n const get = param.get('REFRESH_ID')\r\n if (get) {\r\n save.refresh_token = get\r\n }\r\n }\r\n\r\n if (param.has('DOMAIN') && !authData.domain.length) {\r\n const get = param.get('DOMAIN')\r\n if (get) {\r\n save.domain = get\r\n }\r\n }\r\n if (Object.keys(save).length && save.access_token) {\r\n SessionStorage.setItem(this.constructor.name, save)\r\n this.subscribeAll()\r\n } else {\r\n // если битрикс не шлёт нужные мне параметры на прямую\r\n // просим их мне отдать так как описано это в документации\r\n let f = () => {\r\n if (this.BxApiLib.BX24) {\r\n const initDate = this.BxApiLib.BX24.getAuth()\r\n SessionStorage.setItem(this.constructor.name, save)\r\n }\r\n }\r\n\r\n this.BxApiLib.init(f)\r\n }\r\n\r\n })\r\n */\r\n } else if (this.getAuth().length) {\r\n this.authHave = true\r\n }\r\n\r\n this.authData = authData\r\n\r\n }\r\n\r\n subscribeAll() {\r\n this.subscribe.authData.unsubscribe()\r\n }\r\n\r\n getAuth(): string {\r\n switch (BX_REST_SETTINGS.auth.key) {\r\n case 'auth':\r\n return Cookies.get('auth')\r\n default:\r\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()) {\r\n return (<any>window).BX.bitrix_sessid()\r\n } else if (this.getSessid().length) {\r\n let str = this.getSessid()\r\n return (str) ? str : ''\r\n } else {\r\n return Cookies.get('auth')\r\n }\r\n }\r\n }\r\n\r\n getKeyAuth(): IKeyAuth {\r\n if (BX_REST_SETTINGS.auth.key.length) {\r\n return BX_REST_SETTINGS.auth.key\r\n } else {\r\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()\r\n || this.getSessid().length) {\r\n return 'sessid'\r\n } else {\r\n return 'auth'\r\n }\r\n }\r\n }\r\n\r\n getSessid() {\r\n const check = new URLSearchParams(document.location.search).get('sessid')\r\n if (check) {\r\n LocalStorage.set('sessid', check)\r\n return check\r\n } else if (LocalStorage.get('sessid')) {\r\n return LocalStorage.get('sessid')\r\n }\r\n return ''\r\n }\r\n\r\n setAuthParams<T>(params: any): boolean {\r\n const keyAuth = this.getKeyAuth()\r\n if (params[keyAuth]) {\r\n return true\r\n } else if (keyAuth) {\r\n params[keyAuth] = this.getAuth()\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n getAuthParams(): string | undefined {\r\n switch (BX_REST_SETTINGS.auth.source) {\r\n case 'cookies':\r\n return this.getAuth()\r\n default:\r\n return (this.authData) ? this.authData.access_token : undefined\r\n }\r\n }\r\n\r\n getBaseUrl(): Observable<string | undefined> {\r\n return of(this.prepareBaseAddress(BX_REST_SETTINGS.urls.home, 'rest'))\r\n // return this.authData$.pipe( // TODO: разобраться позже\r\n // take(1),\r\n // map(v => (v && v.domain) ? this.prepareBaseAddress(v.domain) : undefined)\r\n // )\r\n }\r\n\r\n // getHomeUrl(): string {\r\n // return env.urls.home\r\n // }\r\n}\r\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'\r\nimport { map } from 'rxjs/operators'\r\nimport { Injectable } from '@angular/core'\r\nimport clone from 'just-clone'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\nimport { HttpServices } from './http'\r\nimport {\r\n iBatchRequestAnswer, iBatchRequestParam,\r\n iBatchRequestParamArr,\r\n iBatchRequestParamHttp,\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// type TransformFunction<T, R> = (input: T) => R;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpBXServices extends HttpServices {\r\n\r\n timeNowOnServer() {\r\n return this.httpGet<{ result?: Date, error?: string }>('server.time').pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return new Date(v.result)\r\n }\r\n return undefined\r\n }),\r\n )\r\n }\r\n\r\n /**\r\n * Это пиздец а не метод\r\n * @param param\r\n */\r\n branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n const size = 50 // больше не отдаст\r\n let subarray = [] //массив в который будет выведен результат.\r\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n }\r\n\r\n return forkJoin(\r\n subarray.map(i => {\r\n return this.httpPost('batch.json', {\r\n halt: 0,\r\n cmd: Object.assign({}, ...i.map(x => {\r\n return {[x[0]]: x[1]}\r\n }))\r\n })\r\n })\r\n ) as Observable<iBatchRequestAnswer<A>[]>\r\n }\r\n\r\n prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n (obj, key) => {\r\n obj[key] = '';\r\n return obj;\r\n },\r\n {} as iBatchRequestParamHttp\r\n );\r\n for (let key in param) {\r\n if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString()\r\n }\r\n }\r\n return res\r\n }\r\n\r\n // override mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\r\n // return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {\r\n // [key: keyBatch]: T\r\n // }\r\n // }\r\n //\r\n // override mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\r\n // return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))\r\n // }\r\n\r\n post<T>(name: string[],\r\n params: any = {},\r\n settings: iHttpParamSettings = this.defSettings) {\r\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\r\n }\r\n\r\n get<T>(name: string[],\r\n params: any = {},\r\n settings: iHttpParamSettings = this.defSettings) {\r\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\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(\r\n 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 return throwError(() => 'auth not get')\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\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 return throwError(() => 'auth not get')\r\n }\r\n\r\n }\r\n\r\n getNameMethod(arr: string[]) {\r\n return arr.join('.')\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { $list } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUserUserfield {\r\n url = {\r\n list: ['userfield', $list]\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n list() {\r\n return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n }\r\n}\r\n","import { share } from 'rxjs'\r\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\r\nimport { $get, $search, $update, $user } from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\r\nimport { BXRestUserUserfield } from './user/userfield'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUser {\r\n\r\n url = {\r\n admin: [$user, 'admin'],\r\n get: [$user, $get],\r\n current: [$user, 'current'],\r\n update: [$user, $update],\r\n search: [$user, $search],\r\n access: [$user, 'access'], // U1 - пользователь с id =1\r\n // AU - все авторизованные пользователи\r\n // D1 - подразделение с id=1\r\n // G1 - группа с id=1\r\n fields: [$user, 'fields'],\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n public userfield: BXRestUserUserfield\r\n ) {\r\n }\r\n\r\n admin() {\r\n return this.http.get<boolean>(this.url.admin)\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}) {\r\n return this.http.post<iBXRestUserHttp[]>\r\n (\r\n this.url.get,\r\n params\r\n )\r\n }\r\n\r\n current(update = false) {\r\n let request = this.http.get<iBXRestUserHttp>(this.url.current, {})\r\n if (update) {\r\n return request\r\n } else {\r\n return request.pipe(\r\n share()\r\n )\r\n }\r\n }\r\n\r\n update(user: Partial<iBXRestUser>) {\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n user\r\n )\r\n }\r\n\r\n search(params: iBXRestParamUserSearch) {\r\n return this.http.get<iBXRestUserHttp[]>(this.url.search, params)\r\n }\r\n\r\n access(access: string[]) {\r\n return this.http.get<iBXRestAnswer<boolean> | undefined>(this.url.access, {ACCESS: access})\r\n }\r\n\r\n fields() {\r\n return this.http.get<iBXRestAnswer<iBXRestUserHttpField>>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $delete, $field, $get, $lists, $type, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestListsField {\r\n url = {\r\n add: [$lists, $field, $add], // Метод создает поле списка\r\n delete: [$lists, $field, $delete], // Метод удаляет поле списка\r\n get: [$lists, $field, $get], // Метод возвращает данные поля\r\n type: {\r\n get: [$lists, $field, $type, $get], // Метод возвращает доступные типа полей для указанного списка\r\n },\r\n update: [$lists, $field, $update], // Метод обновляет поле списка\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.http.post<{ [key: string]: iBXRestFieldItem }>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { $add, $delete, $element, $file, $get, $lists, $update, $url } from '../../consts/part-name-metods'\r\n\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestListsElement {\r\n url = {\r\n add: [$lists, $element, $add], // Метод создаёт элемент списка\r\n delete: [$lists, $element, $delete], // Метод удаляет элемент списка // TODO: Реализовать\r\n get: [$lists, $element, $get], // Метод возвращает список элементов или элемент\r\n update: [$lists, $element, $update], //\tМетод обновляет элемент списка // TODO: Реализовать\r\n getFileUrl: [$lists, $element, $get, $file, $url] // Метод возвращает путь к файлу // TODO: Реализовать\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.http.post<iBXRestHttpListsElement[]>(\r\n this.url.get,\r\n pram\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n}\r\n","import {\r\n $add,\r\n $delete,\r\n $get,\r\n $iblock,\r\n $id,\r\n $lists,\r\n $type,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from './lists/element'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport BXRestListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLists {\r\n url = {\r\n add: [$lists, $add], // Метод создаёт список\r\n delete: [$lists, $delete], // Метод удаляет список\r\n get: [$lists, $get], // Метод возвращает данные по спискам\r\n update: [$lists, $update], // Метод обновляет существующий список\r\n getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока\r\n }\r\n\r\n constructor(\r\n public element: BXRestListsElement,\r\n public field: BXRestListsField,\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListGet) {\r\n return this.http.post<iBXRestListItemHttp[]>(this.url.get, pram)\r\n }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $add, $delete, $elapseditem, $get, $getlist, $getmanifest, $isactionallowed, $task, $update\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { iBXRestElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestElapseditem {\r\n\r\n url = {\r\n getmanifest: [$task, $elapseditem, $getmanifest], // Возвращает список методов и их описание\r\n getlist: [$task, $elapseditem, $getlist], // Возвращает список записей о затраченном времени по задаче\r\n get: [$task, $elapseditem, $get], // Возвращает запись о затраченном времени по ее идентификатору\r\n add: [$task, $elapseditem, $add], // Добавляет затраченное время к задаче\r\n delete: [$task, $elapseditem, $delete], // Удаляет запись о затраченном времени\r\n isactionallowed: [$task, $elapseditem, $isactionallowed], // Проверяет разрешено ли действие\r\n update: [$task, $elapseditem, $update], // Изменяет параметры записи о затраченном времени\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n return this.http.post<iBXRestElapsedItemHttp[]>(this.url.getlist, param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.http.post<number>(\r\n this.url.add,\r\n param,\r\n {\r\n timeZone: {\r\n calc: false,\r\n levelOut: false\r\n }\r\n }\r\n )\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.http.post<null>\r\n (\r\n this.url.update,\r\n param,\r\n {\r\n timeZone: {\r\n calc: false,\r\n levelOut: false\r\n }\r\n }\r\n )\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.http.post<null>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * ITEMID - обязателен в конечной отправке но не обязателен для ACTION_ELAPSED_TIME_ADD,\r\n * поэтому этом методе можно ставить \"1\" например, так же метод может выдавать ошибки о не доступности задачи\r\n * поэтому рекомендую воспользоваться аналогичным методом в пространстве имен navvy\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.http.post<boolean>(this.url.isactionallowed, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestElapseditem,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $add, $approve, $attach, $complete, $counters, $defer, $delegate, $delete, $disapprove, $favorite, $files,\r\n $get, $getaccess, $getFields, $getlist, $history, $list, $pause, $planner, $renew, $result, $start,\r\n $task, $tasks, $update\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestHttpTask } from '../../typification/rest/task/task'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\r\nimport { iBXRestParamTasksList, iBXRestParamTasksListHttp } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestTasksTaskApproveHttp } from '../../typification/rest/tasks/task/approve'\r\nimport { iBXRestTasksTaskCompleteHttp } from '../../typification/rest/tasks/task/complete'\r\nimport { iBXRestTasksTaskDeferHttp } from '../../typification/rest/tasks/task/defer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTasksTask {\r\n\r\n url = {\r\n add: [$tasks, $task, $add], // Создает задачу\r\n approve: [$tasks, $task, $approve], // Позволяет принять задачу\r\n complete: [$tasks, $task, $complete], // Переводит задачу в статус «завершена»\r\n counters: {\r\n get: [$tasks, $task, $counters, $get], //Получает счетчики пользователя\r\n },\r\n defer: [$tasks, $task, $defer], // Переводит задачу в статус «отложена»\r\n delegate: [$tasks, $task, $delegate], // Метод для делегирования задачи\r\n delete: [$tasks, $task, $delete], // Удаляет задачу\r\n disapprove: [$tasks, $task, $disapprove], // Позволяет отклонить задачу\r\n favorite: {\r\n add: [$tasks, $task, $favorite, $add], // Добавляет задачи в \"Избранное\"\r\n delete: [$tasks, $task, $favorite, $delete], // Удаляет задачи из \"Избранного\"\r\n },\r\n files: {\r\n attach: [$tasks, $task, $files, $attach], // Прикрепляет загруженный на диск файл к задаче\r\n },\r\n get: [$tasks, $task, $get], // Возвращает информацию о конкретной задаче\r\n getFields: [$tasks, $task, $getFields], // Возвращает все доступные поля\r\n getaccess: [$tasks, $task, $getaccess], // Метод для проверки доступа к задаче\r\n history: {\r\n list: [$tasks, $task, $history, $list], // Получает историю задачи\r\n },\r\n list: [$tasks, $task, $list], // Возвращает массив задач, каждая из которых содержит массив полей\r\n pause: [$tasks, $task, $pause], // Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\r\n renew: [$tasks, $task, $renew], // Возобновляет задачу после ее завершения\r\n start: [$tasks, $task, $start], // Переводит задачу в статус «выполняется»\r\n startwatch: [$tasks, $task, 'startwatch'], // Позволяет наблюдать за задачей\r\n stopwatch: [$tasks, $task, 'stopwatch'], // Останавливает наблюдение за задачей\r\n update: [$tasks, $task, $update], // Обновляет задачу\r\n result: {\r\n list: [$tasks, $task, $result, $list], // Просмотр списка результатов к задаче\r\n addFromComment: [$tasks, $task, $result, 'addFromComment'], // Создание результата задачи из комментария\r\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан\r\n },\r\n planner: {\r\n getlist: [$task, $planner, $getlist], // Возвращает массив, содержащий идентификаторы задач в плане на день\r\n }\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n add(param: { fields: iBXRestParamTaskAdd }) {\r\n return this.http.post<{ task: iBXRestHttpTask }>(this.url.add, param)\r\n }\r\n\r\n approve(id: number) {\r\n return this.http.post<{ task: iBXRestTasksTaskApproveHttp }>(this.url.approve, {taskId: id})\r\n }\r\n\r\n complete(id: number) {\r\n return this.http.post<{ task: iBXRestTasksTaskCompleteHttp }>(this.url.complete, {taskId: id})\r\n }\r\n\r\n defer(id: number) {\r\n return this.http.post<{ task: iBXRestTasksTaskDeferHttp }>(this.url.defer, {taskId: id})\r\n }\r\n\r\n /*\r\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\r\n let sendTask: Record<string, any> = {}\r\n let taskTS: Record<string, any> = task\r\n if (updateFields.length) {\r\n for (let updateField of updateFields) {\r\n if (taskTS[camelCase(updateField)]) {\r\n sendTask[updateField] = taskTS[camelCase(updateField)]\r\n }\r\n }\r\n if (Object.values(sendTask).length) {\r\n return this.http.post(\r\n this.url.update,\r\n {taskId: taskId, fields: sendTask},\r\n 'error to update task')\r\n } else {\r\n this.snackBar.error('not valid send data task')\r\n console.error('not valid send data task', sendTask, task)\r\n return of(undefined)\r\n }\r\n }\r\n\r\n this.snackBar.warning('not have field for update')\r\n return of(undefined)\r\n }\r\n */\r\n\r\n get(requestArray: iBXRestParamTaskGet) {\r\n return this.http.post<{ task: iBXRestHttpTask | undefined }>(this.url.get, requestArray)\r\n }\r\n\r\n list(param: iBXRestParamTasksList\r\n // = {}\r\n ) {\r\n return this.http.post<iBXRestParamTasksListHttp>(this.url.list, param)\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n\r\n getFields() {\r\n return this.storeTask$.pipe(\r\n mergeMap(v => {\r\n if (v && !v.data.fields) {\r\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\r\n tap(v => {\r\n if (v && v.result) {\r\n this.store.dispatch(saveFields(v.result))\r\n }\r\n }),\r\n map(v => {\r\n if (v && v.result && v.result.fields) {\r\n return {result: v.result.fields}\r\n }\r\n\r\n return undefined\r\n })\r\n )\r\n }\r\n if (v.data.fields) {\r\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n\r\n deleteResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\r\n }\r\n\r\n addResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getPlannerList() {s\r\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\r\n }\r\n */\r\n\r\n getaccess(param: iBXRestParamTaskGetAccess) {\r\n return this.http.post<iBXRestTaskGetAccess>(this.url.getaccess, param)\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestTasksTask } from './tasks/task'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTasks {\r\n\r\n constructor(\r\n public task: BXRestTasksTask,\r\n ) {\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto,\r\n $delete,\r\n $disk,\r\n $file,\r\n $get,\r\n $getFields,\r\n $markdeleted,\r\n $moveto,\r\n $rename, $restore\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFile {\r\n url = {\r\n getfields: [$disk, $file, $getFields], // Возвращает описание полей файла\r\n get: [$disk, $file, $get], // Возвращает файл по идентификатору\r\n rename: [$disk, $file, $rename], // Переименовывает файл\r\n copyto: [$disk, $file, $copyto], // Копирует файл в указанную папку\r\n moveto: [$disk, $file, $moveto], // Перемещает файл в указанную папку\r\n delete: [$disk, $file, $delete], // Уничтожает файл навсегда\r\n markdeleted: [$disk, $file, $markdeleted], // Перемещает файл в корзину\r\n restore: [$disk, $file, $restore], // Восстанавливает файл из корзины\r\n uploadversion: [$disk, $file, 'uploadversion'], // Загружает новую версию файла\r\n getVersions: [$disk, $file, 'getVersions'], // Возвращает список версий файла\r\n restoreFromVersion: [$disk, $file, 'restoreFromVersion'], // Восстанавливает файл из конкретной версии\r\n getExternalLink: [$disk, $file, 'getexternallink'] //\tВозвращает публичную ссылку на файл\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n get(id: number) {\r\n return this.http.post<iBXRestFileHttp>(this.url.get, {id: id})\r\n }\r\n\r\n markdeleted(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto, $disk, $folder, $get, $getchildren, $getFields,\r\n $markdeleted, $moveto, $rename, $restore, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFolder {\r\n url = {\r\n getfields: [$disk, $folder, $getFields], // Возвращает описание полей папки\r\n get: [$disk, $folder, $get], // Возвращает папку по идентификатору\r\n getchildren: [$disk, $folder, $getchildren], // Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n addsubfolder: [$disk, $folder, 'addsubfolder'], // Создает дочернюю папку\r\n copyto: [$disk, $folder, $copyto], // Копирует папку в указанную папку\r\n moveto: [$disk, $folder, $moveto], // Перемещает папку в указанную папку\r\n rename: [$disk, $folder, $rename], // Переименовывает папку\r\n deletetree: [$disk, $folder, 'deletetree'], // Уничтожает папку и всё её дочерние элементы навсегда\r\n markdeleted: [$disk, $folder, $markdeleted], // Перемещает папку в корзину\r\n restore: [$disk, $folder, $restore], //\tВосстанавливает папку из корзины\r\n uploadfile: [$disk, $folder, $uploadfile], // Загружает новый файл в указанную папку\r\n getExternalLink: [$disk, $folder, 'getExternalLink'] // Метод возвращает публичную ссылку\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n uploadfile(id: number, fileContent: string[]) {\r\n return this.http.post(\r\n this.url.uploadfile,\r\n {\r\n id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n data: {\r\n NAME: fileContent[0]\r\n } // Обязательное поле NAME - имя нового файла\r\n // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n }\r\n )\r\n }\r\n\r\n getchildren(id: number) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n {id: id}\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $disk, $get } from '../../consts/part-name-metods'\r\nimport { iBXRestDiskAttachedObjectHttp } from '../../typification/rest/disk/AttachedObject'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskAttachedObject {\r\n url = {\r\n get: [$disk, 'attachedObject', $get]\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n get(id: number) {\r\n return this.http.post<iBXRestDiskAttachedObjectHttp>(this.url.get, {id: id})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDisk {\r\n constructor(\r\n public file: BXRestDiskFile,\r\n public folder: BXRestDiskFolder,\r\n public attachedObject: BXRestDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $workflow, $list} from '../../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowInstance {\r\n\r\n url = {\r\n list: [$bizproc, $workflow, $instances, $list], // Возвращает список запущенных бизнес-процессов. Алиас bizproc.workflow.instances\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $template, $workflow, $list, $add, $delete, $update } from '../../../consts/part-name-metods'\r\nimport {\r\n iBXRestParamBizprocWorkflowTemplateList\r\n} from '../../../typification/rest/bizproc/workflow/template/list'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowTemplate {\r\n\r\n url = {\r\n add: [$bizproc, $workflow, $template, $add],\t// Добавляет шаблон Бизнес-процесса // TODO: реализовать\r\n delete: [$bizproc, $workflow, $template, $delete], // Удаляет шаблон Бизнес-процесса // TODO: реализовать\r\n update: [$bizproc, $workflow, $template, $update],\t// Изменяет шаблон Бизнес-процесса // TODO: реализовать\r\n list: [$bizproc, $workflow, $template, $list] // Возвращает список шаблонов Бизнес-процессов, установленных на сайте\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n return this.http.post(this.url.list, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $start, $terminate, $workflow, $kill} from '../../consts/part-name-metods'\r\nimport { BXRestBizprocWorkflowInstance } from './workflow/instance'\r\nimport { BXRestBizprocWorkflowTemplate } from './workflow/template'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflow {\r\n\r\n url = {\r\n instances: [$bizproc, $workflow, $instances], // Возвращает список запущенных бизнес-процессов // TODO: реализовать\r\n terminate: [$bizproc, $workflow, $terminate], // Останавливает активный Бизнес-процесс // TODO: реализовать\r\n start: [$bizproc, $workflow, $start], // Запускает Бизнес-процесс\r\n kill: [$bizproc, $workflow, $kill], // Удаляет запущенный бизнес-процесс // TODO: реализовать\r\n }\r\n\r\n constructor(\r\n public instances: BXRestBizprocWorkflowInstance,\r\n public template: BXRestBizprocWorkflowTemplate,\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.http.post<string>(this.url.start, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $add, $activity, $delete, $list, $update, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocActivity {\r\n url = {\r\n add: [$bizproc, $activity, $add], // Добавляет новое действие в бизнес-процесс\r\n delete: [$bizproc, $activity, $delete], // Удаляет действие\r\n list: [$bizproc, $activity, $list], // Возвращает список установленных приложением действий\r\n update: [$bizproc, $activity, $update], // Позволяет обновить поля действия\r\n log: [$bizproc, $activity, $log]// Записывает информацию в лог бизнес-процесса\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $task, $complete, $list } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocTask {\r\n url = {\r\n complete: [$bizproc, $task, $complete], // Осуществляет выполнение заданий БП\r\n list: [$bizproc, $task, $list], // Возвращает список заданий бизнес-процессов\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $delete, $update, $list, $robot, $add } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocRobot {\r\n url = {\r\n add: [$bizproc, $robot, $add], // Регистрирует нового робота\r\n delete: [$bizproc, $robot, $delete], // Удаляет зарегистрированного робота\r\n list: [$bizproc, $robot, $list], // Список зарегистрированных приложением роботов\r\n update: [$bizproc, $robot, $update] // Обновляет поля робота\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $event, $send } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocEvent {\r\n url = {\r\n send: [$bizproc, $event, $send], // Возвращает действию выходные параметры, заданные в описании действия\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestBizprocWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizprocActivity } from './bizproc/activity'\r\nimport { BXRestBizprocTask } from './bizproc/task'\r\nimport { BXRestBizprocRobot } from './bizproc/robot'\r\nimport { BXRestBizprocEvent } from './bizproc/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestBizprocWorkflow,\r\n public activity: BXRestBizprocActivity,\r\n public task: BXRestBizprocTask,\r\n public robot: BXRestBizprocRobot,\r\n public event: BXRestBizprocEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX';\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.http.post<boolean>(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLog {\r\n\r\n constructor(\r\n public blogPost: BXRestLogBlogPost,\r\n public blogComment: BXRestLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { iBXRestCalendarEventGetAnswerHttp } from '../../typification/rest/calendar/get/answer'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendarEvent {\r\n\r\n url = {\r\n add: [$calendar, $event, $add], //\tДобавляет новое событие\r\n delete: [$calendar, $event, $delete], // Удаляет событие\r\n get: [$calendar, $event, $get], // Возвращает список событий календаря\r\n getNearest: [$calendar, $event, $get, $nearest], // Возвращает список будущих событий для текущего пользователя\r\n update: [$calendar, $event, $get, $update], // Редактирует существующее событие\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.http.post<iBXRestCalendarEventGetAnswerHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $create,\r\n $delete,\r\n $get,\r\n $sonet_group,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\r\n iBXRestParamSonetGroupGet, iBXRestParamSonetHttp\r\n} from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestSonetGroup {\r\n\r\n url = {\r\n create: [$sonet_group, $create], // Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n delete: [$sonet_group, $delete], // Удаляет группу соцсети\r\n // feature: {\r\n // access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n // },\r\n get: [$sonet_group, $get], // Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n setowner: [$sonet_group, 'setowner'], // Изменяет владельца группы\r\n update: [$sonet_group, $update], // Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n // user: {\r\n // add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n // delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n // get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n // groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n // invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n // request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n // update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n // },\r\n // workgroup: {\r\n // list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n // get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n // }\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n // // TODO: filter и select позже нормально описать\r\n // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n // return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n // this.url.get,\r\n // {\r\n // order: select,\r\n // filter: filter\r\n // }\r\n // )\r\n // }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.http.post<iBXRestParamSonetHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $server,\r\n $time\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestServer {\r\n url = {\r\n time: [$server, $time]\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n time(){\r\n return this.http.post<string>(this.url.time)\r\n }\r\n}\r\n","import { Observable, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\nexport type ReturnTypeNavvy<T, R> = T extends R ? T : R;\r\n\r\nexport abstract class NavvySupport<C, M, T, R> {\r\n\r\n pageSize = 50 // больше всё равно не дас\r\n\r\n protected constructor(\r\n public requestClass: C,\r\n public mapClass: M\r\n ) {\r\n }\r\n\r\n mapAndSnackBarError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n // errorText: string\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n // this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n mapResult<T, R>(param: iBXRestAnswer<T> | undefined, map: (mapParam: T) => R): iBXRestAnswer<R> | undefined {\r\n return (param && param.result) ? Object.assign(param, {result: map(param.result)}) : undefined\r\n }\r\n\r\n abstract resultVanilla(): Observable<iBXRestAnswer<T> | undefined>\r\n\r\n abstract mapForVanilla(): ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n\r\n abstract result(): ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\nimport { NavvySupport, ReturnTypeNavvy } from './NavvySupport'\r\n\r\nexport class NavvySimple<C, M, T, R> extends NavvySupport<C, M, T, R> {\r\n\r\n constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n public func: Observable<iBXRestAnswer<T> | undefined>,\r\n public testError: string = '',\r\n public map: ((param: T) => R) | undefined = undefined\r\n // private snackBar: SnackBarService,\r\n ) {\r\n super(requestClass, mapClass)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func\r\n }\r\n\r\n mapForVanilla() {\r\n return this.func.pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v,{result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.mapAndSnackBarError(this.func).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n}\r\n","import { NavvySupport, ReturnTypeNavvy } from '../NavvySupport'\r\nimport { Observable, ReplaySubject } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\n\r\nexport abstract class NavvyPagNavBase<C, M, T, R, P> extends NavvySupport<C, M, T, R> {\r\n\r\n // load: number = 0\r\n\r\n load$ = new ReplaySubject<number>(1)\r\n\r\n public constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n protected func: (param: P) => Observable<iBXRestAnswer<T> | undefined>,\r\n protected param: P,\r\n protected testError: string = '',\r\n protected map: ((param: T | undefined) => R | undefined) | undefined = undefined) {\r\n super(requestClass, mapClass)\r\n this.load$.next(0.001)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func.call(this.requestClass, this.param)\r\n }\r\n\r\n mapForVanilla() {\r\n return this.mapForVanillaEnd(this.func, this.param)\r\n }\r\n\r\n protected mapForVanillaEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return func.call(this.requestClass, param).pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v, {result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.resultEnd(this.func, this.param)\r\n }\r\n\r\n protected resultEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return this.mapAndSnackBarError(func.call(this.requestClass, param)).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n\r\n abstract resultAll(): any// : ReturnType<Observable<T | undefined>, Observable<R | undefined>>[]\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, tap, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport clone from 'just-clone'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAlternativePagination } from '../../typification/rest/base/ApiPaginationBX'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<C, M, T, R, P extends iBXRestAlternativePagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: i / this.pageSize + 1\r\n }\r\n }\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param =>\r\n this.resultEnd(this.func, param).pipe(\r\n tap(_ => {\r\n if(param && param.PARAMS && items.total) {\r\n this.load$.next((param.PARAMS.NAV_PARAMS.iNumPage * this.pageSize + this.pageSize)/items.total)\r\n }\r\n }),\r\n )\r\n ),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([] as ReturnTypeNavvy<T, R>[])\r\n }\r\n\r\n /*\r\n getAll<T>(request: Observable<iBXRestAnswer<T> | undefined>,\r\n errorText: string) {\r\n return request.pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n }\r\n }\r\n ),\r\n // map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n */\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// TODO: реализовать загрузку всего в очереди\r\nexport class NavvyPagNav<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, last, mergeMap, throwError } from 'rxjs'\r\nimport clone from 'just-clone'\r\n\r\nexport class NavvyPagNavWithUselessKey<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, {[key: string]: T}, R[], P> {\r\n resultAll() {\r\n let save: (T | R)[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v)\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n return this.mapForVanillaEnd(this.func, this.param).pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = 0; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n /*\r\n return from(requests.map(param => this.resultEnd(this.func, param))).pipe(\r\n // toArray(),\r\n mergeMap(v => {\r\n return v\r\n })\r\n )\r\n */\r\n\r\n return from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n }\r\n }\r\n return from([1]).pipe(\r\n concatMap(_ => this.resultEnd(this.func, this.param)),\r\n )\r\n // return from([BXRestMapResult(items)])\r\n // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// TODO: реализовать загрузку всего в очереди\r\nexport class NavvyPagNavTasks<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, {tasks: T[] | undefined}, R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<{tasks: T[] | undefined}> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { NavvySimple } from './Navvy/NavvySimple'\r\nimport { NavvyAlterPagNav } from './Navvy/NavvyAlternativePaginationNavigation'\r\nimport { NavvyPagNav } from './Navvy/NavvyPagNav'\r\nimport { iBXRestAlternativePagination, iBXRestPagination } from '../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavWithUselessKey } from './Navvy/NavvyPagNavWithUselessKey'\r\nimport { NavvyPagNavTasks } from './Navvy/NavvyPagNavTasks'\r\n\r\nexport class Navvy<C, M> {\r\n\r\n constructor(\r\n protected requestClass: C,\r\n protected mapClass: M\r\n // private snackBar: SnackBarService,\r\n ) {\r\n }\r\n\r\n simple<T, R>(\r\n func: () => Observable<iBXRestAnswer<T> | undefined>,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined\r\n ) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass), testError, map)\r\n }\r\n\r\n simpleWithArg<T, R, A>(\r\n func: (param: A) => Observable<iBXRestAnswer<T> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass, arg), testError, map)\r\n }\r\n\r\n PagNav<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n PagNavTasks<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<{tasks: T[] | undefined}> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: {tasks: T[] | undefined} | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNavTasks(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n PagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: { [key: string]: T } | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNavWithUselessKey(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n alterPagNav<T, R, A extends iBXRestAlternativePagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyAlterPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../services/base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseMapServices extends BaseServices{\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport clone from 'just-clone'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user/user'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapUser extends BaseMapServices {\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined\r\n {\r\n return (v) ? v.map(i => this.userHttpToTrace(i)) : undefined\r\n }\r\n\r\n current(v: iBXRestUserHttp): iBXRestUser {\r\n return this.userHttpToTrace(v)\r\n }\r\n\r\n private userHttpToTrace(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(\r\n clone(user), {\r\n ID: this.toNum(user.ID),\r\n IS_ONLINE: this.toBool(user.IS_ONLINE),\r\n DATE_REGISTER: this.toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = this.toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: this.toStr(user.ID),\r\n IS_ONLINE: this.toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: this.getBXStrTime(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: this.toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestUserUserfield } from '../../request/user/userfield'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyUserUserfield {\r\n\r\n Navvy: Navvy<BXRestUserUserfield, undefined>\r\n\r\n constructor(\r\n private BXRestUserUserfield: BXRestUserUserfield\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestUserUserfield, undefined)\r\n }\r\n\r\n list() {\r\n return this.Navvy.simple(this.BXRestUserUserfield.list, 'Не удалось получить список кастомных полей')\r\n }\r\n}\r\n","import { of, tap } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestUser } from '../request/user'\r\nimport { Navvy } from '../services/navvy'\r\nimport { iBXRestUserHttp } from '../typification/rest/user/user'\r\nimport { SessionStorage } from '../services/vanilla/sessionStorage'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\r\nimport clone from 'just-clone'\r\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\r\nimport { BXRestNavvyUserUserfield } from './user/userfield'\r\nimport { BXRestMapUser } from '../map/user'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyUser {\r\n\r\n def: { params: { ACTIVE: 1, start: 0 } } = {\r\n params: {ACTIVE: 1, start: 0}\r\n }\r\n\r\n private Navvy: Navvy<BXRestUser, BXRestMapUser>\r\n\r\n constructor(\r\n private BXRestUserMap: BXRestMapUser,\r\n private BXRestUser: BXRestUser,\r\n public userfield: BXRestNavvyUserUserfield\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestUser, this.BXRestUserMap)\r\n }\r\n\r\n admin() {\r\n return this.Navvy.simple(\r\n this.BXRestUser.admin,\r\n 'Информация о возможных принадлежности человека к администратору не получена'\r\n )\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}){\r\n let copyParams = clone(params)\r\n this.setDefParam(copyParams)\r\n\r\n return this.Navvy.PagNav(\r\n this.BXRestUser.get,\r\n copyParams,\r\n 'Не удалось получить пользователей',\r\n this.BXRestUserMap.get\r\n )\r\n }\r\n\r\n current(update = false) {\r\n return this.Navvy.simpleWithArg(\r\n this.self,\r\n update,\r\n '',\r\n this.BXRestUserMap.current\r\n )\r\n }\r\n\r\n /*\r\n update(user: iBXRestUser, fieldUpdate: string[]) {\r\n\r\n if (fieldUpdate && fieldUpdate.length) {\r\n let sendData: any = {\r\n ID: user.ID,\r\n }\r\n const userBX = this.BXRestUserMap.BXtoHttp(user)\r\n for (const field of fieldUpdate) {\r\n if (userBX[field]) {\r\n sendData[field] = userBX[field]\r\n } else {\r\n return throwError(() => 'One sent field is empty')\r\n }\r\n }\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n sendData\r\n )\r\n } else {\r\n return throwError(() => 'All sent field for edit is empty')\r\n }\r\n return this.Navvy.simple(\r\n this.BXRestUser.update(user, fieldUpdate),\r\n 'Не удалось обновить пользователя с ID' + user.ID\r\n )\r\n }\r\n */\r\n search(params: string | iBXRestParamUserSearch) {\r\n if (typeof params === 'string') {\r\n params = {FIND: params}\r\n }\r\n if (typeof params.ACTIVE !== 'boolean') {\r\n params.ACTIVE = true\r\n }\r\n return this.Navvy.PagNav(\r\n this.BXRestUser.search,\r\n params,\r\n 'Сервер не отвечает на запрос поиска',\r\n this.BXRestUserMap.get\r\n )\r\n }\r\n\r\n access(params: string[]) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestUser.access,\r\n params,\r\n 'Не удалось получить права'\r\n )\r\n }\r\n\r\n fields() {\r\n return this.Navvy.simple(this.BXRestUser.fields, 'Не удалось поля')\r\n }\r\n\r\n private self(update = false) {\r\n if (update) {\r\n return this.BXRestUser.current(update)\r\n } else {\r\n let self = SessionStorage.getItem(this.constructor.name + this.self.name) as iBXRestUserHttp\r\n if (self) {\r\n return of({result: self} as iBXRestAnswer<iBXRestUserHttp>)\r\n }\r\n return this.BXRestUser.current(update)\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n return v\r\n }\r\n return undefined\r\n }),\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.self.name, v)\r\n }\r\n }),\r\n )\r\n }\r\n }\r\n\r\n // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\r\n // if (!Object.keys(params).length) {\r\n // params = clone(this.def.params)\r\n // }\r\n //\r\n // const saveAllUser = compare(params, this.def.params)\r\n // return this.user$.pipe(\r\n // take(1),\r\n // mergeMap(v => {\r\n // if (v.load.all) {\r\n // if (compare(this.def.params, params)) {\r\n // return of(clone(v.data))\r\n // }\r\n // }\r\n //\r\n // return this.getEndArray(params).pipe(\r\n // take(1),\r\n // map(v => {\r\n // if (v && v.result) {\r\n // let cl = clone(v.result)\r\n // return this.saveArrUser(cl)\r\n // }\r\n // return undefined\r\n // }),\r\n // )\r\n // }),\r\n // tap(v => {\r\n // if (v && v.length && saveAllUser) {\r\n // this.store.dispatch(loadAll({load: true}))\r\n // }\r\n // params.start = this.def.params.start\r\n // })\r\n // )\r\n // }\r\n\r\n // private saveArrUser(users: iBXRestUserHttp[]) {\r\n // let result: iBXRestUser [] = []\r\n // for (const user of users) {\r\n // result.push(this.userMap.HttpToBX(user))\r\n // }\r\n // this.store.dispatch(saveArr({arr: result}))\r\n //\r\n // return result\r\n // }\r\n\r\n // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\r\n // return this.get(params).pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result && typeof items.result === 'object') {\r\n // if (items.next) {\r\n // params.start = items.next\r\n // return this.getEndArray(params).pipe(map(vEnd => {\r\n // if (vEnd && items.result && vEnd.result) {\r\n // return {result: [...items.result, ...vEnd.result]}\r\n // }\r\n // return (items) ? items : undefined\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 private setDefParam(params: iBXRestParamUserGet) {\r\n if(!params.FILTER) {\r\n params.FILTER = {}\r\n }\r\n\r\n if (!params.hasOwnProperty('ACTIVE')) {\r\n params.FILTER.ACTIVE = this.def.params.ACTIVE\r\n }\r\n if (params.FILTER.ACTIVE && params.FILTER.ACTIVE === 2) {\r\n delete params.FILTER.ACTIVE\r\n }\r\n if (!params.hasOwnProperty('start')) {\r\n params.start = this.def.params.start\r\n }\r\n\r\n if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\r\n delete params.FILTER.UF_DEPARTMENT\r\n }\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapListsField {\r\n get(v: { [key: string]: iBXRestFieldItem } | undefined):iBXRestFieldItem[] | undefined {\r\n return (v) ? Object.values(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestListsField from '../../request/lists/field'\r\nimport { iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestNavvyListsField {\r\n private Navvy: Navvy<BXRestListsField, BXRestMapListsField>\r\n\r\n constructor(\r\n private BXRestListsField: BXRestListsField,\r\n private BXRestMapListsField: BXRestMapListsField,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsField, this.BXRestMapListsField)\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.Navvy.PagNavWithUselessKey(\r\n this.BXRestListsField.get,\r\n param,\r\n 'Не удалось получить поля списка',\r\n this.BXRestMapListsField.get\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapListsElement extends BaseMapServices {\r\n\r\n get(items: iBXRestHttpListsElement[] | undefined): iBXRestListsElement[] | undefined {\r\n return (items)\r\n ? items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: this.toNum(item.CREATED_BY),\r\n IBLOCK_ID: this.toNum(item.IBLOCK_ID),\r\n ID: this.toNum(item.ID)\r\n }))\r\n : undefined\r\n }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from '../../request/lists/element'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n private Navvy: Navvy<BXRestListsElement, BXRestListsElementMap>\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsElement, this.BXRestMap)\r\n }\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.PagNav(\r\n this.BXRestListsElement.get,\r\n param,\r\n 'Не удалось получить элемент списка',\r\n this.BXRestMap.get\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestListsElement.add, param, 'Не удалось добавить элемент списка')\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\nimport BXRestMapListsElement from './lists/element'\r\nimport { BXRestMapListsField } from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLists extends BaseMapServices {\r\n\r\n constructor(\r\n public element: BXRestMapListsElement,\r\n public field: BXRestMapListsField\r\n ) {\r\n super()\r\n }\r\n get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n return (value) ? value.map(i => this.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n }\r\n\r\n protected iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\r\n {\r\n return {\r\n ACTIVE: itemLists.ACTIVE === 'Y',\r\n API_CODE: this.toStr(itemLists.API_CODE),\r\n BIZPROC: itemLists.BIZPROC === 'Y',\r\n CANONICAL_PAGE_URL: this.toStr(itemLists.CANONICAL_PAGE_URL),\r\n CODE: itemLists.CODE,\r\n DESCRIPTION: this.toStr(itemLists.DESCRIPTION),\r\n DESCRIPTION_TYPE: itemLists.DESCRIPTION_TYPE,\r\n DETAIL_PAGE_URL: this.toStr(itemLists.DETAIL_PAGE_URL),\r\n EDIT_FILE_AFTER: this.toStr(itemLists.EDIT_FILE_AFTER),\r\n EDIT_FILE_BEFORE: this.toStr(itemLists.EDIT_FILE_BEFORE),\r\n ELEMENTS_NAME: this.toStr(itemLists.ELEMENTS_NAME),\r\n ELEMENT_NAME: this.toStr(itemLists.ELEMENT_NAME),\r\n EXTERNAL_ID: this.toStr(itemLists.EXTERNAL_ID),\r\n IBLOCK_TYPE_ID: this.toStr(itemLists.IBLOCK_TYPE_ID),\r\n ID: this.toNum(itemLists.ID),\r\n INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n LANG_DIR: this.toStr(itemLists.LANG_DIR),\r\n LAST_CONV_ELEMENT: this.toNum(itemLists.LAST_CONV_ELEMENT),\r\n LID: this.toStr(itemLists.LID),\r\n LIST_MODE: this.toStr(itemLists.LIST_MODE),\r\n LIST_PAGE_URL: this.toStr(itemLists.LIST_PAGE_URL),\r\n NAME: this.toStr(itemLists.NAME),\r\n PICTURE: this.toStr(itemLists.PICTURE),\r\n PROPERTY_INDEX: this.toStr(itemLists.PROPERTY_INDEX),\r\n REST_ON: itemLists.REST_ON === 'Y',\r\n RIGHTS_MODE: this.toStr(itemLists.RIGHTS_MODE),\r\n RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n RSS_FILE_DAYS: this.toStr(itemLists.RSS_FILE_DAYS),\r\n RSS_FILE_LIMIT: this.toStr(itemLists.RSS_FILE_LIMIT),\r\n RSS_TTL: this.toNum(itemLists.RSS_TTL),\r\n RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n SECTIONS_NAME: this.toStr(itemLists.SECTIONS_NAME),\r\n SECTION_CHOOSER: this.toStr(itemLists.SECTION_CHOOSER),\r\n SECTION_NAME: this.toStr(itemLists.SECTION_NAME),\r\n SECTION_PAGE_URL: this.toStr(itemLists.SECTION_PAGE_URL),\r\n SECTION_PROPERTY: this.toStr(itemLists.SECTION_PROPERTY),\r\n SERVER_NAME: this.toStr(itemLists.SERVER_NAME),\r\n SOCNET_GROUP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n SORT: this.toNum(itemLists.SORT),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: this.toStr(itemLists.TMP_ID),\r\n VERSION: this.toNum(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: this.toStr(itemLists.XML_ID),\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyListsElement } from './lists/element'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLists {\r\n\r\n protected Navvy: Navvy<BXRestLists, BXRestMapLists>\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement,\r\n public field: BXRestNavvyListsField,\r\n protected mapList: BXRestMapLists,\r\n protected BXRestLists: BXRestLists,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLists, this.mapList)\r\n }\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.PagNav(this.BXRestLists.get, param,'Не удалось получить список', this.mapList.get)\r\n }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { SessionStorage } from './vanilla/sessionStorage'\r\nimport { iBXRestPermission, iBXRestPermissionAddictionItem } from '../typification/permission'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Permission {\r\n\r\n static get(){\r\n return SessionStorage.getItem('permission') as iBXRestPermission\r\n }\r\n\r\n static set(param: iBXRestPermission){\r\n SessionStorage.setItem('permission', Object.assign(this.get(), param))\r\n }\r\n\r\n static setTaskElapsedItem(idTask: number, ElapsedItem: iBXRestPermissionAddictionItem){\r\n let permission = Permission.get()\r\n if(permission.tasks) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if(findTask){\r\n let findTaskElapsedItem = findTask.elapsedItem.find(i => i.id === ElapsedItem.id)\r\n if(findTaskElapsedItem) {\r\n if(ElapsedItem.verified.edit){\r\n findTaskElapsedItem.verified.edit = ElapsedItem.verified.edit\r\n findTaskElapsedItem.edit = ElapsedItem.edit\r\n }\r\n if(ElapsedItem.verified.del){\r\n findTaskElapsedItem.verified.del = ElapsedItem.verified.del\r\n findTaskElapsedItem.del = ElapsedItem.del\r\n }\r\n } else {\r\n findTask.elapsedItem.push(ElapsedItem)\r\n }\r\n }\r\n SessionStorage.setItem('permission', permission)\r\n }\r\n }\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task/elapseditem/get'\r\nimport { BXRestNavvyElapseditem } from '../elapseditem'\r\n\r\nexport class BXRestNavvyOperationElapseditem {\r\n\r\n constructor(\r\n private BXRestNavvyElapseditem: BXRestNavvyElapseditem\r\n ) {\r\n }\r\n\r\n getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n const param: iBXRestParamElapseditemGet = {\r\n ORDER: {\r\n ID: 'DESC'\r\n },\r\n FILTER: {\r\n USER_ID: idsUsers,\r\n '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru'),\r\n '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru'),\r\n }\r\n }\r\n return this.BXRestNavvyElapseditem.getList(param)\r\n }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../../typification/rest/task/task'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestParamTasksListHttp } from '../../typification/rest/tasks/task/list'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasksTask extends BaseMapServices{\r\n getaccess(v: iBXRestTaskGetAccess | undefined){\r\n return (v && v.allowedActions) ? v.allowedActions : undefined\r\n }\r\n\r\n add(item: { task: iBXRestHttpTask } | undefined): iBXRestTask | undefined {\r\n return (item) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n get(item: {task: iBXRestHttpTask | undefined } | undefined ): iBXRestTask | undefined {\r\n return (item && item.task) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n list(item: iBXRestParamTasksListHttp | undefined): iBXRestTask[] | undefined{\r\n return (item && item.tasks) ? item.tasks.map( i => this.TaskBXHttpToTaskBX(i)) : undefined\r\n }\r\n\r\n private TaskBXHttpToTaskBX(item: iBXRestHttpTask): iBXRestTask {\r\n let result: iBXRestTask = {}\r\n if(item.id) { result.id = this.toNum(item.id) }\r\n if(item.parentId) { result.parentId = this.toNum(item.parentId) }\r\n if(item.priority) { result.priority = this.toNum(item.priority) }\r\n if(item.status) { result.status = this.toNum(item.status) }\r\n if(item.multitask) { result.multitask = item.multitask === 'Y' }\r\n if(item.groupId) { result.groupId = this.toNum(item.groupId) }\r\n if(item.stageId) { result.stageId = this.toNum(item.stageId) }\r\n if(item.createdBy) { result.createdBy = this.toNum(item.createdBy) }\r\n if(item.createdDate) { result.createdDate = this.toDate(item.createdDate) }\r\n if(item.responsibleId) { result.responsibleId = this.toNum(item.responsibleId) }\r\n if(item.changedBy) { result.changedBy = this.toNum(item.changedBy) }\r\n if(item.changedDate) { result.changedDate = this.toDate(item.changedDate) }\r\n if(item.statusChangedBy) { result.statusChangedBy = this.toNum(item.statusChangedBy) }\r\n if(item.statusChangedDate) { result.statusChangedDate = this.toDate(item.statusChangedDate) }\r\n if(item.closedBy) { result.closedBy = this.toNum(item.closedBy) }\r\n if(item.closedDate) { result.closedDate = this.toDate(item.closedDate) }\r\n if(item.dateStart) { result.dateStart = this.toDate(item.dateStart) }\r\n if(item.deadline) { result.deadline = this.toDate(item.deadline) }\r\n if(item.startDatePlan) { result.startDatePlan = this.toDate(item.startDatePlan) }\r\n if(item.endDatePlan) { result.endDatePlan = this.toDate(item.endDatePlan) }\r\n if(item.forumTopicId) { result.forumTopicId = this.toNum(item.forumTopicId) }\r\n if(item.forumId) { result.forumId = this.toNum(item.forumId) }\r\n if(item.viewedDate) { result.viewedDate = this.toDate(item.viewedDate) }\r\n if(item.sorting) { result.sorting = this.toNum(item.sorting) }\r\n if(item.durationPlan) { result.durationPlan = this.toNum(item.durationPlan) }\r\n if(item.descriptionInBbcode) { result.descriptionInBbcode = item.descriptionInBbcode === 'Y' }\r\n if(item.accomplices) { result.accomplices = item.accomplices.map(i =>this.toNum(i)) }\r\n if(item.subStatus) { result.subStatus = this.toNum(item.subStatus) }\r\n if(item.creator) { result.creator = Object.assign(item.creator, {id: this.toNum(item.creator.id)}) }\r\n if(item.responsible) { result.responsible = Object.assign(item.responsible, {id: this.toNum(item.responsible.id)}) }\r\n if(item.accomplicesData) {\r\n result.accomplicesData =\r\n Object.values(item.accomplicesData).map(i => Object.assign(i, {id: this.toNum(i.id)})) }\r\n if(item.allowTimeTracking) { result.allowTimeTracking = item.allowTimeTracking === 'Y' }\r\n\r\n return Object.assign(item, result)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestTasksTask } from '../../request/tasks/task'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/task/base/fieldsName'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { BXRestMapTasksTask } from '../../map/tasks/task'\r\n\r\n// export interface TimeProcess {\r\n// total: number,\r\n// next: number\r\n// }\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTasksTask {\r\n\r\n // pageSize = 50\r\n // nowLoad$ = new ReplaySubject<TimeProcess>(1)\r\n\r\n def: { select: iBXRestTaskFieldsName[] } = {\r\n select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',\r\n 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',\r\n 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',\r\n 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',\r\n 'TAGS', 'ALLOW_TIME_TRACKING'\r\n ]\r\n }\r\n\r\n // storeTask$: Observable<iStoreTask>\r\n Navvy: Navvy<BXRestTasksTask, BXRestMapTasksTask>\r\n\r\n constructor(\r\n private BXRestTasksTask: BXRestTasksTask,\r\n // private snackBar: SnackBarService,\r\n // private store: Store<{ tasks: IStoreTask }>,\r\n private BXRestMapTasksTask: BXRestMapTasksTask,\r\n\r\n // private taskResultMap: BitrixApiTaskResultMapServices\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestTasksTask, this.BXRestMapTasksTask)\r\n // this.storeTask$ = this.store.select('tasks')\r\n // this.nowLoad$.next({\r\n // total: 0,\r\n // next: 0\r\n // })\r\n }\r\n\r\n add(param: { fields: iBXRestParamTaskAdd }) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestTasksTask.add,\r\n param,\r\n 'Не удалось добавить задачу',\r\n this.BXRestMapTasksTask.add\r\n )\r\n // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(\r\n // map(v => {\r\n // if (v && v.result && v.result.task) {\r\n // return Object.assign(\r\n // v,\r\n // {\r\n // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)\r\n // })\r\n // }\r\n // return undefined\r\n // }\r\n // ))\r\n }\r\n\r\n /*\r\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\r\n let sendTask: Record<string, any> = {}\r\n let taskTS: Record<string, any> = task\r\n if (updateFields.length) {\r\n for (let updateField of updateFields) {\r\n if (taskTS[camelCase(updateField)]) {\r\n sendTask[updateField] = taskTS[camelCase(updateField)]\r\n }\r\n }\r\n if (Object.values(sendTask).length) {\r\n return this.http.post(\r\n this.url.update,\r\n {taskId: taskId, fields: sendTask},\r\n 'error to update task')\r\n } else {\r\n this.snackBar.error('not valid send data task')\r\n console.error('not valid send data task', sendTask, task)\r\n return of(undefined)\r\n }\r\n }\r\n\r\n this.snackBar.warning('not have field for update')\r\n return of(undefined)\r\n }\r\n */\r\n\r\n get(param: iBXRestParamTaskGet) {\r\n if (!param.select) {\r\n param.select = this.def.select\r\n }\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestTasksTask.get,\r\n param,\r\n 'Не удалось получить задачу',\r\n this.BXRestMapTasksTask.get\r\n )\r\n }\r\n\r\n\r\n list(param: iBXRestParamTasksList = {}) {\r\n if (!param.select) {\r\n param.select = this.def.select\r\n }\r\n return this.Navvy.PagNavTasks(\r\n this.BXRestTasksTask.list,\r\n param,\r\n 'Не удалось получить список задач',\r\n this.BXRestMapTasksTask.list\r\n )\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n\r\n getFields() {\r\n return this.storeTask$.pipe(\r\n mergeMap(v => {\r\n if (v && !v.data.fields) {\r\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\r\n tap(v => {\r\n if (v && v.result) {\r\n this.store.dispatch(saveFields(v.result))\r\n }\r\n }),\r\n map(v => {\r\n if (v && v.result && v.result.fields) {\r\n return {result: v.result.fields}\r\n }\r\n\r\n return undefined\r\n })\r\n )\r\n }\r\n if (v.data.fields) {\r\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n\r\n deleteResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\r\n }\r\n\r\n addResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getPlannerList() {\r\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\r\n }\r\n */\r\n\r\n getaccess(param: iBXRestParamTaskGetAccess) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestTasksTask.getaccess,\r\n param,\r\n 'Не удалось получить права на указанных пользователей',\r\n this.BXRestMapTasksTask.getaccess\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyTasksTask } from './tasks/task'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTasks {\r\n\r\n constructor(public task: BXRestNavvyTasksTask) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestElapsedItem, iBXRestElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskElapseditem extends BaseMapServices {\r\n update(p: null) {\r\n return (p == null)\r\n }\r\n\r\n getList(v: iBXRestElapsedItemHttp[] | undefined) {\r\n return (v) ? v.map(i => this.ElapsedItemHttpToElapsedItem(i)) : undefined\r\n }\r\n\r\n ElapsedItemHttpToElapsedItem(item: iBXRestElapsedItemHttp): iBXRestElapsedItem {\r\n return Object.assign(item, {\r\n ID: this.toNum(item.ID),\r\n MINUTES: this.toNum(item.MINUTES),\r\n SECONDS: this.toNum(item.SECONDS),\r\n TASK_ID: this.toNum(item.TASK_ID),\r\n USER_ID: this.toNum(item.USER_ID),\r\n SOURCE: this.toNum(item.SOURCE),\r\n CREATED_DATE: this.toDate(item.CREATED_DATE),\r\n DATE_START: this.toDate(item.DATE_START),\r\n DATE_STOP: this.toDate(item.DATE_STOP),\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport { mergeMap, of, tap, throwError } from 'rxjs'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { BXRestElapseditem } from '../../request/task/elapseditem'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { Permission } from '../../services/permission'\r\nimport { BXRestNavvyUser } from '../user'\r\nimport { BXRestNavvyTasks } from '../tasks'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskElapseditem } from '../../map/task/elapseditem'\r\nimport { BXRestNavvyOperationElapseditem } from './operation/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyElapseditem {\r\n private Navvy: Navvy<BXRestElapseditem, BXRestMapTaskElapseditem>\r\n public operation: BXRestNavvyOperationElapseditem\r\n\r\n constructor(\r\n private BXRestElapseditem: BXRestElapseditem,\r\n private BXRestNavvyUser: BXRestNavvyUser,\r\n private BXRestNavvyTasks: BXRestNavvyTasks,\r\n private BXRestMapElapseditem: BXRestMapTaskElapseditem,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem)\r\n this.operation = new BXRestNavvyOperationElapseditem(this)\r\n }\r\n\r\n /*\r\n call(methodName: string, ...args: any[]){\r\n if (typeof this[methodName] === 'function') {\r\n return this[methodName](...args);\r\n }\r\n return this[methodName](...args);\r\n }\r\n */\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n if (param) {\r\n if (!param.TASKID && !param.SELECT) {\r\n param.SELECT = ['*']\r\n }\r\n if (!param.TASKID && !param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: 50,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n return this.Navvy.alterPagNav(\r\n this.BXRestElapseditem.getList,\r\n param,\r\n 'Не удалось получить список затраченного на задачу(-и) времени',\r\n this.BXRestMapElapseditem.getList\r\n )\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.checkPermissionAddTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.add(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n }))\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.update(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })), 'Не удалось обновить элемент списка', this.BXRestMapElapseditem.update)\r\n }\r\n\r\n /*\r\n getAll(\r\n params: RequestParamsElapsedGetList | undefined = undefined,\r\n cache = false\r\n ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {\r\n return this.get(params, cache)\r\n .pipe(\r\n mergeMap(items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n /*\r\n getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {\r\n return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>\r\n (this.url.getlist, params, 'не удалось получить время по задачам')\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n const newResult: BXRestElapsed[] = []\r\n for (let task of v.result) {\r\n newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))\r\n }\r\n return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>\r\n }\r\n return undefined\r\n }),\r\n tap(v => {\r\n if (v && params) {\r\n this.store.dispatch(saveHttpTaskTime({\r\n filter: clone(params),\r\n time: v\r\n }))\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n isAllowedModify(idTask: number, idItem: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask) {\r\n let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n if (find && find.verified.edit) {\r\n return of(find.edit)\r\n }\r\n }\r\n }\r\n\r\n return this.isActionAllowed({\r\n TASKID: idTask,\r\n ITEMID: 2,\r\n ACTIONID: idItem\r\n }).result().pipe(\r\n tap(v => {\r\n if (v !== undefined) {\r\n Permission.setTaskElapsedItem(idTask,\r\n {\r\n id: idItem,\r\n edit: v,\r\n del: false,\r\n verified: {\r\n edit: true,\r\n del: false,\r\n }\r\n })\r\n }\r\n })\r\n )\r\n }\r\n\r\n private isAllowedRemove(idTask: number, idItem: number) {\r\n return this.isActionAllowed(\r\n {\r\n TASKID: idTask,\r\n ITEMID: 3,\r\n ACTIONID: idItem\r\n }).result()\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n return this.BXRestElapseditem.isActionAllowed(param)\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n })\r\n ))\r\n }\r\n\r\n checkPermissionAddTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n private checkPermissionReadTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission.ACCEPT)\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID].ACCEPT : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.del(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })\r\n ), 'Не удалось удалить элемент списка', v => (v === null))\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestNavvyElapseditem,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileAndFolderMap } from '../../typification/rest/disk/map';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskBase extends BaseMapServices {\r\n\r\n separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n let result: iBXRestFileAndFolderMap = {file: [], folder: []}\r\n for (let i of arr) {\r\n if (this.instanceOfiFile(i)) {\r\n result.file.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n SIZE: this.toNum(i.SIZE),\r\n }\r\n )\r\n )\r\n } else if (this.instanceOfiFolder(i)) {\r\n result.folder.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n }\r\n )\r\n )\r\n }\r\n }\r\n return result\r\n }\r\n\r\n instanceOfiFile(object: any): object is iBXRestFile {\r\n return object && object.TYPE && object.TYPE === 'file'\r\n }\r\n\r\n instanceOfiFolder(object: any): object is iBXRestFolder {\r\n return object && object.TYPE && object.TYPE === 'folder'\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport BXRestMapDiskBase from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n getContent(arr: (iBXRestFolderHttp | iBXRestFileHttp)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFolder {\r\n\r\n private Navvy: Navvy<BXRestDiskFolder, BXRestMapDiskFolder>\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder,\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFolder, this.BXRestMapDiskFolder)\r\n }\r\n\r\n // uploadfile(id: number, fileContent: string[]) {\r\n // return this.httpPost(\r\n // this.url.uploadfile,\r\n // {\r\n // id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n // fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n // data: {\r\n // NAME: fileContent[0]\r\n // } // Обязательное поле NAME - имя нового файла\r\n // // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n // }\r\n // )\r\n // }\r\n\r\n getchildren(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFolder.getchildren,\r\n id,\r\n 'get folders and files',\r\n this.BXRestMapDiskFolder.getContent\r\n )\r\n }\r\n\r\n}\r\n","import { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapDiskFile extends BaseMapServices {\r\n\r\n get(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n\r\n markdeleted(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile {\r\n\r\n private Navvy: Navvy<BXRestDiskFile, BXRestMapDiskFile>\r\n\r\n constructor(\r\n private BXRestDiskFile: BXRestDiskFile,\r\n private BXRestMapDiskFile: BXRestMapDiskFile,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFile, this.BXRestMapDiskFile)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.get,\r\n id,\r\n 'Не удалось получить файл',\r\n this.BXRestMapDiskFile.get\r\n )\r\n }\r\n\r\n markdeleted(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.markdeleted,\r\n id,\r\n 'Не удалось переместить файл в корзину',\r\n this.BXRestMapDiskFile.markdeleted\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskStorage {\r\n url = {\r\n getfields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getlist: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n gettypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addfolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getchildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadfile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getforapp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getforapp, {}\r\n )\r\n }\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<any>(this.url.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestFile>(this.url.uploadfile, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskStorage } from '../../../request/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../../typification/rest/disk/storage/getchildren'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../../typification/rest/disk/folder'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyInterlayerDiskStorage {\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getforapp.name)\r\n if (res) {\r\n return of(res)\r\n } else {\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n }),\r\n shareReplay(1)\r\n )\r\n }\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.BXRestDiskStorage.getchildren(param)\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadfile(param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\nimport { BXRestNavvyInterlayerDiskStorage } from './interlayer/storage'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n private Navvy: Navvy<BXRestNavvyInterlayerDiskStorage, BXRestMapDiskStorage>\r\n\r\n constructor(\r\n private BXRestNavvyInterlayerDiskStorage: BXRestNavvyInterlayerDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage,\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestNavvyInterlayerDiskStorage, this.BXRestMapDiskStorage)\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n // console.log('this.getforappEnd', this.getforappEnd)\r\n return this.Navvy.simple(this.BXRestNavvyInterlayerDiskStorage.getforapp, 'get root app folder')\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestNavvyInterlayerDiskStorage.getchildren,\r\n param,\r\n 'get root app folders and files',\r\n this.BXRestMapDiskStorage.getchildren\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.uploadfile, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n constructor(\r\n public folder: BXRestNavvyDiskFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: {\r\n name: string,\r\n val: string\r\n }) {\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadfile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).result()\r\n }\r\n return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getchildren(v.ID).mapForVanilla()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n\r\n\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID}).result()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n\r\n // }\r\n // )\r\n // )\r\n }\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of({result: find})\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}}).result()\r\n }\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n return (v) ? this.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n }\r\n\r\n private iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n return Object.assign(v, {\r\n ID: this.toNum(v.ID),\r\n OBJECT_ID: this.toNum(v.OBJECT_ID),\r\n ENTITY_ID: this.toNum(v.ENTITY_ID),\r\n CREATE_TIME: this.toDate(v.CREATE_TIME),\r\n CREATED_BY: this.toNum(v.CREATED_BY),\r\n SIZE: this.toNum(v.SIZE)\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskAttachedObject } from '../../request/disk/attachedObject'\r\nimport BXRestMapDiskAttachedObject from '../../map/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskAttachedObject {\r\n private Navvy: Navvy<BXRestDiskAttachedObject, BXRestMapDiskAttachedObject>\r\n\r\n constructor(\r\n private BXRestDiskAttachedObject: BXRestDiskAttachedObject,\r\n private mapAttachedObject: BXRestMapDiskAttachedObject,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskAttachedObject, this.mapAttachedObject)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskAttachedObject.get, id,\r\n 'Не удалось получить прикрепленные файлы',\r\n this.mapAttachedObject.get)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDisk {\r\n constructor(\r\n public operation: BXRestNavvyDiskOperation,\r\n public file: BXRestNavvyDiskFile,\r\n public folder: BXRestNavvyDiskFolder,\r\n public attachedObject: BXRestNavvyDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizprocWorkflow } from '../../request/bizproc/workflow'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizprocWorkflow {\r\n private Navvy: Navvy<BXRestBizprocWorkflow, undefined>\r\n\r\n constructor(\r\n private BXRestBizprocWorkflow: BXRestBizprocWorkflow,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestBizprocWorkflow, undefined)\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestBizprocWorkflow.start, param,\r\n 'Не удалось запустить бизнес процесс'\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBizprocWorkflow } from './bizproc/workflow'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestNavvyBizprocWorkflow,\r\n private BXRestNavvyLists: BXRestNavvyLists\r\n ) {\r\n }\r\n\r\n /**\r\n * Метод по запуску бизнес процессов из ленты\r\n * TODO: продумать работу с такими методами-исключениями\r\n *\r\n * @param id\r\n * @param parametersElement\r\n * @param parametersBizproc\r\n * @param templateIDs\r\n */\r\n startProcFormNewsFeed(\r\n id: number,\r\n parametersElement: { [key: string]: string },\r\n parametersBizproc: { [key: string]: string },\r\n templateIDs: number[]\r\n ) {\r\n return this.BXRestNavvyLists.element.add(\r\n {\r\n IBLOCK_TYPE_ID: 'bitrix_processes',\r\n IBLOCK_ID: id,\r\n ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n // как ещё уникальнее сделать я просто не знаю\r\n // это поле обязательно без него не работает\r\n FIELDS: {\r\n NAME: parametersElement['NAME'],\r\n ...parametersElement\r\n }\r\n }\r\n ).result().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (Object.keys(parametersBizproc).length) {\r\n let reques: Observable<string | undefined>[] = []\r\n for (let templateID of templateIDs) {\r\n reques.push(this.workflow.start(\r\n {\r\n TEMPLATE_ID: templateID,\r\n DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n PARAMETERS: parametersBizproc\r\n }).result())\r\n }\r\n return forkJoin(reques)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { BXRestLogBlogPost } from '../../request/log/blogpost'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n private Navvy: Navvy<BXRestLogBlogPost, undefined>\r\n\r\n constructor(\r\n private BXRestLogBlogPost: BXRestLogBlogPost,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLogBlogPost, undefined)\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLog {\r\n\r\n constructor(\r\n public blogPost: BXRestNavvyLogBlogPost,\r\n public blogComment: BXRestNavvyLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestCalendarEventGetAnswer,\r\n iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/get/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendarEvent extends BaseMapServices {\r\n\r\n get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined{\r\n return (item) ? item.map(i => this.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n }\r\n\r\n private CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n return {\r\n ...item,\r\n ID: this.toNum(item.ID),\r\n MEETING_HOST: this.toNum(item.MEETING_HOST),\r\n OWNER_ID: this.toNum(item.OWNER_ID),\r\n PARENT_ID: this.toNum(item.PARENT_ID),\r\n RECURRENCE_ID: this.toNum(item.RECURRENCE_ID),\r\n SECT_ID: this.toNum(item.SECT_ID),\r\n SECTION_ID: this.toNum(item.SECTION_ID),\r\n TZ_OFFSET_FROM: this.toNum(item.TZ_OFFSET_FROM),\r\n TZ_OFFSET_TO: this.toNum(item.TZ_OFFSET_TO),\r\n VERSION: this.toNum(item.VERSION),\r\n DATE_CREATE: this.toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM: this.toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}),\r\n ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n ? this.toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n : null,\r\n DATE_TO: this.toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_TO}),\r\n TIMESTAMP_X: this.toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM_TS_UTC: this.toNum(item.DATE_FROM_TS_UTC),\r\n DATE_TO_TS_UTC: this.toNum(item.DATE_TO_TS_UTC),\r\n DELETED: item.DELETED === 'Y',\r\n DT_LENGTH: this.toNum(item.DT_LENGTH),\r\n DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n EXDATE: item.EXDATE.split(';').map(dateStr => this.toDate(dateStr, 'dd.MM.yyyy')),\r\n RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n ...item.RRULE,\r\n UNTIL: this.toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n '~UNTIL': this.toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n } : null,\r\n ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n return {id: i.id, entryId: this.toNum(i.entryId), status: i.status}\r\n }) : []\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { BXRestCalendarEvent } from '../../request/calendar/event'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestRestCalendarEvent {\r\n private Navvy: Navvy<BXRestMapCalendarEvent, undefined>\r\n\r\n constructor(\r\n private BXRestCalendarEvent: BXRestCalendarEvent,\r\n private eventMap: BXRestMapCalendarEvent,\r\n ) {\r\n this.Navvy = new Navvy(this.eventMap, undefined)\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestCalendarEvent.get,\r\n param,\r\n 'Не удалось получить календарь',\r\n this.eventMap.get\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestParamSonet, iBXRestParamSonetHttp } from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapSonetGroup extends BaseMapServices {\r\n\r\n get(items: iBXRestParamSonetHttp[] | undefined ): iBXRestParamSonet[] | undefined {\r\n return (items) ? items.map(i => this.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n }\r\n\r\n private iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestParamSonetHttp): iBXRestParamSonet {\r\n return Object.assign(items,{\r\n ID: this.toNum(items.ID),\r\n DATE_CREATE: this.toDate(items.DATE_CREATE),\r\n DATE_UPDATE: this.toDate(items.DATE_UPDATE),\r\n ACTIVE: items.ACTIVE == 'Y',\r\n VISIBLE: items.VISIBLE == 'Y',\r\n OPENED: items.OPENED == 'Y',\r\n CLOSED: items.CLOSED == 'Y',\r\n SUBJECT_ID: this.toNum(items.SUBJECT_ID),\r\n OWNER_ID: this.toNum(items.OWNER_ID),\r\n NUMBER_OF_MEMBERS: this.toNum(items.OWNER_ID),\r\n DATE_ACTIVITY: this.toDate(items.DATE_ACTIVITY),\r\n PROJECT: items.OPENED == 'Y',\r\n IS_EXTRANET: items.OPENED == 'Y',\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group/get'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvySonetGroup {\r\n\r\n private Navvy: Navvy<BXRestSonetGroup, BXRestMapSonetGroup>\r\n\r\n constructor(\r\n private BXRestSonetGroup: BXRestSonetGroup,\r\n private mapSonetGroup: BXRestMapSonetGroup,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestSonetGroup, this.mapSonetGroup)\r\n }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestSonetGroup.get, param,\r\n 'Не удалось получить рабочую группу',\r\n this.mapSonetGroup.get\r\n )\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapServer extends BaseMapServices {\r\n time(v: string | undefined) {\r\n return (v) ? this.toDate(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestServer } from '../request/server'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyServer {\r\n\r\n protected Navvy: Navvy<BXRestServer, BXRestMapServer>\r\n\r\n constructor(\r\n private BXRestServer: BXRestServer,\r\n public BXRestMapServer: BXRestMapServer\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestServer, BXRestMapServer)\r\n }\r\n\r\n time(){\r\n return this.Navvy.simple(\r\n this.BXRestServer.time,\r\n 'Не удалось получить время сервера',\r\n this.BXRestMapServer.time\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestUser } from './request/user'\r\nimport { BXRestLists } from './request/lists'\r\nimport { BXRestMapLists } from './map/lists'\r\nimport { BXRestTasks } from './request/tasks'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestBizproc } from './request/bizproc'\r\nimport { BXRestLog } from './request/log'\r\nimport { BXRestCalendar } from './request/calendar'\r\nimport { BXRestSonetGroup } from './request/sonet_group'\r\nimport { BXRestTask } from './request/task'\r\nimport { BXRestServer } from './request/server'\r\n// Navvy\r\nimport { BXRestNavvyLists } from './request-navvy/lists'\r\nimport { BXRestNavvyTasks } from './request-navvy/tasks'\r\nimport { BXRestNavvyUser } from './request-navvy/user'\r\nimport { BXRestNavvyDisk } from './request-navvy/disk'\r\nimport { BXRestNavvyBizproc } from './request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from './request-navvy/log'\r\nimport { BXRestNavvyCalendar } from './request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from './request-navvy/sonet_group'\r\nimport { BXRestNavvyTask } from './request-navvy/task'\r\nimport { BXRestNavvyServer } from './request-navvy/server'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRest {\r\n constructor(\r\n public user: BXRestUser,\r\n public lists: BXRestLists,\r\n public task: BXRestTask,\r\n public tasks: BXRestTasks,\r\n public disk: BXRestDisk,\r\n public bizproc: BXRestBizproc,\r\n public log: BXRestLog,\r\n public calendar: BXRestCalendar,\r\n public sonet_group: BXRestSonetGroup,\r\n public server: BXRestServer\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvy {\r\n constructor(\r\n public user: BXRestNavvyUser,\r\n public lists: BXRestNavvyLists,\r\n public task: BXRestNavvyTask,\r\n public tasks: BXRestNavvyTasks,\r\n public disk: BXRestNavvyDisk,\r\n public bizproc: BXRestNavvyBizproc,\r\n public log: BXRestNavvyLog,\r\n public calendar: BXRestNavvyCalendar,\r\n public sonet_group: BXRestNavvySonetGroup,\r\n public server: BXRestNavvyServer\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMap {\r\n constructor(\r\n public lists: BXRestMapLists\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","import { BXRestMapCalendarEvent } from './calendar/event'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendar {\r\n constructor(public event: BXRestMapCalendarEvent) {\r\n }\r\n}\r\n","import { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestBlogPost, iBXRestBlogPostHttp } from '../../typification/rest/log/blogpost/get'\r\nimport { iBXRestBlogPostEssence, iBXRestBlogPostEssenceHttp } from '../../typification/rest/log/blogpost/essence'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLogBlogPost extends BaseMapServices {\r\n\r\n get(item: iBXRestBlogPostHttp[] | undefined): iBXRestBlogPost[] | undefined {\r\n return (item) ? item.map(i => this.iBlogPostBXHttpToiBlogPostBX(i)) : undefined\r\n }\r\n\r\n private iBlogPostBXHttpToiBlogPostBX(item: iBXRestBlogPostHttp): iBXRestBlogPost {\r\n return {\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n BLOG_ID: this.toNum(item.BLOG_ID),\r\n CATEGORY_ID: this.toNum(item.CATEGORY_ID),\r\n DATE_PUBLISH: this.toDate(item.DATE_PUBLISH),\r\n ENABLE_COMMENTS: item.ENABLE_COMMENTS === 'Y',\r\n HAS_COMMENT_IMAGES: item.HAS_COMMENT_IMAGES === 'Y',\r\n HAS_SOCNET_ALL: item.HAS_SOCNET_ALL === 'Y',\r\n HAS_IMAGES: item.HAS_IMAGES === 'Y',\r\n HAS_PROPS: item.HAS_PROPS === 'Y',\r\n HAS_TAGS: item.HAS_TAGS === 'Y',\r\n TITLE: item.TITLE,\r\n ID: this.toNum(item.ID),\r\n MICRO: item.MICRO === 'Y',\r\n PUBLISH_STATUS: item.PUBLISH_STATUS,\r\n NUM_COMMENTS: this.toNum(item.NUM_COMMENTS),\r\n UF_ANSWER_ID: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ANSWER_ID),\r\n UF_BLOG_POST_DOC: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_DOC),\r\n UF_BLOG_POST_FILE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_FILE),\r\n UF_BLOG_POST_F_EDIT: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_F_EDIT),\r\n UF_BLOG_POST_IMPRTNT: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_IMPRTNT),\r\n UF_BLOG_POST_URL_PRV: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_URL_PRV),\r\n UF_BLOG_POST_VOTE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_VOTE),\r\n UF_CATEGORY_CODE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_CATEGORY_CODE),\r\n UF_GRATITUDE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_GRATITUDE),\r\n UF_IMPRTANT_DATE_END: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_IMPRTANT_DATE_END),\r\n UF_MAIL_MESSAGE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_MAIL_MESSAGE),\r\n UF_ORIGINAL_ID: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ORIGINAL_ID),\r\n UF_STATUS: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_STATUS),\r\n CODE: item.CODE,\r\n DETAIL_TEXT: item.DETAIL_TEXT,\r\n FILES: (item.FILES) ? item.FILES.map(i => this.toNum(i)) : []\r\n }\r\n }\r\n\r\n private iBlogPostEssenceHttpToiBlogPostEssence(item: iBXRestBlogPostEssenceHttp | undefined): iBXRestBlogPostEssence | undefined {\r\n if(item) {\r\n return {\r\n EDIT_IN_LIST: item.EDIT_IN_LIST === 'Y',\r\n ID: this.toNum(item.ID),\r\n IS_SEARCHABLE: item.IS_SEARCHABLE === 'Y',\r\n MANDATORY: item.MANDATORY === 'Y',\r\n MULTIPLE: item.MULTIPLE === 'Y',\r\n SHOW_FILTER: item.SHOW_FILTER === 'Y',\r\n SHOW_IN_LIST: item.SHOW_IN_LIST === 'Y',\r\n SORT: this.toNum(item.SORT),\r\n EDIT_FORM_LABEL: item.EDIT_FORM_LABEL,\r\n ENTITY_ID: item.EDIT_FORM_LABEL,\r\n ENTITY_VALUE_ID: this.toNum(item.ENTITY_VALUE_ID),\r\n ERROR_MESSAGE: item.ERROR_MESSAGE,\r\n FIELD_NAME: item.FIELD_NAME,\r\n HELP_MESSAGE: item.HELP_MESSAGE,\r\n LIST_COLUMN_LABEL: item.HELP_MESSAGE,\r\n LIST_FILTER_LABEL: item.LIST_FILTER_LABEL,\r\n SETTINGS: item.SETTINGS,\r\n USER_TYPE: item.USER_TYPE,\r\n USER_TYPE_ID: item.USER_TYPE_ID,\r\n VALUE: item.SHOW_IN_LIST === 'Y',\r\n XML_ID: item.XML_ID // ??\r\n }\r\n } else {\r\n return undefined\r\n }\r\n }\r\n}\r\n","import { BXRestMapLogBlogPost } from './log/blogpost'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLog {\r\n constructor(\r\n public blogpost: BXRestMapLogBlogPost\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskCommentItem extends BaseMapServices {\r\n\r\n getlist(value: iBXRestTaskCommentHtml[] | undefined): iBXRestTaskComment[] | undefined {\r\n return value ? value.map(i => this.iCommentTaskHtmlToiCommentTask(i)) : undefined\r\n }\r\n\r\n get(value: iBXRestTaskCommentHtml | undefined): iBXRestTaskComment | undefined {\r\n return value ? this.iCommentTaskHtmlToiCommentTask(value) : undefined\r\n }\r\n\r\n private iCommentTaskHtmlToiCommentTask(item: iBXRestTaskCommentHtml): iBXRestTaskComment {\r\n if (item.ATTACHED_OBJECTS) {\r\n return {\r\n ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {\r\n return {\r\n ATTACHMENT_ID: this.toNum(i.ATTACHMENT_ID),\r\n FILE_ID: this.toNum(i.FILE_ID),\r\n SIZE: this.toNum(i.SIZE),\r\n DOWNLOAD_URL: i.DOWNLOAD_URL,\r\n NAME: i.NAME,\r\n VIEW_URL: i.VIEW_URL\r\n }\r\n }),\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n ID: this.toNum(item.ID),\r\n POST_DATE: this.toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n } else {\r\n return {\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n ID: this.toNum(item.ID),\r\n POST_DATE: this.toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\n// import { iTaskResult, iTaskResultHttp } from '@/lib/typification/bitrix/api/rest/task/result/result'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskResult extends BaseMapServices {\r\n // iTaskResultHttpToiTaskResult(item: iTaskResultHttp): iTaskResult {\r\n // return Object.assign(item, {\r\n // createdAt: this.toDate(item.createdAt),\r\n // updatedAt: this.toDate(item.updatedAt)\r\n // })\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskStage, iBXRestTaskStageHttp } from '../../typification/rest/task/stages/stage'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskStage extends BaseMapServices {\r\n\r\n get(value: iBXRestTaskStageHttp[] | undefined) : iBXRestTaskStage[] | undefined{\r\n return (value) ? value.map(i => Object.assign(i,\r\n {\r\n SORT: this.toNum(i.SORT),\r\n ID: this.toNum(i.ID),\r\n ENTITY_ID: this.toNum(i.ENTITY_ID)\r\n }\r\n )\r\n ) as iBXRestTaskStage[] : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskCommentItem } from './task/commentitem'\r\nimport { BXRestMapTaskElapseditem } from './task/elapseditem'\r\nimport { BXRestMapTaskStage } from './task/stages'\r\nimport { BXRestMapTaskResult } from './task/result'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTask {\r\n constructor(\r\n public commentItem: BXRestMapTaskCommentItem,\r\n public elapsedItem: BXRestMapTaskElapseditem,\r\n public result: BXRestMapTaskResult,\r\n public stages: BXRestMapTaskStage\r\n ) {\r\n }\r\n}\r\n","import { BXRestMapTasksTask } from './tasks/task'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasks {\r\n constructor(\r\n public task: BXRestMapTasksTask\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestMapUser } from './map/user'\r\nimport { BXRestMapSonetGroup } from './map/sonet_group'\r\nimport { BXRestMapServer } from './map/server'\r\nimport { BXRestMapLists } from './map/lists'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestMapCalendar } from './map/calendar'\r\nimport { BXRestMapLog } from './map/log'\r\nimport { BXRestMapTask } from './map/task'\r\nimport { BXRestMapTasks } from './map/tasks'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Map {\r\n constructor(\r\n public user: BXRestMapUser,\r\n public sonet_group: BXRestMapSonetGroup,\r\n public server: BXRestMapServer,\r\n public lists: BXRestMapLists,\r\n public disk: BXRestDisk,\r\n public calendar: BXRestMapCalendar,\r\n public log: BXRestMapLog,\r\n public task: BXRestMapTask,\r\n public tasks: BXRestMapTasks,\r\n ) {\r\n }\r\n}\r\n","/*\r\n * Public API Surface of bx-rest\r\n */\r\nexport { BX_REST_SETTINGS } from './settings';\r\nexport { BXRestMapResult } from './functions/mapResult'\r\nexport { BXRest, BXRestNavvy, BXRestMap } from './rest'\r\nexport { Navvy } from './services/navvy'\r\nexport { Map as BXMap } from './map'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","JSON","Cookies","LocalStorage","i1.RestServices","i1.HttpBXServices","i2.BXRestUserUserfield","i2.HttpBXServices","i1.BXRestElapseditem","i1.BXRestTasksTask","i1.BXRestDiskFile","i2.BXRestDiskFolder","i3.BXRestDiskAttachedObject","i1.BXRestBizprocWorkflowInstance","i2.BXRestBizprocWorkflowTemplate","i3.HttpBXServices","i1.BXRestBizprocWorkflow","i2.BXRestBizprocActivity","i3.BXRestBizprocTask","i4.BXRestBizprocRobot","i5.BXRestBizprocEvent","i1.BXRestLogBlogPost","i2.BXRestLogBlogComment","i1.BXRestCalendarEvent","i1.BXRestUserUserfield","i1.BXRestMapUser","i2.BXRestUser","i3.BXRestNavvyUserUserfield","i1.BXRestMapListsField","BXRestListsElementMap","i2.BXRestMapLists","i3.BXRestLists","i2.BXRestMapTasksTask","i1.BXRestNavvyTasksTask","i2.BXRestNavvyUser","i3.BXRestNavvyTasks","i4.BXRestMapTaskElapseditem","i1.BXRestNavvyElapseditem","i2.BXRestMapDiskFile","i1.BXRestDiskStorage","mergeMap","i1.BXRestNavvyDiskFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskOperation","i3.BXRestNavvyDiskFolder","i4.BXRestNavvyDiskAttachedObject","i1.BXRestNavvyBizprocWorkflow","i2.BXRestNavvyLists","i1.BXRestNavvyLogBlogPost","i2.BXRestNavvyLogBlogComment","i2.BXRestMapCalendarEvent","i1.BXRestRestCalendarEvent","i1.BXRestSonetGroup","i2.BXRestMapSonetGroup","i1.BXRestServer","i2.BXRestMapServer","i1.BXRestUser","i2.BXRestLists","i3.BXRestTask","i4.BXRestTasks","i5.BXRestDisk","i6.BXRestBizproc","i7.BXRestLog","i8.BXRestCalendar","i9.BXRestSonetGroup","i10.BXRestServer","i11.BXRestNavvyUser","i12.BXRestNavvyLists","i13.BXRestNavvyTask","i14.BXRestNavvyTasks","i15.BXRestNavvyDisk","i16.BXRestNavvyBizproc","i17.BXRestNavvyLog","i18.BXRestNavvyCalendar","i19.BXRestNavvySonetGroup","i20.BXRestNavvyServer","i21.BXRestMapLists","i1.BXRestMapCalendarEvent","i1.BXRestMapLogBlogPost","i1.BXRestMapTaskCommentItem","i2.BXRestMapTaskElapseditem","i3.BXRestMapTaskResult","i4.BXRestMapTaskStage","i1.BXRestMapTasksTask","i3.BXRestMapServer","i4.BXRestMapLists","i6.BXRestMapCalendar","i7.BXRestMapLog","i8.BXRestMapTask","i9.BXRestMapTasks","Map"],"mappings":"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"}
1
+ {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/settings.ts","../../../projects/bx-rest/src/functions/mapResult.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/bx-rest.module.ts","../../../projects/bx-rest/src/services/snack-bar/toast-message/toast-message.component.ts","../../../projects/bx-rest/src/services/snack-bar/toast-message/toast-message.component.html","../../../projects/bx-rest/src/services/snack-bar/snack-bar.service.ts","../../../projects/bx-rest/src/functions/serializeJavascript.ts","../../../projects/bx-rest/src/services/vanilla/JSON.ts","../../../projects/bx-rest/src/services/vanilla/сookies.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/services/vanilla/sessionStorage.ts","../../../projects/bx-rest/src/typification/rest/api-lib.ts","../../../projects/bx-rest/src/services/http/sessionKey.ts","../../../projects/bx-rest/src/services/http/HttpData.ts","../../../projects/bx-rest/src/services/http/base/base.ts","../../../projects/bx-rest/src/services/http/base/http.ts","../../../projects/bx-rest/src/services/http/http.ts","../../../projects/bx-rest/src/services/http/HttpBX.ts","../../../projects/bx-rest/src/request/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task.ts","../../../projects/bx-rest/src/request/tasks/task.ts","../../../projects/bx-rest/src/request/tasks.ts","../../../projects/bx-rest/src/request/disk/file.ts","../../../projects/bx-rest/src/request/disk/folder.ts","../../../projects/bx-rest/src/request/disk/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/calendar/event.ts","../../../projects/bx-rest/src/request/calendar.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/services/Navvy/NavvySupport.ts","../../../projects/bx-rest/src/services/Navvy/NavvySimple.ts","../../../projects/bx-rest/src/services/Navvy/extends/NavvyPagNavBase.ts","../../../projects/bx-rest/src/services/Navvy/NavvyAlternativePaginationNavigation.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNav.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNavWithUselessKey.ts","../../../projects/bx-rest/src/services/Navvy/NavvyPagNavTasks.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/map/base.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/services/permission.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task.ts","../../../projects/bx-rest/src/map/disk/base.ts","../../../projects/bx-rest/src/map/disk/folder.ts","../../../projects/bx-rest/src/request-navvy/disk/folder.ts","../../../projects/bx-rest/src/map/disk/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/interlayer/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.ts","../../../projects/bx-rest/src/rest.ts","../../../projects/bx-rest/src/map/calendar.ts","../../../projects/bx-rest/src/map/log/blogpost.ts","../../../projects/bx-rest/src/map/log.ts","../../../projects/bx-rest/src/map/task/commentitem.ts","../../../projects/bx-rest/src/map/task/result.ts","../../../projects/bx-rest/src/map/task/stages.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/map/tasks.ts","../../../projects/bx-rest/src/map.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { iRestSettings } from './typification/settings'\r\n\r\nexport const BX_REST_SETTINGS: iRestSettings = {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth'\r\n },\r\n urls: {\r\n home: 'b24.trace-studio.com'\r\n }\r\n}\r\n","import { iBXRestAnswer } from '../typification/rest/base/answer'\r\n\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T>): NonNullable<T>\r\nexport function BXRestMapResult(v: undefined): undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined): T | undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined) {\r\n if (v && (v.result || typeof v.result === 'boolean')) {\r\n return v.result\r\n }\r\n return undefined\r\n}\r\n","export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $defer = 'defer'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\nexport const $bizproc = 'bizproc'\r\nexport const $workflow = 'workflow'\r\nexport const $instances = 'instances'\r\nexport const $terminate = '$terminate'\r\nexport const $kill = 'kill'\r\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\r\n","import { NgModule } from '@angular/core'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatButtonModule } from '@angular/material/button'\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatButtonModule\r\n ],\r\n exports: [\r\n MatButtonModule,\r\n MatIconModule\r\n ]\r\n})\r\nexport class BxRestModule { }\r\n","import { Component, inject, Inject, ViewEncapsulation } from '@angular/core'\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar'\r\nimport { BxRestModule } from '../../../request/bx-rest.module'\r\n\r\n@Component({\r\n selector: 'app-view',\r\n templateUrl: './toast-message.component.html',\r\n styleUrls: ['./toast-message.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [BxRestModule],\r\n})\r\nexport class ToastMessageComponent {\r\n\r\n snackBarRef = inject(MatSnackBarRef)\r\n\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: { message: string, type: 'error' | 'warning' | 'success' }) {\r\n }\r\n\r\n getClass():string{\r\n switch (this.data.type){\r\n case 'error':\r\n case 'warning':\r\n case 'success':\r\n return this.data.type + '-message';\r\n }\r\n return '';\r\n }\r\n}\r\n","<div class=\"w-100 d-flex\">\r\n <span matSnackBarLabel [class]=\"getClass()\">\r\n {{ data.message }}\r\n</span>\r\n <span matSnackBarActions [class]=\"getClass()\">\r\n <button mat-button matSnackBarAction (click)=\"snackBarRef.dismissWithAction()\">\r\n <mat-icon>\r\n close\r\n </mat-icon>\r\n </button>\r\n</span>\r\n</div>\r\n\r\n","/**\r\n * Сервис для вывода сообщений пользователю\r\n * TODO: логирование\r\n */\r\nimport { Injectable } from '@angular/core'\r\nimport { ToastMessageComponent } from '../../services/snack-bar/toast-message/toast-message.component'\r\nimport { MatSnackBar } from '@angular/material/snack-bar'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class SnackBarService {\r\n\r\n constructor(private snackBar: MatSnackBar) {\r\n }\r\n\r\n error(message: string, sec = 12): void {\r\n this.standardMessage(message, sec, 'error')\r\n }\r\n\r\n warning(message: string, sec = 7): void {\r\n this.standardMessage(message, sec, 'warning');\r\n }\r\n\r\n success(message: string, sec = 7): void {\r\n this.standardMessage(message, sec, 'success');\r\n }\r\n\r\n standardMessage(message: string, sec = 5, name = 'error'): void{\r\n this.snackBar.open(message);\r\n this.snackBar.openFromComponent(ToastMessageComponent, {\r\n duration: sec * 1000,\r\n data: {\r\n message: message,\r\n type: name\r\n },\r\n panelClass: name + '-box'\r\n });\r\n }\r\n}\r\n","// Generate an internal UID to make the regexp pattern harder to guess.\r\nconst UID_LENGTH = 16;\r\nconst UID = generateUID();\r\nconst PLACE_HOLDER_REGEXP = new RegExp('(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\\\d+)__@\"', 'g');\r\n\r\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code]\\s*}/g;\r\nconst IS_PURE_FUNCTION = /function.*?\\(/;\r\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\r\nconst UNSAFE_CHARS_REGEXP = /[<>\\/\\u2028\\u2029]/g;\r\n\r\nconst RESERVED_SYMBOLS = ['*', 'async'];\r\n\r\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\r\n// Unicode char counterparts which are safe to use in JavaScript strings.\r\nconst ESCAPED_CHARS: {[key: string]: string} = {\r\n '<': '\\\\u003C',\r\n '>': '\\\\u003E',\r\n '/': '\\\\u002F',\r\n '\\u2028': '\\\\u2028',\r\n '\\u2029': '\\\\u2029'\r\n};\r\n\r\nfunction escapeUnsafeChars(unsafeChar: string): string {\r\n return (ESCAPED_CHARS.hasOwnProperty(unsafeChar)) ? ESCAPED_CHARS[unsafeChar] : '';\r\n}\r\n\r\nfunction generateUID() {\r\n let bytes = window.crypto.getRandomValues(new Uint32Array(UID_LENGTH))\r\n let result = '';\r\n for (let i = 0; i < UID_LENGTH; ++i) {\r\n result += bytes[i].toString(16);\r\n }\r\n return result;\r\n}\r\n\r\nfunction deleteFunctions(obj: any) {\r\n let functionKeys = [];\r\n for (let key in obj) {\r\n if (typeof obj[key] === \"function\") {\r\n functionKeys.push(key);\r\n }\r\n }\r\n for (let i = 0; i < functionKeys.length; i++) {\r\n delete obj[functionKeys[i]];\r\n }\r\n}\r\n\r\nfunction serialize(obj: any, options: any = {}): any {\r\n // Backwards-compatibility for `space` as the second argument.\r\n if (typeof options === 'number' || typeof options === 'string') {\r\n options = {space: options};\r\n }\r\n\r\n let functions: Function[] = [];\r\n let regexps: any[] = [];\r\n let dates: any[] = [];\r\n let maps: any[] = [];\r\n let sets: any[] = [];\r\n let arrays: any[] = [];\r\n let undefs: any[] = [];\r\n let infinities: any[] = [];\r\n let bigInts: any[] = [];\r\n let urls: any[] = [];\r\n\r\n // Returns placeholders for functions and regexps (identified by index)\r\n // which are later replaced by their string representation.\r\n function replacer(key: string, value: any) {\r\n\r\n // For nested function\r\n if (options.ignoreFunction) {\r\n deleteFunctions(value);\r\n }\r\n\r\n if (!value && value !== undefined) {\r\n return value;\r\n }\r\n\r\n // let origValue: any = this[key];\r\n let origValue: any = value;\r\n let type = typeof origValue;\r\n\r\n switch (type){\r\n case 'object':\r\n\r\n if (origValue instanceof RegExp) {\r\n return '@__R-' + UID + '-' + (regexps.push(origValue) - 1) + '__@';\r\n } else if (origValue instanceof Date) {\r\n return '@__D-' + UID + '-' + (dates.push(origValue) - 1) + '__@';\r\n } else if (origValue instanceof Map) {\r\n return '@__M-' + UID + '-' + (maps.push(origValue) - 1) + '__@';\r\n } else if (origValue instanceof Set) {\r\n return '@__S-' + UID + '-' + (sets.push(origValue) - 1) + '__@';\r\n }\r\n\r\n if (origValue instanceof Array) {\r\n let isSparse = origValue.filter(function () {\r\n return true\r\n }).length !== origValue.length;\r\n if (isSparse) {\r\n return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@';\r\n }\r\n }\r\n\r\n if (origValue instanceof URL) {\r\n return '@__L-' + UID + '-' + (urls.push(origValue) - 1) + '__@';\r\n }\r\n break;\r\n case 'function':\r\n return '@__F-' + UID + '-' + (functions.push(origValue) - 1) + '__@';\r\n case 'undefined':\r\n return '@__U-' + UID + '-' + (undefs.push(origValue) - 1) + '__@';\r\n case 'number':\r\n return '@__I-' + UID + '-' + (infinities.push(origValue) - 1) + '__@';\r\n case 'bigint':\r\n return '@__B-' + UID + '-' + (bigInts.push(origValue) - 1) + '__@';\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function serializeFunc(fn: Function) {\r\n let serializedFn = fn.toString();\r\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\r\n throw new TypeError('Serializing native function: ' + fn.name);\r\n }\r\n\r\n // pure functions, example: {key: function() {}}\r\n if (IS_PURE_FUNCTION.test(serializedFn)) {\r\n return serializedFn;\r\n }\r\n\r\n // arrow functions, example: arg1 => arg1+5\r\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\r\n return serializedFn;\r\n }\r\n\r\n let argsStartsAt = serializedFn.indexOf('(');\r\n let def = serializedFn.slice(0, argsStartsAt)\r\n .trim()\r\n .split(' ')\r\n .filter(function (val) {\r\n return val.length > 0\r\n });\r\n\r\n let nonReservedSymbols = def.filter(function (val) {\r\n return RESERVED_SYMBOLS.indexOf(val) === -1\r\n });\r\n\r\n // enhanced literal objects, example: {key() {}}\r\n if (nonReservedSymbols.length > 0) {\r\n return (def.indexOf('async') > -1 ? 'async ' : '') + 'function'\r\n + (def.join('').indexOf('*') > -1 ? '*' : '')\r\n + serializedFn.slice(argsStartsAt);\r\n }\r\n\r\n // arrow functions\r\n return serializedFn;\r\n }\r\n\r\n // Check if the parameter is function\r\n if (options.ignoreFunction && typeof obj === \"function\") {\r\n obj = undefined;\r\n }\r\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\r\n // to the literal string: \"undefined\".\r\n if (obj === undefined) {\r\n return String(obj);\r\n }\r\n\r\n let str: string = '';\r\n\r\n // Creates a JSON string representation of the value.\r\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\r\n if (options.isJSON && !options.space) {\r\n str = JSON.stringify(obj);\r\n } else {\r\n str = JSON.stringify(obj, options.isJSON ? undefined : replacer, options.space);\r\n }\r\n\r\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\r\n // their safe Unicode char counterpart. This _must_ happen before the\r\n // regexps and functions are serialized and added back to the string.\r\n if (options.unsafe !== true) {\r\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\r\n }\r\n\r\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) {\r\n return str;\r\n }\r\n\r\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\r\n // JSON string with their string representations. If the original value can\r\n // not be found, then `undefined` is used.\r\n return str.replace(PLACE_HOLDER_REGEXP, function (match, backSlash, type, valueIndex) {\r\n // The placeholder may not be preceded by a backslash. This is to prevent\r\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\r\n // invalid JS.\r\n if (backSlash) {\r\n return match;\r\n }\r\n\r\n switch (type){\r\n case 'D':\r\n return \"new Date(\\\"\" + dates[valueIndex].toISOString() + \"\\\")\"\r\n case 'R':\r\n return \"new RegExp(\" + serialize(regexps[valueIndex].source) + \", \\\"\" + regexps[valueIndex].flags + \"\\\")\"\r\n case 'M':\r\n return \"new Map(\" + serialize(Array.from(maps[valueIndex].entries()), options) + \")\"\r\n case 'S':\r\n return \"new Set(\" + serialize(Array.from(sets[valueIndex].values()), options) + \")\"\r\n case 'A':\r\n return \"Array.prototype.slice.call(\" + serialize(Object.assign({length: arrays[valueIndex].length}, arrays[valueIndex]), options) + \")\"\r\n case 'U':\r\n return 'undefined'\r\n case 'I':\r\n return infinities[valueIndex]\r\n case 'B':\r\n return \"BigInt(\\\"\" + bigInts[valueIndex] + \"\\\")\"\r\n case 'L':\r\n return \"new URL(\\\"\" + urls[valueIndex].toString() + \"\\\")\"\r\n }\r\n\r\n let fn = functions[valueIndex];\r\n\r\n return serializeFunc(fn);\r\n });\r\n}\r\n\r\nexport default serialize\r\n","import { Injectable } from '@angular/core'\r\nimport serialize from '../../functions/serializeJavascript'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class JSONServices {\r\n static deserialize(data: any) {\r\n return eval('(' + data + ')')\r\n }\r\n\r\n static serialize(data: any ) {\r\n return serialize(data)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport JSON from '../../services/vanilla/JSON'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class CookiesServices {\r\n\r\n static get(name: string): string {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\r\n if (results)\r\n return results[2]\r\n else\r\n return ''\r\n }\r\n\r\n static set(name: string, value: string, age: number = 0) {\r\n let string = name + '=' + value + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static setObj(name: string, value: any, age: number = 0) {\r\n let string = name + '=' + JSON.serialize(value) + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static getObj<T>(name: string): T | false {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\r\n if (results) {\r\n return JSON.deserialize(results[2])\r\n }\r\n\r\n return false\r\n }\r\n}\r\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'\r\nimport JSON from '../../services/vanilla/JSON'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageServices {\r\n\r\n static get(name: string): any {\r\n return localStorage.getItem(name)\r\n }\r\n\r\n static getObj<T>(name: string): T | null {\r\n return JSON.deserialize(localStorage.getItem(name))\r\n }\r\n\r\n static set(name: string, value: string): void {\r\n localStorage.setItem(name, value)\r\n }\r\n\r\n static setObj(name: string, value: any): void {\r\n let get = this.get(name)\r\n if(get && typeof get === 'object'){\r\n localStorage.setItem(\r\n name,\r\n JSON.serialize(\r\n Object.assign(\r\n get,\r\n value\r\n )\r\n )\r\n )\r\n } else {\r\n localStorage.setItem(name, JSON.serialize(value))\r\n }\r\n }\r\n\r\n static del(name: string): void {\r\n localStorage.removeItem(name)\r\n }\r\n\r\n}\r\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'\r\nimport Cookies from '../../services/vanilla/сookies'\r\nimport saveApplicationAuth from '../../typification/auth/save'\r\nimport { Observable, of, Subscription } from 'rxjs'\r\n// import { ActivatedRoute, ParamMap } from '@angular/router'\r\nimport { BaseServices } from '../base'\r\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\r\nimport { RestServices } from '../../typification/rest/api-lib'\r\nimport { BX_REST_SETTINGS } from '../../settings'\r\nimport iBXRestAuth from '../../typification/auth/save'\r\nimport { SessionStorage } from '../vanilla/sessionStorage'\r\n\r\ntype IKeyAuth = 'sessid' | 'auth' | string\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class SessionKeyServices extends BaseServices {\r\n\r\n authHave = false\r\n authData: saveApplicationAuth | undefined\r\n subscribe = {\r\n authData: new Subscription()\r\n }\r\n\r\n constructor(\r\n // private route: ActivatedRoute,\r\n public BxApiLib: RestServices,\r\n ) {\r\n super()\r\n let authData = SessionStorage.getItem<iBXRestAuth>(this.constructor.name)\r\n if ((authData && !authData.access_token.length) || !authData) {\r\n // получаем токен по собственным каналом (в битриксе приложение trace:apps.trace)\r\n window.addEventListener('message', (event: MessageEvent) => {\r\n if (event.origin !== window.origin) { // проверяем что это не наше сообщение (с текущего приложения)\r\n if (event.data && event.data.param) {\r\n if (typeof event.data.param === 'string') {\r\n event.data.param = JSON.parse(event.data.param)\r\n }\r\n\r\n if (event.data.param.access_token) {\r\n let param = event.data.param;\r\n let save = {\r\n access_token: (param.access_token) ? param.access_token : undefined,\r\n client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\r\n domain: (param.domain) ? param.domain : undefined,\r\n expires: (param.expires) ? param.expires : undefined,\r\n expires_in: (param.expires_in) ? param.expires_in : undefined,\r\n member_id: (param.member_id) ? param.member_id : undefined,\r\n refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\r\n scope: (param.scope) ? param.scope : undefined,\r\n server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\r\n status: (param.status) ? param.status : undefined,\r\n user_id: (param.user_id) ? param.user_id : undefined,\r\n type: (param.type) ? param.type : undefined,\r\n }\r\n\r\n if (Object.keys(save).length && save.access_token) {\r\n SessionStorage.setItem(this.constructor.name, save)\r\n this.subscribeAll()\r\n }\r\n }\r\n }\r\n }\r\n })\r\n\r\n /*\r\n this.subscribe.authData = this.route.queryParamMap\r\n .pipe(\r\n filter(param =>\r\n param.has('AUTH_ID')\r\n || param.has('access_token')\r\n || param.has('REFRESH_ID')\r\n || param.has('DOMAIN')\r\n )\r\n )\r\n .subscribe((param: ParamMap) => {\r\n if(!save) {\r\n let save = {\r\n access_token: undefined,\r\n client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\r\n domain: (param.domain) ? param.domain : undefined,\r\n expires: (param.expires) ? param.expires : undefined,\r\n expires_in: (param.expires_in) ? param.expires_in : undefined,\r\n member_id: (param.member_id) ? param.member_id : undefined,\r\n refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\r\n scope: (param.scope) ? param.scope : undefined,\r\n server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\r\n status: (param.status) ? param.status : undefined,\r\n user_id: (param.user_id) ? param.user_id : undefined,\r\n type: (param.type) ? param.type : undefined,\r\n }\r\n }\r\n\r\n if (param.has('AUTH_ID') && !authData?.access_token.length) {\r\n const get = param.get('AUTH_ID')\r\n if (get) {\r\n Cookies.set('auth', get) //TODO: потом убрать\r\n save.access_token = get\r\n }\r\n }\r\n\r\n if (param.has('access_token') && !authData.access_token.length) {\r\n const get = param.get('access_token')\r\n if (get) {\r\n Cookies.set('auth', get) // TODO: потом убрать\r\n save.access_token = get\r\n }\r\n }\r\n\r\n if (param.has('REFRESH_ID') && !authData.refresh_token.length) {\r\n const get = param.get('REFRESH_ID')\r\n if (get) {\r\n save.refresh_token = get\r\n }\r\n }\r\n\r\n if (param.has('DOMAIN') && !authData.domain.length) {\r\n const get = param.get('DOMAIN')\r\n if (get) {\r\n save.domain = get\r\n }\r\n }\r\n if (Object.keys(save).length && save.access_token) {\r\n SessionStorage.setItem(this.constructor.name, save)\r\n this.subscribeAll()\r\n } else {\r\n // если битрикс не шлёт нужные мне параметры на прямую\r\n // просим их мне отдать так как описано это в документации\r\n let f = () => {\r\n if (this.BxApiLib.BX24) {\r\n const initDate = this.BxApiLib.BX24.getAuth()\r\n SessionStorage.setItem(this.constructor.name, save)\r\n }\r\n }\r\n\r\n this.BxApiLib.init(f)\r\n }\r\n\r\n })\r\n */\r\n } else if (this.getAuth().length) {\r\n this.authHave = true\r\n }\r\n\r\n this.authData = authData\r\n\r\n }\r\n\r\n subscribeAll() {\r\n this.subscribe.authData.unsubscribe()\r\n }\r\n\r\n getAuth(): string {\r\n switch (BX_REST_SETTINGS.auth.key) {\r\n case 'auth':\r\n return Cookies.get('auth')\r\n default:\r\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()) {\r\n return (<any>window).BX.bitrix_sessid()\r\n } else if (this.getSessid().length) {\r\n let str = this.getSessid()\r\n return (str) ? str : ''\r\n } else {\r\n return Cookies.get('auth')\r\n }\r\n }\r\n }\r\n\r\n getKeyAuth(): IKeyAuth {\r\n if (BX_REST_SETTINGS.auth.key.length) {\r\n return BX_REST_SETTINGS.auth.key\r\n } else {\r\n if ((<any>window).BX && (<any>window).BX.bitrix_sessid()\r\n || this.getSessid().length) {\r\n return 'sessid'\r\n } else {\r\n return 'auth'\r\n }\r\n }\r\n }\r\n\r\n getSessid() {\r\n const check = new URLSearchParams(document.location.search).get('sessid')\r\n if (check) {\r\n LocalStorage.set('sessid', check)\r\n return check\r\n } else if (LocalStorage.get('sessid')) {\r\n return LocalStorage.get('sessid')\r\n }\r\n return ''\r\n }\r\n\r\n setAuthParams<T>(params: any): boolean {\r\n const keyAuth = this.getKeyAuth()\r\n if (params[keyAuth]) {\r\n return true\r\n } else if (keyAuth) {\r\n params[keyAuth] = this.getAuth()\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n getAuthParams(): string | undefined {\r\n switch (BX_REST_SETTINGS.auth.source) {\r\n case 'cookies':\r\n return this.getAuth()\r\n default:\r\n return (this.authData) ? this.authData.access_token : undefined\r\n }\r\n }\r\n\r\n getBaseUrl(): Observable<string | undefined> {\r\n return of(this.prepareBaseAddress(BX_REST_SETTINGS.urls.home, 'rest'))\r\n // return this.authData$.pipe( // TODO: разобраться позже\r\n // take(1),\r\n // map(v => (v && v.domain) ? this.prepareBaseAddress(v.domain) : undefined)\r\n // )\r\n }\r\n\r\n // getHomeUrl(): string {\r\n // return env.urls.home\r\n // }\r\n}\r\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'\r\nimport { Injectable } from '@angular/core'\r\nimport clone from 'just-clone'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\nimport { HttpServices } from './http'\r\nimport {\r\n iBatchRequestAnswer, iBatchRequestParam,\r\n iBatchRequestParamArr,\r\n iBatchRequestParamHttp,\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { HttpHeaders } from '@angular/common/http'\r\nimport flatten from 'just-flatten-it'\r\n\r\n// type TransformFunction<T, R> = (input: T) => R;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpBXServices extends HttpServices {\r\n\r\n /**\r\n * Это пиздец а не метод\r\n * TODO: Удалить данный метод после реализации его в разделе Navvy\r\n * @param param\r\n */\r\n branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n const size = 50 // больше не отдаст\r\n let subarray = [] //массив в который будет выведен результат.\r\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n }\r\n\r\n return forkJoin(\r\n subarray.map(i => {\r\n return this.httpPost('batch.json', {\r\n halt: 0,\r\n cmd: Object.assign({}, ...i.map(x => {\r\n return {[x[0]]: x[1]}\r\n }))\r\n })\r\n })\r\n ) as Observable<iBatchRequestAnswer<A>[]>\r\n }\r\n\r\n prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n (obj, key) => {\r\n obj[key] = '';\r\n return obj;\r\n },\r\n {} as iBatchRequestParamHttp\r\n );\r\n for (let key in param) {\r\n if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString()\r\n }\r\n }\r\n return res\r\n }\r\n\r\n // override mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\r\n // return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {\r\n // [key: keyBatch]: T\r\n // }\r\n // }\r\n //\r\n mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\r\n return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))\r\n }\r\n\r\n /**\r\n * Основной метод для запросов\r\n *\r\n * @param name\r\n * @param params\r\n * @param settings\r\n */\r\n post<T>(name: string[],\r\n params: any = {},\r\n settings: iHttpParamSettings = this.defSettings) {\r\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\r\n }\r\n\r\n /**\r\n * Второстепенный метод для запросов. По возможности лучше не использовать\r\n *\r\n * @param name\r\n * @param params\r\n * @param settings\r\n */\r\n get<T>(name: string[],\r\n params: any = {},\r\n settings: iHttpParamSettings = this.defSettings) {\r\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params, settings)\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(\r\n mergeMap(v => {\r\n if (v) {\r\n // это более быстрый способ запроса чем отправка Form Data\r\n return this.http.post<T | undefined>(\r\n this.prepareBaseAddress(v) + url, JSON.stringify(paramsClone),\r\n {headers: new HttpHeaders().set('Content-Type', 'application/json')}\r\n )\r\n }\r\n return throwError(() => 'get base url error')\r\n }))\r\n } else {\r\n return throwError(() => 'auth not get')\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\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 // params: JSON.stringify(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 return throwError(() => 'auth not get')\r\n }\r\n\r\n }\r\n\r\n getNameMethod(arr: string[]) {\r\n return arr.join('.')\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { $list } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUserUserfield {\r\n url = {\r\n list: ['userfield', $list]\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n list() {\r\n return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n }\r\n}\r\n","import { share } from 'rxjs'\r\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\r\nimport { $get, $search, $update, $user } from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\r\nimport { BXRestUserUserfield } from './user/userfield'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestUser {\r\n\r\n url = {\r\n admin: [$user, 'admin'],\r\n get: [$user, $get],\r\n current: [$user, 'current'],\r\n update: [$user, $update],\r\n search: [$user, $search],\r\n access: [$user, 'access'], // U1 - пользователь с id =1\r\n // AU - все авторизованные пользователи\r\n // D1 - подразделение с id=1\r\n // G1 - группа с id=1\r\n fields: [$user, 'fields'],\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n public userfield: BXRestUserUserfield\r\n ) {\r\n }\r\n\r\n admin() {\r\n return this.http.post<boolean>(this.url.admin)\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}) {\r\n return this.http.post<iBXRestUserHttp[]>\r\n (\r\n this.url.get,\r\n params\r\n )\r\n }\r\n\r\n current(update = false) {\r\n let request = this.http.post<iBXRestUserHttp>(this.url.current, {})\r\n if (update) {\r\n return request\r\n } else {\r\n return request.pipe(\r\n share()\r\n )\r\n }\r\n }\r\n\r\n update(user: Partial<iBXRestUser>) {\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n user\r\n )\r\n }\r\n\r\n search(params: iBXRestParamUserSearch) {\r\n return this.http.post<iBXRestUserHttp[]>(this.url.search, params)\r\n }\r\n\r\n access(access: string[]) {\r\n return this.http.post<iBXRestAnswer<boolean> | undefined>(this.url.access, {ACCESS: access})\r\n }\r\n\r\n fields() {\r\n return this.http.post<iBXRestAnswer<iBXRestUserHttpField>>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $delete, $field, $get, $lists, $type, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestListsField {\r\n url = {\r\n add: [$lists, $field, $add], // Метод создает поле списка\r\n delete: [$lists, $field, $delete], // Метод удаляет поле списка\r\n get: [$lists, $field, $get], // Метод возвращает данные поля\r\n type: {\r\n get: [$lists, $field, $type, $get], // Метод возвращает доступные типа полей для указанного списка\r\n },\r\n update: [$lists, $field, $update], // Метод обновляет поле списка\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.http.post<{ [key: string]: iBXRestFieldItem }>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { $add, $delete, $element, $file, $get, $lists, $update, $url } from '../../consts/part-name-metods'\r\n\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestListsElement {\r\n url = {\r\n add: [$lists, $element, $add], // Метод создаёт элемент списка\r\n delete: [$lists, $element, $delete], // Метод удаляет элемент списка // TODO: Реализовать\r\n get: [$lists, $element, $get], // Метод возвращает список элементов или элемент\r\n update: [$lists, $element, $update], //\tМетод обновляет элемент списка // TODO: Реализовать\r\n getFileUrl: [$lists, $element, $get, $file, $url] // Метод возвращает путь к файлу // TODO: Реализовать\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.http.post<iBXRestHttpListsElement[]>(\r\n this.url.get,\r\n pram\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n}\r\n","import {\r\n $add,\r\n $delete,\r\n $get,\r\n $iblock,\r\n $id,\r\n $lists,\r\n $type,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from './lists/element'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport BXRestListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLists {\r\n url = {\r\n add: [$lists, $add], // Метод создаёт список\r\n delete: [$lists, $delete], // Метод удаляет список\r\n get: [$lists, $get], // Метод возвращает данные по спискам\r\n update: [$lists, $update], // Метод обновляет существующий список\r\n getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока\r\n }\r\n\r\n constructor(\r\n public element: BXRestListsElement,\r\n public field: BXRestListsField,\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n get(pram: iBXRestParamListGet) {\r\n return this.http.post<iBXRestListItemHttp[]>(this.url.get, pram)\r\n }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $add, $delete, $elapseditem, $get, $getlist, $getmanifest, $isactionallowed, $task, $update\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { iBXRestTaskElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestElapseditem {\r\n\r\n url = {\r\n getmanifest: [$task, $elapseditem, $getmanifest], // Возвращает список методов и их описание\r\n getlist: [$task, $elapseditem, $getlist], // Возвращает список записей о затраченном времени по задаче\r\n get: [$task, $elapseditem, $get], // Возвращает запись о затраченном времени по ее идентификатору\r\n add: [$task, $elapseditem, $add], // Добавляет затраченное время к задаче\r\n delete: [$task, $elapseditem, $delete], // Удаляет запись о затраченном времени\r\n isactionallowed: [$task, $elapseditem, $isactionallowed], // Проверяет разрешено ли действие\r\n update: [$task, $elapseditem, $update], // Изменяет параметры записи о затраченном времени\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n return this.http.post<iBXRestTaskElapsedItemHttp[]>(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'\r\nimport {\r\n $add, $approve, $attach, $complete, $counters, $defer, $delegate, $delete, $disapprove, $favorite, $files,\r\n $get, $getaccess, $getFields, $getlist, $history, $list, $pause, $planner, $renew, $result, $start,\r\n $task, $tasks, $update\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestHttpTask } from '../../typification/rest/task/task'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\r\nimport { iBXRestParamTasksList, iBXRestParamTasksListHttp } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestTasksTaskApproveHttp } from '../../typification/rest/tasks/task/approve'\r\nimport { iBXRestTasksTaskCompleteHttp } from '../../typification/rest/tasks/task/complete'\r\nimport { iBXRestTasksTaskDeferHttp } from '../../typification/rest/tasks/task/defer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTasksTask {\r\n\r\n url = {\r\n add: [$tasks, $task, $add], // Создает задачу\r\n approve: [$tasks, $task, $approve], // Позволяет принять задачу\r\n complete: [$tasks, $task, $complete], // Переводит задачу в статус «завершена»\r\n counters: {\r\n get: [$tasks, $task, $counters, $get], //Получает счетчики пользователя\r\n },\r\n defer: [$tasks, $task, $defer], // Переводит задачу в статус «отложена»\r\n delegate: [$tasks, $task, $delegate], // Метод для делегирования задачи\r\n delete: [$tasks, $task, $delete], // Удаляет задачу\r\n disapprove: [$tasks, $task, $disapprove], // Позволяет отклонить задачу\r\n favorite: {\r\n add: [$tasks, $task, $favorite, $add], // Добавляет задачи в \"Избранное\"\r\n delete: [$tasks, $task, $favorite, $delete], // Удаляет задачи из \"Избранного\"\r\n },\r\n files: {\r\n attach: [$tasks, $task, $files, $attach], // Прикрепляет загруженный на диск файл к задаче\r\n },\r\n get: [$tasks, $task, $get], // Возвращает информацию о конкретной задаче\r\n getFields: [$tasks, $task, $getFields], // Возвращает все доступные поля\r\n getaccess: [$tasks, $task, $getaccess], // Метод для проверки доступа к задаче\r\n history: {\r\n list: [$tasks, $task, $history, $list], // Получает историю задачи\r\n },\r\n list: [$tasks, $task, $list], // Возвращает массив задач, каждая из которых содержит массив полей\r\n pause: [$tasks, $task, $pause], // Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\r\n renew: [$tasks, $task, $renew], // Возобновляет задачу после ее завершения\r\n start: [$tasks, $task, $start], // Переводит задачу в статус «выполняется»\r\n startwatch: [$tasks, $task, 'startwatch'], // Позволяет наблюдать за задачей\r\n stopwatch: [$tasks, $task, 'stopwatch'], // Останавливает наблюдение за задачей\r\n update: [$tasks, $task, $update], // Обновляет задачу\r\n result: {\r\n list: [$tasks, $task, $result, $list], // Просмотр списка результатов к задаче\r\n addFromComment: [$tasks, $task, $result, 'addFromComment'], // Создание результата задачи из комментария\r\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан\r\n },\r\n planner: {\r\n getlist: [$task, $planner, $getlist], // Возвращает массив, содержащий идентификаторы задач в плане на день\r\n }\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n add(param: { fields: iBXRestParamTaskAdd }) {\r\n return this.http.post<{ task: iBXRestHttpTask }>(this.url.add, param)\r\n }\r\n\r\n approve(id: number) {\r\n return this.http.post<{ task: iBXRestTasksTaskApproveHttp }>(this.url.approve, {taskId: id})\r\n }\r\n\r\n complete(id: number) {\r\n return this.http.post<{ task: iBXRestTasksTaskCompleteHttp }>(this.url.complete, {taskId: id})\r\n }\r\n\r\n defer(id: number) {\r\n return this.http.post<{ task: iBXRestTasksTaskDeferHttp }>(this.url.defer, {taskId: id})\r\n }\r\n\r\n /*\r\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\r\n let sendTask: Record<string, any> = {}\r\n let taskTS: Record<string, any> = task\r\n if (updateFields.length) {\r\n for (let updateField of updateFields) {\r\n if (taskTS[camelCase(updateField)]) {\r\n sendTask[updateField] = taskTS[camelCase(updateField)]\r\n }\r\n }\r\n if (Object.values(sendTask).length) {\r\n return this.http.post(\r\n this.url.update,\r\n {taskId: taskId, fields: sendTask},\r\n 'error to update task')\r\n } else {\r\n this.snackBar.error('not valid send data task')\r\n console.error('not valid send data task', sendTask, task)\r\n return of(undefined)\r\n }\r\n }\r\n\r\n this.snackBar.warning('not have field for update')\r\n return of(undefined)\r\n }\r\n */\r\n\r\n get(requestArray: iBXRestParamTaskGet) {\r\n return this.http.post<{ task: iBXRestHttpTask | undefined }>(this.url.get, requestArray)\r\n }\r\n\r\n list(param: iBXRestParamTasksList\r\n // = {}\r\n ) {\r\n return this.http.post<iBXRestParamTasksListHttp>(this.url.list, param)\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n\r\n getFields() {\r\n return this.storeTask$.pipe(\r\n mergeMap(v => {\r\n if (v && !v.data.fields) {\r\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\r\n tap(v => {\r\n if (v && v.result) {\r\n this.store.dispatch(saveFields(v.result))\r\n }\r\n }),\r\n map(v => {\r\n if (v && v.result && v.result.fields) {\r\n return {result: v.result.fields}\r\n }\r\n\r\n return undefined\r\n })\r\n )\r\n }\r\n if (v.data.fields) {\r\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n\r\n deleteResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\r\n }\r\n\r\n addResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getPlannerList() {s\r\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\r\n }\r\n */\r\n\r\n getaccess(param: iBXRestParamTaskGetAccess) {\r\n return this.http.post<iBXRestTaskGetAccess>(this.url.getaccess, param)\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestTasksTask } from './tasks/task'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestTasks {\r\n\r\n constructor(\r\n public task: BXRestTasksTask,\r\n ) {\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto,\r\n $delete,\r\n $disk,\r\n $file,\r\n $get,\r\n $getFields,\r\n $markdeleted,\r\n $moveto,\r\n $rename, $restore\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFile {\r\n url = {\r\n getfields: [$disk, $file, $getFields], // Возвращает описание полей файла\r\n get: [$disk, $file, $get], // Возвращает файл по идентификатору\r\n rename: [$disk, $file, $rename], // Переименовывает файл\r\n copyto: [$disk, $file, $copyto], // Копирует файл в указанную папку\r\n moveto: [$disk, $file, $moveto], // Перемещает файл в указанную папку\r\n delete: [$disk, $file, $delete], // Уничтожает файл навсегда\r\n markdeleted: [$disk, $file, $markdeleted], // Перемещает файл в корзину\r\n restore: [$disk, $file, $restore], // Восстанавливает файл из корзины\r\n uploadversion: [$disk, $file, 'uploadversion'], // Загружает новую версию файла\r\n getVersions: [$disk, $file, 'getVersions'], // Возвращает список версий файла\r\n restoreFromVersion: [$disk, $file, 'restoreFromVersion'], // Восстанавливает файл из конкретной версии\r\n getExternalLink: [$disk, $file, 'getexternallink'] //\tВозвращает публичную ссылку на файл\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n get(id: number) {\r\n return this.http.post<iBXRestFileHttp>(this.url.get, {id: id})\r\n }\r\n\r\n markdeleted(id: number) {\r\n return this.http.post<iBXRestFileHttp>(\r\n this.url.markdeleted,\r\n {id: id})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $copyto, $disk, $folder, $get, $getchildren, $getFields,\r\n $markdeleted, $moveto, $rename, $restore, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskFolder {\r\n url = {\r\n getfields: [$disk, $folder, $getFields], // Возвращает описание полей папки\r\n get: [$disk, $folder, $get], // Возвращает папку по идентификатору\r\n getchildren: [$disk, $folder, $getchildren], // Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n addsubfolder: [$disk, $folder, 'addsubfolder'], // Создает дочернюю папку\r\n copyto: [$disk, $folder, $copyto], // Копирует папку в указанную папку\r\n moveto: [$disk, $folder, $moveto], // Перемещает папку в указанную папку\r\n rename: [$disk, $folder, $rename], // Переименовывает папку\r\n deletetree: [$disk, $folder, 'deletetree'], // Уничтожает папку и всё её дочерние элементы навсегда\r\n markdeleted: [$disk, $folder, $markdeleted], // Перемещает папку в корзину\r\n restore: [$disk, $folder, $restore], //\tВосстанавливает папку из корзины\r\n uploadfile: [$disk, $folder, $uploadfile], // Загружает новый файл в указанную папку\r\n getExternalLink: [$disk, $folder, 'getExternalLink'] // Метод возвращает публичную ссылку\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n uploadfile(id: number, fileContent: string[]) {\r\n return this.http.post(\r\n this.url.uploadfile,\r\n {\r\n id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n data: {\r\n NAME: fileContent[0]\r\n } // Обязательное поле NAME - имя нового файла\r\n // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n }\r\n )\r\n }\r\n\r\n getchildren(id: number) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n {id: id}\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $disk, $get } from '../../consts/part-name-metods'\r\nimport { iBXRestDiskAttachedObjectHttp } from '../../typification/rest/disk/AttachedObject'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskAttachedObject {\r\n url = {\r\n get: [$disk, 'attachedObject', $get]\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n get(id: number) {\r\n return this.http.post<iBXRestDiskAttachedObjectHttp>(this.url.get, {id: id})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDisk {\r\n constructor(\r\n public file: BXRestDiskFile,\r\n public folder: BXRestDiskFolder,\r\n public attachedObject: BXRestDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $workflow, $list} from '../../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowInstance {\r\n\r\n url = {\r\n list: [$bizproc, $workflow, $instances, $list], // Возвращает список запущенных бизнес-процессов. Алиас bizproc.workflow.instances\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $template, $workflow, $list, $add, $delete, $update } from '../../../consts/part-name-metods'\r\nimport {\r\n iBXRestParamBizprocWorkflowTemplateList\r\n} from '../../../typification/rest/bizproc/workflow/template/list'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflowTemplate {\r\n\r\n url = {\r\n add: [$bizproc, $workflow, $template, $add],\t// Добавляет шаблон Бизнес-процесса // TODO: реализовать\r\n delete: [$bizproc, $workflow, $template, $delete], // Удаляет шаблон Бизнес-процесса // TODO: реализовать\r\n update: [$bizproc, $workflow, $template, $update],\t// Изменяет шаблон Бизнес-процесса // TODO: реализовать\r\n list: [$bizproc, $workflow, $template, $list] // Возвращает список шаблонов Бизнес-процессов, установленных на сайте\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n return this.http.post(this.url.list, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $instances, $start, $terminate, $workflow, $kill} from '../../consts/part-name-metods'\r\nimport { BXRestBizprocWorkflowInstance } from './workflow/instance'\r\nimport { BXRestBizprocWorkflowTemplate } from './workflow/template'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocWorkflow {\r\n\r\n url = {\r\n instances: [$bizproc, $workflow, $instances], // Возвращает список запущенных бизнес-процессов // TODO: реализовать\r\n terminate: [$bizproc, $workflow, $terminate], // Останавливает активный Бизнес-процесс // TODO: реализовать\r\n start: [$bizproc, $workflow, $start], // Запускает Бизнес-процесс\r\n kill: [$bizproc, $workflow, $kill], // Удаляет запущенный бизнес-процесс // TODO: реализовать\r\n }\r\n\r\n constructor(\r\n public instances: BXRestBizprocWorkflowInstance,\r\n public template: BXRestBizprocWorkflowTemplate,\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.http.post<string>(this.url.start, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $add, $activity, $delete, $list, $update, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocActivity {\r\n url = {\r\n add: [$bizproc, $activity, $add], // Добавляет новое действие в бизнес-процесс\r\n delete: [$bizproc, $activity, $delete], // Удаляет действие\r\n list: [$bizproc, $activity, $list], // Возвращает список установленных приложением действий\r\n update: [$bizproc, $activity, $update], // Позволяет обновить поля действия\r\n log: [$bizproc, $activity, $log]// Записывает информацию в лог бизнес-процесса\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $task, $complete, $list } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocTask {\r\n url = {\r\n complete: [$bizproc, $task, $complete], // Осуществляет выполнение заданий БП\r\n list: [$bizproc, $task, $list], // Возвращает список заданий бизнес-процессов\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $delete, $update, $list, $robot, $add } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocRobot {\r\n url = {\r\n add: [$bizproc, $robot, $add], // Регистрирует нового робота\r\n delete: [$bizproc, $robot, $delete], // Удаляет зарегистрированного робота\r\n list: [$bizproc, $robot, $list], // Список зарегистрированных приложением роботов\r\n update: [$bizproc, $robot, $update] // Обновляет поля робота\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $bizproc, $event, $send } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizprocEvent {\r\n url = {\r\n send: [$bizproc, $event, $send], // Возвращает действию выходные параметры, заданные в описании действия\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestBizprocWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizprocActivity } from './bizproc/activity'\r\nimport { BXRestBizprocTask } from './bizproc/task'\r\nimport { BXRestBizprocRobot } from './bizproc/robot'\r\nimport { BXRestBizprocEvent } from './bizproc/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestBizprocWorkflow,\r\n public activity: BXRestBizprocActivity,\r\n public task: BXRestBizprocTask,\r\n public robot: BXRestBizprocRobot,\r\n public event: BXRestBizprocEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX';\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.http.post<boolean>(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestLog {\r\n\r\n constructor(\r\n public blogPost: BXRestLogBlogPost,\r\n public blogComment: BXRestLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { iBXRestCalendarEventGetAnswerHttp } from '../../typification/rest/calendar/get/answer'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendarEvent {\r\n\r\n url = {\r\n add: [$calendar, $event, $add], //\tДобавляет новое событие\r\n delete: [$calendar, $event, $delete], // Удаляет событие\r\n get: [$calendar, $event, $get], // Возвращает список событий календаря\r\n getNearest: [$calendar, $event, $get, $nearest], // Возвращает список будущих событий для текущего пользователя\r\n update: [$calendar, $event, $get, $update], // Редактирует существующее событие\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices\r\n ) {\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.http.post<iBXRestCalendarEventGetAnswerHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $create,\r\n $delete,\r\n $get,\r\n $sonet_group,\r\n $update\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\r\n iBXRestParamSonetGroupGet, iBXRestParamSonetHttp\r\n} from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestSonetGroup {\r\n\r\n url = {\r\n create: [$sonet_group, $create], // Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n delete: [$sonet_group, $delete], // Удаляет группу соцсети\r\n // feature: {\r\n // access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n // },\r\n get: [$sonet_group, $get], // Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n setowner: [$sonet_group, 'setowner'], // Изменяет владельца группы\r\n update: [$sonet_group, $update], // Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n // user: {\r\n // add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n // delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n // get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n // groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n // invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n // request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n // update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n // },\r\n // workgroup: {\r\n // list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n // get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n // }\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n // // TODO: filter и select позже нормально описать\r\n // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n // return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n // this.url.get,\r\n // {\r\n // order: select,\r\n // filter: filter\r\n // }\r\n // )\r\n // }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.http.post<iBXRestParamSonetHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $server,\r\n $time\r\n} from '../consts/part-name-metods'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestServer {\r\n url = {\r\n time: [$server, $time]\r\n }\r\n\r\n constructor(private http: HttpBXServices) {\r\n }\r\n\r\n time(){\r\n return this.http.post<string>(this.url.time)\r\n }\r\n}\r\n","import { Observable, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\nexport type ReturnTypeNavvy<T, R> = T extends R ? T : R;\r\n\r\nexport abstract class NavvySupport<C, M, T, R> {\r\n\r\n pageSize = 50 // больше всё равно не дас\r\n\r\n protected constructor(\r\n public requestClass: C,\r\n public mapClass: M\r\n ) {\r\n }\r\n\r\n mapAndSnackBarError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n // errorText: string\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n // this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n mapResult<T, R>(param: iBXRestAnswer<T> | undefined, map: (mapParam: T) => R): iBXRestAnswer<R> | undefined {\r\n return (param && param.result) ? Object.assign(param, {result: map(param.result)}) : undefined\r\n }\r\n\r\n abstract resultVanilla(): Observable<iBXRestAnswer<T> | undefined>\r\n\r\n abstract mapForVanilla(): ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n\r\n abstract result(): ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\nimport { NavvySupport, ReturnTypeNavvy } from './NavvySupport'\r\n\r\nexport class NavvySimple<C, M, T, R> extends NavvySupport<C, M, T, R> {\r\n\r\n constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n public func: Observable<iBXRestAnswer<T> | undefined>,\r\n public testError: string = '',\r\n public map: ((param: T) => R) | undefined = undefined\r\n // private snackBar: SnackBarService,\r\n ) {\r\n super(requestClass, mapClass)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func\r\n }\r\n\r\n mapForVanilla() {\r\n return this.func.pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v,{result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.mapAndSnackBarError(this.func).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n}\r\n","import { NavvySupport, ReturnTypeNavvy } from '../NavvySupport'\r\nimport { Observable, ReplaySubject } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { map } from 'rxjs/operators'\r\n\r\nexport abstract class NavvyPagNavBase<C, M, T, R, P> extends NavvySupport<C, M, T, R> {\r\n\r\n // load: number = 0\r\n\r\n load$ = new ReplaySubject<number>(1)\r\n\r\n public constructor(\r\n requestClass: C,\r\n mapClass: M,\r\n protected func: (param: P) => Observable<iBXRestAnswer<T> | undefined>,\r\n protected param: P,\r\n protected testError: string = '',\r\n protected map: ((param: T | undefined) => R | undefined) | undefined = undefined) {\r\n super(requestClass, mapClass)\r\n this.load$.next(0.001)\r\n }\r\n\r\n resultVanilla() {\r\n return this.func.call(this.requestClass, this.param)\r\n }\r\n\r\n mapForVanilla() {\r\n return this.mapForVanillaEnd(this.func, this.param)\r\n }\r\n\r\n protected mapForVanillaEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return func.call(this.requestClass, param).pipe(\r\n map(v => (v && v.result && this.map) ? Object.assign(v, {result: this.map.call(this.mapClass, v.result)}) : v)\r\n ) as ReturnTypeNavvy<Observable<iBXRestAnswer<T | undefined>>, Observable<iBXRestAnswer<R | undefined>>>\r\n }\r\n\r\n result() {\r\n return this.resultEnd(this.func, this.param)\r\n }\r\n\r\n protected resultEnd(func: (param: P) => Observable<iBXRestAnswer<T> | undefined>, param: P) {\r\n return this.mapAndSnackBarError(func.call(this.requestClass, param)).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) as ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n\r\n abstract resultAll(): any// : ReturnType<Observable<T | undefined>, Observable<R | undefined>>[]\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, tap, throwError } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport clone from 'just-clone'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAlternativePagination } from '../../typification/rest/base/ApiPaginationBX'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<C, M, T, R, P extends iBXRestAlternativePagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: i / this.pageSize + 1\r\n }\r\n }\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param =>\r\n this.resultEnd(this.func, param).pipe(\r\n tap(_ => {\r\n if(param && param.PARAMS && items.total) {\r\n this.load$.next((param.PARAMS.NAV_PARAMS.iNumPage * this.pageSize + this.pageSize)/items.total)\r\n }\r\n }),\r\n )\r\n ),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([] as ReturnTypeNavvy<T, R>[])\r\n }\r\n\r\n /*\r\n getAll<T>(request: Observable<iBXRestAnswer<T> | undefined>,\r\n errorText: string) {\r\n return request.pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n }\r\n }\r\n ),\r\n // map(v => BXRestMapResult(v)),\r\n catchError(err => {\r\n this.snackBar.error(errorText)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n */\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// TODO: реализовать загрузку всего в очереди\r\nexport class NavvyPagNav<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, T[], R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, last, mergeMap, throwError } from 'rxjs'\r\nimport clone from 'just-clone'\r\n\r\nexport class NavvyPagNavWithUselessKey<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, {[key: string]: T}, R[], P> {\r\n resultAll() {\r\n let save: (T | R)[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v)\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n return this.mapForVanillaEnd(this.func, this.param).pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = 0; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n /*\r\n return from(requests.map(param => this.resultEnd(this.func, param))).pipe(\r\n // toArray(),\r\n mergeMap(v => {\r\n return v\r\n })\r\n )\r\n */\r\n\r\n return from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n }\r\n }\r\n return from([1]).pipe(\r\n concatMap(_ => this.resultEnd(this.func, this.param)),\r\n )\r\n // return from([BXRestMapResult(items)])\r\n // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n}\r\n","import { concat, concatMap, from, last, mergeMap, shareReplay, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavBase } from './extends/NavvyPagNavBase'\r\nimport { ReturnTypeNavvy } from './NavvySupport'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\n// TODO: реализовать загрузку всего в очереди\r\nexport class NavvyPagNavTasks<C, M, T, R, P extends iBXRestPagination> extends NavvyPagNavBase<C, M, {tasks: T[] | undefined}, R[], P> {\r\n\r\n resultAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resultVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && items.result) {\r\n if (items.total && items.next) {\r\n let requests: P[] = []\r\n for (let i = items.next; i < items.total; i = i + this.pageSize) {\r\n let paramClone = clone(this.param)\r\n paramClone.start = i\r\n requests.push(\r\n paramClone\r\n )\r\n }\r\n return concat(\r\n this.mapResultForGetAll(items),\r\n from(requests).pipe(\r\n concatMap(param => this.resultEnd(this.func, param)),\r\n )\r\n )\r\n }\r\n }\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<{tasks: T[] | undefined}> | undefined){\r\n return (items?.result) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map.call(this.mapClass, v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { NavvySimple } from './Navvy/NavvySimple'\r\nimport { NavvyAlterPagNav } from './Navvy/NavvyAlternativePaginationNavigation'\r\nimport { NavvyPagNav } from './Navvy/NavvyPagNav'\r\nimport { iBXRestAlternativePagination, iBXRestPagination } from '../typification/rest/base/ApiPaginationBX'\r\nimport { NavvyPagNavWithUselessKey } from './Navvy/NavvyPagNavWithUselessKey'\r\nimport { NavvyPagNavTasks } from './Navvy/NavvyPagNavTasks'\r\n\r\nexport class Navvy<C, M> {\r\n\r\n constructor(\r\n protected requestClass: C,\r\n protected mapClass: M\r\n // private snackBar: SnackBarService,\r\n ) {\r\n }\r\n\r\n simple<T, R>(\r\n func: () => Observable<iBXRestAnswer<T> | undefined>,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined\r\n ) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass), testError, map)\r\n }\r\n\r\n simpleWithArg<T, R, A>(\r\n func: (param: A) => Observable<iBXRestAnswer<T> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T) => R) | undefined = undefined) {\r\n return new NavvySimple(this.requestClass, this.mapClass, func.call(this.requestClass, arg), testError, map)\r\n }\r\n\r\n PagNav<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n PagNavTasks<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<{tasks: T[] | undefined}> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: {tasks: T[] | undefined} | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNavTasks(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n PagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: { [key: string]: T } | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyPagNavWithUselessKey(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n\r\n alterPagNav<T, R, A extends iBXRestAlternativePagination>(\r\n func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n testError: string = '',\r\n map: ((param: T[] | undefined) => R[] | undefined) | undefined = undefined) {\r\n return new NavvyAlterPagNav(this.requestClass, this.mapClass, func, arg, testError, map)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseServices } from '../services/base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseMapServices extends BaseServices{\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport clone from 'just-clone'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user/user'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapUser extends BaseMapServices {\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined\r\n {\r\n return (v) ? v.map(i => this.userHttpToTrace(i)) : undefined\r\n }\r\n\r\n current(v: iBXRestUserHttp): iBXRestUser {\r\n return this.userHttpToTrace(v)\r\n }\r\n\r\n private userHttpToTrace(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(\r\n clone(user), {\r\n ID: this.toNum(user.ID),\r\n IS_ONLINE: this.toBool(user.IS_ONLINE),\r\n DATE_REGISTER: this.toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = this.toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: this.toStr(user.ID),\r\n IS_ONLINE: this.toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: this.getBXStrTime(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: this.toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: this.toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestUserUserfield } from '../../request/user/userfield'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyUserUserfield {\r\n\r\n Navvy: Navvy<BXRestUserUserfield, undefined>\r\n\r\n constructor(\r\n private BXRestUserUserfield: BXRestUserUserfield\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestUserUserfield, undefined)\r\n }\r\n\r\n list() {\r\n return this.Navvy.simple(this.BXRestUserUserfield.list, 'Не удалось получить список кастомных полей')\r\n }\r\n}\r\n","import { of, shareReplay, tap } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestUser } from '../request/user'\r\nimport { Navvy } from '../services/navvy'\r\nimport { iBXRestUserHttp } from '../typification/rest/user/user'\r\nimport { SessionStorage } from '../services/vanilla/sessionStorage'\r\nimport { iBXRestAnswer } from '../typification/rest/base/answer'\r\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\r\nimport clone from 'just-clone'\r\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\r\nimport { BXRestNavvyUserUserfield } from './user/userfield'\r\nimport { BXRestMapUser } from '../map/user'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyUser {\r\n\r\n def: { params: { ACTIVE: 1, start: 0 } } = {\r\n params: {ACTIVE: 1, start: 0}\r\n }\r\n\r\n private Navvy: Navvy<BXRestUser, BXRestMapUser>\r\n\r\n constructor(\r\n private BXRestUserMap: BXRestMapUser,\r\n private BXRestUser: BXRestUser,\r\n public userfield: BXRestNavvyUserUserfield\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestUser, this.BXRestUserMap)\r\n }\r\n\r\n admin() {\r\n return this.Navvy.simple(\r\n this.BXRestUser.admin,\r\n 'Информация о возможных принадлежности человека к администратору не получена'\r\n )\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}){\r\n let copyParams = clone(params)\r\n this.setDefParam(copyParams)\r\n\r\n return this.Navvy.PagNav(\r\n this.BXRestUser.get,\r\n copyParams,\r\n 'Не удалось получить пользователей',\r\n this.BXRestUserMap.get\r\n )\r\n }\r\n\r\n current(update = false) {\r\n const navvy = new Navvy(this, this.BXRestUserMap)\r\n\r\n return navvy.simpleWithArg(\r\n this.self,\r\n update,\r\n '',\r\n this.BXRestUserMap.current\r\n )\r\n }\r\n\r\n /*\r\n update(user: iBXRestUser, fieldUpdate: string[]) {\r\n\r\n if (fieldUpdate && fieldUpdate.length) {\r\n let sendData: any = {\r\n ID: user.ID,\r\n }\r\n const userBX = this.BXRestUserMap.BXtoHttp(user)\r\n for (const field of fieldUpdate) {\r\n if (userBX[field]) {\r\n sendData[field] = userBX[field]\r\n } else {\r\n return throwError(() => 'One sent field is empty')\r\n }\r\n }\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n sendData\r\n )\r\n } else {\r\n return throwError(() => 'All sent field for edit is empty')\r\n }\r\n return this.Navvy.simple(\r\n this.BXRestUser.update(user, fieldUpdate),\r\n 'Не удалось обновить пользователя с ID' + user.ID\r\n )\r\n }\r\n */\r\n search(params: string | iBXRestParamUserSearch) {\r\n if (typeof params === 'string') {\r\n params = {FIND: params}\r\n }\r\n if (typeof params.ACTIVE !== 'boolean') {\r\n params.ACTIVE = true\r\n }\r\n return this.Navvy.PagNav(\r\n this.BXRestUser.search,\r\n params,\r\n 'Сервер не отвечает на запрос поиска',\r\n this.BXRestUserMap.get\r\n )\r\n }\r\n\r\n access(params: string[]) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestUser.access,\r\n params,\r\n 'Не удалось получить права'\r\n )\r\n }\r\n\r\n fields() {\r\n return this.Navvy.simple(this.BXRestUser.fields, 'Не удалось поля')\r\n }\r\n\r\n private self(update = false) {\r\n if (update) {\r\n return this.BXRestUser.current(update)\r\n } else {\r\n let self = SessionStorage.getItem(this.constructor.name + this.self.name) as iBXRestAnswer<iBXRestUserHttp>\r\n if (self) {\r\n return of(self)\r\n }\r\n return this.BXRestUser.current(update)\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n return v\r\n }\r\n return undefined\r\n }),\r\n shareReplay(1),\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.self.name, v)\r\n }\r\n }),\r\n )\r\n }\r\n }\r\n\r\n // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\r\n // if (!Object.keys(params).length) {\r\n // params = clone(this.def.params)\r\n // }\r\n //\r\n // const saveAllUser = compare(params, this.def.params)\r\n // return this.user$.pipe(\r\n // take(1),\r\n // mergeMap(v => {\r\n // if (v.load.all) {\r\n // if (compare(this.def.params, params)) {\r\n // return of(clone(v.data))\r\n // }\r\n // }\r\n //\r\n // return this.getEndArray(params).pipe(\r\n // take(1),\r\n // map(v => {\r\n // if (v && v.result) {\r\n // let cl = clone(v.result)\r\n // return this.saveArrUser(cl)\r\n // }\r\n // return undefined\r\n // }),\r\n // )\r\n // }),\r\n // tap(v => {\r\n // if (v && v.length && saveAllUser) {\r\n // this.store.dispatch(loadAll({load: true}))\r\n // }\r\n // params.start = this.def.params.start\r\n // })\r\n // )\r\n // }\r\n\r\n // private saveArrUser(users: iBXRestUserHttp[]) {\r\n // let result: iBXRestUser [] = []\r\n // for (const user of users) {\r\n // result.push(this.userMap.HttpToBX(user))\r\n // }\r\n // this.store.dispatch(saveArr({arr: result}))\r\n //\r\n // return result\r\n // }\r\n\r\n // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\r\n // return this.get(params).pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result && typeof items.result === 'object') {\r\n // if (items.next) {\r\n // params.start = items.next\r\n // return this.getEndArray(params).pipe(map(vEnd => {\r\n // if (vEnd && items.result && vEnd.result) {\r\n // return {result: [...items.result, ...vEnd.result]}\r\n // }\r\n // return (items) ? items : undefined\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 private setDefParam(params: iBXRestParamUserGet) {\r\n if(!params.FILTER) {\r\n params.FILTER = {}\r\n }\r\n\r\n if (!params.hasOwnProperty('ACTIVE')) {\r\n params.FILTER.ACTIVE = this.def.params.ACTIVE\r\n }\r\n if (params.FILTER.ACTIVE && params.FILTER.ACTIVE === 2) {\r\n delete params.FILTER.ACTIVE\r\n }\r\n if (!params.hasOwnProperty('start')) {\r\n params.start = this.def.params.start\r\n }\r\n\r\n if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\r\n delete params.FILTER.UF_DEPARTMENT\r\n }\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapListsField {\r\n get(v: { [key: string]: iBXRestFieldItem } | undefined):iBXRestFieldItem[] | undefined {\r\n return (v) ? Object.values(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestListsField from '../../request/lists/field'\r\nimport { iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestNavvyListsField {\r\n private Navvy: Navvy<BXRestListsField, BXRestMapListsField>\r\n\r\n constructor(\r\n private BXRestListsField: BXRestListsField,\r\n private BXRestMapListsField: BXRestMapListsField,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsField, this.BXRestMapListsField)\r\n }\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.Navvy.PagNavWithUselessKey(\r\n this.BXRestListsField.get,\r\n param,\r\n 'Не удалось получить поля списка',\r\n this.BXRestMapListsField.get\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapListsElement extends BaseMapServices {\r\n\r\n get(items: iBXRestHttpListsElement[] | undefined): iBXRestListsElement[] | undefined {\r\n return (items)\r\n ? items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: this.toNum(item.CREATED_BY),\r\n IBLOCK_ID: this.toNum(item.IBLOCK_ID),\r\n ID: this.toNum(item.ID)\r\n }))\r\n : undefined\r\n }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get'\r\nimport { Injectable } from '@angular/core'\r\nimport { BXRestListsElement } from '../../request/lists/element'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyListsElement {\r\n\r\n private Navvy: Navvy<BXRestListsElement, BXRestListsElementMap>\r\n\r\n constructor(\r\n private BXRestListsElement: BXRestListsElement,\r\n private BXRestMap: BXRestListsElementMap,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestListsElement, this.BXRestMap)\r\n }\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.PagNav(\r\n this.BXRestListsElement.get,\r\n param,\r\n 'Не удалось получить элемент списка',\r\n this.BXRestMap.get\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestListsElement.add, param, 'Не удалось добавить элемент списка')\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\nimport BXRestMapListsElement from './lists/element'\r\nimport { BXRestMapListsField } from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLists extends BaseMapServices {\r\n\r\n constructor(\r\n public element: BXRestMapListsElement,\r\n public field: BXRestMapListsField\r\n ) {\r\n super()\r\n }\r\n get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n return (value) ? value.map(i => this.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n }\r\n\r\n protected iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\r\n {\r\n return {\r\n ACTIVE: itemLists.ACTIVE === 'Y',\r\n API_CODE: this.toStr(itemLists.API_CODE),\r\n BIZPROC: itemLists.BIZPROC === 'Y',\r\n CANONICAL_PAGE_URL: this.toStr(itemLists.CANONICAL_PAGE_URL),\r\n CODE: itemLists.CODE,\r\n DESCRIPTION: this.toStr(itemLists.DESCRIPTION),\r\n DESCRIPTION_TYPE: itemLists.DESCRIPTION_TYPE,\r\n DETAIL_PAGE_URL: this.toStr(itemLists.DETAIL_PAGE_URL),\r\n EDIT_FILE_AFTER: this.toStr(itemLists.EDIT_FILE_AFTER),\r\n EDIT_FILE_BEFORE: this.toStr(itemLists.EDIT_FILE_BEFORE),\r\n ELEMENTS_NAME: this.toStr(itemLists.ELEMENTS_NAME),\r\n ELEMENT_NAME: this.toStr(itemLists.ELEMENT_NAME),\r\n EXTERNAL_ID: this.toStr(itemLists.EXTERNAL_ID),\r\n IBLOCK_TYPE_ID: this.toStr(itemLists.IBLOCK_TYPE_ID),\r\n ID: this.toNum(itemLists.ID),\r\n INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n LANG_DIR: this.toStr(itemLists.LANG_DIR),\r\n LAST_CONV_ELEMENT: this.toNum(itemLists.LAST_CONV_ELEMENT),\r\n LID: this.toStr(itemLists.LID),\r\n LIST_MODE: this.toStr(itemLists.LIST_MODE),\r\n LIST_PAGE_URL: this.toStr(itemLists.LIST_PAGE_URL),\r\n NAME: this.toStr(itemLists.NAME),\r\n PICTURE: this.toStr(itemLists.PICTURE),\r\n PROPERTY_INDEX: this.toStr(itemLists.PROPERTY_INDEX),\r\n REST_ON: itemLists.REST_ON === 'Y',\r\n RIGHTS_MODE: this.toStr(itemLists.RIGHTS_MODE),\r\n RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n RSS_FILE_DAYS: this.toStr(itemLists.RSS_FILE_DAYS),\r\n RSS_FILE_LIMIT: this.toStr(itemLists.RSS_FILE_LIMIT),\r\n RSS_TTL: this.toNum(itemLists.RSS_TTL),\r\n RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n SECTIONS_NAME: this.toStr(itemLists.SECTIONS_NAME),\r\n SECTION_CHOOSER: this.toStr(itemLists.SECTION_CHOOSER),\r\n SECTION_NAME: this.toStr(itemLists.SECTION_NAME),\r\n SECTION_PAGE_URL: this.toStr(itemLists.SECTION_PAGE_URL),\r\n SECTION_PROPERTY: this.toStr(itemLists.SECTION_PROPERTY),\r\n SERVER_NAME: this.toStr(itemLists.SERVER_NAME),\r\n SOCNET_GROUP_ID: this.toStr(itemLists.SOCNET_GROUP_ID),\r\n SORT: this.toNum(itemLists.SORT),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: this.toStr(itemLists.TMP_ID),\r\n VERSION: this.toNum(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: this.toStr(itemLists.XML_ID),\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyListsElement } from './lists/element'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLists {\r\n\r\n protected Navvy: Navvy<BXRestLists, BXRestMapLists>\r\n\r\n constructor(\r\n public element: BXRestNavvyListsElement,\r\n public field: BXRestNavvyListsField,\r\n protected mapList: BXRestMapLists,\r\n protected BXRestLists: BXRestLists,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLists, this.mapList)\r\n }\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.PagNav(this.BXRestLists.get, param,'Не удалось получить список', this.mapList.get)\r\n }\r\n\r\n // getAll(pram: getListParam): Observable<ItemListsBX[] | undefined> {\r\n // return this.getBase(pram)\r\n // .pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result) {\r\n // if (items.next) {\r\n // pram.start = items.next\r\n // return this.getAll(pram).pipe(\r\n // map(vEnd => {\r\n // if (vEnd && items.result) {\r\n // return [...items.result, ...vEnd]\r\n // }\r\n // return (items.result) ? items.result : []\r\n // }))\r\n // }\r\n // return of(items.result)\r\n // } else {\r\n // return []\r\n // }\r\n // })\r\n // )\r\n // }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { SessionStorage } from './vanilla/sessionStorage'\r\nimport { iBXRestPermission, iBXRestPermissionAddictionItem } from '../typification/permission'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Permission {\r\n\r\n static get(){\r\n return SessionStorage.getItem('permission') as iBXRestPermission\r\n }\r\n\r\n static set(param: iBXRestPermission){\r\n SessionStorage.setItem('permission', Object.assign(this.get(), param))\r\n }\r\n\r\n static setTaskElapsedItem(idTask: number, ElapsedItem: iBXRestPermissionAddictionItem){\r\n let permission = Permission.get()\r\n if(permission.tasks) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if(findTask){\r\n let findTaskElapsedItem = findTask.elapsedItem.find(i => i.id === ElapsedItem.id)\r\n if(findTaskElapsedItem) {\r\n if(ElapsedItem.verified.edit){\r\n findTaskElapsedItem.verified.edit = ElapsedItem.verified.edit\r\n findTaskElapsedItem.edit = ElapsedItem.edit\r\n }\r\n if(ElapsedItem.verified.del){\r\n findTaskElapsedItem.verified.del = ElapsedItem.verified.del\r\n findTaskElapsedItem.del = ElapsedItem.del\r\n }\r\n } else {\r\n findTask.elapsedItem.push(ElapsedItem)\r\n }\r\n }\r\n SessionStorage.setItem('permission', permission)\r\n }\r\n }\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task/elapseditem/get'\r\nimport { BXRestNavvyElapseditem } from '../elapseditem'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { iBXRestTaskElapsedItemHttp } from '../../../typification/rest/task/elapseditem/item'\r\nimport { $elapseditem, $getlist, $task } from '../../../consts/part-name-metods'\r\nimport { map } from 'rxjs/operators'\r\nimport { BXRestMapTaskElapseditem } from '../../../map/task/elapseditem'\r\n\r\nexport class BXRestNavvyOperationElapseditem {\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n private BXRestNavvyElapseditem: BXRestNavvyElapseditem,\r\n private BXRestMapElapseditem: BXRestMapTaskElapseditem,\r\n ) {\r\n }\r\n\r\n getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n const param: iBXRestParamElapseditemGet = {\r\n ORDER: {\r\n ID: 'DESC'\r\n },\r\n FILTER: {\r\n USER_ID: idsUsers,\r\n '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru'),\r\n '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru'),\r\n }\r\n }\r\n return this.BXRestNavvyElapseditem.getList(param)\r\n }\r\n\r\n getListByIDTask(ids: number[]) {\r\n return this.http.branch<iBXRestParamElapseditemGet, iBXRestTaskElapsedItemHttp[]>\r\n (\r\n ids.map(i => {\r\n return {\r\n name: this.http.getNameMethod([$task, $elapseditem, $getlist]),\r\n param: {\r\n TASKID: i\r\n }\r\n }\r\n })\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n return this.http.mapBranchResultWithoutKey(v).map(\r\n i => this.BXRestMapElapseditem.getList(i)\r\n )\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestHttpTask, iBXRestTask } from '../../typification/rest/task/task'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestParamTasksListHttp } from '../../typification/rest/tasks/task/list'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasksTask extends BaseMapServices{\r\n getaccess(v: iBXRestTaskGetAccess | undefined){\r\n return (v && v.allowedActions) ? v.allowedActions : undefined\r\n }\r\n\r\n add(item: { task: iBXRestHttpTask } | undefined): iBXRestTask | undefined {\r\n return (item) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n get(item: {task: iBXRestHttpTask | undefined } | undefined ): iBXRestTask | undefined {\r\n return (item && item.task) ? this.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n list(item: iBXRestParamTasksListHttp | undefined): iBXRestTask[] | undefined{\r\n return (item && item.tasks) ? item.tasks.map( i => this.TaskBXHttpToTaskBX(i)) : undefined\r\n }\r\n\r\n private TaskBXHttpToTaskBX(item: iBXRestHttpTask): iBXRestTask {\r\n let result: iBXRestTask = {}\r\n if(item.id) { result.id = this.toNum(item.id) }\r\n if(item.parentId) { result.parentId = this.toNum(item.parentId) }\r\n if(item.priority) { result.priority = this.toNum(item.priority) }\r\n if(item.status) { result.status = this.toNum(item.status) }\r\n if(item.multitask) { result.multitask = item.multitask === 'Y' }\r\n if(item.groupId) { result.groupId = this.toNum(item.groupId) }\r\n if(item.stageId) { result.stageId = this.toNum(item.stageId) }\r\n if(item.createdBy) { result.createdBy = this.toNum(item.createdBy) }\r\n if(item.createdDate) { result.createdDate = this.toDate(item.createdDate) }\r\n if(item.responsibleId) { result.responsibleId = this.toNum(item.responsibleId) }\r\n if(item.changedBy) { result.changedBy = this.toNum(item.changedBy) }\r\n if(item.changedDate) { result.changedDate = this.toDate(item.changedDate) }\r\n if(item.statusChangedBy) { result.statusChangedBy = this.toNum(item.statusChangedBy) }\r\n if(item.statusChangedDate) { result.statusChangedDate = this.toDate(item.statusChangedDate) }\r\n if(item.closedBy) { result.closedBy = this.toNum(item.closedBy) }\r\n if(item.closedDate) { result.closedDate = this.toDate(item.closedDate) }\r\n if(item.dateStart) { result.dateStart = this.toDate(item.dateStart) }\r\n if(item.deadline) { result.deadline = this.toDate(item.deadline) }\r\n if(item.startDatePlan) { result.startDatePlan = this.toDate(item.startDatePlan) }\r\n if(item.endDatePlan) { result.endDatePlan = this.toDate(item.endDatePlan) }\r\n if(item.forumTopicId) { result.forumTopicId = this.toNum(item.forumTopicId) }\r\n if(item.forumId) { result.forumId = this.toNum(item.forumId) }\r\n if(item.viewedDate) { result.viewedDate = this.toDate(item.viewedDate) }\r\n if(item.sorting) { result.sorting = this.toNum(item.sorting) }\r\n if(item.durationPlan) { result.durationPlan = this.toNum(item.durationPlan) }\r\n if(item.descriptionInBbcode) { result.descriptionInBbcode = item.descriptionInBbcode === 'Y' }\r\n if(item.accomplices) { result.accomplices = item.accomplices.map(i =>this.toNum(i)) }\r\n if(item.subStatus) { result.subStatus = this.toNum(item.subStatus) }\r\n if(item.creator) { result.creator = Object.assign(item.creator, {id: this.toNum(item.creator.id)}) }\r\n if(item.responsible) { result.responsible = Object.assign(item.responsible, {id: this.toNum(item.responsible.id)}) }\r\n if(item.accomplicesData) {\r\n result.accomplicesData =\r\n Object.values(item.accomplicesData).map(i => Object.assign(i, {id: this.toNum(i.id)})) }\r\n if(item.allowTimeTracking) { result.allowTimeTracking = item.allowTimeTracking === 'Y' }\r\n\r\n return Object.assign(item, result)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestTasksTask } from '../../request/tasks/task'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/task/base/fieldsName'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport iBXRestParamTaskGet from '../../typification/rest/tasks/task/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { BXRestMapTasksTask } from '../../map/tasks/task'\r\n\r\n// export interface TimeProcess {\r\n// total: number,\r\n// next: number\r\n// }\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTasksTask {\r\n\r\n // pageSize = 50\r\n // nowLoad$ = new ReplaySubject<TimeProcess>(1)\r\n\r\n def: { select: iBXRestTaskFieldsName[] } = {\r\n select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',\r\n 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',\r\n 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',\r\n 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',\r\n 'TAGS', 'ALLOW_TIME_TRACKING'\r\n ]\r\n }\r\n\r\n // storeTask$: Observable<iStoreTask>\r\n Navvy: Navvy<BXRestTasksTask, BXRestMapTasksTask>\r\n\r\n constructor(\r\n private BXRestTasksTask: BXRestTasksTask,\r\n // private snackBar: SnackBarService,\r\n // private store: Store<{ tasks: IStoreTask }>,\r\n private BXRestMapTasksTask: BXRestMapTasksTask,\r\n\r\n // private taskResultMap: BitrixApiTaskResultMapServices\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestTasksTask, this.BXRestMapTasksTask)\r\n // this.storeTask$ = this.store.select('tasks')\r\n // this.nowLoad$.next({\r\n // total: 0,\r\n // next: 0\r\n // })\r\n }\r\n\r\n add(param: { fields: iBXRestParamTaskAdd }) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestTasksTask.add,\r\n param,\r\n 'Не удалось добавить задачу',\r\n this.BXRestMapTasksTask.add\r\n )\r\n // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(\r\n // map(v => {\r\n // if (v && v.result && v.result.task) {\r\n // return Object.assign(\r\n // v,\r\n // {\r\n // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)\r\n // })\r\n // }\r\n // return undefined\r\n // }\r\n // ))\r\n }\r\n\r\n /*\r\n update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {\r\n let sendTask: Record<string, any> = {}\r\n let taskTS: Record<string, any> = task\r\n if (updateFields.length) {\r\n for (let updateField of updateFields) {\r\n if (taskTS[camelCase(updateField)]) {\r\n sendTask[updateField] = taskTS[camelCase(updateField)]\r\n }\r\n }\r\n if (Object.values(sendTask).length) {\r\n return this.http.post(\r\n this.url.update,\r\n {taskId: taskId, fields: sendTask},\r\n 'error to update task')\r\n } else {\r\n this.snackBar.error('not valid send data task')\r\n console.error('not valid send data task', sendTask, task)\r\n return of(undefined)\r\n }\r\n }\r\n\r\n this.snackBar.warning('not have field for update')\r\n return of(undefined)\r\n }\r\n */\r\n\r\n get(param: iBXRestParamTaskGet) {\r\n if (!param.select) {\r\n param.select = this.def.select\r\n }\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestTasksTask.get,\r\n param,\r\n 'Не удалось получить задачу',\r\n this.BXRestMapTasksTask.get\r\n )\r\n }\r\n\r\n\r\n list(param: iBXRestParamTasksList = {}) {\r\n if (!param.select) {\r\n param.select = this.def.select\r\n }\r\n return this.Navvy.PagNavTasks(\r\n this.BXRestTasksTask.list,\r\n param,\r\n 'Не удалось получить список задач',\r\n this.BXRestMapTasksTask.list\r\n )\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n\r\n getFields() {\r\n return this.storeTask$.pipe(\r\n mergeMap(v => {\r\n if (v && !v.data.fields) {\r\n return this.http.post<iHttpAnswerBX<{ fields: iGetFieldsDescription }>>(this.url.getFields).pipe(\r\n tap(v => {\r\n if (v && v.result) {\r\n this.store.dispatch(saveFields(v.result))\r\n }\r\n }),\r\n map(v => {\r\n if (v && v.result && v.result.fields) {\r\n return {result: v.result.fields}\r\n }\r\n\r\n return undefined\r\n })\r\n )\r\n }\r\n if (v.data.fields) {\r\n return of({result: clone<iGetFieldsDescription>(v.data.fields)})\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n\r\n deleteResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<any>>(this.url.result.deleteFromComment, {commentId: commentID})\r\n }\r\n\r\n addResultFromComment(commentID: number) {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp>>(this.url.result.addFromComment, {commentId: commentID})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n this.taskResultMap.iTaskResultHttpToiTaskResult(v.result)\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getResulList(taskId: number): Observable<iTaskResult[] | undefined> {\r\n return this.http.post<iHttpAnswerBX<iTaskResultHttp[]>>(this.url.result.list, {taskId: taskId})\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n return v.result.map(i => this.taskResultMap.iTaskResultHttpToiTaskResult(i))\r\n }\r\n return undefined\r\n }))\r\n }\r\n\r\n getPlannerList() {\r\n return this.http.post<iHttpAnswerBX<(string | number)[]>>(this.url.planner.getlist)\r\n }\r\n */\r\n\r\n getaccess(param: iBXRestParamTaskGetAccess) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestTasksTask.getaccess,\r\n param,\r\n 'Не удалось получить права на указанных пользователей',\r\n this.BXRestMapTasksTask.getaccess\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyTasksTask } from './tasks/task'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTasks {\r\n\r\n constructor(public task: BXRestNavvyTasksTask) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskElapsedItem, iBXRestTaskElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskElapseditem extends BaseMapServices {\r\n update(p: null) {\r\n return (p == null)\r\n }\r\n\r\n getList(v: iBXRestTaskElapsedItemHttp[] | undefined) {\r\n return (v) ? v.map(i => this.ElapsedItemHttpToElapsedItem(i)) : undefined\r\n }\r\n\r\n ElapsedItemHttpToElapsedItem(item: iBXRestTaskElapsedItemHttp): iBXRestTaskElapsedItem {\r\n return Object.assign(item, {\r\n ID: this.toNum(item.ID),\r\n MINUTES: this.toNum(item.MINUTES),\r\n SECONDS: this.toNum(item.SECONDS),\r\n TASK_ID: this.toNum(item.TASK_ID),\r\n USER_ID: this.toNum(item.USER_ID),\r\n SOURCE: this.toNum(item.SOURCE),\r\n CREATED_DATE: this.toDate(item.CREATED_DATE),\r\n DATE_START: this.toDate(item.DATE_START),\r\n DATE_STOP: this.toDate(item.DATE_STOP),\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { map } from 'rxjs/operators'\r\nimport { mergeMap, of, tap, throwError } from 'rxjs'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { BXRestElapseditem } from '../../request/task/elapseditem'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { Permission } from '../../services/permission'\r\nimport { BXRestNavvyUser } from '../user'\r\nimport { BXRestNavvyTasks } from '../tasks'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskElapseditem } from '../../map/task/elapseditem'\r\nimport { BXRestNavvyOperationElapseditem } from './operation/elapseditem'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyElapseditem {\r\n private Navvy: Navvy<BXRestElapseditem, BXRestMapTaskElapseditem>\r\n public operation: BXRestNavvyOperationElapseditem\r\n\r\n constructor(\r\n private BXRestElapseditem: BXRestElapseditem,\r\n private BXRestNavvyUser: BXRestNavvyUser,\r\n private BXRestNavvyTasks: BXRestNavvyTasks,\r\n private BXRestMapElapseditem: BXRestMapTaskElapseditem,\r\n private http: HttpBXServices,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem)\r\n this.operation = new BXRestNavvyOperationElapseditem(this.http, this, this.BXRestMapElapseditem)\r\n }\r\n\r\n /*\r\n call(methodName: string, ...args: any[]){\r\n if (typeof this[methodName] === 'function') {\r\n return this[methodName](...args);\r\n }\r\n return this[methodName](...args);\r\n }\r\n */\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n if (param) {\r\n if (!param.TASKID && !param.SELECT) {\r\n param.SELECT = ['*']\r\n }\r\n if (!param.TASKID && !param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: 50,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n return this.Navvy.alterPagNav(\r\n this.BXRestElapseditem.getList,\r\n param,\r\n 'Не удалось получить список затраченного на задачу(-и) времени',\r\n this.BXRestMapElapseditem.getList\r\n )\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.checkPermissionAddTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.add(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n }))\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.update(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })), 'Не удалось обновить элемент списка', this.BXRestMapElapseditem.update)\r\n }\r\n\r\n /*\r\n getAll(\r\n params: RequestParamsElapsedGetList | undefined = undefined,\r\n cache = false\r\n ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {\r\n return this.get(params, cache)\r\n .pipe(\r\n mergeMap(items => {\r\n if (items && items.result) {\r\n if (items.next) {\r\n params = (params) ? params : {}\r\n params.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: this.pageSize,\r\n iNumPage: items.next / this.pageSize + 1\r\n }\r\n }\r\n return this.getAll(params, cache).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n }\r\n return of(items)\r\n } else {\r\n return of(undefined)\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n /*\r\n getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {\r\n return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>\r\n (this.url.getlist, params, 'не удалось получить время по задачам')\r\n .pipe(\r\n map(v => {\r\n if (v && v.result) {\r\n const newResult: BXRestElapsed[] = []\r\n for (let task of v.result) {\r\n newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))\r\n }\r\n return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>\r\n }\r\n return undefined\r\n }),\r\n tap(v => {\r\n if (v && params) {\r\n this.store.dispatch(saveHttpTaskTime({\r\n filter: clone(params),\r\n time: v\r\n }))\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n isAllowedModify(idTask: number, idItem: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask) {\r\n let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n if (find && find.verified.edit) {\r\n return of(find.edit)\r\n }\r\n }\r\n }\r\n\r\n return this.isActionAllowed({\r\n TASKID: idTask,\r\n ITEMID: 2,\r\n ACTIONID: idItem\r\n }).result().pipe(\r\n tap(v => {\r\n if (v !== undefined) {\r\n Permission.setTaskElapsedItem(idTask,\r\n {\r\n id: idItem,\r\n edit: v,\r\n del: false,\r\n verified: {\r\n edit: true,\r\n del: false,\r\n }\r\n })\r\n }\r\n })\r\n )\r\n }\r\n\r\n private isAllowedRemove(idTask: number, idItem: number) {\r\n return this.isActionAllowed(\r\n {\r\n TASKID: idTask,\r\n ITEMID: 3,\r\n ACTIONID: idItem\r\n }).result()\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n return this.BXRestElapseditem.isActionAllowed(param)\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n })\r\n ))\r\n }\r\n\r\n checkPermissionAddTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n private checkPermissionReadTask(idTask: number) {\r\n let permission = Permission.get()\r\n if (permission?.tasks?.length) {\r\n let findTask = permission.tasks.find(i => i.id === idTask)\r\n if (findTask?.permission) {\r\n return of(findTask.permission.ACCEPT)\r\n }\r\n return this.BXRestNavvyUser.current().result().pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getaccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).result().pipe(\r\n tap(v => {\r\n if (v && v[self.ID]) {\r\n Permission.set({\r\n tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n })\r\n }\r\n }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID].ACCEPT : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n return of(undefined)\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.Navvy.simple( () => this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestElapseditem.del(param)\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })\r\n ), 'Не удалось удалить элемент списка', v => (v === null))\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyElapseditem } from './task/elapseditem'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyTask {\r\n\r\n constructor(\r\n public elapseditem: BXRestNavvyElapseditem,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileAndFolderMap } from '../../typification/rest/disk/map';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskBase extends BaseMapServices {\r\n\r\n separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestFileHttp)[]){\r\n let result: iBXRestFileAndFolderMap = {file: [], folder: []}\r\n for (let i of arr) {\r\n if (this.instanceOfiFile(i)) {\r\n result.file.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n SIZE: this.toNum(i.SIZE),\r\n }\r\n )\r\n )\r\n } else if (this.instanceOfiFolder(i)) {\r\n result.folder.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: this.toNum(i.CREATED_BY),\r\n CREATE_TIME: this.toDate(i.CREATE_TIME),\r\n DELETED_BY: this.toNum(i.DELETED_BY),\r\n DELETED_TYPE: this.toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,\r\n ID: this.toNum(i.ID),\r\n PARENT_ID: this.toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: this.toNum(i.STORAGE_ID),\r\n UPDATED_BY: this.toNum(i.UPDATED_BY),\r\n UPDATE_TIME: this.toDate(i.UPDATE_TIME),\r\n }\r\n )\r\n )\r\n }\r\n }\r\n return result\r\n }\r\n\r\n instanceOfiFile(object: any): object is iBXRestFile {\r\n return object && object.TYPE && object.TYPE === 'file'\r\n }\r\n\r\n instanceOfiFolder(object: any): object is iBXRestFolder {\r\n return object && object.TYPE && object.TYPE === 'folder'\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport BXRestMapDiskBase from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n getContent(arr: (iBXRestFolderHttp | iBXRestFileHttp)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskFolder from '../../map/disk/folder'\r\nimport { BXRestDiskFolder } from '../../request/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFolder {\r\n\r\n private Navvy: Navvy<BXRestDiskFolder, BXRestMapDiskFolder>\r\n\r\n constructor(\r\n private BXRestDiskFolder: BXRestDiskFolder,\r\n private BXRestMapDiskFolder: BXRestMapDiskFolder,\r\n // private diskFileBaseMap: diskFileBaseMapServices\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFolder, this.BXRestMapDiskFolder)\r\n }\r\n\r\n // uploadfile(id: number, fileContent: string[]) {\r\n // return this.httpPost(\r\n // this.url.uploadfile,\r\n // {\r\n // id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки\r\n // fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])\r\n // data: {\r\n // NAME: fileContent[0]\r\n // } // Обязательное поле NAME - имя нового файла\r\n // // generateUniqueName\tНеобязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.\r\n // // rights\tНеобязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.\r\n // }\r\n // )\r\n // }\r\n\r\n getchildren(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFolder.getchildren,\r\n id,\r\n 'get folders and files',\r\n this.BXRestMapDiskFolder.getContent\r\n )\r\n }\r\n\r\n}\r\n","import { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapDiskFile extends BaseMapServices {\r\n\r\n get(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n\r\n markdeleted(v: iBXRestFileHttp | undefined){\r\n return (v) ? Object.assign(v, {SIZE: this.toNum(v.SIZE)}) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskFile } from '../../request/disk/file'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskFile {\r\n\r\n private Navvy: Navvy<BXRestDiskFile, BXRestMapDiskFile>\r\n\r\n constructor(\r\n private BXRestDiskFile: BXRestDiskFile,\r\n private BXRestMapDiskFile: BXRestMapDiskFile,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskFile, this.BXRestMapDiskFile)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.get,\r\n id,\r\n 'Не удалось получить файл',\r\n this.BXRestMapDiskFile.get\r\n )\r\n }\r\n\r\n markdeleted(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskFile.markdeleted,\r\n id,\r\n 'Не удалось переместить файл в корзину',\r\n this.BXRestMapDiskFile.markdeleted\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestFileHttp } from '../../typification/rest/disk/file'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n\r\n getchildren(arr: (iBXRestFolderHttp | iBXRestFileHttp)[] | undefined){\r\n return (arr) ? this.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-metods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestFile, iBXRestFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestDiskStorage {\r\n url = {\r\n getfields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getlist: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n gettypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addfolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getchildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadfile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getforapp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n constructor(\r\n private http: HttpBXServices,\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getforapp, {}\r\n )\r\n }\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestFileHttp)[]>(\r\n this.url.getchildren,\r\n param\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<any>(this.url.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestFile>(this.url.uploadfile, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskStorage } from '../../../request/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../../typification/rest/disk/storage/getchildren'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../../typification/rest/disk/folder'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyInterlayerDiskStorage {\r\n\r\n constructor(\r\n private BXRestDiskStorage: BXRestDiskStorage\r\n ) {\r\n }\r\n\r\n getforapp() {\r\n let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getforapp.name)\r\n if (res) {\r\n return of(res)\r\n } else {\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n }),\r\n shareReplay(1)\r\n )\r\n }\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.BXRestDiskStorage.getchildren(param)\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addfolder(param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadfile(param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport BXRestMapDiskStorage from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\nimport { BXRestNavvyInterlayerDiskStorage } from './interlayer/storage'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n private Navvy: Navvy<BXRestNavvyInterlayerDiskStorage, BXRestMapDiskStorage>\r\n\r\n constructor(\r\n private BXRestNavvyInterlayerDiskStorage: BXRestNavvyInterlayerDiskStorage,\r\n private BXRestMapDiskStorage: BXRestMapDiskStorage,\r\n // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestNavvyInterlayerDiskStorage, this.BXRestMapDiskStorage)\r\n // this.BXDiskFolder$ = this.store.select('BXDiskFolder')\r\n }\r\n\r\n getforapp() {\r\n // console.log('this.getforappEnd', this.getforappEnd)\r\n return this.Navvy.simple(this.BXRestNavvyInterlayerDiskStorage.getforapp, 'get root app folder')\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getchildren(param: iBXRestParamGetchildren) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestNavvyInterlayerDiskStorage.getchildren,\r\n param,\r\n 'get root app folders and files',\r\n this.BXRestMapDiskStorage.getchildren\r\n )\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addfolder(param: { id: number, data: { NAME: string } }) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.addfolder, param)\r\n }\r\n\r\n uploadfile(param: iBXRestParamUploadFile) {\r\n return this.Navvy.simpleWithArg(this.BXRestNavvyInterlayerDiskStorage.uploadfile, param)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n constructor(\r\n public folder: BXRestNavvyDiskFolder,\r\n public disk: BXRestNavvyDiskFile,\r\n private storage: BXRestNavvyDiskStorage,\r\n ) {\r\n }\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: {\r\n name: string,\r\n val: string\r\n }) {\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadfile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).result()\r\n }\r\n return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getchildren(v.ID).mapForVanilla()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n\r\n\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getchildren({id: v.ID}).result()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n\r\n // }\r\n // )\r\n // )\r\n }\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of({result: find})\r\n }\r\n }\r\n }\r\n return this.storage.getforapp().result().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addfolder({id: v.ID, data: {NAME: folderName}}).result()\r\n }\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport BXRestMapDiskBase from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport default class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n return (v) ? this.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n }\r\n\r\n private iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n return Object.assign(v, {\r\n ID: this.toNum(v.ID),\r\n OBJECT_ID: this.toNum(v.OBJECT_ID),\r\n ENTITY_ID: this.toNum(v.ENTITY_ID),\r\n CREATE_TIME: this.toDate(v.CREATE_TIME),\r\n CREATED_BY: this.toNum(v.CREATED_BY),\r\n SIZE: this.toNum(v.SIZE)\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestDiskAttachedObject } from '../../request/disk/attachedObject'\r\nimport BXRestMapDiskAttachedObject from '../../map/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDiskAttachedObject {\r\n private Navvy: Navvy<BXRestDiskAttachedObject, BXRestMapDiskAttachedObject>\r\n\r\n constructor(\r\n private BXRestDiskAttachedObject: BXRestDiskAttachedObject,\r\n private mapAttachedObject: BXRestMapDiskAttachedObject,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestDiskAttachedObject, this.mapAttachedObject)\r\n }\r\n\r\n get(id: number) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestDiskAttachedObject.get, id,\r\n 'Не удалось получить прикрепленные файлы',\r\n this.mapAttachedObject.get)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyDisk {\r\n constructor(\r\n public operation: BXRestNavvyDiskOperation,\r\n public file: BXRestNavvyDiskFile,\r\n public folder: BXRestNavvyDiskFolder,\r\n public attachedObject: BXRestNavvyDiskAttachedObject\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizprocWorkflow } from '../../request/bizproc/workflow'\r\nimport { Navvy } from '../../services/navvy'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizprocWorkflow {\r\n private Navvy: Navvy<BXRestBizprocWorkflow, undefined>\r\n\r\n constructor(\r\n private BXRestBizprocWorkflow: BXRestBizprocWorkflow,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestBizprocWorkflow, undefined)\r\n }\r\n\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestBizprocWorkflow.start, param,\r\n 'Не удалось запустить бизнес процесс'\r\n )\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBizprocWorkflow } from './bizproc/workflow'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyBizproc {\r\n\r\n constructor(\r\n public workflow: BXRestNavvyBizprocWorkflow,\r\n private BXRestNavvyLists: BXRestNavvyLists\r\n ) {\r\n }\r\n\r\n /**\r\n * Метод по запуску бизнес процессов из ленты\r\n * TODO: продумать работу с такими методами-исключениями\r\n *\r\n * @param id\r\n * @param parametersElement\r\n * @param parametersBizproc\r\n * @param templateIDs\r\n */\r\n startProcFormNewsFeed(\r\n id: number,\r\n parametersElement: { [key: string]: string },\r\n parametersBizproc: { [key: string]: string },\r\n templateIDs: number[]\r\n ) {\r\n return this.BXRestNavvyLists.element.add(\r\n {\r\n IBLOCK_TYPE_ID: 'bitrix_processes',\r\n IBLOCK_ID: id,\r\n ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n // как ещё уникальнее сделать я просто не знаю\r\n // это поле обязательно без него не работает\r\n FIELDS: {\r\n NAME: parametersElement['NAME'],\r\n ...parametersElement\r\n }\r\n }\r\n ).result().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (Object.keys(parametersBizproc).length) {\r\n let reques: Observable<string | undefined>[] = []\r\n for (let templateID of templateIDs) {\r\n reques.push(this.workflow.start(\r\n {\r\n TEMPLATE_ID: templateID,\r\n DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n PARAMETERS: parametersBizproc\r\n }).result())\r\n }\r\n return forkJoin(reques)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogpost, $delete, $get, $log, $share, $update } from '../../consts/part-name-metods'\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { BXRestLogBlogPost } from '../../request/log/blogpost'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogPost {\r\n url = {\r\n add: [$log, $blogpost, $add], // Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n get: [$log, $blogpost, $get], // Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n delete: [$log, $blogpost, $delete], // Удаляет сообщение Живой Ленты\r\n share: [$log, $blogpost, $share], // Добавляет получателей в сообщение Живой Ленты\r\n update: [$log, $blogpost, $update], // Изменяет сообщение Живой Ленты\r\n }\r\n\r\n private Navvy: Navvy<BXRestLogBlogPost, undefined>\r\n\r\n constructor(\r\n private BXRestLogBlogPost: BXRestLogBlogPost,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestLogBlogPost, undefined)\r\n }\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.simpleWithArg(this.BXRestLogBlogPost.get, param)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { $add, $blogcomment, $log } from '../../consts/part-name-metods'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyLog {\r\n\r\n constructor(\r\n public blogPost: BXRestNavvyLogBlogPost,\r\n public blogComment: BXRestNavvyLogBlogComment\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from '../base'\r\nimport {\r\n iBXRestCalendarEventGetAnswer,\r\n iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/get/answer'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendarEvent extends BaseMapServices {\r\n\r\n get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined{\r\n return (item) ? item.map(i => this.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n }\r\n\r\n private CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n return {\r\n ...item,\r\n ID: this.toNum(item.ID),\r\n MEETING_HOST: this.toNum(item.MEETING_HOST),\r\n OWNER_ID: this.toNum(item.OWNER_ID),\r\n PARENT_ID: this.toNum(item.PARENT_ID),\r\n RECURRENCE_ID: this.toNum(item.RECURRENCE_ID),\r\n SECT_ID: this.toNum(item.SECT_ID),\r\n SECTION_ID: this.toNum(item.SECTION_ID),\r\n TZ_OFFSET_FROM: this.toNum(item.TZ_OFFSET_FROM),\r\n TZ_OFFSET_TO: this.toNum(item.TZ_OFFSET_TO),\r\n VERSION: this.toNum(item.VERSION),\r\n DATE_CREATE: this.toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM: this.toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}),\r\n ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n ? this.toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n : null,\r\n DATE_TO: this.toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_TO}),\r\n TIMESTAMP_X: this.toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss', {zone: item.TZ_FROM}), // Возможно тут ненужно преобразование по часовому поясу (пометить есть нужно)\r\n DATE_FROM_TS_UTC: this.toNum(item.DATE_FROM_TS_UTC),\r\n DATE_TO_TS_UTC: this.toNum(item.DATE_TO_TS_UTC),\r\n DELETED: item.DELETED === 'Y',\r\n DT_LENGTH: this.toNum(item.DT_LENGTH),\r\n DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n EXDATE: item.EXDATE.split(';').map(dateStr => this.toDate(dateStr, 'dd.MM.yyyy')),\r\n RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n ...item.RRULE,\r\n UNTIL: this.toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n '~UNTIL': this.toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n } : null,\r\n ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n return {id: i.id, entryId: this.toNum(i.entryId), status: i.status}\r\n }) : []\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestCalendarEventGetParam } from '../../typification/rest/calendar/get/param'\r\nimport { BXRestCalendarEvent } from '../../request/calendar/event'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestRestCalendarEvent {\r\n private Navvy: Navvy<BXRestMapCalendarEvent, undefined>\r\n\r\n constructor(\r\n private BXRestCalendarEvent: BXRestCalendarEvent,\r\n private eventMap: BXRestMapCalendarEvent,\r\n ) {\r\n this.Navvy = new Navvy(this.eventMap, undefined)\r\n }\r\n\r\n get(param: iBXRestCalendarEventGetParam) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestCalendarEvent.get,\r\n param,\r\n 'Не удалось получить календарь',\r\n this.eventMap.get\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestRestCalendarEvent } from './calendar/event'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n section: {\r\n add: getNameMethod([$calendar, $section, $add]), // Добавляет новый календарь\r\n delete: getNameMethod([$calendar, $section, $delete]), // Удаляет календарь\r\n get: getNameMethod([$calendar, $section, $get]), // Возвращает список календарей\r\n update: getNameMethod([$calendar, $section, $update]) //Обновляет календарь\r\n },\r\n settings: {\r\n get: getNameMethod([$calendar, $settings, $get]), // Возвращает основные настройки календаря\r\n set: getNameMethod([$calendar, $user, $settings, $set]), // Сохраняет пользовательские настройки календаря\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n\r\n constructor(\r\n public event: BXRestRestCalendarEvent,\r\n ) {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\nimport { iBXRestParamSonet, iBXRestParamSonetHttp } from '../typification/rest/sonet_group/get'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapSonetGroup extends BaseMapServices {\r\n\r\n get(items: iBXRestParamSonetHttp[] | undefined ): iBXRestParamSonet[] | undefined {\r\n return (items) ? items.map(i => this.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n }\r\n\r\n private iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestParamSonetHttp): iBXRestParamSonet {\r\n return Object.assign(items,{\r\n ID: this.toNum(items.ID),\r\n DATE_CREATE: this.toDate(items.DATE_CREATE),\r\n DATE_UPDATE: this.toDate(items.DATE_UPDATE),\r\n ACTIVE: items.ACTIVE == 'Y',\r\n VISIBLE: items.VISIBLE == 'Y',\r\n OPENED: items.OPENED == 'Y',\r\n CLOSED: items.CLOSED == 'Y',\r\n SUBJECT_ID: this.toNum(items.SUBJECT_ID),\r\n OWNER_ID: this.toNum(items.OWNER_ID),\r\n NUMBER_OF_MEMBERS: this.toNum(items.OWNER_ID),\r\n DATE_ACTIVITY: this.toDate(items.DATE_ACTIVITY),\r\n PROJECT: items.OPENED == 'Y',\r\n IS_EXTRANET: items.OPENED == 'Y',\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group/get'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvySonetGroup {\r\n\r\n private Navvy: Navvy<BXRestSonetGroup, BXRestMapSonetGroup>\r\n\r\n constructor(\r\n private BXRestSonetGroup: BXRestSonetGroup,\r\n private mapSonetGroup: BXRestMapSonetGroup,\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestSonetGroup, this.mapSonetGroup)\r\n }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {\r\n filter: {},\r\n order: {}\r\n }) {\r\n return this.Navvy.simpleWithArg(\r\n this.BXRestSonetGroup.get, param,\r\n 'Не удалось получить рабочую группу',\r\n this.mapSonetGroup.get\r\n )\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core'\r\nimport { BaseMapServices } from './base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapServer extends BaseMapServices {\r\n time(v: string | undefined) {\r\n return (v) ? this.toDate(v) : undefined\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestServer } from '../request/server'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvyServer {\r\n\r\n protected Navvy: Navvy<BXRestServer, BXRestMapServer>\r\n\r\n constructor(\r\n private BXRestServer: BXRestServer,\r\n public BXRestMapServer: BXRestMapServer\r\n ) {\r\n this.Navvy = new Navvy(this.BXRestServer, BXRestMapServer)\r\n }\r\n\r\n time(){\r\n return this.Navvy.simple(\r\n this.BXRestServer.time,\r\n 'Не удалось получить время сервера',\r\n this.BXRestMapServer.time\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestUser } from './request/user'\r\nimport { BXRestLists } from './request/lists'\r\nimport { BXRestMapLists } from './map/lists'\r\nimport { BXRestTasks } from './request/tasks'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestBizproc } from './request/bizproc'\r\nimport { BXRestLog } from './request/log'\r\nimport { BXRestCalendar } from './request/calendar'\r\nimport { BXRestSonetGroup } from './request/sonet_group'\r\nimport { BXRestTask } from './request/task'\r\nimport { BXRestServer } from './request/server'\r\n// Navvy\r\nimport { BXRestNavvyLists } from './request-navvy/lists'\r\nimport { BXRestNavvyTasks } from './request-navvy/tasks'\r\nimport { BXRestNavvyUser } from './request-navvy/user'\r\nimport { BXRestNavvyDisk } from './request-navvy/disk'\r\nimport { BXRestNavvyBizproc } from './request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from './request-navvy/log'\r\nimport { BXRestNavvyCalendar } from './request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from './request-navvy/sonet_group'\r\nimport { BXRestNavvyTask } from './request-navvy/task'\r\nimport { BXRestNavvyServer } from './request-navvy/server'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRest {\r\n constructor(\r\n public user: BXRestUser,\r\n public lists: BXRestLists,\r\n public task: BXRestTask,\r\n public tasks: BXRestTasks,\r\n public disk: BXRestDisk,\r\n public bizproc: BXRestBizproc,\r\n public log: BXRestLog,\r\n public calendar: BXRestCalendar,\r\n public sonet_group: BXRestSonetGroup,\r\n public server: BXRestServer\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestNavvy {\r\n constructor(\r\n public user: BXRestNavvyUser,\r\n public lists: BXRestNavvyLists,\r\n public task: BXRestNavvyTask,\r\n public tasks: BXRestNavvyTasks,\r\n public disk: BXRestNavvyDisk,\r\n public bizproc: BXRestNavvyBizproc,\r\n public log: BXRestNavvyLog,\r\n public calendar: BXRestNavvyCalendar,\r\n public sonet_group: BXRestNavvySonetGroup,\r\n public server: BXRestNavvyServer\r\n ) {\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMap {\r\n constructor(\r\n public lists: BXRestMapLists\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","import { BXRestMapCalendarEvent } from './calendar/event'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapCalendar {\r\n constructor(public event: BXRestMapCalendarEvent) {\r\n }\r\n}\r\n","import { BaseMapServices } from '../base'\r\nimport { Injectable } from '@angular/core'\r\nimport { iBXRestBlogPost, iBXRestBlogPostHttp } from '../../typification/rest/log/blogpost/get'\r\nimport { iBXRestBlogPostEssence, iBXRestBlogPostEssenceHttp } from '../../typification/rest/log/blogpost/essence'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLogBlogPost extends BaseMapServices {\r\n\r\n get(item: iBXRestBlogPostHttp[] | undefined): iBXRestBlogPost[] | undefined {\r\n return (item) ? item.map(i => this.iBlogPostBXHttpToiBlogPostBX(i)) : undefined\r\n }\r\n\r\n private iBlogPostBXHttpToiBlogPostBX(item: iBXRestBlogPostHttp): iBXRestBlogPost {\r\n return {\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n BLOG_ID: this.toNum(item.BLOG_ID),\r\n CATEGORY_ID: this.toNum(item.CATEGORY_ID),\r\n DATE_PUBLISH: this.toDate(item.DATE_PUBLISH),\r\n ENABLE_COMMENTS: item.ENABLE_COMMENTS === 'Y',\r\n HAS_COMMENT_IMAGES: item.HAS_COMMENT_IMAGES === 'Y',\r\n HAS_SOCNET_ALL: item.HAS_SOCNET_ALL === 'Y',\r\n HAS_IMAGES: item.HAS_IMAGES === 'Y',\r\n HAS_PROPS: item.HAS_PROPS === 'Y',\r\n HAS_TAGS: item.HAS_TAGS === 'Y',\r\n TITLE: item.TITLE,\r\n ID: this.toNum(item.ID),\r\n MICRO: item.MICRO === 'Y',\r\n PUBLISH_STATUS: item.PUBLISH_STATUS,\r\n NUM_COMMENTS: this.toNum(item.NUM_COMMENTS),\r\n UF_ANSWER_ID: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ANSWER_ID),\r\n UF_BLOG_POST_DOC: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_DOC),\r\n UF_BLOG_POST_FILE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_FILE),\r\n UF_BLOG_POST_F_EDIT: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_F_EDIT),\r\n UF_BLOG_POST_IMPRTNT: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_IMPRTNT),\r\n UF_BLOG_POST_URL_PRV: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_URL_PRV),\r\n UF_BLOG_POST_VOTE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_VOTE),\r\n UF_CATEGORY_CODE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_CATEGORY_CODE),\r\n UF_GRATITUDE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_GRATITUDE),\r\n UF_IMPRTANT_DATE_END: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_IMPRTANT_DATE_END),\r\n UF_MAIL_MESSAGE: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_MAIL_MESSAGE),\r\n UF_ORIGINAL_ID: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ORIGINAL_ID),\r\n UF_STATUS: this.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_STATUS),\r\n CODE: item.CODE,\r\n DETAIL_TEXT: item.DETAIL_TEXT,\r\n FILES: (item.FILES) ? item.FILES.map(i => this.toNum(i)) : []\r\n }\r\n }\r\n\r\n private iBlogPostEssenceHttpToiBlogPostEssence(item: iBXRestBlogPostEssenceHttp | undefined): iBXRestBlogPostEssence | undefined {\r\n if(item) {\r\n return {\r\n EDIT_IN_LIST: item.EDIT_IN_LIST === 'Y',\r\n ID: this.toNum(item.ID),\r\n IS_SEARCHABLE: item.IS_SEARCHABLE === 'Y',\r\n MANDATORY: item.MANDATORY === 'Y',\r\n MULTIPLE: item.MULTIPLE === 'Y',\r\n SHOW_FILTER: item.SHOW_FILTER === 'Y',\r\n SHOW_IN_LIST: item.SHOW_IN_LIST === 'Y',\r\n SORT: this.toNum(item.SORT),\r\n EDIT_FORM_LABEL: item.EDIT_FORM_LABEL,\r\n ENTITY_ID: item.EDIT_FORM_LABEL,\r\n ENTITY_VALUE_ID: this.toNum(item.ENTITY_VALUE_ID),\r\n ERROR_MESSAGE: item.ERROR_MESSAGE,\r\n FIELD_NAME: item.FIELD_NAME,\r\n HELP_MESSAGE: item.HELP_MESSAGE,\r\n LIST_COLUMN_LABEL: item.HELP_MESSAGE,\r\n LIST_FILTER_LABEL: item.LIST_FILTER_LABEL,\r\n SETTINGS: item.SETTINGS,\r\n USER_TYPE: item.USER_TYPE,\r\n USER_TYPE_ID: item.USER_TYPE_ID,\r\n VALUE: item.SHOW_IN_LIST === 'Y',\r\n XML_ID: item.XML_ID // ??\r\n }\r\n } else {\r\n return undefined\r\n }\r\n }\r\n}\r\n","import { BXRestMapLogBlogPost } from './log/blogpost'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapLog {\r\n constructor(\r\n public blogpost: BXRestMapLogBlogPost\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskCommentItem extends BaseMapServices {\r\n\r\n getlist(value: iBXRestTaskCommentHtml[] | undefined): iBXRestTaskComment[] | undefined {\r\n return value ? value.map(i => this.iCommentTaskHtmlToiCommentTask(i)) : undefined\r\n }\r\n\r\n get(value: iBXRestTaskCommentHtml | undefined): iBXRestTaskComment | undefined {\r\n return value ? this.iCommentTaskHtmlToiCommentTask(value) : undefined\r\n }\r\n\r\n private iCommentTaskHtmlToiCommentTask(item: iBXRestTaskCommentHtml): iBXRestTaskComment {\r\n if (item.ATTACHED_OBJECTS) {\r\n return {\r\n ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {\r\n return {\r\n ATTACHMENT_ID: this.toNum(i.ATTACHMENT_ID),\r\n FILE_ID: this.toNum(i.FILE_ID),\r\n SIZE: this.toNum(i.SIZE),\r\n DOWNLOAD_URL: i.DOWNLOAD_URL,\r\n NAME: i.NAME,\r\n VIEW_URL: i.VIEW_URL\r\n }\r\n }),\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n ID: this.toNum(item.ID),\r\n POST_DATE: this.toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n } else {\r\n return {\r\n AUTHOR_ID: this.toNum(item.AUTHOR_ID),\r\n ID: this.toNum(item.ID),\r\n POST_DATE: this.toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\n// import { iTaskResult, iTaskResultHttp } from '@/lib/typification/bitrix/api/rest/task/result/result'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskResult extends BaseMapServices {\r\n // iTaskResultHttpToiTaskResult(item: iTaskResultHttp): iTaskResult {\r\n // return Object.assign(item, {\r\n // createdAt: this.toDate(item.createdAt),\r\n // updatedAt: this.toDate(item.updatedAt)\r\n // })\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { iBXRestTaskStage, iBXRestTaskStageHttp } from '../../typification/rest/task/stages/stage'\r\nimport { BaseMapServices } from '../base'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTaskStage extends BaseMapServices {\r\n\r\n get(value: iBXRestTaskStageHttp[] | undefined) : iBXRestTaskStage[] | undefined{\r\n return (value) ? value.map(i => Object.assign(i,\r\n {\r\n SORT: this.toNum(i.SORT),\r\n ID: this.toNum(i.ID),\r\n ENTITY_ID: this.toNum(i.ENTITY_ID)\r\n }\r\n )\r\n ) as iBXRestTaskStage[] : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskCommentItem } from './task/commentitem'\r\nimport { BXRestMapTaskElapseditem } from './task/elapseditem'\r\nimport { BXRestMapTaskStage } from './task/stages'\r\nimport { BXRestMapTaskResult } from './task/result'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTask {\r\n constructor(\r\n public commentItem: BXRestMapTaskCommentItem,\r\n public elapsedItem: BXRestMapTaskElapseditem,\r\n public result: BXRestMapTaskResult,\r\n public stages: BXRestMapTaskStage\r\n ) {\r\n }\r\n}\r\n","import { BXRestMapTasksTask } from './tasks/task'\r\nimport { Injectable } from '@angular/core'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BXRestMapTasks {\r\n constructor(\r\n public task: BXRestMapTasksTask\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BXRestMapUser } from './map/user'\r\nimport { BXRestMapSonetGroup } from './map/sonet_group'\r\nimport { BXRestMapServer } from './map/server'\r\nimport { BXRestMapLists } from './map/lists'\r\nimport { BXRestDisk } from './request/disk'\r\nimport { BXRestMapCalendar } from './map/calendar'\r\nimport { BXRestMapLog } from './map/log'\r\nimport { BXRestMapTask } from './map/task'\r\nimport { BXRestMapTasks } from './map/tasks'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Map {\r\n constructor(\r\n public user: BXRestMapUser,\r\n public sonet_group: BXRestMapSonetGroup,\r\n public server: BXRestMapServer,\r\n public lists: BXRestMapLists,\r\n public disk: BXRestDisk,\r\n public calendar: BXRestMapCalendar,\r\n public log: BXRestMapLog,\r\n public task: BXRestMapTask,\r\n public tasks: BXRestMapTasks,\r\n ) {\r\n }\r\n}\r\n","/*\r\n * Public API Surface of bx-rest\r\n */\r\nexport { BX_REST_SETTINGS } from './settings';\r\nexport { BXRestMapResult } from './functions/mapResult'\r\nexport { BXRest, BXRestNavvy, BXRestMap } from './rest'\r\nexport { Navvy } from './services/navvy'\r\nexport { Map as BXMap } from './map'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","JSON","Cookies","LocalStorage","i1.RestServices","i1.HttpBXServices","i2.BXRestUserUserfield","i2.HttpBXServices","i1.BXRestElapseditem","i1.BXRestTasksTask","i1.BXRestDiskFile","i2.BXRestDiskFolder","i3.BXRestDiskAttachedObject","i1.BXRestBizprocWorkflowInstance","i2.BXRestBizprocWorkflowTemplate","i3.HttpBXServices","i1.BXRestBizprocWorkflow","i2.BXRestBizprocActivity","i3.BXRestBizprocTask","i4.BXRestBizprocRobot","i5.BXRestBizprocEvent","i1.BXRestLogBlogPost","i2.BXRestLogBlogComment","i1.BXRestCalendarEvent","i1.BXRestUserUserfield","i1.BXRestMapUser","i2.BXRestUser","i3.BXRestNavvyUserUserfield","i1.BXRestMapListsField","BXRestListsElementMap","i2.BXRestMapLists","i3.BXRestLists","i2.BXRestMapTasksTask","i1.BXRestNavvyTasksTask","i2.BXRestNavvyUser","i3.BXRestNavvyTasks","i4.BXRestMapTaskElapseditem","i5.HttpBXServices","i1.BXRestNavvyElapseditem","i2.BXRestMapDiskFile","i1.BXRestDiskStorage","mergeMap","i1.BXRestNavvyDiskFolder","i2.BXRestNavvyDiskFile","i3.BXRestNavvyDiskStorage","i1.BXRestNavvyDiskOperation","i3.BXRestNavvyDiskFolder","i4.BXRestNavvyDiskAttachedObject","i1.BXRestNavvyBizprocWorkflow","i2.BXRestNavvyLists","i1.BXRestNavvyLogBlogPost","i2.BXRestNavvyLogBlogComment","i2.BXRestMapCalendarEvent","i1.BXRestRestCalendarEvent","i1.BXRestSonetGroup","i2.BXRestMapSonetGroup","i1.BXRestServer","i2.BXRestMapServer","i1.BXRestUser","i2.BXRestLists","i3.BXRestTask","i4.BXRestTasks","i5.BXRestDisk","i6.BXRestBizproc","i7.BXRestLog","i8.BXRestCalendar","i9.BXRestSonetGroup","i10.BXRestServer","i11.BXRestNavvyUser","i12.BXRestNavvyLists","i13.BXRestNavvyTask","i14.BXRestNavvyTasks","i15.BXRestNavvyDisk","i16.BXRestNavvyBizproc","i17.BXRestNavvyLog","i18.BXRestNavvyCalendar","i19.BXRestNavvySonetGroup","i20.BXRestNavvyServer","i21.BXRestMapLists","i1.BXRestMapCalendarEvent","i1.BXRestMapLogBlogPost","i1.BXRestMapTaskCommentItem","i2.BXRestMapTaskElapseditem","i3.BXRestMapTaskResult","i4.BXRestMapTaskStage","i1.BXRestMapTasksTask","i3.BXRestMapServer","i4.BXRestMapLists","i6.BXRestMapCalendar","i7.BXRestMapLog","i8.BXRestMapTask","i9.BXRestMapTasks","Map"],"mappings":"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"}