bx-rest 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Public API Surface of bx-rest
3
3
  */
4
- export * from './request/bx-rest.module';
4
+ // export * from './request/bx-rest.module'
5
5
  export * from './services/base';
6
6
  export * from './request/user/user';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYngtcmVzdFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcmVxdWVzdC9ieC1yZXN0Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYmFzZSdcbmV4cG9ydCAqIGZyb20gJy4vcmVxdWVzdC91c2VyL3VzZXInXG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCwyQ0FBMkM7QUFDM0MsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBieC1yZXN0XG4gKi9cblxuLy8gZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0L2J4LXJlc3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9iYXNlJ1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0L3VzZXIvdXNlcidcbiJdfQ==
@@ -260,4 +260,4 @@ export class BXRestUser {
260
260
  return this.http.get(this.url.admin).pipe(map(v => this.http.mapResult(v)));
261
261
  }
262
262
  }
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7QUFDOUIsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBTWxDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBYyxNQUFNLG1CQUFtQixDQUFBO0FBUWxHLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFLcEYsTUFBTSxPQUFPLFVBQVU7SUF1Qm5CLFlBQ1ksSUFBb0IsRUFDcEIsUUFBeUI7SUFDbEMsNEJBQTRCO0lBQzNCLCtCQUErQjtJQUN2QixLQUFtQyxFQUNuQyxPQUFpQyxFQUNqQyxRQUFrQjtRQU5sQixTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUd6QixVQUFLLEdBQUwsS0FBSyxDQUE4QjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUNqQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5QixRQUFHLEdBQUc7WUFDRixLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3ZCLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDbEIsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUs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SSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQTtTQUN2QjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO1NBQ3ZDO1FBRUQsSUFBSSxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEQsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFBO1NBQzlCO0lBQ0wsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3JGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25DLENBQUE7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXlCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuQyxDQUFBO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRha2UgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnXG5pbXBvcnQgeyBpQlhHZXRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvZ2V0J1xuaW1wb3J0IEh0dHBCWFNlcnZpY2VzIGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xuaW1wb3J0IFVzZXJGaWx0ZXJTZWFyY2ggZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci9Vc2VyRmlsdGVyU2VhcmNoJ1xuLy8gaW1wb3J0IEltZ1NlcnZpY2VzIGZyb20gJ2J4LXJlc3Qvc2VydmljZXMvYXBpL2JpdHJpeC9jdXN0b20vaW1nJ1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IGxvYWRBbGwsIHNhdmVBcnIsIHNhdmVJRExvYWRlZERlcGFydG1lbnQsIHNhdmVTZWxmLCBzdG9yZVVzZXJzIH0gZnJvbSAnLi4vLi4vc3RvcmUvdXNlcnMnXG5pbXBvcnQgeyBpQ3VzdG9tVXNlckZpZWxkSW5mbyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvQ3VzdG9tVXNlckZpZWxkSW5mbydcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQml0cml4QXBpVXNlck1hcFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFwL3Jlc3QvdXNlcidcbi8vIGltcG9ydCBEYXRlVHJhY2UgZnJvbSAnYngtcmVzdC9zZXJ2aWNlcy9hcGkvdHJhY2UvbWV0b2RzL2RhdGUnXG5pbXBvcnQgU25hY2tCYXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSdcbmltcG9ydCBpSHR0cEFuc3dlckJYIGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvaHR0cEFuc3dlckJYJ1xuaW1wb3J0IHsgaUJYUmVzdFVzZXIsIGlCWFJlc3RVc2VySHR0cCwgaUJYUmVzdFVzZXJIdHRwRmllbGQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXG5pbXBvcnQgeyAkZ2V0LCAkbGlzdCwgJHNlYXJjaCwgJHVwZGF0ZSwgJHVzZXIgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldG9kcydcbmltcG9ydCB7IFVzZXJGaWx0ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXJGaWx0ZXInXG5cblxuXG5leHBvcnQgY2xhc3MgQlhSZXN0VXNlciB7XG4gICAgdXJsID0ge1xuICAgICAgICBhZG1pbjogWyR1c2VyLCAnYWRtaW4nXSxcbiAgICAgICAgZ2V0OiBbJHVzZXIsICRnZXRdLFxuICAgICAgICBzZWxmOiBbJHVzZXIsICdjdXJyZW50J10sXG4gICAgICAgIHVwZGF0ZTogWyR1c2VyLCAkdXBkYXRlXSxcbiAgICAgICAgc2VhcmNoOiBbJHVzZXIsICRzZWFyY2hdLFxuICAgICAgICBhY2Nlc3M6IFskdXNlciwgJ2FjY2VzcyddLCAvLyBVMSAtINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRgSBpZCA9MVxuICAgICAgICAvLyBBVSAtINCy0YHQtSDQsNCy0YLQvtGA0LjQt9C+0LLQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuFxuICAgICAgICAvLyBEMSAtINC/0L7QtNGA0LDQt9C00LXQu9C10L3QuNC1INGBIGlkPTFcbiAgICAgICAgLy8gRzEgLSDQs9GA0YPQv9C/0LAg0YEgaWQ9MVxuICAgICAgICBmaWVsZHM6IFskdXNlciwgJ2ZpZWxkcyddLFxuICAgICAgICB1c2VyZmllbGQ6IHtcbiAgICAgICAgICAgIGxpc3Q6IFskdXNlciwgJ3VzZXJmaWVsZCcsICRsaXN0XVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVmOiB7IHBhcmFtczogeyBBQ1RJVkU6IDEsIHN0YXJ0OiAwIH0gfSA9IHtcbiAgICAgICAgcGFyYW1zOiB7QUNUSVZFOiAxLCBzdGFydDogMH1cbiAgICB9XG5cbiAgICB1c2VyJDogT2JzZXJ2YWJsZTxzdG9yZVVzZXJzPlxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXMsXG4gICAgICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAvLyBwcml2YXRlIGltZzogSW1nU2VydmljZXMsXG4gICAgICAgIC8vcHJpdmF0ZSBkYXRlVHJhY2U6IERhdGVUcmFjZSxcbiAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8eyB1c2Vyczogc3RvcmVVc2VycyB9PixcbiAgICAgICAgcHJpdmF0ZSB1c2VyTWFwOiBCaXRyaXhBcGlVc2VyTWFwU2VydmljZXMsXG4gICAgICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICAgKSB7XG4gICAgICAgIHRoaXMudXNlciQgPSB0aGlzLnN0b3JlLnNlbGVjdCgndXNlcnMnKVxuICAgIH1cblxuICAgIGdldChwYXJhbXM6IGlCWEdldFBhcmFtID0ge30pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGxldCBjb3B5UGFyYW1zID0gY2xvbmUocGFyYW1zKVxuICAgICAgICB0aGlzLnNldERlZlBhcmFtKGNvcHlQYXJhbXMpXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD5cbiAgICAgICAgKHRoaXMudXJsLmdldCwgY29weVBhcmFtcywgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuScpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmVBcnJVc2VyKHYucmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRPbmVQYWdlKHBhZ2U6IG51bWJlciA9IDEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHtzdGFydDogKHBhZ2UgLSAxKSAqIDUwfSkucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5odHRwLm1hcFJlc3VsdCh2KVxuICAgICAgICAgICAgICAgIHJldHVybiAocmVzKSA/IHJlcy5tYXAociA9PiB0aGlzLnVzZXJNYXAuSHR0cFRvQlgocikpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0QnlJRChpZDogbnVtYmVyLCByZWxvYWQgPSB0cnVlKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUlEcyhbaWRdLCByZWxvYWQpLnBpcGUobWFwKHYgPT4gKHYgJiYgdi5sZW5ndGgpID8gdlswXSA6IHVuZGVmaW5lZCkpXG4gICAgfVxuXG4gICAgZ2V0QnlJRHMoaWRzOiBudW1iZXJbXSwgcmVsb2FkID0gdHJ1ZSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXJbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZHMgPSBBcnJheS5mcm9tKG5ldyBTZXQoaWRzKSlcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlbG9hZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmluZCA9IHYuZGF0YS5maWx0ZXIoaSA9PiBpZHMuaW5jbHVkZXMoaS5JRCkpXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5kICYmIGZpbmQubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmluZClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwoe0lEOiBpZHMsIEFDVElWRTogMn0pLnBpcGUobWFwKHYgPT4gKHYgJiYgdi5sZW5ndGgpID8gdiA6IHVuZGVmaW5lZCkpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0U2VsZih1cGRhdGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAodXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxmSHR0cCgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiB2LnNlbGYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih2LnNlbGYpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxmSHR0cCgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTZWxmSHR0cCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHA+PlxuICAgICAgICAodGhpcy51cmwuc2VsZiwge30sICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJNYXAuSHR0cFRvQlgodi5yZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZVNlbGYoe3NlbGY6IHZ9KSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgIH1cblxuICAgIGFjY2VzcyhhY2Nlc3M6IHN0cmluZ1tdLCB0ZXh0RXJyb3IgPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0YDQsNCy0LAnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGlIdHRwQW5zd2VyQlg8Ym9vbGVhbj4gfCB1bmRlZmluZWQ+KHRoaXMudXJsLmFjY2Vzcywge0FDQ0VTUzogYWNjZXNzfSwgdGV4dEVycm9yKS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGdldEJ5RGVwYXJ0bWVudChpZDogbnVtYmVyW10gfCBudW1iZXIpOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VyIFtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSAodHlwZW9mIGlkID09PSAnbnVtYmVyJykgPyBbaWRdIDogaWRcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtZXJnZU1hcChcbiAgICAgICAgICAgICAgICB2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYubG9hZC5hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjbG9uZSh2LmRhdGEuZmlsdGVyKGkgPT4gaWRzLmZpbmQoaWQgPT4gaS5VRl9ERVBBUlRNRU5ULmluY2x1ZGVzKGlkKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaWRzLmV2ZXJ5KGkgPT4gdi5sb2FkLmRlcGFydG1lbnQuaW5jbHVkZXMoaSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY2xvbmUodi5kYXRhLmZpbHRlcihpID0+IGlkcy5maW5kKGlkID0+IGkuVUZfREVQQVJUTUVOVC5pbmNsdWRlcyhpZCkpKSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHtVRl9ERVBBUlRNRU5UOiBpZHN9KS5waXBlKHRhcChfID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUlETG9hZGVkRGVwYXJ0bWVudCh7aWQ6IGlkc30pKVxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0QWxsKHBhcmFtczogaUJYR2V0UGFyYW0gPSB7fSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXIgW10gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1zID0gY2xvbmUodGhpcy5kZWYucGFyYW1zKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2F2ZUFsbFVzZXIgPSBjb21wYXJlKHBhcmFtcywgdGhpcy5kZWYucGFyYW1zKVxuICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2LmxvYWQuYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlKHRoaXMuZGVmLnBhcmFtcywgcGFyYW1zKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNsID0gY2xvbmUodi5yZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUFyclVzZXIoY2wpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoICYmIHNhdmVBbGxVc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRBbGxCeVBlcnNvbmFsQmlydGhkYXkoZGF5OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsIG1vbnRoOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsIGNoZWNrV2Vla2VuZCA9IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAudGltZU5vd09uU2VydmVyKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKGRhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXlTZW50ID0gKGRheSkgPyBkYXkgOiBkYXRlLmdldERhdGUoKVxuICAgICAgICAgICAgICAgICAgICBsZXQgc3RhcnQgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgIGxldCBtb250aFNlbnQgPSAobW9udGgpID8gbW9udGggOiBkYXRlLmdldE1vbnRoKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgIGxldCBhcnI6IHN0cmluZ1tdID0gQXJyYXkuZnJvbShBcnJheSgyMDApLmtleXMoKSkubWFwKF8gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQtLVxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKHN0YXJ0LCBtb250aFNlbnQgLSAxLCBkYXlTZW50KSwgJ1lZWVktTU0tZGQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzIDogJydcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzog0KPQv9GA0L7RgdGC0LjRgtGMXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja1dlZWtlbmQgJiYgZGF0ZS5nZXREYXkoKSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnIucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5BcnJheS5mcm9tKEFycmF5KDIwMCkua2V5cygpKS5tYXAoXyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LS1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKHN0YXJ0LCBtb250aFNlbnQgLSAxLCBkYXlTZW50IC0gMSksICdZWVlZLU1NLWRkJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnIucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5BcnJheS5mcm9tKEFycmF5KDIwMCkua2V5cygpKS5tYXAoXyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LS1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKHN0YXJ0LCBtb250aFNlbnQgLSAxLCBkYXlTZW50IC0gMiksICdZWVlZLU1NLWRkJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFsbCh7UEVSU09OQUxfQklSVEhEQVk6IGFycn0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIud2FybmluZygn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINCy0YDQtdC80Y8g0YHQtdGA0LLQtdGA0LAnKVxuICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XG4gICAgICAgIGxldCByZXN1bHQ6IGlCWFJlc3RVc2VyIFtdID0gW11cbiAgICAgICAgZm9yIChjb25zdCB1c2VyIG9mIHVzZXJzKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnVzZXJNYXAuSHR0cFRvQlgodXNlcikpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBzZWFyY2gocGFyYW1zOiBzdHJpbmcgfCBVc2VyRmlsdGVyU2VhcmNoKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciBbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHtGSU5EOiBwYXJhbXN9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbXMuQUNUSVZFICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHBhcmFtcy5BQ1RJVkUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHBbXT4+KHRoaXMudXJsLnNlYXJjaCwgcGFyYW1zLCAn0KHQtdGA0LLQtdGAINC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L7RgSDQv9C+0LjRgdC60LAnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwUmVzdWx0ID0gdGhpcy5odHRwLm1hcFJlc3VsdCh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNhdmVBcnJVc2VyKG1hcFJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICB9XG5cbiAgICBmaWVsZHMoKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlckh0dHBGaWVsZCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cEZpZWxkPj4odGhpcy51cmwuZmllbGRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHVwZGF0ZSh1c2VyOiBpQlhSZXN0VXNlciwgZmllbGRVcGRhdGU6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoZmllbGRVcGRhdGUgJiYgZmllbGRVcGRhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgc2VuZERhdGE6IGFueSA9IHtcbiAgICAgICAgICAgICAgICBJRDogdXNlci5JRCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVzZXJCWCA9IHRoaXMudXNlck1hcC5CWHRvSHR0cCh1c2VyKVxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZFVwZGF0ZSkge1xuICAgICAgICAgICAgICAgIGlmICh1c2VyQlhbZmllbGRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbmREYXRhW2ZpZWxkXSA9IHVzZXJCWFtmaWVsZF1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQntC00L3QviDQuNC3INGD0LrQsNC30LDQvdC90YvRhSDQv9C+0LvQtdC5INC+0YLQv9GA0LDQstC70LXQvdC+INC90LUg0LLQtdGA0L3QvicpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMudXJsLnVwZGF0ZSwgc2VuZERhdGEsICfQndC1INGD0LTQsNC70L7RgdGMINC+0LHQvdC+0LLQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBIElEJyArIHVzZXIuSUQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQndC1INGD0LrQsNC30LDQvdC+INC90Lgg0L7QtNC90L4g0L/QvtC70LUg0LTQu9GPINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJylcbiAgICAgICAgICAgIHJldHVybiBvZih7fSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEVuZEFycmF5KHBhcmFtczogVXNlckZpbHRlciA9IHt9KTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQocGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoaXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zLm5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShtYXAodkVuZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBbLi4uaXRlbXMucmVzdWx0LCAuLi52RW5kLnJlc3VsdF19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXRlbXMpID8gaXRlbXMgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihpdGVtcylcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgLy8gZ2V0VXJsQ29tcHJlc3NlZEltYWdlKHVybDogc3RyaW5nLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5pbWcuZ2V0VXJsQ29tcHJlc3NlZCh1cmwsIHdpZHRoLCBoZWlnaHQpXG4gICAgLy8gfVxuXG4gICAgc2V0RGVmUGFyYW0ocGFyYW1zOiBpQlhHZXRQYXJhbSkge1xuICAgICAgICBpZiAoIXBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnQUNUSVZFJykpIHtcbiAgICAgICAgICAgIHBhcmFtcy5BQ1RJVkUgPSB0aGlzLmRlZi5wYXJhbXMuQUNUSVZFXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtcy5BQ1RJVkUgJiYgcGFyYW1zLkFDVElWRSA9PT0gMikge1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5BQ1RJVkVcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnc3RhcnQnKSkge1xuICAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyYW1zLlVGX0RFUEFSVE1FTlQgJiYgIXBhcmFtcy5VRl9ERVBBUlRNRU5ULmxlbmd0aCkge1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5VRl9ERVBBUlRNRU5UXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbmZvQWJvdXRDdXN0b21GaWVsZHNCWCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxpQ3VzdG9tVXNlckZpZWxkSW5mb1tdPj4odGhpcy51cmwudXNlcmZpZWxkLmxpc3QpLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiB0aGlzLmh0dHAubWFwUmVzdWx0KHYpKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgaXRJc0FkbWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGJvb2xlYW4+Pih0aGlzLnVybC5hZG1pbikucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpXG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7QUFDOUIsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBTWxDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBYyxNQUFNLG1CQUFtQixDQUFBO0FBUWxHLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHcEYsTUFBTSxPQUFPLFVBQVU7SUF1Qm5CLFlBQ1ksSUFBb0IsRUFDcEIsUUFBeUI7SUFDbEMsNEJBQTRCO0lBQzNCLCtCQUErQjtJQUN2QixLQUFtQyxFQUNuQyxPQUFpQyxFQUNqQyxRQUFrQjtRQU5sQixTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUd6QixVQUFLLEdBQUwsS0FBSyxDQUE4QjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUNqQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5QixRQUFHLEdBQUc7WUFDRixLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3ZCLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDbEIsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUs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SSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQTtTQUN2QjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO1NBQ3ZDO1FBRUQsSUFBSSxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEQsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFBO1NBQzlCO0lBQ0wsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3JGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25DLENBQUE7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXlCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuQyxDQUFBO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRha2UgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnXG5pbXBvcnQgeyBpQlhHZXRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvZ2V0J1xuaW1wb3J0IEh0dHBCWFNlcnZpY2VzIGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xuaW1wb3J0IFVzZXJGaWx0ZXJTZWFyY2ggZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci9Vc2VyRmlsdGVyU2VhcmNoJ1xuLy8gaW1wb3J0IEltZ1NlcnZpY2VzIGZyb20gJ2J4LXJlc3Qvc2VydmljZXMvYXBpL2JpdHJpeC9jdXN0b20vaW1nJ1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IGxvYWRBbGwsIHNhdmVBcnIsIHNhdmVJRExvYWRlZERlcGFydG1lbnQsIHNhdmVTZWxmLCBzdG9yZVVzZXJzIH0gZnJvbSAnLi4vLi4vc3RvcmUvdXNlcnMnXG5pbXBvcnQgeyBpQ3VzdG9tVXNlckZpZWxkSW5mbyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvQ3VzdG9tVXNlckZpZWxkSW5mbydcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQml0cml4QXBpVXNlck1hcFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFwL3Jlc3QvdXNlcidcbi8vIGltcG9ydCBEYXRlVHJhY2UgZnJvbSAnYngtcmVzdC9zZXJ2aWNlcy9hcGkvdHJhY2UvbWV0b2RzL2RhdGUnXG5pbXBvcnQgU25hY2tCYXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSdcbmltcG9ydCBpSHR0cEFuc3dlckJYIGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvaHR0cEFuc3dlckJYJ1xuaW1wb3J0IHsgaUJYUmVzdFVzZXIsIGlCWFJlc3RVc2VySHR0cCwgaUJYUmVzdFVzZXJIdHRwRmllbGQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXG5pbXBvcnQgeyAkZ2V0LCAkbGlzdCwgJHNlYXJjaCwgJHVwZGF0ZSwgJHVzZXIgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldG9kcydcbmltcG9ydCB7IFVzZXJGaWx0ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXJGaWx0ZXInXG5cbmV4cG9ydCBjbGFzcyBCWFJlc3RVc2VyIHtcbiAgICB1cmwgPSB7XG4gICAgICAgIGFkbWluOiBbJHVzZXIsICdhZG1pbiddLFxuICAgICAgICBnZXQ6IFskdXNlciwgJGdldF0sXG4gICAgICAgIHNlbGY6IFskdXNlciwgJ2N1cnJlbnQnXSxcbiAgICAgICAgdXBkYXRlOiBbJHVzZXIsICR1cGRhdGVdLFxuICAgICAgICBzZWFyY2g6IFskdXNlciwgJHNlYXJjaF0sXG4gICAgICAgIGFjY2VzczogWyR1c2VyLCAnYWNjZXNzJ10sIC8vIFUxIC0g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINGBIGlkID0xXG4gICAgICAgIC8vIEFVIC0g0LLRgdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4XG4gICAgICAgIC8vIEQxIC0g0L/QvtC00YDQsNC30LTQtdC70LXQvdC40LUg0YEgaWQ9MVxuICAgICAgICAvLyBHMSAtINCz0YDRg9C/0L/QsCDRgSBpZD0xXG4gICAgICAgIGZpZWxkczogWyR1c2VyLCAnZmllbGRzJ10sXG4gICAgICAgIHVzZXJmaWVsZDoge1xuICAgICAgICAgICAgbGlzdDogWyR1c2VyLCAndXNlcmZpZWxkJywgJGxpc3RdXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZWY6IHsgcGFyYW1zOiB7IEFDVElWRTogMSwgc3RhcnQ6IDAgfSB9ID0ge1xuICAgICAgICBwYXJhbXM6IHtBQ1RJVkU6IDEsIHN0YXJ0OiAwfVxuICAgIH1cblxuICAgIHVzZXIkOiBPYnNlcnZhYmxlPHN0b3JlVXNlcnM+XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlcyxcbiAgICAgICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgIC8vIHByaXZhdGUgaW1nOiBJbWdTZXJ2aWNlcyxcbiAgICAgICAgLy9wcml2YXRlIGRhdGVUcmFjZTogRGF0ZVRyYWNlLFxuICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTx7IHVzZXJzOiBzdG9yZVVzZXJzIH0+LFxuICAgICAgICBwcml2YXRlIHVzZXJNYXA6IEJpdHJpeEFwaVVzZXJNYXBTZXJ2aWNlcyxcbiAgICAgICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgICApIHtcbiAgICAgICAgdGhpcy51c2VyJCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd1c2VycycpXG4gICAgfVxuXG4gICAgZ2V0KHBhcmFtczogaUJYR2V0UGFyYW0gPSB7fSk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHBbXT4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgbGV0IGNvcHlQYXJhbXMgPSBjbG9uZShwYXJhbXMpXG4gICAgICAgIHRoaXMuc2V0RGVmUGFyYW0oY29weVBhcmFtcylcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPlxuICAgICAgICAodGhpcy51cmwuZ2V0LCBjb3B5UGFyYW1zLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZUFyclVzZXIodi5yZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgIH1cblxuICAgIGdldE9uZVBhZ2UocGFnZTogbnVtYmVyID0gMSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoe3N0YXJ0OiAocGFnZSAtIDEpICogNTB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZXMgPSB0aGlzLmh0dHAubWFwUmVzdWx0KHYpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzLm1hcChyID0+IHRoaXMudXNlck1hcC5IdHRwVG9CWChyKSkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRCeUlEKGlkOiBudW1iZXIsIHJlbG9hZCA9IHRydWUpOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VyIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJ5SURzKFtpZF0sIHJlbG9hZCkucGlwZShtYXAodiA9PiAodiAmJiB2Lmxlbmd0aCkgPyB2WzBdIDogdW5kZWZpbmVkKSlcbiAgICB9XG5cbiAgICBnZXRCeUlEcyhpZHM6IG51bWJlcltdLCByZWxvYWQgPSB0cnVlKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlcltdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlkcyA9IEFycmF5LmZyb20obmV3IFNldChpZHMpKVxuICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaW5kID0gdi5kYXRhLmZpbHRlcihpID0+IGlkcy5pbmNsdWRlcyhpLklEKSlcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmQgJiYgZmluZC5sZW5ndGggPT09IGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmaW5kKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFsbCh7SUQ6IGlkcywgQUNUSVZFOiAyfSkucGlwZShtYXAodiA9PiAodiAmJiB2Lmxlbmd0aCkgPyB2IDogdW5kZWZpbmVkKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRTZWxmKHVwZGF0ZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh1cGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGZIdHRwKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYuc2VsZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHYuc2VsZilcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGZIdHRwKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFNlbGZIdHRwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cD4+XG4gICAgICAgICh0aGlzLnVybC5zZWxmLCB7fSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlck1hcC5IdHRwVG9CWCh2LnJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlU2VsZih7c2VsZjogdn0pKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgfVxuXG4gICAgYWNjZXNzKGFjY2Vzczogc3RyaW5nW10sIHRleHRFcnJvciA9ICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxib29sZWFuPiB8IHVuZGVmaW5lZD4odGhpcy51cmwuYWNjZXNzLCB7QUNDRVNTOiBhY2Nlc3N9LCB0ZXh0RXJyb3IpLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiB0aGlzLmh0dHAubWFwUmVzdWx0KHYpKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0QnlEZXBhcnRtZW50KGlkOiBudW1iZXJbXSB8IG51bWJlcik6IE9ic2VydmFibGU8aUJYUmVzdFVzZXIgW10gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9ICh0eXBlb2YgaWQgPT09ICdudW1iZXInKSA/IFtpZF0gOiBpZFxuICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgIHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodi5sb2FkLmFsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YS5maWx0ZXIoaSA9PiBpZHMuZmluZChpZCA9PiBpLlVGX0RFUEFSVE1FTlQuaW5jbHVkZXMoaWQpKSkpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZHMuZXZlcnkoaSA9PiB2LmxvYWQuZGVwYXJ0bWVudC5pbmNsdWRlcyhpKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjbG9uZSh2LmRhdGEuZmlsdGVyKGkgPT4gaWRzLmZpbmQoaWQgPT4gaS5VRl9ERVBBUlRNRU5ULmluY2x1ZGVzKGlkKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwoe1VGX0RFUEFSVE1FTlQ6IGlkc30pLnBpcGUodGFwKF8gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlSURMb2FkZWREZXBhcnRtZW50KHtpZDogaWRzfSkpXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRBbGwocGFyYW1zOiBpQlhHZXRQYXJhbSA9IHt9KTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciBbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKHBhcmFtcykubGVuZ3RoKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBjbG9uZSh0aGlzLmRlZi5wYXJhbXMpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYXZlQWxsVXNlciA9IGNvbXBhcmUocGFyYW1zLCB0aGlzLmRlZi5wYXJhbXMpXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHYubG9hZC5hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmUodGhpcy5kZWYucGFyYW1zLCBwYXJhbXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY2xvbmUodi5kYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2wgPSBjbG9uZSh2LnJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQXJyVXNlcihjbClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5sZW5ndGggJiYgc2F2ZUFsbFVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChsb2FkQWxsKHtsb2FkOiB0cnVlfSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcmFtcy5zdGFydCA9IHRoaXMuZGVmLnBhcmFtcy5zdGFydFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGdldEFsbEJ5UGVyc29uYWxCaXJ0aGRheShkYXk6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCwgbW9udGg6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCwgY2hlY2tXZWVrZW5kID0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC50aW1lTm93T25TZXJ2ZXIoKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoZGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRheVNlbnQgPSAoZGF5KSA/IGRheSA6IGRhdGUuZ2V0RGF0ZSgpXG4gICAgICAgICAgICAgICAgICAgIGxldCBzdGFydCA9IGRhdGUuZ2V0RnVsbFllYXIoKSArIDFcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vbnRoU2VudCA9IChtb250aCkgPyBtb250aCA6IGRhdGUuZ2V0TW9udGgoKSArIDFcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFycjogc3RyaW5nW10gPSBBcnJheS5mcm9tKEFycmF5KDIwMCkua2V5cygpKS5tYXAoXyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydC0tXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoc3RhcnQsIG1vbnRoU2VudCAtIDEsIGRheVNlbnQpLCAnWVlZWS1NTS1kZCcpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHJlcykgPyByZXMgOiAnJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiDQo9C/0YDQvtGB0YLQuNGC0YxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrV2Vla2VuZCAmJiBkYXRlLmdldERheSgpID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGRhdGUuZ2V0RnVsbFllYXIoKSArIDFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLkFycmF5LmZyb20oQXJyYXkoMjAwKS5rZXlzKCkpLm1hcChfID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQtLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoc3RhcnQsIG1vbnRoU2VudCAtIDEsIGRheVNlbnQgLSAxKSwgJ1lZWVktTU0tZGQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHJlcykgPyByZXMgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGRhdGUuZ2V0RnVsbFllYXIoKSArIDFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLkFycmF5LmZyb20oQXJyYXkoMjAwKS5rZXlzKCkpLm1hcChfID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQtLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoc3RhcnQsIG1vbnRoU2VudCAtIDEsIGRheVNlbnQgLSAyKSwgJ1lZWVktTU0tZGQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHJlcykgPyByZXMgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHtQRVJTT05BTF9CSVJUSERBWTogYXJyfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LLRgNC10LzRjyDRgdC10YDQstC10YDQsCcpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBzYXZlQXJyVXNlcih1c2VyczogaUJYUmVzdFVzZXJIdHRwW10pIHtcbiAgICAgICAgbGV0IHJlc3VsdDogaUJYUmVzdFVzZXIgW10gPSBbXVxuICAgICAgICBmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMudXNlck1hcC5IdHRwVG9CWCh1c2VyKSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNhdmVBcnIoe2FycjogcmVzdWx0fSkpXG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIHNlYXJjaChwYXJhbXM6IHN0cmluZyB8IFVzZXJGaWx0ZXJTZWFyY2gpOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VyIFtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYW1zID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcGFyYW1zID0ge0ZJTkQ6IHBhcmFtc31cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHBhcmFtcy5BQ1RJVkUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcGFyYW1zLkFDVElWRSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPj4odGhpcy51cmwuc2VhcmNoLCBwYXJhbXMsICfQodC10YDQstC10YAg0L3QtSDQvtGC0LLQtdGH0LDQtdGCINC90LAg0LfQsNC/0YDQvtGBINC/0L7QuNGB0LrQsCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXBSZXN1bHQgPSB0aGlzLmh0dHAubWFwUmVzdWx0KHYpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUFyclVzZXIobWFwUmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgIH1cblxuICAgIGZpZWxkcygpOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VySHR0cEZpZWxkIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwRmllbGQ+Pih0aGlzLnVybC5maWVsZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiB0aGlzLmh0dHAubWFwUmVzdWx0KHYpKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgdXBkYXRlKHVzZXI6IGlCWFJlc3RVc2VyLCBmaWVsZFVwZGF0ZTogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChmaWVsZFVwZGF0ZSAmJiBmaWVsZFVwZGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGxldCBzZW5kRGF0YTogYW55ID0ge1xuICAgICAgICAgICAgICAgIElEOiB1c2VyLklELFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlckJYID0gdGhpcy51c2VyTWFwLkJYdG9IdHRwKHVzZXIpXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkVXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXJCWFtmaWVsZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VuZERhdGFbZmllbGRdID0gdXNlckJYW2ZpZWxkXVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ9Ce0LTQvdC+INC40Lcg0YPQutCw0LfQsNC90L3Ri9GFINC/0L7Qu9C10Lkg0L7RgtC/0YDQsNCy0LvQtdC90L4g0L3QtSDQstC10YDQvdC+JylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy51cmwudXBkYXRlLCBzZW5kRGF0YSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YEgSUQnICsgdXNlci5JRClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ9Cd0LUg0YPQutCw0LfQsNC90L4g0L3QuCDQvtC00L3QviDQv9C+0LvQtSDQtNC70Y8g0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nKVxuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RW5kQXJyYXkocGFyYW1zOiBVc2VyRmlsdGVyID0ge30pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCAmJiB0eXBlb2YgaXRlbXMucmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gaXRlbXMubmV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kQXJyYXkocGFyYW1zKS5waXBlKG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQgJiYgdkVuZC5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IFsuLi5pdGVtcy5yZXN1bHQsIC4uLnZFbmQucmVzdWx0XX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcykgPyBpdGVtcyA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvLyBnZXRVcmxDb21wcmVzc2VkSW1hZ2UodXJsOiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmltZy5nZXRVcmxDb21wcmVzc2VkKHVybCwgd2lkdGgsIGhlaWdodClcbiAgICAvLyB9XG5cbiAgICBzZXREZWZQYXJhbShwYXJhbXM6IGlCWEdldFBhcmFtKSB7XG4gICAgICAgIGlmICghcGFyYW1zLmhhc093blByb3BlcnR5KCdBQ1RJVkUnKSkge1xuICAgICAgICAgICAgcGFyYW1zLkFDVElWRSA9IHRoaXMuZGVmLnBhcmFtcy5BQ1RJVkVcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW1zLkFDVElWRSAmJiBwYXJhbXMuQUNUSVZFID09PSAyKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zLkFDVElWRVxuICAgICAgICB9XG4gICAgICAgIGlmICghcGFyYW1zLmhhc093blByb3BlcnR5KCdzdGFydCcpKSB7XG4gICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJhbXMuVUZfREVQQVJUTUVOVCAmJiAhcGFyYW1zLlVGX0RFUEFSVE1FTlQubGVuZ3RoKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zLlVGX0RFUEFSVE1FTlRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEluZm9BYm91dEN1c3RvbUZpZWxkc0JYKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGlDdXN0b21Vc2VyRmllbGRJbmZvW10+Pih0aGlzLnVybC51c2VyZmllbGQubGlzdCkucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBpdElzQWRtaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGlIdHRwQW5zd2VyQlg8Ym9vbGVhbj4+KHRoaXMudXJsLmFkbWluKS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSlcbiAgICAgICAgKVxuICAgIH1cbn1cbiJdfQ==
@@ -1,8 +1,6 @@
1
- import * as i0 from '@angular/core';
2
- import { NgModule, Injectable } from '@angular/core';
3
- import { MatIconModule } from '@angular/material/icon';
4
- import { MatButtonModule } from '@angular/material/button';
5
1
  import { __awaiter } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable } from '@angular/core';
6
4
  import { DateTime } from 'luxon';
7
5
  import { take, of } from 'rxjs';
8
6
  import { tap, map, mergeMap, first } from 'rxjs/operators';
@@ -10,30 +8,6 @@ import clone from 'just-clone';
10
8
  import compare from 'just-compare';
11
9
  import { createAction, props, createReducer, on } from '@ngrx/store';
12
10
 
13
- class BxRestModule {
14
- }
15
- BxRestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- BxRestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
17
- MatButtonModule], exports: [MatButtonModule,
18
- MatIconModule] });
19
- BxRestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
20
- MatButtonModule, MatButtonModule,
21
- MatIconModule] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, decorators: [{
23
- type: NgModule,
24
- args: [{
25
- declarations: [],
26
- imports: [
27
- MatIconModule,
28
- MatButtonModule
29
- ],
30
- exports: [
31
- MatButtonModule,
32
- MatIconModule
33
- ]
34
- }]
35
- }] });
36
-
37
11
  const time = {
38
12
  oneDayMilliseconds: 1000 * 60 * 60 * 24
39
13
  };
@@ -544,11 +518,12 @@ class BXRestUser {
544
518
 
545
519
  /*
546
520
  * Public API Surface of bx-rest
547
- */
521
+ */
522
+ // export * from './request/bx-rest.module'
548
523
 
549
524
  /**
550
525
  * Generated bundle index. Do not edit.
551
526
  */
552
527
 
553
- export { BXRestUser, BaseServices, BxRestModule };
528
+ export { BXRestUser, BaseServices };
554
529
  //# sourceMappingURL=bx-rest.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/request/bx-rest.module.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/user/user.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\n","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\n","import { Observable, of, take } from 'rxjs'\nimport { first, map, mergeMap, tap } from 'rxjs/operators'\nimport clone from 'just-clone'\nimport compare from 'just-compare'\nimport { iBXGetParam } from '../../typification/rest/user/get'\nimport HttpBXServices from '../../services/http/HttpBX'\nimport UserFilterSearch from '../../typification/rest/user/UserFilterSearch'\n// import ImgServices from 'bx-rest/services/api/bitrix/custom/img'\nimport { Store } from '@ngrx/store'\nimport { loadAll, saveArr, saveIDLoadedDepartment, saveSelf, storeUsers } from '../../store/users'\nimport { iCustomUserFieldInfo } from '../../typification/rest/user/CustomUserFieldInfo'\nimport { DatePipe } from '@angular/common'\nimport { BitrixApiUserMapServices } from '../../services/map/rest/user'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../../consts/part-name-metods'\nimport { UserFilter } from '../../typification/rest/user/userFilter'\n\n\n\nexport class BXRestUser {\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n self: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n user$: Observable<storeUsers>\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n private store: Store<{ users: storeUsers }>,\n private userMap: BitrixApiUserMapServices,\n private datePipe: DatePipe\n ) {\n this.user$ = this.store.select('users')\n }\n\n get(params: iBXGetParam = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>\n (this.url.get, copyParams, 'Не удалось получить пользователей')\n .pipe(\n tap(v => {\n if (v && v.result) {\n this.saveArrUser(v.result)\n }\n })\n )\n }\n\n getOnePage(page: number = 1) {\n return this.get({start: (page - 1) * 50}).pipe(\n map(v => {\n let res = this.http.mapResult(v)\n return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined\n })\n )\n }\n\n getByID(id: number, reload = true): Observable<iBXRestUser | undefined> {\n return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined))\n }\n\n getByIDs(ids: number[], reload = true): Observable<iBXRestUser[] | undefined> {\n ids = Array.from(new Set(ids))\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (!reload) {\n let find = v.data.filter(i => ids.includes(i.ID))\n if (find && find.length === ids.length) {\n return of(find)\n }\n }\n return this.getAll({ID: ids, ACTIVE: 2}).pipe(map(v => (v && v.length) ? v : undefined))\n })\n )\n }\n\n getSelf(update = false) {\n if (update) {\n return this.getSelfHttp()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.getSelfHttp()\n }\n }),\n first()\n )\n }\n }\n\n getSelfHttp() {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp>>\n (this.url.self, {}, 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v && v.result) {\n return this.userMap.HttpToBX(v.result)\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n this.store.dispatch(saveSelf({self: v}))\n }\n }),\n )\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iHttpAnswerBX<boolean> | undefined>(this.url.access, {ACCESS: access}, textError).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n getByDepartment(id: number[] | number): Observable<iBXRestUser [] | undefined> {\n const ids: number[] = (typeof id === 'number') ? [id] : id\n return this.user$.pipe(\n first(),\n mergeMap(\n v => {\n if (v.load.all) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n if (ids.every(i => v.load.department.includes(i))) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n return this.getAll({UF_DEPARTMENT: ids}).pipe(tap(_ => {\n this.store.dispatch(saveIDLoadedDepartment({id: ids}))\n }))\n })\n )\n }\n\n getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n if (!Object.keys(params).length) {\n params = clone(this.def.params)\n }\n\n const saveAllUser = compare(params, this.def.params)\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (v.load.all) {\n if (compare(this.def.params, params)) {\n return of(clone(v.data))\n }\n }\n\n return this.getEndArray(params).pipe(\n take(1),\n map(v => {\n if (v && v.result) {\n let cl = clone(v.result)\n return this.saveArrUser(cl)\n }\n return undefined\n }),\n )\n }),\n tap(v => {\n if (v && v.length && saveAllUser) {\n this.store.dispatch(loadAll({load: true}))\n }\n params.start = this.def.params.start\n })\n )\n }\n\n getAllByPersonalBirthday(day: number | undefined = undefined, month: number | undefined = undefined, checkWeekend = false) {\n return this.http.timeNowOnServer().pipe(\n mergeMap(date => {\n if (date) {\n let daySent = (day) ? day : date.getDate()\n let start = date.getFullYear() + 1\n let monthSent = (month) ? month : date.getMonth() + 1\n let arr: string[] = Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n // TODO: Упростить\n if (checkWeekend && date.getDay() === 1) {\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n }\n return this.getAll({PERSONAL_BIRTHDAY: arr})\n }\n this.snackBar.warning('Не удалось получить время сервера')\n return of(undefined)\n })\n )\n }\n\n saveArrUser(users: iBXRestUserHttp[]) {\n let result: iBXRestUser [] = []\n for (const user of users) {\n result.push(this.userMap.HttpToBX(user))\n }\n this.store.dispatch(saveArr({arr: result}))\n\n return result\n }\n\n search(params: string | UserFilterSearch): Observable<iBXRestUser [] | undefined> {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp[]>>(this.url.search, params, 'Сервер не отвечает на запрос поиска')\n .pipe(\n map(v => {\n if (v && v.result) {\n const mapResult = this.http.mapResult(v)\n if (mapResult) {\n return this.saveArrUser(mapResult)\n }\n }\n return undefined\n })\n )\n }\n\n fields(): Observable<iBXRestUserHttpField | undefined> {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttpField>>(this.url.fields).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.userMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n this.snackBar.error('Одно из указанных полей отправлено не верно')\n }\n }\n return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID)\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n return this.get(params).pipe(\n mergeMap(items => {\n if (items && items.result && typeof items.result === 'object') {\n if (items.next) {\n params.start = items.next\n return this.getEndArray(params).pipe(map(vEnd => {\n if (vEnd && items.result && vEnd.result) {\n return {result: [...items.result, ...vEnd.result]}\n }\n return (items) ? items : undefined\n }))\n }\n return of(items)\n } else {\n return of(undefined)\n }\n }),\n )\n }\n\n // getUrlCompressedImage(url: string, width: number, height: number) {\n // return this.img.getUrlCompressed(url, width, height)\n // }\n\n setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n\n getInfoAboutCustomFieldsBX() {\n return this.http.get<iHttpAnswerBX<iCustomUserFieldInfo[]>>(this.url.userfield.list).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n itIsAdmin() {\n return this.http.get<iHttpAnswerBX<boolean>>(this.url.admin).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n}\n","/*\n * Public API Surface of bx-rest\n */\n\nexport * from './request/bx-rest.module'\nexport * from './services/base'\nexport * from './request/user/user'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/user/user.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\n","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\n","import { Observable, of, take } from 'rxjs'\nimport { first, map, mergeMap, tap } from 'rxjs/operators'\nimport clone from 'just-clone'\nimport compare from 'just-compare'\nimport { iBXGetParam } from '../../typification/rest/user/get'\nimport HttpBXServices from '../../services/http/HttpBX'\nimport UserFilterSearch from '../../typification/rest/user/UserFilterSearch'\n// import ImgServices from 'bx-rest/services/api/bitrix/custom/img'\nimport { Store } from '@ngrx/store'\nimport { loadAll, saveArr, saveIDLoadedDepartment, saveSelf, storeUsers } from '../../store/users'\nimport { iCustomUserFieldInfo } from '../../typification/rest/user/CustomUserFieldInfo'\nimport { DatePipe } from '@angular/common'\nimport { BitrixApiUserMapServices } from '../../services/map/rest/user'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../../consts/part-name-metods'\nimport { UserFilter } from '../../typification/rest/user/userFilter'\n\nexport class BXRestUser {\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n self: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n user$: Observable<storeUsers>\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n private store: Store<{ users: storeUsers }>,\n private userMap: BitrixApiUserMapServices,\n private datePipe: DatePipe\n ) {\n this.user$ = this.store.select('users')\n }\n\n get(params: iBXGetParam = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>\n (this.url.get, copyParams, 'Не удалось получить пользователей')\n .pipe(\n tap(v => {\n if (v && v.result) {\n this.saveArrUser(v.result)\n }\n })\n )\n }\n\n getOnePage(page: number = 1) {\n return this.get({start: (page - 1) * 50}).pipe(\n map(v => {\n let res = this.http.mapResult(v)\n return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined\n })\n )\n }\n\n getByID(id: number, reload = true): Observable<iBXRestUser | undefined> {\n return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined))\n }\n\n getByIDs(ids: number[], reload = true): Observable<iBXRestUser[] | undefined> {\n ids = Array.from(new Set(ids))\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (!reload) {\n let find = v.data.filter(i => ids.includes(i.ID))\n if (find && find.length === ids.length) {\n return of(find)\n }\n }\n return this.getAll({ID: ids, ACTIVE: 2}).pipe(map(v => (v && v.length) ? v : undefined))\n })\n )\n }\n\n getSelf(update = false) {\n if (update) {\n return this.getSelfHttp()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.getSelfHttp()\n }\n }),\n first()\n )\n }\n }\n\n getSelfHttp() {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp>>\n (this.url.self, {}, 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v && v.result) {\n return this.userMap.HttpToBX(v.result)\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n this.store.dispatch(saveSelf({self: v}))\n }\n }),\n )\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iHttpAnswerBX<boolean> | undefined>(this.url.access, {ACCESS: access}, textError).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n getByDepartment(id: number[] | number): Observable<iBXRestUser [] | undefined> {\n const ids: number[] = (typeof id === 'number') ? [id] : id\n return this.user$.pipe(\n first(),\n mergeMap(\n v => {\n if (v.load.all) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n if (ids.every(i => v.load.department.includes(i))) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n return this.getAll({UF_DEPARTMENT: ids}).pipe(tap(_ => {\n this.store.dispatch(saveIDLoadedDepartment({id: ids}))\n }))\n })\n )\n }\n\n getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n if (!Object.keys(params).length) {\n params = clone(this.def.params)\n }\n\n const saveAllUser = compare(params, this.def.params)\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (v.load.all) {\n if (compare(this.def.params, params)) {\n return of(clone(v.data))\n }\n }\n\n return this.getEndArray(params).pipe(\n take(1),\n map(v => {\n if (v && v.result) {\n let cl = clone(v.result)\n return this.saveArrUser(cl)\n }\n return undefined\n }),\n )\n }),\n tap(v => {\n if (v && v.length && saveAllUser) {\n this.store.dispatch(loadAll({load: true}))\n }\n params.start = this.def.params.start\n })\n )\n }\n\n getAllByPersonalBirthday(day: number | undefined = undefined, month: number | undefined = undefined, checkWeekend = false) {\n return this.http.timeNowOnServer().pipe(\n mergeMap(date => {\n if (date) {\n let daySent = (day) ? day : date.getDate()\n let start = date.getFullYear() + 1\n let monthSent = (month) ? month : date.getMonth() + 1\n let arr: string[] = Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n // TODO: Упростить\n if (checkWeekend && date.getDay() === 1) {\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n }\n return this.getAll({PERSONAL_BIRTHDAY: arr})\n }\n this.snackBar.warning('Не удалось получить время сервера')\n return of(undefined)\n })\n )\n }\n\n saveArrUser(users: iBXRestUserHttp[]) {\n let result: iBXRestUser [] = []\n for (const user of users) {\n result.push(this.userMap.HttpToBX(user))\n }\n this.store.dispatch(saveArr({arr: result}))\n\n return result\n }\n\n search(params: string | UserFilterSearch): Observable<iBXRestUser [] | undefined> {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp[]>>(this.url.search, params, 'Сервер не отвечает на запрос поиска')\n .pipe(\n map(v => {\n if (v && v.result) {\n const mapResult = this.http.mapResult(v)\n if (mapResult) {\n return this.saveArrUser(mapResult)\n }\n }\n return undefined\n })\n )\n }\n\n fields(): Observable<iBXRestUserHttpField | undefined> {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttpField>>(this.url.fields).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.userMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n this.snackBar.error('Одно из указанных полей отправлено не верно')\n }\n }\n return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID)\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n return this.get(params).pipe(\n mergeMap(items => {\n if (items && items.result && typeof items.result === 'object') {\n if (items.next) {\n params.start = items.next\n return this.getEndArray(params).pipe(map(vEnd => {\n if (vEnd && items.result && vEnd.result) {\n return {result: [...items.result, ...vEnd.result]}\n }\n return (items) ? items : undefined\n }))\n }\n return of(items)\n } else {\n return of(undefined)\n }\n }),\n )\n }\n\n // getUrlCompressedImage(url: string, width: number, height: number) {\n // return this.img.getUrlCompressed(url, width, height)\n // }\n\n setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n\n getInfoAboutCustomFieldsBX() {\n return this.http.get<iHttpAnswerBX<iCustomUserFieldInfo[]>>(this.url.userfield.list).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n itIsAdmin() {\n return this.http.get<iHttpAnswerBX<boolean>>(this.url.admin).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n}\n","/*\n * Public API Surface of bx-rest\n */\n\n// export * from './request/bx-rest.module'\nexport * from './services/base'\nexport * from './request/user/user'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, Injectable } from '@angular/core';
3
- import { MatIconModule } from '@angular/material/icon';
4
- import { MatButtonModule } from '@angular/material/button';
2
+ import { Injectable } from '@angular/core';
5
3
  import { DateTime } from 'luxon';
6
4
  import { take, of } from 'rxjs';
7
5
  import { tap, map, mergeMap, first } from 'rxjs/operators';
@@ -9,30 +7,6 @@ import clone from 'just-clone';
9
7
  import compare from 'just-compare';
10
8
  import { createAction, props, createReducer, on } from '@ngrx/store';
11
9
 
12
- class BxRestModule {
13
- }
14
- BxRestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- BxRestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
16
- MatButtonModule], exports: [MatButtonModule,
17
- MatIconModule] });
18
- BxRestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, imports: [MatIconModule,
19
- MatButtonModule, MatButtonModule,
20
- MatIconModule] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- declarations: [],
25
- imports: [
26
- MatIconModule,
27
- MatButtonModule
28
- ],
29
- exports: [
30
- MatButtonModule,
31
- MatIconModule
32
- ]
33
- }]
34
- }] });
35
-
36
10
  const time = {
37
11
  oneDayMilliseconds: 1000 * 60 * 60 * 24
38
12
  };
@@ -541,11 +515,12 @@ class BXRestUser {
541
515
 
542
516
  /*
543
517
  * Public API Surface of bx-rest
544
- */
518
+ */
519
+ // export * from './request/bx-rest.module'
545
520
 
546
521
  /**
547
522
  * Generated bundle index. Do not edit.
548
523
  */
549
524
 
550
- export { BXRestUser, BaseServices, BxRestModule };
525
+ export { BXRestUser, BaseServices };
551
526
  //# sourceMappingURL=bx-rest.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/request/bx-rest.module.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/user/user.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\n","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\n","import { Observable, of, take } from 'rxjs'\nimport { first, map, mergeMap, tap } from 'rxjs/operators'\nimport clone from 'just-clone'\nimport compare from 'just-compare'\nimport { iBXGetParam } from '../../typification/rest/user/get'\nimport HttpBXServices from '../../services/http/HttpBX'\nimport UserFilterSearch from '../../typification/rest/user/UserFilterSearch'\n// import ImgServices from 'bx-rest/services/api/bitrix/custom/img'\nimport { Store } from '@ngrx/store'\nimport { loadAll, saveArr, saveIDLoadedDepartment, saveSelf, storeUsers } from '../../store/users'\nimport { iCustomUserFieldInfo } from '../../typification/rest/user/CustomUserFieldInfo'\nimport { DatePipe } from '@angular/common'\nimport { BitrixApiUserMapServices } from '../../services/map/rest/user'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../../consts/part-name-metods'\nimport { UserFilter } from '../../typification/rest/user/userFilter'\n\n\n\nexport class BXRestUser {\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n self: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n user$: Observable<storeUsers>\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n private store: Store<{ users: storeUsers }>,\n private userMap: BitrixApiUserMapServices,\n private datePipe: DatePipe\n ) {\n this.user$ = this.store.select('users')\n }\n\n get(params: iBXGetParam = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>\n (this.url.get, copyParams, 'Не удалось получить пользователей')\n .pipe(\n tap(v => {\n if (v && v.result) {\n this.saveArrUser(v.result)\n }\n })\n )\n }\n\n getOnePage(page: number = 1) {\n return this.get({start: (page - 1) * 50}).pipe(\n map(v => {\n let res = this.http.mapResult(v)\n return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined\n })\n )\n }\n\n getByID(id: number, reload = true): Observable<iBXRestUser | undefined> {\n return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined))\n }\n\n getByIDs(ids: number[], reload = true): Observable<iBXRestUser[] | undefined> {\n ids = Array.from(new Set(ids))\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (!reload) {\n let find = v.data.filter(i => ids.includes(i.ID))\n if (find && find.length === ids.length) {\n return of(find)\n }\n }\n return this.getAll({ID: ids, ACTIVE: 2}).pipe(map(v => (v && v.length) ? v : undefined))\n })\n )\n }\n\n getSelf(update = false) {\n if (update) {\n return this.getSelfHttp()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.getSelfHttp()\n }\n }),\n first()\n )\n }\n }\n\n getSelfHttp() {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp>>\n (this.url.self, {}, 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v && v.result) {\n return this.userMap.HttpToBX(v.result)\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n this.store.dispatch(saveSelf({self: v}))\n }\n }),\n )\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iHttpAnswerBX<boolean> | undefined>(this.url.access, {ACCESS: access}, textError).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n getByDepartment(id: number[] | number): Observable<iBXRestUser [] | undefined> {\n const ids: number[] = (typeof id === 'number') ? [id] : id\n return this.user$.pipe(\n first(),\n mergeMap(\n v => {\n if (v.load.all) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n if (ids.every(i => v.load.department.includes(i))) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n return this.getAll({UF_DEPARTMENT: ids}).pipe(tap(_ => {\n this.store.dispatch(saveIDLoadedDepartment({id: ids}))\n }))\n })\n )\n }\n\n getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n if (!Object.keys(params).length) {\n params = clone(this.def.params)\n }\n\n const saveAllUser = compare(params, this.def.params)\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (v.load.all) {\n if (compare(this.def.params, params)) {\n return of(clone(v.data))\n }\n }\n\n return this.getEndArray(params).pipe(\n take(1),\n map(v => {\n if (v && v.result) {\n let cl = clone(v.result)\n return this.saveArrUser(cl)\n }\n return undefined\n }),\n )\n }),\n tap(v => {\n if (v && v.length && saveAllUser) {\n this.store.dispatch(loadAll({load: true}))\n }\n params.start = this.def.params.start\n })\n )\n }\n\n getAllByPersonalBirthday(day: number | undefined = undefined, month: number | undefined = undefined, checkWeekend = false) {\n return this.http.timeNowOnServer().pipe(\n mergeMap(date => {\n if (date) {\n let daySent = (day) ? day : date.getDate()\n let start = date.getFullYear() + 1\n let monthSent = (month) ? month : date.getMonth() + 1\n let arr: string[] = Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n // TODO: Упростить\n if (checkWeekend && date.getDay() === 1) {\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n }\n return this.getAll({PERSONAL_BIRTHDAY: arr})\n }\n this.snackBar.warning('Не удалось получить время сервера')\n return of(undefined)\n })\n )\n }\n\n saveArrUser(users: iBXRestUserHttp[]) {\n let result: iBXRestUser [] = []\n for (const user of users) {\n result.push(this.userMap.HttpToBX(user))\n }\n this.store.dispatch(saveArr({arr: result}))\n\n return result\n }\n\n search(params: string | UserFilterSearch): Observable<iBXRestUser [] | undefined> {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp[]>>(this.url.search, params, 'Сервер не отвечает на запрос поиска')\n .pipe(\n map(v => {\n if (v && v.result) {\n const mapResult = this.http.mapResult(v)\n if (mapResult) {\n return this.saveArrUser(mapResult)\n }\n }\n return undefined\n })\n )\n }\n\n fields(): Observable<iBXRestUserHttpField | undefined> {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttpField>>(this.url.fields).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.userMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n this.snackBar.error('Одно из указанных полей отправлено не верно')\n }\n }\n return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID)\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n return this.get(params).pipe(\n mergeMap(items => {\n if (items && items.result && typeof items.result === 'object') {\n if (items.next) {\n params.start = items.next\n return this.getEndArray(params).pipe(map(vEnd => {\n if (vEnd && items.result && vEnd.result) {\n return {result: [...items.result, ...vEnd.result]}\n }\n return (items) ? items : undefined\n }))\n }\n return of(items)\n } else {\n return of(undefined)\n }\n }),\n )\n }\n\n // getUrlCompressedImage(url: string, width: number, height: number) {\n // return this.img.getUrlCompressed(url, width, height)\n // }\n\n setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n\n getInfoAboutCustomFieldsBX() {\n return this.http.get<iHttpAnswerBX<iCustomUserFieldInfo[]>>(this.url.userfield.list).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n itIsAdmin() {\n return this.http.get<iHttpAnswerBX<boolean>>(this.url.admin).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n}\n","/*\n * Public API Surface of bx-rest\n */\n\nexport * from './request/bx-rest.module'\nexport * from './services/base'\nexport * from './request/user/user'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/user/user.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val == 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val == 'number') {\r\n return new Date(val)\r\n }\r\n console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n };\r\n\r\n toBool(val: any) {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n\r\n return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n }\r\n\r\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: string) {\r\n url = (url) ? url.replace('https://', '') : ''\r\n url = (url) ? url.replace('http://', '') : ''\r\n url = (url) ? url.replace('https:', '') : ''\r\n url = (url) ? url.replace('http:', '') : ''\r\n return url\r\n }\r\n}\r\n","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\n","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\n","import { Observable, of, take } from 'rxjs'\nimport { first, map, mergeMap, tap } from 'rxjs/operators'\nimport clone from 'just-clone'\nimport compare from 'just-compare'\nimport { iBXGetParam } from '../../typification/rest/user/get'\nimport HttpBXServices from '../../services/http/HttpBX'\nimport UserFilterSearch from '../../typification/rest/user/UserFilterSearch'\n// import ImgServices from 'bx-rest/services/api/bitrix/custom/img'\nimport { Store } from '@ngrx/store'\nimport { loadAll, saveArr, saveIDLoadedDepartment, saveSelf, storeUsers } from '../../store/users'\nimport { iCustomUserFieldInfo } from '../../typification/rest/user/CustomUserFieldInfo'\nimport { DatePipe } from '@angular/common'\nimport { BitrixApiUserMapServices } from '../../services/map/rest/user'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../../consts/part-name-metods'\nimport { UserFilter } from '../../typification/rest/user/userFilter'\n\nexport class BXRestUser {\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n self: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n user$: Observable<storeUsers>\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n private store: Store<{ users: storeUsers }>,\n private userMap: BitrixApiUserMapServices,\n private datePipe: DatePipe\n ) {\n this.user$ = this.store.select('users')\n }\n\n get(params: iBXGetParam = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>\n (this.url.get, copyParams, 'Не удалось получить пользователей')\n .pipe(\n tap(v => {\n if (v && v.result) {\n this.saveArrUser(v.result)\n }\n })\n )\n }\n\n getOnePage(page: number = 1) {\n return this.get({start: (page - 1) * 50}).pipe(\n map(v => {\n let res = this.http.mapResult(v)\n return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined\n })\n )\n }\n\n getByID(id: number, reload = true): Observable<iBXRestUser | undefined> {\n return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined))\n }\n\n getByIDs(ids: number[], reload = true): Observable<iBXRestUser[] | undefined> {\n ids = Array.from(new Set(ids))\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (!reload) {\n let find = v.data.filter(i => ids.includes(i.ID))\n if (find && find.length === ids.length) {\n return of(find)\n }\n }\n return this.getAll({ID: ids, ACTIVE: 2}).pipe(map(v => (v && v.length) ? v : undefined))\n })\n )\n }\n\n getSelf(update = false) {\n if (update) {\n return this.getSelfHttp()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.getSelfHttp()\n }\n }),\n first()\n )\n }\n }\n\n getSelfHttp() {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp>>\n (this.url.self, {}, 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v && v.result) {\n return this.userMap.HttpToBX(v.result)\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n this.store.dispatch(saveSelf({self: v}))\n }\n }),\n )\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iHttpAnswerBX<boolean> | undefined>(this.url.access, {ACCESS: access}, textError).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n getByDepartment(id: number[] | number): Observable<iBXRestUser [] | undefined> {\n const ids: number[] = (typeof id === 'number') ? [id] : id\n return this.user$.pipe(\n first(),\n mergeMap(\n v => {\n if (v.load.all) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n if (ids.every(i => v.load.department.includes(i))) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n return this.getAll({UF_DEPARTMENT: ids}).pipe(tap(_ => {\n this.store.dispatch(saveIDLoadedDepartment({id: ids}))\n }))\n })\n )\n }\n\n getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n if (!Object.keys(params).length) {\n params = clone(this.def.params)\n }\n\n const saveAllUser = compare(params, this.def.params)\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (v.load.all) {\n if (compare(this.def.params, params)) {\n return of(clone(v.data))\n }\n }\n\n return this.getEndArray(params).pipe(\n take(1),\n map(v => {\n if (v && v.result) {\n let cl = clone(v.result)\n return this.saveArrUser(cl)\n }\n return undefined\n }),\n )\n }),\n tap(v => {\n if (v && v.length && saveAllUser) {\n this.store.dispatch(loadAll({load: true}))\n }\n params.start = this.def.params.start\n })\n )\n }\n\n getAllByPersonalBirthday(day: number | undefined = undefined, month: number | undefined = undefined, checkWeekend = false) {\n return this.http.timeNowOnServer().pipe(\n mergeMap(date => {\n if (date) {\n let daySent = (day) ? day : date.getDate()\n let start = date.getFullYear() + 1\n let monthSent = (month) ? month : date.getMonth() + 1\n let arr: string[] = Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n // TODO: Упростить\n if (checkWeekend && date.getDay() === 1) {\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n }\n return this.getAll({PERSONAL_BIRTHDAY: arr})\n }\n this.snackBar.warning('Не удалось получить время сервера')\n return of(undefined)\n })\n )\n }\n\n saveArrUser(users: iBXRestUserHttp[]) {\n let result: iBXRestUser [] = []\n for (const user of users) {\n result.push(this.userMap.HttpToBX(user))\n }\n this.store.dispatch(saveArr({arr: result}))\n\n return result\n }\n\n search(params: string | UserFilterSearch): Observable<iBXRestUser [] | undefined> {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp[]>>(this.url.search, params, 'Сервер не отвечает на запрос поиска')\n .pipe(\n map(v => {\n if (v && v.result) {\n const mapResult = this.http.mapResult(v)\n if (mapResult) {\n return this.saveArrUser(mapResult)\n }\n }\n return undefined\n })\n )\n }\n\n fields(): Observable<iBXRestUserHttpField | undefined> {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttpField>>(this.url.fields).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.userMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n this.snackBar.error('Одно из указанных полей отправлено не верно')\n }\n }\n return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID)\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n return this.get(params).pipe(\n mergeMap(items => {\n if (items && items.result && typeof items.result === 'object') {\n if (items.next) {\n params.start = items.next\n return this.getEndArray(params).pipe(map(vEnd => {\n if (vEnd && items.result && vEnd.result) {\n return {result: [...items.result, ...vEnd.result]}\n }\n return (items) ? items : undefined\n }))\n }\n return of(items)\n } else {\n return of(undefined)\n }\n }),\n )\n }\n\n // getUrlCompressedImage(url: string, width: number, height: number) {\n // return this.img.getUrlCompressed(url, width, height)\n // }\n\n setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n\n getInfoAboutCustomFieldsBX() {\n return this.http.get<iHttpAnswerBX<iCustomUserFieldInfo[]>>(this.url.userfield.list).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n itIsAdmin() {\n return this.http.get<iHttpAnswerBX<boolean>>(this.url.admin).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n}\n","/*\n * Public API Surface of bx-rest\n */\n\n// export * from './request/bx-rest.module'\nexport * from './services/base'\nexport * from './request/user/user'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bx-rest",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "bitrix rest api",
5
5
  "keywords": [
6
6
  "bitrxi",
package/public-api.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export * from './request/bx-rest.module';
2
1
  export * from './services/base';
3
2
  export * from './request/user/user';