atr-components 0.1.40 → 0.1.41

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,6 @@
1
1
  import { json, AtrFormOpt } from '../base/atr-common';
2
2
  import { SimpleChange } from '@angular/core';
3
3
  export declare class ToolsUtil {
4
- static ossPrefix: string;
5
4
  static getOrgCode: () => string;
6
5
  static isNull(val: any): boolean;
7
6
  static getControlsConfig(dataFrom: any, requiredRule: string[]): any;
@@ -135,14 +135,13 @@ export class ToolsUtil {
135
135
  return date.getFullYear() + "-" + month + "-" + strDate + " " + hours + ":" + seconds;
136
136
  }
137
137
  static getOssUrl(url) {
138
- alert(this.ossPrefix);
139
138
  if (!url) {
140
139
  return "";
141
140
  }
142
141
  if (url.startsWith("http")) {
143
142
  return url;
144
143
  }
145
- return this.ossPrefix + url;
144
+ return atr_static_datas.OSS_URL + url;
146
145
  }
147
146
  static mul(...numbers) {
148
147
  if (numbers.length < 2) {
@@ -235,7 +234,6 @@ export class ToolsUtil {
235
234
  return { 'maxHeight': ToolsUtil.windowHeight() - 200 + 'px', 'overflow-y': 'auto' };
236
235
  }
237
236
  }
238
- ToolsUtil.ossPrefix = atr_static_datas.OSS_URL;
239
237
  ToolsUtil.getOrgCode = function () {
240
238
  // var orgCode = '';
241
239
  // var hrefs = window.location.href.split('?')
@@ -271,4 +269,4 @@ ToolsUtil.allEqual = (...array) => array.every(item => item === array[0]);
271
269
  * @param array
272
270
  */
273
271
  ToolsUtil.satisfiedFn = (callback, ...array) => array.every(callback);
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHNVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS91dGlscy9Ub29sc1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQWlCcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFPO1FBQ25CLElBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNsRSxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVksRUFBRSxZQUFzQjtRQUMzRCxJQUFJLGNBQWMsR0FBUSxFQUFFLENBQUE7UUFDNUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUU7WUFDMUIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTthQUM3RDtpQkFBTTtnQkFDTCxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTthQUN0QztTQUNGO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FB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QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUU3RTs7Ozs7R0FLRztBQUNJLHFCQUFXLEdBQUcsQ0FBQyxRQUFxQyxFQUFFLEdBQUcsS0FBVyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtqc29uLCBBdHJGb3JtT3B0LCBhdHJfc3RhdGljX2RhdGFzfSBmcm9tICcuLi9iYXNlL2F0ci1jb21tb24nO1xyXG5pbXBvcnQge2Zvcm1hdERhdGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1NpbXBsZUNoYW5nZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbHNVdGlsIHtcclxuICBzdGF0aWMgb3NzUHJlZml4ID0gYXRyX3N0YXRpY19kYXRhcy5PU1NfVVJMO1xyXG4gIHN0YXRpYyBnZXRPcmdDb2RlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gdmFyIG9yZ0NvZGUgPSAnJztcclxuICAgIC8vIHZhciBocmVmcyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCc/JylcclxuICAgIC8vIGlmIChocmVmcy5sZW5ndGggPj0gMikge1xyXG4gICAgLy8gICB2YXIgcGFyYW1TdHIgPSBocmVmc1sxXTtcclxuICAgIC8vICAgLy/lj4LmlbDlrZfnrKbkuLLph4zmnInmsqHluKYgPT8vI1xyXG4gICAgLy8gICBvcmdDb2RlID0gcGFyYW1TdHIuc3BsaXQoJz0nKVswXTtcclxuICAgIC8vICAgb3JnQ29kZSA9IG9yZ0NvZGUuc3BsaXQoJz8nKVswXTtcclxuICAgIC8vICAgb3JnQ29kZSA9IG9yZ0NvZGUuc3BsaXQoJy8nKVswXTtcclxuICAgIC8vICAgb3JnQ29kZSA9IG9yZ0NvZGUuc3BsaXQoJyMnKVswXTtcclxuICAgIC8vICAgb3JnQ29kZSA9IG9yZ0NvZGUuc3BsaXQoJy8nKVswXTtcclxuICAgIC8vIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIHN0YXRpYyBpc051bGwodmFsOmFueSl7XHJcbiAgICBpZih2YWwgfHwgWydib29sZWFuJywnc3RyaW5nJywnbnVtYmVyJ10uc29tZSh2ID0+IHR5cGVvZiB2YWwgPT0gdikgKXtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBzdGF0aWMgZ2V0Q29udHJvbHNDb25maWcoZGF0YUZyb206YW55LCByZXF1aXJlZFJ1bGU6IHN0cmluZ1tdKSB7XHJcbiAgICBsZXQgY29udHJvbHNDb25maWc6IGFueSA9IHt9XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhRnJvbSkge1xyXG4gICAgICBpZiAocmVxdWlyZWRSdWxlLnNvbWUoaXRlbSA9PiBpdGVtID09IGtleSkpIHtcclxuICAgICAgICBjb250cm9sc0NvbmZpZ1trZXldID0gW2RhdGFGcm9tW2tleV0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250cm9sc0NvbmZpZ1trZXldID0gW2RhdGFGcm9tW2tleV1dXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjb250cm9sc0NvbmZpZztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBodHRwU3VjY2VzKHJlczphbnkpIHtcclxuICAgIHJldHVybiByZXMuc3RhdHVzID09IDIwMFxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZJbnB1dChjaG5nOiBTaW1wbGVDaGFuZ2UsIGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgaWYgKGNobmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG5cclxuICAgIGxldCBjdXIgPSBKU09OLnN0cmluZ2lmeShjaG5nLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICBsZXQgcHJldiA9IEpTT04uc3RyaW5naWZ5KGNobmcucHJldmlvdXNWYWx1ZSk7XHJcbiAgICBpZiAoY3VyICE9PSBwcmV2KSB7XHJcbiAgICAgIGFjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZJbnB1dHMoY2huZzogU2ltcGxlQ2hhbmdlW10sIGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgaWYgKGNobmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgaWYgKGNobmcubGVuZ3RoID09IDApIHJldHVybjtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2huZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IGNobmdbaV07XHJcbiAgICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICBsZXQgY3VyID0gSlNPTi5zdHJpbmdpZnkoaXRlbS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBsZXQgcHJldiA9IEpTT04uc3RyaW5naWZ5KGl0ZW0ucHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgIGlmIChjdXIgIT09IHByZXYpIHtcclxuICAgICAgICBhY3Rpb24oKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFllc3RlcmRheShkYXk6IERhdGUpOiBEYXRlIHtcclxuXHJcbiAgICBsZXQgdGltZSA9IGRheS5nZXRUaW1lKCkgLSAxMDAwICogNjAgKiA2MCAqIDI0O1xyXG4gICAgZGF5ID0gbmV3IERhdGUodGltZSk7XHJcblxyXG4gICAgcmV0dXJuIGRheTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRUb21vcnJvd2RheShkYXk6IERhdGUpOiBEYXRlIHtcclxuICAgIGxldCB0aW1lID0gZGF5LmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQ7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE5leHRNb250aChkYXk6IERhdGUpIHtcclxuICAgIGxldCBkcyA9IG5ldyBEYXRlKGRheSkuc2V0TW9udGgoZGF5LmdldE1vbnRoKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkcyk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRWaWRlb0NvdmVyKHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gVG9vbHNVdGlsLmdldE9zc1VybCh1cmwpICsgXCI/eC1vc3MtcHJvY2Vzcz12aWRlby9zbmFwc2hvdCx0XzEwMDAwLG1fZmFzdFwiO1xyXG4gIH1cclxuICBzdGF0aWMgZmlzdERheU9mTW9udGgoZGF5OiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoZGF5KS5zZXREYXRlKDEpKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBsYXN0RGF5T2ZNb250aChkYXk6IERhdGUpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShUb29sc1V0aWwuZ2V0TmV4dE1vbnRoKGRheSkuc2V0RGF0ZSgwKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0UmFuZG9tRmlsZU5hbWUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBjb25zdCBleHBlY3QgPSAxNjtcclxuICAgIGxldCBzdHIgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XHJcbiAgICB3aGlsZSAoc3RyLmxlbmd0aCA8IGV4cGVjdCkge1xyXG4gICAgICBzdHIgKz0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoMCwgZXhwZWN0KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRGaWxlRXh0ID0gZnVuY3Rpb24gKGZpbGVOYW1lOnN0cmluZykge1xyXG4gICAgdmFyIGluZGV4ID0gZmlsZU5hbWUubGFzdEluZGV4T2YoXCIuXCIpO1xyXG4gICAgdmFyIHN1ZmZpeCA9IGZpbGVOYW1lLnN1YnN0cihpbmRleCArIDEpO1xyXG4gICAgcmV0dXJuIHN1ZmZpeDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRIdHRwT3B0aW9ucygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtpc0NvbW1vbkh0dHBIZWFkZXI6IHRydWV9XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIHJlc2V0Rm9ybVZhbHVlKG9wdDogQXRyRm9ybU9wdCwganNvbjoganNvbik6IEF0ckZvcm1PcHQge1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiBvcHQuaXRlbXMpIHtcclxuICAgICAgaXRlbS52YWx1ZSA9IFwiXCI7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGl0ZW0udmFsdWUpO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhqc29uKSkge1xyXG4gICAgICAgIGlmIChqc29uLmhhc093blByb3BlcnR5KGtleSkgJiYganNvbltrZXldICE9IG51bGwgJiYganNvbltrZXldICE9IHVuZGVmaW5lZCAmJiBrZXkgPT0gaXRlbS5rZXkpIHtcclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGUnKVxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gbmV3IERhdGUoanNvbltrZXldKTtcclxuICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZVRpbWUnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBuZXcgRGF0ZShqc29uW2tleV0pO1xyXG4gICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBqc29uW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvcHQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBtb250aDogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgIGxldCBzdHJEYXRlOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgKyBcIi1cIiArIG1vbnRoICsgXCItXCIgKyBzdHJEYXRlXHJcbiAgICAvLyArIFwiIFwiXHJcbiAgICAvLyArIGRhdGUuZ2V0SG91cnMoKSArIFwiOlwiICsgZGF0ZS5nZXRNaW51dGVzKCkgKyBcIjpcIiArIGRhdGUuZ2V0U2Vjb25kcygpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZvcm1hdERhdGVGdWxsKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1vbnRoOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHN0ckRhdGU6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgIGlmIChtb250aCA8PSA5KSB7XHJcbiAgICAgIG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyRGF0ZSA8PSA5KSB7XHJcbiAgICAgIHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgbW9udGggKyBcIi1cIiArIHN0ckRhdGUgKyBcIiBcIiArIChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyBcIjpcIiArIChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyBcIjpcIiArIChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZVdpdGhvdXRTKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1vbnRoOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHN0ckRhdGU6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgbGV0IGhvdXJzOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICBsZXQgc2Vjb25kczogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG4gICAgaWYgKGhvdXJzIDw9IDkpIHtcclxuICAgICAgaG91cnMgPSBcIjBcIiArIGhvdXJzO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY29uZHMgPD0gOSkge1xyXG4gICAgICBzZWNvbmRzID0gXCIwXCIgKyBzZWNvbmRzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgbW9udGggKyBcIi1cIiArIHN0ckRhdGUgKyBcIiBcIiArIGhvdXJzICsgXCI6XCIgKyBzZWNvbmRzO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE9zc1VybCh1cmw6IHN0cmluZykge1xyXG4gICAgYWxlcnQodGhpcy5vc3NQcmVmaXgpXHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICh1cmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcclxuICAgICAgcmV0dXJuIHVybFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMub3NzUHJlZml4ICsgdXJsO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG11bCguLi5udW1iZXJzOmFueSkge1xyXG4gICAgaWYgKG51bWJlcnMubGVuZ3RoIDwgMikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgbSA9IHRoaXMuZ2V0RGlnaXQobnVtYmVycyk7XHJcbiAgICBsZXQgcmVzdWx0ID0gMTtcclxuICAgIG51bWJlcnMuZm9yRWFjaChcclxuICAgICAgKG51bTphbnkpID0+IHtcclxuICAgICAgICBsZXQgcyA9IG51bS50b1N0cmluZygpO1xyXG4gICAgICAgIHJlc3VsdCAqPSBOdW1iZXIocy5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gcmVzdWx0IC8gTWF0aC5wb3coMTAsIG0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERpZ2l0KC4uLm51bWJlcnM6YW55W10pIHtcclxuICAgIGxldCBtID0gMDtcclxuICAgIG51bWJlcnMuZm9yRWFjaChcclxuICAgICAgbnVtID0+IHtcclxuICAgICAgICBsZXQgcyA9IG51bS50b1N0cmluZygpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBtICs9IHMuc3BsaXQoXCIuXCIpWzFdLmxlbmd0aFxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gbTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkb3dubG9hZEltZyhkYXRhOmFueSwgZmlsZU5hbWU/OiBzdHJpbmcsIGVuZHBvaW50Pzogc3RyaW5nKSB7XHJcbiAgICAvLyAvLyDkuIvovb3nsbvlnosgeGxzXHJcbiAgICAvLyBjb25zdCBjb250ZW50VHlwZSA9ICdpbWFnZS9qcGVnJztcclxuICAgIC8vIC8vIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JztcclxuICAgIC8vIC8vIOS4i+i9veexu+Wei++8mmNzdlxyXG4gICAgLy8gY29uc3QgZGVidWcgPSB7aGVsbG86IFwid29ybGRcIn07XHJcbiAgICAvLyBjb25zdCBibG9iID0gbmV3IEJsb2IoW10se3R5cGUgOiAnaW1hZ2UvanBlZyd9KTtcclxuICAgIC8vIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgLy9cclxuICAgIC8vIC8vIOaJk+W8gOaWsOeql+WPo+aWueW8j+i/m+ihjOS4i+i9vVxyXG4gICAgLy8gLy8gd2luZG93Lm9wZW4odXJsKTtcclxuICAgIC8vXHJcbiAgICAvLyAvLyDku6XliqjmgIHliJvlu7ph5qCH562+6L+b6KGM5LiL6L29XHJcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgYS5ocmVmID0gZGF0YTtcclxuICAgIC8vIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZT9maWxlTmFtZTpcIlwiICsgZW5kcG9pbnQ7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZG93bmxvYWRYbHModXJsOnN0cmluZywgcGFyYW1zPzogYW55LCkge1xyXG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgdXJsICs9IFwiP1wiO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XHJcbiAgICAgICAgaWYgKHBhcmFtc1trZXldKSB7XHJcbiAgICAgICAgICB1cmwgKz0ga2V5ICsgXCI9XCIgKyBwYXJhbXNba2V5XSArIFwiJiZcIlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2codXJsKTtcclxuICAgIC8vIHdpbmRvdy5vcGVuKHVybCk7XHJcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgYS5ocmVmID0gdXJsO1xyXG4gICAgLy8gLy8gYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgLy8gYS5kb3dubG9hZCA9IFwiMzMyMS54bHNcIjtcclxuICAgIGEuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBwaXhlbFRvTnVtKHdpZHRoOmFueSkge1xyXG4gICAgY29uc3QgcmUgPSAvcHgvZ2k7XHJcbiAgICBsZXQgd2lkdGhTdHIgPSB3aWR0aC5yZXBsYWNlKHJlLCBcIlwiKTtcclxuICAgIHJldHVybiBOdW1iZXIod2lkdGhTdHIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFsbEVxdWFsID0gKC4uLmFycmF5OmFueVtdKSA9PiBhcnJheS5ldmVyeShpdGVtID0+IGl0ZW0gPT09IGFycmF5WzBdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYXJyYXnmiYDmnInlj4LmlbDmu6HotrNmbuWHveaVsOi/lOWbnnRydWVcclxuICAgKiBhbGwoeCA9PiB4ID4gMSwxLDIsMyk7IC8vIHRydWVcclxuICAgKiBAcGFyYW0gY2FsbGJhY2tcclxuICAgKiBAcGFyYW0gYXJyYXlcclxuICAgKi9cclxuICBzdGF0aWMgc2F0aXNmaWVkRm4gPSAoY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbiwgLi4uYXJyYXk6YW55W10pID0+IGFycmF5LmV2ZXJ5KGNhbGxiYWNrKTtcclxuXHJcbiAgLy/lhajpg6jkuI3nqbrkuLp0cnVlXHJcbiAgc3RhdGljIG5vdEVtcHR5KC4uLmFycjphbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFyci5ldmVyeShpdGVtID0+ICEhaXRlbSlcclxuICB9XHJcblxyXG4gIC8v5YyF5ZCr56m65Li6dHJ1ZVxyXG4gIHN0YXRpYyBoYXNFbXB0eSguLi5hcnI6YW55W10pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhcnIuc29tZShpdGVtID0+ICFpdGVtKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhbGxFbXB0eSguLi5hcnI6YW55W10pIHtcclxuICAgIHJldHVybiBhcnIuZXZlcnkoaXRlbSA9PiAhaXRlbSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZW5jb2RlVmFsdWUocGFyYW1zOmFueSkge1xyXG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiBwYXJhbXNba2V5XSA9IGVuY29kZVVSSUNvbXBvbmVudChwYXJhbXNba2V5XSkpO1xyXG4gICAgcmV0dXJuIHBhcmFtcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyB3aW5kb3dIZWlnaHQoKSB7XHJcbiAgICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gIH1cclxuICBzdGF0aWMgd2luZG93V2lkdGgoKSB7XHJcblxyXG4gICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG1vZGFsZVN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHsnbWF4SGVpZ2h0JzogVG9vbHNVdGlsLndpbmRvd0hlaWdodCgpIC0gMjAwICsgJ3B4JywgJ292ZXJmbG93LXknOiAnYXV0byd9O1xyXG4gIH1cclxufVxyXG4iXX0=
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHNVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS91dGlscy9Ub29sc1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQWdCcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFPO1FBQ25CLElBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNsRSxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVksRUFBRSxZQUFzQjtRQUMzRCxJQUFJLGNBQWMsR0FBUSxFQUFFLENBQUE7UUFDNUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUU7WUFDMUIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTthQUM3RDtpQkFBTTtnQkFDTCxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTthQUN0QztTQUNGO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FB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QUNJLHFCQUFXLEdBQUcsQ0FBQyxRQUFxQyxFQUFFLEdBQUcsS0FBVyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtqc29uLCBBdHJGb3JtT3B0LCBhdHJfc3RhdGljX2RhdGFzfSBmcm9tICcuLi9iYXNlL2F0ci1jb21tb24nO1xyXG5pbXBvcnQge2Zvcm1hdERhdGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1NpbXBsZUNoYW5nZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbHNVdGlsIHtcclxuICBzdGF0aWMgZ2V0T3JnQ29kZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIC8vIHZhciBvcmdDb2RlID0gJyc7XHJcbiAgICAvLyB2YXIgaHJlZnMgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnPycpXHJcbiAgICAvLyBpZiAoaHJlZnMubGVuZ3RoID49IDIpIHtcclxuICAgIC8vICAgdmFyIHBhcmFtU3RyID0gaHJlZnNbMV07XHJcbiAgICAvLyAgIC8v5Y+C5pWw5a2X56ym5Liy6YeM5pyJ5rKh5bimID0/LyNcclxuICAgIC8vICAgb3JnQ29kZSA9IHBhcmFtU3RyLnNwbGl0KCc9JylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCc/JylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCcvJylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCcjJylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCcvJylbMF07XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBzdGF0aWMgaXNOdWxsKHZhbDphbnkpe1xyXG4gICAgaWYodmFsIHx8IFsnYm9vbGVhbicsJ3N0cmluZycsJ251bWJlciddLnNvbWUodiA9PiB0eXBlb2YgdmFsID09IHYpICl7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgc3RhdGljIGdldENvbnRyb2xzQ29uZmlnKGRhdGFGcm9tOmFueSwgcmVxdWlyZWRSdWxlOiBzdHJpbmdbXSkge1xyXG4gICAgbGV0IGNvbnRyb2xzQ29uZmlnOiBhbnkgPSB7fVxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YUZyb20pIHtcclxuICAgICAgaWYgKHJlcXVpcmVkUnVsZS5zb21lKGl0ZW0gPT4gaXRlbSA9PSBrZXkpKSB7XHJcbiAgICAgICAgY29udHJvbHNDb25maWdba2V5XSA9IFtkYXRhRnJvbVtrZXldLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udHJvbHNDb25maWdba2V5XSA9IFtkYXRhRnJvbVtrZXldXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udHJvbHNDb25maWc7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaHR0cFN1Y2NlcyhyZXM6YW55KSB7XHJcbiAgICByZXR1cm4gcmVzLnN0YXR1cyA9PSAyMDBcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkaWZmSW5wdXQoY2huZzogU2ltcGxlQ2hhbmdlLCBhY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGlmIChjaG5nID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHJcbiAgICBsZXQgY3VyID0gSlNPTi5zdHJpbmdpZnkoY2huZy5jdXJyZW50VmFsdWUpO1xyXG4gICAgbGV0IHByZXYgPSBKU09OLnN0cmluZ2lmeShjaG5nLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgaWYgKGN1ciAhPT0gcHJldikge1xyXG4gICAgICBhY3Rpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBkaWZmSW5wdXRzKGNobmc6IFNpbXBsZUNoYW5nZVtdLCBhY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGlmIChjaG5nID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgIGlmIChjaG5nLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNobmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBjaG5nW2ldO1xyXG4gICAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcclxuICAgICAgbGV0IGN1ciA9IEpTT04uc3RyaW5naWZ5KGl0ZW0uY3VycmVudFZhbHVlKTtcclxuICAgICAgbGV0IHByZXYgPSBKU09OLnN0cmluZ2lmeShpdGVtLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgICBpZiAoY3VyICE9PSBwcmV2KSB7XHJcbiAgICAgICAgYWN0aW9uKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRZZXN0ZXJkYXkoZGF5OiBEYXRlKTogRGF0ZSB7XHJcblxyXG4gICAgbGV0IHRpbWUgPSBkYXkuZ2V0VGltZSgpIC0gMTAwMCAqIDYwICogNjAgKiAyNDtcclxuICAgIGRheSA9IG5ldyBEYXRlKHRpbWUpO1xyXG5cclxuICAgIHJldHVybiBkYXk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VG9tb3Jyb3dkYXkoZGF5OiBEYXRlKTogRGF0ZSB7XHJcbiAgICBsZXQgdGltZSA9IGRheS5nZXRUaW1lKCkgKyAxMDAwICogNjAgKiA2MCAqIDI0O1xyXG5cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXROZXh0TW9udGgoZGF5OiBEYXRlKSB7XHJcbiAgICBsZXQgZHMgPSBuZXcgRGF0ZShkYXkpLnNldE1vbnRoKGRheS5nZXRNb250aCgpICsgMSk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZHMpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0VmlkZW9Db3Zlcih1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIFRvb2xzVXRpbC5nZXRPc3NVcmwodXJsKSArIFwiP3gtb3NzLXByb2Nlc3M9dmlkZW8vc25hcHNob3QsdF8xMDAwMCxtX2Zhc3RcIjtcclxuICB9XHJcbiAgc3RhdGljIGZpc3REYXlPZk1vbnRoKGRheTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKGRheSkuc2V0RGF0ZSgxKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbGFzdERheU9mTW9udGgoZGF5OiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoVG9vbHNVdGlsLmdldE5leHRNb250aChkYXkpLnNldERhdGUoMCkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFJhbmRvbUZpbGVOYW1lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgY29uc3QgZXhwZWN0ID0gMTY7XHJcbiAgICBsZXQgc3RyID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xyXG4gICAgd2hpbGUgKHN0ci5sZW5ndGggPCBleHBlY3QpIHtcclxuICAgICAgc3RyICs9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIGV4cGVjdCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RmlsZUV4dCA9IGZ1bmN0aW9uIChmaWxlTmFtZTpzdHJpbmcpIHtcclxuICAgIHZhciBpbmRleCA9IGZpbGVOYW1lLmxhc3RJbmRleE9mKFwiLlwiKTtcclxuICAgIHZhciBzdWZmaXggPSBmaWxlTmFtZS5zdWJzdHIoaW5kZXggKyAxKTtcclxuICAgIHJldHVybiBzdWZmaXg7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0SHR0cE9wdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB7aXNDb21tb25IdHRwSGVhZGVyOiB0cnVlfVxyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyByZXNldEZvcm1WYWx1ZShvcHQ6IEF0ckZvcm1PcHQsIGpzb246IGpzb24pOiBBdHJGb3JtT3B0IHtcclxuICAgIGZvciAobGV0IGl0ZW0gb2Ygb3B0Lml0ZW1zKSB7XHJcbiAgICAgIGl0ZW0udmFsdWUgPSBcIlwiO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhpdGVtLnZhbHVlKTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoanNvbikpIHtcclxuICAgICAgICBpZiAoanNvbi5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGpzb25ba2V5XSAhPSBudWxsICYmIGpzb25ba2V5XSAhPSB1bmRlZmluZWQgJiYga2V5ID09IGl0ZW0ua2V5KSB7XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09ICdkYXRlJylcclxuICAgICAgICAgICAgaXRlbS52YWx1ZSA9IG5ldyBEYXRlKGpzb25ba2V5XSk7XHJcbiAgICAgICAgICBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGVUaW1lJykge1xyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gbmV3IERhdGUoanNvbltrZXldKTtcclxuICAgICAgICAgIH0gZWxzZVxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0ganNvbltrZXldXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3B0O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbW9udGg6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICBsZXQgc3RyRGF0ZTogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXREYXRlKCk7XHJcblxyXG4gICAgaWYgKG1vbnRoIDw9IDkpIHtcclxuICAgICAgbW9udGggPSBcIjBcIiArIG1vbnRoO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJEYXRlIDw9IDkpIHtcclxuICAgICAgc3RyRGF0ZSA9IFwiMFwiICsgc3RyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICsgXCItXCIgKyBtb250aCArIFwiLVwiICsgc3RyRGF0ZVxyXG4gICAgLy8gKyBcIiBcIlxyXG4gICAgLy8gKyBkYXRlLmdldEhvdXJzKCkgKyBcIjpcIiArIGRhdGUuZ2V0TWludXRlcygpICsgXCI6XCIgKyBkYXRlLmdldFNlY29uZHMoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRGb3JtYXREYXRlRnVsbChkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBtb250aDogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgIGxldCBzdHJEYXRlOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgKyBcIi1cIiArIG1vbnRoICsgXCItXCIgKyBzdHJEYXRlICsgXCIgXCIgKyAoZGF0ZS5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldEhvdXJzKCkgOiBkYXRlLmdldEhvdXJzKCkpICsgXCI6XCIgKyAoZGF0ZS5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0TWludXRlcygpIDogZGF0ZS5nZXRNaW51dGVzKCkpICsgXCI6XCIgKyAoZGF0ZS5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0U2Vjb25kcygpIDogZGF0ZS5nZXRTZWNvbmRzKCkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZvcm1hdERhdGVXaXRob3V0UyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBtb250aDogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgIGxldCBzdHJEYXRlOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuICAgIGxldCBob3Vyczogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRIb3VycygpO1xyXG4gICAgbGV0IHNlY29uZHM6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gICAgaWYgKG1vbnRoIDw9IDkpIHtcclxuICAgICAgbW9udGggPSBcIjBcIiArIG1vbnRoO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJEYXRlIDw9IDkpIHtcclxuICAgICAgc3RyRGF0ZSA9IFwiMFwiICsgc3RyRGF0ZTtcclxuICAgIH1cclxuICAgIGlmIChob3VycyA8PSA5KSB7XHJcbiAgICAgIGhvdXJzID0gXCIwXCIgKyBob3VycztcclxuICAgIH1cclxuICAgIGlmIChzZWNvbmRzIDw9IDkpIHtcclxuICAgICAgc2Vjb25kcyA9IFwiMFwiICsgc2Vjb25kcztcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgKyBcIi1cIiArIG1vbnRoICsgXCItXCIgKyBzdHJEYXRlICsgXCIgXCIgKyBob3VycyArIFwiOlwiICsgc2Vjb25kcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRPc3NVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xyXG4gICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXRyX3N0YXRpY19kYXRhcy5PU1NfVVJMICsgdXJsO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG11bCguLi5udW1iZXJzOmFueSkge1xyXG4gICAgaWYgKG51bWJlcnMubGVuZ3RoIDwgMikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgbSA9IHRoaXMuZ2V0RGlnaXQobnVtYmVycyk7XHJcbiAgICBsZXQgcmVzdWx0ID0gMTtcclxuICAgIG51bWJlcnMuZm9yRWFjaChcclxuICAgICAgKG51bTphbnkpID0+IHtcclxuICAgICAgICBsZXQgcyA9IG51bS50b1N0cmluZygpO1xyXG4gICAgICAgIHJlc3VsdCAqPSBOdW1iZXIocy5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gcmVzdWx0IC8gTWF0aC5wb3coMTAsIG0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERpZ2l0KC4uLm51bWJlcnM6YW55W10pIHtcclxuICAgIGxldCBtID0gMDtcclxuICAgIG51bWJlcnMuZm9yRWFjaChcclxuICAgICAgbnVtID0+IHtcclxuICAgICAgICBsZXQgcyA9IG51bS50b1N0cmluZygpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBtICs9IHMuc3BsaXQoXCIuXCIpWzFdLmxlbmd0aFxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gbTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkb3dubG9hZEltZyhkYXRhOmFueSwgZmlsZU5hbWU/OiBzdHJpbmcsIGVuZHBvaW50Pzogc3RyaW5nKSB7XHJcbiAgICAvLyAvLyDkuIvovb3nsbvlnosgeGxzXHJcbiAgICAvLyBjb25zdCBjb250ZW50VHlwZSA9ICdpbWFnZS9qcGVnJztcclxuICAgIC8vIC8vIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JztcclxuICAgIC8vIC8vIOS4i+i9veexu+Wei++8mmNzdlxyXG4gICAgLy8gY29uc3QgZGVidWcgPSB7aGVsbG86IFwid29ybGRcIn07XHJcbiAgICAvLyBjb25zdCBibG9iID0gbmV3IEJsb2IoW10se3R5cGUgOiAnaW1hZ2UvanBlZyd9KTtcclxuICAgIC8vIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgLy9cclxuICAgIC8vIC8vIOaJk+W8gOaWsOeql+WPo+aWueW8j+i/m+ihjOS4i+i9vVxyXG4gICAgLy8gLy8gd2luZG93Lm9wZW4odXJsKTtcclxuICAgIC8vXHJcbiAgICAvLyAvLyDku6XliqjmgIHliJvlu7ph5qCH562+6L+b6KGM5LiL6L29XHJcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgYS5ocmVmID0gZGF0YTtcclxuICAgIC8vIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZT9maWxlTmFtZTpcIlwiICsgZW5kcG9pbnQ7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZG93bmxvYWRYbHModXJsOnN0cmluZywgcGFyYW1zPzogYW55LCkge1xyXG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgdXJsICs9IFwiP1wiO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XHJcbiAgICAgICAgaWYgKHBhcmFtc1trZXldKSB7XHJcbiAgICAgICAgICB1cmwgKz0ga2V5ICsgXCI9XCIgKyBwYXJhbXNba2V5XSArIFwiJiZcIlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2codXJsKTtcclxuICAgIC8vIHdpbmRvdy5vcGVuKHVybCk7XHJcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgYS5ocmVmID0gdXJsO1xyXG4gICAgLy8gLy8gYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgLy8gYS5kb3dubG9hZCA9IFwiMzMyMS54bHNcIjtcclxuICAgIGEuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBwaXhlbFRvTnVtKHdpZHRoOmFueSkge1xyXG4gICAgY29uc3QgcmUgPSAvcHgvZ2k7XHJcbiAgICBsZXQgd2lkdGhTdHIgPSB3aWR0aC5yZXBsYWNlKHJlLCBcIlwiKTtcclxuICAgIHJldHVybiBOdW1iZXIod2lkdGhTdHIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFsbEVxdWFsID0gKC4uLmFycmF5OmFueVtdKSA9PiBhcnJheS5ldmVyeShpdGVtID0+IGl0ZW0gPT09IGFycmF5WzBdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYXJyYXnmiYDmnInlj4LmlbDmu6HotrNmbuWHveaVsOi/lOWbnnRydWVcclxuICAgKiBhbGwoeCA9PiB4ID4gMSwxLDIsMyk7IC8vIHRydWVcclxuICAgKiBAcGFyYW0gY2FsbGJhY2tcclxuICAgKiBAcGFyYW0gYXJyYXlcclxuICAgKi9cclxuICBzdGF0aWMgc2F0aXNmaWVkRm4gPSAoY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbiwgLi4uYXJyYXk6YW55W10pID0+IGFycmF5LmV2ZXJ5KGNhbGxiYWNrKTtcclxuXHJcbiAgLy/lhajpg6jkuI3nqbrkuLp0cnVlXHJcbiAgc3RhdGljIG5vdEVtcHR5KC4uLmFycjphbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFyci5ldmVyeShpdGVtID0+ICEhaXRlbSlcclxuICB9XHJcblxyXG4gIC8v5YyF5ZCr56m65Li6dHJ1ZVxyXG4gIHN0YXRpYyBoYXNFbXB0eSguLi5hcnI6YW55W10pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhcnIuc29tZShpdGVtID0+ICFpdGVtKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhbGxFbXB0eSguLi5hcnI6YW55W10pIHtcclxuICAgIHJldHVybiBhcnIuZXZlcnkoaXRlbSA9PiAhaXRlbSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZW5jb2RlVmFsdWUocGFyYW1zOmFueSkge1xyXG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiBwYXJhbXNba2V5XSA9IGVuY29kZVVSSUNvbXBvbmVudChwYXJhbXNba2V5XSkpO1xyXG4gICAgcmV0dXJuIHBhcmFtcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyB3aW5kb3dIZWlnaHQoKSB7XHJcbiAgICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gIH1cclxuICBzdGF0aWMgd2luZG93V2lkdGgoKSB7XHJcblxyXG4gICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG1vZGFsZVN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHsnbWF4SGVpZ2h0JzogVG9vbHNVdGlsLndpbmRvd0hlaWdodCgpIC0gMjAwICsgJ3B4JywgJ292ZXJmbG93LXknOiAnYXV0byd9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -300,14 +300,13 @@ class ToolsUtil {
300
300
  return date.getFullYear() + "-" + month + "-" + strDate + " " + hours + ":" + seconds;
301
301
  }
302
302
  static getOssUrl(url) {
303
- alert(this.ossPrefix);
304
303
  if (!url) {
305
304
  return "";
306
305
  }
307
306
  if (url.startsWith("http")) {
308
307
  return url;
309
308
  }
310
- return this.ossPrefix + url;
309
+ return atr_static_datas.OSS_URL + url;
311
310
  }
312
311
  static mul(...numbers) {
313
312
  if (numbers.length < 2) {
@@ -400,7 +399,6 @@ class ToolsUtil {
400
399
  return { 'maxHeight': ToolsUtil.windowHeight() - 200 + 'px', 'overflow-y': 'auto' };
401
400
  }
402
401
  }
403
- ToolsUtil.ossPrefix = atr_static_datas.OSS_URL;
404
402
  ToolsUtil.getOrgCode = function () {
405
403
  // var orgCode = '';
406
404
  // var hrefs = window.location.href.split('?')