ngx-rs-ant 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/esm2020/data-grid/data-grid.component.mjs +3 -3
  2. package/esm2020/data-grid/instance-link-template/instance-link-template.component.mjs +3 -3
  3. package/esm2020/drawer/drawer.component.mjs +5 -1
  4. package/esm2020/drawer/drawer.service.mjs +2 -2
  5. package/esm2020/form/form.component.mjs +4 -4
  6. package/esm2020/public-api.mjs +11 -1
  7. package/esm2020/types/component/mark-item-component-base.mjs +8 -0
  8. package/esm2020/types/config/mark-item-config-base.mjs +4 -0
  9. package/esm2020/types/config/modal-config-base.mjs +1 -1
  10. package/esm2020/util/utils.mjs +17 -17
  11. package/esm2020/word/section/color.pipe.mjs +19 -0
  12. package/esm2020/word/section/mark.pipe.mjs +20 -0
  13. package/esm2020/word/section/node/node.component.mjs +31 -0
  14. package/esm2020/word/section/node/paragraph/paragraph.component.mjs +44 -0
  15. package/esm2020/word/section/node/paragraph/run/run.component.mjs +84 -0
  16. package/esm2020/word/section/node/paragraph-for-input/item/item.component.mjs +64 -0
  17. package/esm2020/word/section/node/paragraph-for-input/paragraph-for-input.component.mjs +46 -0
  18. package/esm2020/word/section/pt.pipe.mjs +22 -0
  19. package/esm2020/word/section/section.component.mjs +44 -0
  20. package/esm2020/word/section/section.module.mjs +50 -0
  21. package/esm2020/word/section/section.service.mjs +48 -0
  22. package/esm2020/word/word-designer/mark-config/mark-config.component.mjs +77 -0
  23. package/esm2020/word/word-designer/word-designer.component.mjs +207 -0
  24. package/esm2020/word/word-designer/word-designer.module.mjs +35 -0
  25. package/esm2020/word/word-designer/word-designer.service.mjs +69 -0
  26. package/esm2020/word/word-editor/word-editor.component.mjs +154 -0
  27. package/esm2020/word/word-editor/word-editor.module.mjs +32 -0
  28. package/esm2020/word/word-editor/word-editor.service.mjs +67 -0
  29. package/fesm2015/ngx-rs-ant.mjs +1043 -23
  30. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  31. package/fesm2020/ngx-rs-ant.mjs +1036 -23
  32. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  33. package/package.json +2 -2
  34. package/public-api.d.ts +10 -0
  35. package/types/component/mark-item-component-base.d.ts +21 -0
  36. package/types/config/mark-item-config-base.d.ts +17 -0
  37. package/types/config/modal-config-base.d.ts +8 -0
  38. package/util/utils.d.ts +10 -10
  39. package/word/section/color.pipe.d.ts +7 -0
  40. package/word/section/mark.pipe.d.ts +10 -0
  41. package/word/section/node/node.component.d.ts +12 -0
  42. package/word/section/node/paragraph/paragraph.component.d.ts +35 -0
  43. package/word/section/node/paragraph/run/run.component.d.ts +21 -0
  44. package/word/section/node/paragraph-for-input/item/item.component.d.ts +27 -0
  45. package/word/section/node/paragraph-for-input/paragraph-for-input.component.d.ts +35 -0
  46. package/word/section/pt.pipe.d.ts +7 -0
  47. package/word/section/section.component.d.ts +22 -0
  48. package/word/section/section.module.d.ts +16 -0
  49. package/word/section/section.service.d.ts +24 -0
  50. package/word/word-designer/mark-config/mark-config.component.d.ts +21 -0
  51. package/word/word-designer/word-designer.component.d.ts +48 -0
  52. package/word/word-designer/word-designer.module.d.ts +11 -0
  53. package/word/word-designer/word-designer.service.d.ts +13 -0
  54. package/word/word-editor/word-editor.component.d.ts +41 -0
  55. package/word/word-editor/word-editor.module.d.ts +10 -0
  56. package/word/word-editor/word-editor.service.d.ts +14 -0
@@ -1,13 +1,13 @@
1
1
  import notify from "devextreme/ui/notify";
2
2
  import { firstValueFrom, of } from "rxjs";
3
3
  import validationEngine from "devextreme/ui/validation_engine";
4
- export function notify_error(message) {
4
+ export function notifyError(message) {
5
5
  _notify(message, 12000, 'warning');
6
6
  }
7
- export function notify_warning(message) {
7
+ export function notifyWarning(message) {
8
8
  _notify(message, 8000, 'warning');
9
9
  }
10
- export function notify_success(message) {
10
+ export function notifySuccess(message) {
11
11
  _notify(message, 4000, 'success');
12
12
  }
13
13
  function _notify(message, time, type) {
@@ -27,7 +27,7 @@ function _notify(message, time, type) {
27
27
  export function localeSortMethod(value1, value2) {
28
28
  return value1.localeCompare(value2);
29
29
  }
30
- export function file_type_icon(name) {
30
+ export function fileTypeIcon(name) {
31
31
  const type = name.substring(name.lastIndexOf('.') + 1).toLocaleLowerCase();
32
32
  switch (type) {
33
33
  case 'doc':
@@ -62,11 +62,11 @@ export function file_type_icon(name) {
62
62
  return 'unknown';
63
63
  }
64
64
  }
65
- export function support_preview_ext() {
65
+ export function supportPreviewExt() {
66
66
  return ['pdf', 'png', 'jpg', 'jpeg', 'gif', 'bmp', 'doc', 'docx', 'txt', 'xml', 'json', 'js', 'xls', 'xlsx', 'csv', 'ppt', 'pptx', 'mp3', 'mp4'];
67
67
  }
68
- export function format_file_size(size) {
69
- const labels = ['b', 'Kb', 'Mb', 'Gb'];
68
+ export function formatFileSize(size) {
69
+ const labels = ['b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb'];
70
70
  const count = labels.length - 1;
71
71
  let i = 0;
72
72
  while (i < count && size >= 1024) {
@@ -75,7 +75,7 @@ export function format_file_size(size) {
75
75
  }
76
76
  return Math.round(size * 100) / 100 + " " + labels[i];
77
77
  }
78
- export function filename_from_disposition(disposition) {
78
+ export function filenameFromDisposition(disposition) {
79
79
  const filenamePair = disposition.split(';').filter(str => /^filename=/.test(str.trim())).pop();
80
80
  if (filenamePair) {
81
81
  let str = filenamePair.trim();
@@ -87,7 +87,7 @@ export function filename_from_disposition(disposition) {
87
87
  return null;
88
88
  }
89
89
  }
90
- export function download_file(blob, filename, callback) {
90
+ export function downloadFile(blob, filename, callback) {
91
91
  const url = window.webkitURL.createObjectURL(blob);
92
92
  const a = document.createElement('a');
93
93
  document.body.appendChild(a);
@@ -126,20 +126,20 @@ export function validate(validator) {
126
126
  }
127
127
  });
128
128
  }
129
- export function validate_group(validationGroupComponent) {
129
+ export function validateGroup(validationGroupComponent) {
130
130
  if (!validationGroupComponent) {
131
131
  return firstValueFrom(of(true));
132
132
  }
133
- return validateGroup(validationGroupComponent.instance, validationGroupComponent.element.nativeElement);
133
+ return _validateGroup(validationGroupComponent.instance, validationGroupComponent.element.nativeElement);
134
134
  }
135
- export function validate_group_by_name(name, brokenElementParent) {
135
+ export function validateGroupByName(name, brokenElementParent) {
136
136
  const validationGroup = validationEngine.getGroupConfig(name);
137
137
  if (!validationGroup) {
138
138
  return firstValueFrom(of(true));
139
139
  }
140
- return validateGroup(validationGroup, brokenElementParent);
140
+ return _validateGroup(validationGroup, brokenElementParent);
141
141
  }
142
- function validateGroup(validationGroup, brokenElementParent) {
142
+ function _validateGroup(validationGroup, brokenElementParent) {
143
143
  let sourceNode;
144
144
  const targetClassName = 'dx-field';
145
145
  const findTargetNode = (node) => {
@@ -223,7 +223,7 @@ export function evaluateFilter(filter, model) {
223
223
  return false;
224
224
  }
225
225
  if (typeof filter[0] === 'string') {
226
- return evaluateCondition(filter, model);
226
+ return _evaluateCondition(filter, model);
227
227
  }
228
228
  // 复合条件,约定统一为and/or
229
229
  let currentOperator = filter[1].toUpperCase();
@@ -240,7 +240,7 @@ export function evaluateFilter(filter, model) {
240
240
  }
241
241
  return false;
242
242
  }
243
- function evaluateCondition(condition, model) {
243
+ function _evaluateCondition(condition, model) {
244
244
  const [key, conditionType, value] = condition;
245
245
  let modelValue = model[key];
246
246
  switch (conditionType) {
@@ -323,4 +323,4 @@ export function addWatermark(container, watermark) {
323
323
  container.style.position = 'relative';
324
324
  container.insertBefore(watermarkDiv, container.firstChild);
325
325
  }
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy91dGlsL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxJQUFzQztJQUNwRixNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztRQUNiLFFBQVEsRUFBRSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO0tBQzdDLEVBQUU7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsY0FBYztLQUN6QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFN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TUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLFlBQVksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUMvQixZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDekMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQy9CLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNuQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDMUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxTQUFTLEdBQUcsQ0FBQztJQUN6RCxZQUFZLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztJQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDdEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm90aWZ5IGZyb20gXCJkZXZleHRyZW1lL3VpL25vdGlmeVwiO1xyXG5pbXBvcnQge0R4VmFsaWRhdG9yQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG9mfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdmFsaWRhdGlvbkVuZ2luZSBmcm9tIFwiZGV2ZXh0cmVtZS91aS92YWxpZGF0aW9uX2VuZ2luZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeV9lcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICBfbm90aWZ5KG1lc3NhZ2UsIDEyMDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3dhcm5pbmcobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA4MDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3N1Y2Nlc3MobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA0MDAwLCAnc3VjY2VzcycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfbm90aWZ5KG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyLCB0eXBlOiAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJykge1xyXG4gIG5vdGlmeSh7XHJcbiAgICBkaXNwbGF5VGltZTogdGltZSxcclxuICAgIG1lc3NhZ2UsXHJcbiAgICB0eXBlOiB0eXBlLFxyXG4gICAgY2xvc2VPblN3aXBlOiBmYWxzZSxcclxuICAgIG1pbldpZHRoOiAyMDAsXHJcbiAgICBtYXhXaWR0aDogNTAwLFxyXG4gICAgd3JhcHBlckF0dHI6IHtjbGFzczogJ2dsb2JhbC10b2FzdC1tZXNzYWdlJ31cclxuICB9LCB7XHJcbiAgICBkaXJlY3Rpb246ICd1cC1wdXNoJyxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tIHJpZ2h0J1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxlU29ydE1ldGhvZCh2YWx1ZTE6IHN0cmluZywgdmFsdWUyOiBzdHJpbmcpIHtcclxuICByZXR1cm4gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVfdHlwZV9pY29uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgdHlwZSA9IG5hbWUuc3Vic3RyaW5nKG5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdkb2MnOlxyXG4gICAgY2FzZSAnZG9jeCc6XHJcbiAgICAgIHJldHVybiAnd29yZCc7XHJcbiAgICBjYXNlICd4bHMnOlxyXG4gICAgY2FzZSAneGxzeCc6XHJcbiAgICBjYXNlICdjc3YnOlxyXG4gICAgICByZXR1cm4gJ2V4Y2VsJztcclxuICAgIGNhc2UgJ3BwdCc6XHJcbiAgICBjYXNlICdwcHR4JzpcclxuICAgICAgcmV0dXJuICdwcHQnO1xyXG4gICAgY2FzZSAncGRmJzpcclxuICAgICAgcmV0dXJuICdwZGYnO1xyXG4gICAgY2FzZSAndHh0JzpcclxuICAgIGNhc2UgJ3htbCc6XHJcbiAgICBjYXNlICdqc29uJzpcclxuICAgIGNhc2UgJ2pzJzpcclxuICAgICAgcmV0dXJuICd0ZXh0JztcclxuICAgIGNhc2UgJ3BuZyc6XHJcbiAgICBjYXNlICdqcGcnOlxyXG4gICAgY2FzZSAnanBlZyc6XHJcbiAgICBjYXNlICdnaWYnOlxyXG4gICAgY2FzZSAnYm1wJzpcclxuICAgICAgcmV0dXJuICdpbWFnZSc7XHJcbiAgICBjYXNlICd6aXAnOlxyXG4gICAgY2FzZSAncmFyJzpcclxuICAgIGNhc2UgJzd6JzpcclxuICAgIGNhc2UgJ2phcic6XHJcbiAgICAgIHJldHVybiAnemlwJztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiAndW5rbm93bic7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydF9wcmV2aWV3X2V4dCgpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIFsncGRmJywgJ3BuZycsICdqcGcnLCAnanBlZycsICdnaWYnLCAnYm1wJywgJ2RvYycsICdkb2N4JywgJ3R4dCcsICd4bWwnLCAnanNvbicsICdqcycsICd4bHMnLCAneGxzeCcsICdjc3YnLCAncHB0JywgJ3BwdHgnLCAnbXAzJywgJ21wNCddO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0X2ZpbGVfc2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhYmVscyA9IFsnYicsICdLYicsICdNYicsICdHYiddO1xyXG4gIGNvbnN0IGNvdW50ID0gbGFiZWxzLmxlbmd0aCAtIDE7XHJcbiAgbGV0IGkgPSAwO1xyXG4gIHdoaWxlIChpIDwgY291bnQgJiYgc2l6ZSA+PSAxMDI0KSB7XHJcbiAgICBzaXplIC89IDEwMjQ7XHJcbiAgICBpKys7XHJcbiAgfVxyXG4gIHJldHVybiBNYXRoLnJvdW5kKHNpemUgKiAxMDApIC8gMTAwICsgXCIgXCIgKyBsYWJlbHNbaV07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWxlbmFtZV9mcm9tX2Rpc3Bvc2l0aW9uKGRpc3Bvc2l0aW9uOiBzdHJpbmcpIHtcclxuICBjb25zdCBmaWxlbmFtZVBhaXIgPSBkaXNwb3NpdGlvbi5zcGxpdCgnOycpLmZpbHRlcihzdHIgPT4gL15maWxlbmFtZT0vLnRlc3Qoc3RyLnRyaW0oKSkpLnBvcCgpO1xyXG4gIGlmIChmaWxlbmFtZVBhaXIpIHtcclxuICAgIGxldCBzdHIgPSBmaWxlbmFtZVBhaXIudHJpbSgpO1xyXG4gICAgc3RyID0gc3RyLnNwbGl0KCc9JylbMV07XHJcbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvWydcIl0vZywgJycpO1xyXG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzdHIpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZF9maWxlKGJsb2I6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrPzogRnVuY3Rpb24pIHtcclxuICBjb25zdCB1cmwgPSB3aW5kb3cud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcbiAgYS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6bm9uZScpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcclxuICBhLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBkZWNvZGVVUklDb21wb25lbnQoZmlsZW5hbWUpKTtcclxuICBhLmNsaWNrKCk7XHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgY2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIGEucmVtb3ZlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZSh2YWxpZGF0b3I6IER4VmFsaWRhdG9yQ29tcG9uZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xyXG4gICAgaWYgKCF2YWxpZGF0b3IpIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gdmFsaWRhdG9yLmluc3RhbmNlLnZhbGlkYXRlKCk7XHJcbiAgICBpZiAoIXZhbGlkYXRlUmVzdWx0LmlzVmFsaWQpIHtcclxuICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWRhdGVSZXN1bHQuc3RhdHVzID09PSAncGVuZGluZycpIHtcclxuICAgICAgdmFsaWRhdGVSZXN1bHQuY29tcGxldGU/LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlX2dyb3VwKHZhbGlkYXRpb25Hcm91cENvbXBvbmVudDogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgaWYgKCF2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQpIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShvZih0cnVlKSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cENvbXBvbmVudC5pbnN0YW5jZSwgdmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50LmVsZW1lbnQubmF0aXZlRWxlbWVudClcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlX2dyb3VwX2J5X25hbWUobmFtZTogc3RyaW5nLCBicm9rZW5FbGVtZW50UGFyZW50OiBFbGVtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgY29uc3QgdmFsaWRhdGlvbkdyb3VwID0gdmFsaWRhdGlvbkVuZ2luZS5nZXRHcm91cENvbmZpZyhuYW1lKTtcclxuICBpZiAoIXZhbGlkYXRpb25Hcm91cCkge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKG9mKHRydWUpKTtcclxuICB9XHJcbiAgcmV0dXJuIHZhbGlkYXRlR3JvdXAodmFsaWRhdGlvbkdyb3VwLCBicm9rZW5FbGVtZW50UGFyZW50KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVHcm91cCh2YWxpZGF0aW9uR3JvdXA6IGFueSwgYnJva2VuRWxlbWVudFBhcmVudDogRWxlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGxldCBzb3VyY2VOb2RlO1xyXG4gIGNvbnN0IHRhcmdldENsYXNzTmFtZSA9ICdkeC1maWVsZCc7XHJcbiAgY29uc3QgZmluZFRhcmdldE5vZGUgPSAobm9kZTogYW55KSA9PiB7XHJcbiAgICBzb3VyY2VOb2RlID0gbm9kZTtcclxuICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyh0YXJnZXRDbGFzc05hbWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcclxuICAgICAgICBpZiAobm9kZSA9PT0gYnJva2VuRWxlbWVudFBhcmVudCkge1xyXG4gICAgICAgICAgcmV0dXJuIHNvdXJjZU5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4ocmVzb2x2ZSA9PiB7XHJcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IHZhbGlkYXRpb25Hcm91cC52YWxpZGF0ZSgpO1xyXG4gICAgaWYgKCF2YWxpZGF0ZVJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgIGNvbnN0IGJyb2tlbkVsZW1lbnQgPSAodmFsaWRhdGVSZXN1bHQuYnJva2VuUnVsZXM/LlswXSBhcyBhbnkpLnZhbGlkYXRvci5lbGVtZW50KCk7XHJcbiAgICAgIGZpbmRUYXJnZXROb2RlKGJyb2tlbkVsZW1lbnQpLnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgICBibG9jazogJ2NlbnRlcicsXHJcbiAgICAgICAgaW5saW5lOiAnY2VudGVyJ1xyXG4gICAgICB9KTtcclxuICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWRhdGVSZXN1bHQuc3RhdHVzID09PSAncGVuZGluZycpIHtcclxuICAgICAgdmFsaWRhdGVSZXN1bHQuY29tcGxldGU/LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBicm9rZW5FbGVtZW50ID0gKHJlc3VsdC5icm9rZW5SdWxlcz8uWzBdIGFzIGFueSkudmFsaWRhdG9yLmVsZW1lbnQoKTtcclxuICAgICAgICAgIGZpbmRUYXJnZXROb2RlKGJyb2tlbkVsZW1lbnQpLnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICBpbmxpbmU6ICdjZW50ZXInXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkJyb3dzZXJUYWIocGx1Z2luTmFtZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgcGx1Z2luQ29uZmlnPzogYW55LCBwYXJhbXM/OiBhbnkpIHtcclxuICByZXR1cm4gd2luZG93Lm9wZW4oJ2N1c3RvbS8nICsgcGx1Z2luTmFtZSArICc/dGl0bGU9JyArIGVuY29kZVVSSUNvbXBvbmVudCh0aXRsZSB8fCAnJylcclxuICAgICsgJyZwbHVnaW5Db25maWc9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwbHVnaW5Db25maWcgfHwge30pKVxyXG4gICAgKyAnJnBhcmFtcz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBhcmFtcyB8fCB7fSkpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZTxUPihvYmo6IGFueSk6IFQge1xyXG4gIC8vIOWmguaenOaYr+WfuuehgOaVsOaNruexu+Wei++8jOebtOaOpei/lOWbnlxyXG4gIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpIHtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIC8vIOiOt+WPluWvueixoeeahOaehOmAoOWHveaVsFxyXG4gIGNvbnN0IGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yO1xyXG4gIC8vIOWkhOeQhuaVsOe7hOWSjOWvueixoVxyXG4gIGxldCByZXN1bHQ6IGFueTtcclxuICBpZiAoY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICByZXN1bHQgPSBbXTtcclxuICAgIC8vIOmBjeWOhuaVsOe7hO+8jOmAkuW9kua3seaLt+i0nVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcmVzdWx0W2ldID0gZGVlcENsb25lKG9ialtpXSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHJlc3VsdCA9IG5ldyBjb25zdHJ1Y3RvcigpO1xyXG4gICAgLy8g6YCS5b2S5ou36LSd5a+56LGh5bGe5oCnXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkZWVwQ2xvbmUob2JqW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBldmFsdWF0ZUZpbHRlcihmaWx0ZXI6IGFueSwgbW9kZWw6IGFueSk6IGJvb2xlYW4ge1xyXG4gIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXIpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmICh0eXBlb2YgZmlsdGVyWzBdID09PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGV2YWx1YXRlQ29uZGl0aW9uKGZpbHRlciwgbW9kZWwpO1xyXG4gIH1cclxuICAvLyDlpI3lkIjmnaHku7bvvIznuqblrprnu5/kuIDkuLphbmQvb3JcclxuICBsZXQgY3VycmVudE9wZXJhdG9yID0gZmlsdGVyWzFdLnRvVXBwZXJDYXNlKCk7XHJcbiAgY29uc3QgcmVzdWx0cyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyLmxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICBjb25zdCBzdWJGaWx0ZXIgPSBmaWx0ZXJbaV07XHJcbiAgICByZXN1bHRzLnB1c2goZXZhbHVhdGVGaWx0ZXIoc3ViRmlsdGVyLCBtb2RlbCkpO1xyXG4gIH1cclxuICBzd2l0Y2ggKGN1cnJlbnRPcGVyYXRvcikge1xyXG4gICAgY2FzZSAnQU5EJzpcclxuICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoYm9vbFZhbHVlID0+IGJvb2xWYWx1ZSk7XHJcbiAgICBjYXNlICdPUic6XHJcbiAgICAgIHJldHVybiByZXN1bHRzLnNvbWUoYm9vbFZhbHVlID0+IGJvb2xWYWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uOiBhbnksIG1vZGVsOiBhbnkpOiBib29sZWFuIHtcclxuICBjb25zdCBba2V5LCBjb25kaXRpb25UeXBlLCB2YWx1ZV0gPSBjb25kaXRpb247XHJcbiAgbGV0IG1vZGVsVmFsdWUgPSBtb2RlbFtrZXldO1xyXG4gIHN3aXRjaCAoY29uZGl0aW9uVHlwZSkge1xyXG4gICAgY2FzZSAnPSc6XHJcbiAgICAgIGlmICh2YWx1ZSA9PSAnJG51bGwkJykge1xyXG4gICAgICAgIHJldHVybiAhbW9kZWxWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA9PSB2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSAmJiBtb2RlbFZhbHVlLmluY2x1ZGVzKHZhbHVlKSk7XHJcbiAgICBjYXNlICc8Pic6XHJcbiAgICAgIGlmICh2YWx1ZSA9PSAnJG51bGwkJykge1xyXG4gICAgICAgIHJldHVybiAhIW1vZGVsVmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgIT09IHZhbHVlICYmICghQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSB8fCAhbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgY2FzZSAnPic6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlID4gdmFsdWU7XHJcbiAgICBjYXNlICc8JzpcclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPCB2YWx1ZTtcclxuICAgIGNhc2UgJz49JzpcclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPj0gdmFsdWU7XHJcbiAgICBjYXNlICc8PSc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlIDw9IHZhbHVlO1xyXG4gICAgY2FzZSAnY29udGFpbnMnOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIG1vZGVsVmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XHJcbiAgICBjYXNlICdzdGFydHNXaXRoJzpcclxuICAgICAgcmV0dXJuIHR5cGVvZiBtb2RlbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIG1vZGVsVmFsdWUuc3RhcnRzV2l0aCh2YWx1ZSk7XHJcbiAgICBjYXNlICdlbmRzV2l0aCc6XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbW9kZWxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBtb2RlbFZhbHVlLmVuZHNXaXRoKHZhbHVlKTtcclxuICAgIGNhc2UgJ2luJzpcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZSkpIHtcclxuICAgICAgICBtb2RlbFZhbHVlID0gbW9kZWxWYWx1ZVswXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUuaW5jbHVkZXMobW9kZWxWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KFwiLFwiKS5tYXAoKHY6IHN0cmluZykgPT4gdi50cmltKCkpLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICBjYXNlICduaSc6XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsVmFsdWUpKSB7XHJcbiAgICAgICAgbW9kZWxWYWx1ZSA9IG1vZGVsVmFsdWVbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5pbmNsdWRlcyhtb2RlbFZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gIXZhbHVlLnNwbGl0KFwiLFwiKS5tYXAoKHY6IHN0cmluZykgPT4gdi50cmltKCkpLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkV2F0ZXJtYXJrKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHdhdGVybWFyazoge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdGV4dDogc3RyaW5nLFxyXG4gIGNvbG9yOiBzdHJpbmcsXHJcbiAgZm9udDogc3RyaW5nLFxyXG4gIHNpemU6IG51bWJlcixcclxuICByb3RhdGU6IG51bWJlcixcclxuICBkZW5zaXR5OiBudW1iZXJcclxufSk6IHZvaWQge1xyXG4gIGxldCB3YXRlcm1hcmtEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh3YXRlcm1hcmsuaWQpO1xyXG4gIGlmICh3YXRlcm1hcmtEaXYpIHtcclxuICAgIHdhdGVybWFya0Rpdi5yZW1vdmUoKTtcclxuICB9XHJcbiAgY29uc3Qgd2lkdGggPSA1MDAwIC8gd2F0ZXJtYXJrLmRlbnNpdHk7XHJcbiAgY29uc3QgaGVpZ2h0ID0gNTAwMCAvIHdhdGVybWFyay5kZW5zaXR5O1xyXG4gIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xyXG4gIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgY29uc3QgY3R4OiBhbnkgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XHJcbiAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xyXG4gIGN0eC5mb250ID0gYCR7d2F0ZXJtYXJrLnNpemV9cHggJHt3YXRlcm1hcmsuZm9udH1gO1xyXG4gIGN0eC5maWxsU3R5bGUgPSB3YXRlcm1hcmsuY29sb3I7XHJcbiAgY3R4LnRyYW5zbGF0ZSh3aWR0aCAvIDIsIGhlaWdodCAvIDIpO1xyXG4gIGN0eC5yb3RhdGUod2F0ZXJtYXJrLnJvdGF0ZSAqIE1hdGguUEkgLyAxODApO1xyXG4gIGN0eC50cmFuc2xhdGUoLXdpZHRoIC8gMiwgLWhlaWdodCAvIDIpO1xyXG4gIGN0eC5maWxsVGV4dCh3YXRlcm1hcmsudGV4dCwgd2lkdGggLyAyLCBoZWlnaHQgLyAyKTtcclxuICBjb25zdCBiYXNlNjRVcmwgPSBjYW52YXMudG9EYXRhVVJMKCk7XHJcbiAgd2F0ZXJtYXJrRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgd2F0ZXJtYXJrRGl2LmlkID0gd2F0ZXJtYXJrLmlkO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLmluc2V0ID0gJzAnO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS56SW5kZXggPSAnNTAwMCc7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHtiYXNlNjRVcmx9KWA7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLmJhY2tncm91bmRSZXBlYXQgPSAncmVwZWF0JztcclxuICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xyXG4gIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUod2F0ZXJtYXJrRGl2LCBjb250YWluZXIuZmlyc3RDaGlsZCk7XHJcbn1cclxuIl19
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy91dGlsL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFlO0lBQ3pDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWU7SUFDM0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBZTtJQUMzQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxJQUFzQztJQUNwRixNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztRQUNiLFFBQVEsRUFBRSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO0tBQzdDLEVBQUU7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsY0FBYztLQUN6QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFN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QztJQUNyQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLFlBQVksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUMvQixZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDekMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQy9CLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNuQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDMUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxTQUFTLEdBQUcsQ0FBQztJQUN6RCxZQUFZLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztJQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDdEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm90aWZ5IGZyb20gXCJkZXZleHRyZW1lL3VpL25vdGlmeVwiO1xyXG5pbXBvcnQge0R4VmFsaWRhdG9yQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG9mfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdmFsaWRhdGlvbkVuZ2luZSBmcm9tIFwiZGV2ZXh0cmVtZS91aS92YWxpZGF0aW9uX2VuZ2luZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeUVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gIF9ub3RpZnkobWVzc2FnZSwgMTIwMDAsICd3YXJuaW5nJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBub3RpZnlXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gIF9ub3RpZnkobWVzc2FnZSwgODAwMCwgJ3dhcm5pbmcnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeVN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA0MDAwLCAnc3VjY2VzcycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfbm90aWZ5KG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyLCB0eXBlOiAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJykge1xyXG4gIG5vdGlmeSh7XHJcbiAgICBkaXNwbGF5VGltZTogdGltZSxcclxuICAgIG1lc3NhZ2UsXHJcbiAgICB0eXBlOiB0eXBlLFxyXG4gICAgY2xvc2VPblN3aXBlOiBmYWxzZSxcclxuICAgIG1pbldpZHRoOiAyMDAsXHJcbiAgICBtYXhXaWR0aDogNTAwLFxyXG4gICAgd3JhcHBlckF0dHI6IHtjbGFzczogJ2dsb2JhbC10b2FzdC1tZXNzYWdlJ31cclxuICB9LCB7XHJcbiAgICBkaXJlY3Rpb246ICd1cC1wdXNoJyxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tIHJpZ2h0J1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxlU29ydE1ldGhvZCh2YWx1ZTE6IHN0cmluZywgdmFsdWUyOiBzdHJpbmcpIHtcclxuICByZXR1cm4gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVUeXBlSWNvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IHR5cGUgPSBuYW1lLnN1YnN0cmluZyhuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnZG9jJzpcclxuICAgIGNhc2UgJ2RvY3gnOlxyXG4gICAgICByZXR1cm4gJ3dvcmQnO1xyXG4gICAgY2FzZSAneGxzJzpcclxuICAgIGNhc2UgJ3hsc3gnOlxyXG4gICAgY2FzZSAnY3N2JzpcclxuICAgICAgcmV0dXJuICdleGNlbCc7XHJcbiAgICBjYXNlICdwcHQnOlxyXG4gICAgY2FzZSAncHB0eCc6XHJcbiAgICAgIHJldHVybiAncHB0JztcclxuICAgIGNhc2UgJ3BkZic6XHJcbiAgICAgIHJldHVybiAncGRmJztcclxuICAgIGNhc2UgJ3R4dCc6XHJcbiAgICBjYXNlICd4bWwnOlxyXG4gICAgY2FzZSAnanNvbic6XHJcbiAgICBjYXNlICdqcyc6XHJcbiAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICBjYXNlICdwbmcnOlxyXG4gICAgY2FzZSAnanBnJzpcclxuICAgIGNhc2UgJ2pwZWcnOlxyXG4gICAgY2FzZSAnZ2lmJzpcclxuICAgIGNhc2UgJ2JtcCc6XHJcbiAgICAgIHJldHVybiAnaW1hZ2UnO1xyXG4gICAgY2FzZSAnemlwJzpcclxuICAgIGNhc2UgJ3Jhcic6XHJcbiAgICBjYXNlICc3eic6XHJcbiAgICBjYXNlICdqYXInOlxyXG4gICAgICByZXR1cm4gJ3ppcCc7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gJ3Vua25vd24nO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRQcmV2aWV3RXh0KCk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gWydwZGYnLCAncG5nJywgJ2pwZycsICdqcGVnJywgJ2dpZicsICdibXAnLCAnZG9jJywgJ2RvY3gnLCAndHh0JywgJ3htbCcsICdqc29uJywgJ2pzJywgJ3hscycsICd4bHN4JywgJ2NzdicsICdwcHQnLCAncHB0eCcsICdtcDMnLCAnbXA0J107XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhYmVscyA9IFsnYicsICdLYicsICdNYicsICdHYicsICdUYicsICdQYiddO1xyXG4gIGNvbnN0IGNvdW50ID0gbGFiZWxzLmxlbmd0aCAtIDE7XHJcbiAgbGV0IGkgPSAwO1xyXG4gIHdoaWxlIChpIDwgY291bnQgJiYgc2l6ZSA+PSAxMDI0KSB7XHJcbiAgICBzaXplIC89IDEwMjQ7XHJcbiAgICBpKys7XHJcbiAgfVxyXG4gIHJldHVybiBNYXRoLnJvdW5kKHNpemUgKiAxMDApIC8gMTAwICsgXCIgXCIgKyBsYWJlbHNbaV07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWxlbmFtZUZyb21EaXNwb3NpdGlvbihkaXNwb3NpdGlvbjogc3RyaW5nKSB7XHJcbiAgY29uc3QgZmlsZW5hbWVQYWlyID0gZGlzcG9zaXRpb24uc3BsaXQoJzsnKS5maWx0ZXIoc3RyID0+IC9eZmlsZW5hbWU9Ly50ZXN0KHN0ci50cmltKCkpKS5wb3AoKTtcclxuICBpZiAoZmlsZW5hbWVQYWlyKSB7XHJcbiAgICBsZXQgc3RyID0gZmlsZW5hbWVQYWlyLnRyaW0oKTtcclxuICAgIHN0ciA9IHN0ci5zcGxpdCgnPScpWzFdO1xyXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1snXCJdL2csICcnKTtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlKGJsb2I6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrPzogRnVuY3Rpb24pIHtcclxuICBjb25zdCB1cmwgPSB3aW5kb3cud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcbiAgYS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6bm9uZScpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcclxuICBhLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBkZWNvZGVVUklDb21wb25lbnQoZmlsZW5hbWUpKTtcclxuICBhLmNsaWNrKCk7XHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgY2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIGEucmVtb3ZlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZSh2YWxpZGF0b3I6IER4VmFsaWRhdG9yQ29tcG9uZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xyXG4gICAgaWYgKCF2YWxpZGF0b3IpIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gdmFsaWRhdG9yLmluc3RhbmNlLnZhbGlkYXRlKCk7XHJcbiAgICBpZiAoIXZhbGlkYXRlUmVzdWx0LmlzVmFsaWQpIHtcclxuICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWRhdGVSZXN1bHQuc3RhdHVzID09PSAncGVuZGluZycpIHtcclxuICAgICAgdmFsaWRhdGVSZXN1bHQuY29tcGxldGU/LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlR3JvdXAodmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50OiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICBpZiAoIXZhbGlkYXRpb25Hcm91cENvbXBvbmVudCkge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKG9mKHRydWUpKTtcclxuICB9XHJcbiAgcmV0dXJuIF92YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cENvbXBvbmVudC5pbnN0YW5jZSwgdmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50LmVsZW1lbnQubmF0aXZlRWxlbWVudClcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlR3JvdXBCeU5hbWUobmFtZTogc3RyaW5nLCBicm9rZW5FbGVtZW50UGFyZW50OiBFbGVtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgY29uc3QgdmFsaWRhdGlvbkdyb3VwID0gdmFsaWRhdGlvbkVuZ2luZS5nZXRHcm91cENvbmZpZyhuYW1lKTtcclxuICBpZiAoIXZhbGlkYXRpb25Hcm91cCkge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKG9mKHRydWUpKTtcclxuICB9XHJcbiAgcmV0dXJuIF92YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cCwgYnJva2VuRWxlbWVudFBhcmVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIF92YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cDogYW55LCBicm9rZW5FbGVtZW50UGFyZW50OiBFbGVtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgbGV0IHNvdXJjZU5vZGU7XHJcbiAgY29uc3QgdGFyZ2V0Q2xhc3NOYW1lID0gJ2R4LWZpZWxkJztcclxuICBjb25zdCBmaW5kVGFyZ2V0Tm9kZSA9IChub2RlOiBhbnkpID0+IHtcclxuICAgIHNvdXJjZU5vZGUgPSBub2RlO1xyXG4gICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgaWYgKG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKHRhcmdldENsYXNzTmFtZSkpIHtcclxuICAgICAgICByZXR1cm4gbm9kZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgIGlmIChub2RlID09PSBicm9rZW5FbGVtZW50UGFyZW50KSB7XHJcbiAgICAgICAgICByZXR1cm4gc291cmNlTm9kZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcclxuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gdmFsaWRhdGlvbkdyb3VwLnZhbGlkYXRlKCk7XHJcbiAgICBpZiAoIXZhbGlkYXRlUmVzdWx0LmlzVmFsaWQpIHtcclxuICAgICAgY29uc3QgYnJva2VuRWxlbWVudCA9ICh2YWxpZGF0ZVJlc3VsdC5icm9rZW5SdWxlcz8uWzBdIGFzIGFueSkudmFsaWRhdG9yLmVsZW1lbnQoKTtcclxuICAgICAgZmluZFRhcmdldE5vZGUoYnJva2VuRWxlbWVudCkuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgIGJsb2NrOiAnY2VudGVyJyxcclxuICAgICAgICBpbmxpbmU6ICdjZW50ZXInXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmICh2YWxpZGF0ZVJlc3VsdC5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xyXG4gICAgICB2YWxpZGF0ZVJlc3VsdC5jb21wbGV0ZT8udGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmlzVmFsaWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGJyb2tlbkVsZW1lbnQgPSAocmVzdWx0LmJyb2tlblJ1bGVzPy5bMF0gYXMgYW55KS52YWxpZGF0b3IuZWxlbWVudCgpO1xyXG4gICAgICAgICAgZmluZFRhcmdldE5vZGUoYnJva2VuRWxlbWVudCkuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgICAgICBibG9jazogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgIGlubGluZTogJ2NlbnRlcidcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvcGVuQnJvd3NlclRhYihwbHVnaW5OYW1lOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nLCBwbHVnaW5Db25maWc/OiBhbnksIHBhcmFtcz86IGFueSkge1xyXG4gIHJldHVybiB3aW5kb3cub3BlbignY3VzdG9tLycgKyBwbHVnaW5OYW1lICsgJz90aXRsZT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHRpdGxlIHx8ICcnKVxyXG4gICAgKyAnJnBsdWdpbkNvbmZpZz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBsdWdpbkNvbmZpZyB8fCB7fSkpXHJcbiAgICArICcmcGFyYW1zPScgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocGFyYW1zIHx8IHt9KSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVlcENsb25lPFQ+KG9iajogYW55KTogVCB7XHJcbiAgLy8g5aaC5p6c5piv5Z+656GA5pWw5o2u57G75Z6L77yM55u05o6l6L+U5ZueXHJcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgLy8g6I635Y+W5a+56LGh55qE5p6E6YCg5Ye95pWwXHJcbiAgY29uc3QgY29uc3RydWN0b3IgPSBvYmouY29uc3RydWN0b3I7XHJcbiAgLy8g5aSE55CG5pWw57uE5ZKM5a+56LGhXHJcbiAgbGV0IHJlc3VsdDogYW55O1xyXG4gIGlmIChjb25zdHJ1Y3RvciA9PT0gQXJyYXkpIHtcclxuICAgIHJlc3VsdCA9IFtdO1xyXG4gICAgLy8g6YGN5Y6G5pWw57uE77yM6YCS5b2S5rex5ou36LSdXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkrKykge1xyXG4gICAgICByZXN1bHRbaV0gPSBkZWVwQ2xvbmUob2JqW2ldKTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmVzdWx0ID0gbmV3IGNvbnN0cnVjdG9yKCk7XHJcbiAgICAvLyDpgJLlvZLmi7fotJ3lr7nosaHlsZ7mgKdcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICByZXN1bHRba2V5XSA9IGRlZXBDbG9uZShvYmpba2V5XSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlRmlsdGVyKGZpbHRlcjogYW55LCBtb2RlbDogYW55KTogYm9vbGVhbiB7XHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGZpbHRlcikpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHR5cGVvZiBmaWx0ZXJbMF0gPT09ICdzdHJpbmcnKSB7XHJcbiAgICByZXR1cm4gX2V2YWx1YXRlQ29uZGl0aW9uKGZpbHRlciwgbW9kZWwpO1xyXG4gIH1cclxuICAvLyDlpI3lkIjmnaHku7bvvIznuqblrprnu5/kuIDkuLphbmQvb3JcclxuICBsZXQgY3VycmVudE9wZXJhdG9yID0gZmlsdGVyWzFdLnRvVXBwZXJDYXNlKCk7XHJcbiAgY29uc3QgcmVzdWx0cyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyLmxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICBjb25zdCBzdWJGaWx0ZXIgPSBmaWx0ZXJbaV07XHJcbiAgICByZXN1bHRzLnB1c2goZXZhbHVhdGVGaWx0ZXIoc3ViRmlsdGVyLCBtb2RlbCkpO1xyXG4gIH1cclxuICBzd2l0Y2ggKGN1cnJlbnRPcGVyYXRvcikge1xyXG4gICAgY2FzZSAnQU5EJzpcclxuICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoYm9vbFZhbHVlID0+IGJvb2xWYWx1ZSk7XHJcbiAgICBjYXNlICdPUic6XHJcbiAgICAgIHJldHVybiByZXN1bHRzLnNvbWUoYm9vbFZhbHVlID0+IGJvb2xWYWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gX2V2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogYW55LCBtb2RlbDogYW55KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgW2tleSwgY29uZGl0aW9uVHlwZSwgdmFsdWVdID0gY29uZGl0aW9uO1xyXG4gIGxldCBtb2RlbFZhbHVlID0gbW9kZWxba2V5XTtcclxuICBzd2l0Y2ggKGNvbmRpdGlvblR5cGUpIHtcclxuICAgIGNhc2UgJz0nOlxyXG4gICAgICBpZiAodmFsdWUgPT0gJyRudWxsJCcpIHtcclxuICAgICAgICByZXR1cm4gIW1vZGVsVmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPT0gdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZSkgJiYgbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgY2FzZSAnPD4nOlxyXG4gICAgICBpZiAodmFsdWUgPT0gJyRudWxsJCcpIHtcclxuICAgICAgICByZXR1cm4gISFtb2RlbFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlICE9PSB2YWx1ZSAmJiAoIUFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZSkgfHwgIW1vZGVsVmFsdWUuaW5jbHVkZXModmFsdWUpKTtcclxuICAgIGNhc2UgJz4nOlxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA+IHZhbHVlO1xyXG4gICAgY2FzZSAnPCc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlIDwgdmFsdWU7XHJcbiAgICBjYXNlICc+PSc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlID49IHZhbHVlO1xyXG4gICAgY2FzZSAnPD0nOlxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA8PSB2YWx1ZTtcclxuICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgcmV0dXJuIHR5cGVvZiBtb2RlbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIG1vZGVsVmFsdWUuaW5jbHVkZXModmFsdWUpO1xyXG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbW9kZWxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBtb2RlbFZhbHVlLnN0YXJ0c1dpdGgodmFsdWUpO1xyXG4gICAgY2FzZSAnZW5kc1dpdGgnOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIG1vZGVsVmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgbW9kZWxWYWx1ZS5lbmRzV2l0aCh2YWx1ZSk7XHJcbiAgICBjYXNlICdpbic6XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsVmFsdWUpKSB7XHJcbiAgICAgICAgbW9kZWxWYWx1ZSA9IG1vZGVsVmFsdWVbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdChcIixcIikubWFwKCh2OiBzdHJpbmcpID0+IHYudHJpbSgpKS5pbmNsdWRlcyhtb2RlbFZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgY2FzZSAnbmknOlxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSkge1xyXG4gICAgICAgIG1vZGVsVmFsdWUgPSBtb2RlbFZhbHVlWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiAhdmFsdWUuaW5jbHVkZXMobW9kZWxWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zcGxpdChcIixcIikubWFwKCh2OiBzdHJpbmcpID0+IHYudHJpbSgpKS5pbmNsdWRlcyhtb2RlbFZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhdGVybWFyayhjb250YWluZXI6IEhUTUxFbGVtZW50LCB3YXRlcm1hcms6IHtcclxuICBpZDogc3RyaW5nLFxyXG4gIHRleHQ6IHN0cmluZyxcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIGZvbnQ6IHN0cmluZyxcclxuICBzaXplOiBudW1iZXIsXHJcbiAgcm90YXRlOiBudW1iZXIsXHJcbiAgZGVuc2l0eTogbnVtYmVyXHJcbn0pOiB2b2lkIHtcclxuICBsZXQgd2F0ZXJtYXJrRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQod2F0ZXJtYXJrLmlkKTtcclxuICBpZiAod2F0ZXJtYXJrRGl2KSB7XHJcbiAgICB3YXRlcm1hcmtEaXYucmVtb3ZlKCk7XHJcbiAgfVxyXG4gIGNvbnN0IHdpZHRoID0gNTAwMCAvIHdhdGVybWFyay5kZW5zaXR5O1xyXG4gIGNvbnN0IGhlaWdodCA9IDUwMDAgLyB3YXRlcm1hcmsuZGVuc2l0eTtcclxuICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICBjYW52YXMud2lkdGggPSB3aWR0aDtcclxuICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIGNvbnN0IGN0eDogYW55ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG4gIGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcclxuICBjdHguZm9udCA9IGAke3dhdGVybWFyay5zaXplfXB4ICR7d2F0ZXJtYXJrLmZvbnR9YDtcclxuICBjdHguZmlsbFN0eWxlID0gd2F0ZXJtYXJrLmNvbG9yO1xyXG4gIGN0eC50cmFuc2xhdGUod2lkdGggLyAyLCBoZWlnaHQgLyAyKTtcclxuICBjdHgucm90YXRlKHdhdGVybWFyay5yb3RhdGUgKiBNYXRoLlBJIC8gMTgwKTtcclxuICBjdHgudHJhbnNsYXRlKC13aWR0aCAvIDIsIC1oZWlnaHQgLyAyKTtcclxuICBjdHguZmlsbFRleHQod2F0ZXJtYXJrLnRleHQsIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMik7XHJcbiAgY29uc3QgYmFzZTY0VXJsID0gY2FudmFzLnRvRGF0YVVSTCgpO1xyXG4gIHdhdGVybWFya0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gIHdhdGVybWFya0Rpdi5pZCA9IHdhdGVybWFyay5pZDtcclxuICB3YXRlcm1hcmtEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS5pbnNldCA9ICcwJztcclxuICB3YXRlcm1hcmtEaXYuc3R5bGUuekluZGV4ID0gJzUwMDAnO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7YmFzZTY0VXJsfSlgO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS5iYWNrZ3JvdW5kUmVwZWF0ID0gJ3JlcGVhdCc7XHJcbiAgY29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcclxuICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKHdhdGVybWFya0RpdiwgY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ColorPipe {
4
+ transform(value) {
5
+ if (value[0] === 0 && value[1] === 0 && value[2] === 0 && value[3] === 0) {
6
+ return '';
7
+ }
8
+ return 'rgba(' + value[0] * 255 + ',' + value[1] * 255 + ',' + value[2] * 255 + ',' + value[3] + ')';
9
+ }
10
+ }
11
+ ColorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
12
+ ColorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ColorPipe, name: "color" });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColorPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{
16
+ name: 'color'
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvc2VjdGlvbi9jb2xvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8sU0FBUztJQUNwQixTQUFTLENBQUMsS0FBZTtRQUN2QixJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEUsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDdkcsQ0FBQzs7dUdBTlUsU0FBUztxR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBSHJCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE9BQU87aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjb2xvcidcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbG9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyW10pOiBzdHJpbmcge1xyXG4gICAgaWYgKHZhbHVlWzBdID09PSAwICYmIHZhbHVlWzFdID09PSAwICYmIHZhbHVlWzJdID09PSAwICYmIHZhbHVlWzNdID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiAncmdiYSgnICsgdmFsdWVbMF0gKiAyNTUgKyAnLCcgKyB2YWx1ZVsxXSAqIDI1NSArICcsJyArIHZhbHVlWzJdICogMjU1ICsgJywnICsgdmFsdWVbM10gKyAnKSc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./section.service";
4
+ export class MarkPipe {
5
+ constructor(service) {
6
+ this.service = service;
7
+ }
8
+ transform(name) {
9
+ return this.service.getMark(name);
10
+ }
11
+ }
12
+ MarkPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkPipe, deps: [{ token: i1.SectionService }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ MarkPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MarkPipe, name: "mark" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'mark'
18
+ }]
19
+ }], ctorParameters: function () { return [{ type: i1.SectionService }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC9zZWN0aW9uL21hcmsucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBTWxELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQW9CLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O3NHQU5VLFFBQVE7b0dBQVIsUUFBUTs0RkFBUixRQUFRO2tCQUhwQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuL3NlY3Rpb24uc2VydmljZVwiO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdtYXJrJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXJrUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IFNlY3Rpb25TZXJ2aWNlKSB7XG4gIH1cblxuICB0cmFuc2Zvcm0obmFtZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldE1hcmsobmFtZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../section.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "./paragraph/paragraph.component";
6
+ import * as i4 from "./paragraph-for-input/paragraph-for-input.component";
7
+ import * as i5 from "../color.pipe";
8
+ import * as i6 from "../pt.pipe";
9
+ export class NodeComponent {
10
+ constructor(service) {
11
+ this.service = service;
12
+ this.editMode = false;
13
+ this.pasteMode = false;
14
+ this.readonly = false;
15
+ }
16
+ }
17
+ NodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeComponent, deps: [{ token: i1.SectionService }], target: i0.ɵɵFactoryTarget.Component });
18
+ NodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NodeComponent, selector: "rs-node", inputs: { node: "node", editMode: "editMode", pasteMode: "pasteMode", readonly: "readonly" }, ngImport: i0, template: "<div class=\"table\" [style.align-items]=\"node.align\" *ngIf=\"node.type === 'table'\">\r\n <table [style.margin-left]=\"node.style?.['margin-left'] | pt:service.scale\"\r\n [style.width]=\"(node.style?.widthType === 'percent' ? node.style?.width + '%' : node.style?.width) | pt:service.scale\"\r\n [style.border-top-width]=\"node.style?.['border-top-width'] | pt:service.scale\"\r\n [style.border-top-color]=\"node.style?.['border-top-color'] | color\"\r\n [style.border-right-width]=\"node.style?.['border-right-width'] | pt:service.scale\"\r\n [style.border-right-color]=\"node.style?.['border-right-color'] | color\"\r\n [style.border-bottom-width]=\"node.style?.['border-bottom-width'] | pt:service.scale\"\r\n [style.border-bottom-color]=\"node.style?.['border-bottom-color'] | color\"\r\n [style.border-left-width]=\"node.style?.['border-left-width'] | pt:service.scale\"\r\n [style.border-left-color]=\"node.style?.['border-left-color'] | color\">\r\n <tr *ngFor=\"let row of node.rows\" [style.height]=\"row.style.height | pt:service.scale\">\r\n <ng-container *ngFor=\"let cell of row.cells\">\r\n <ng-container *ngIf=\"!cell.ignore\">\r\n <td [rowSpan]=\"cell.rowSpan\" [colSpan]=\"cell.colSpan\"\r\n [style.width]=\"cell.style.width | pt:service.scale\"\r\n [style.padding-top]=\"cell.style?.['padding-top'] | pt:service.scale\"\r\n [style.padding-right]=\"cell.style?.['padding-right'] | pt:service.scale\"\r\n [style.padding-bottom]=\"cell.style?.['padding-bottom'] | pt:service.scale\"\r\n [style.padding-left]=\"cell.style?.['padding-left'] | pt:service.scale\"\r\n [style.vertical-align]=\"cell.style?.['vertical-align']\"\r\n [style.background-color]=\"cell.style?.['background-color'] | color\"\r\n [style.border-top-width]=\"cell.style?.['border-top-width'] | pt:service.scale\"\r\n [style.border-top-color]=\"cell.style?.['border-top-color'] | color\"\r\n [style.border-right-width]=\"cell.style?.['border-right-width'] | pt:service.scale\"\r\n [style.border-right-color]=\"cell.style?.['border-right-color'] | color\"\r\n [style.border-bottom-width]=\"cell.style?.['border-bottom-width'] | pt:service.scale\"\r\n [style.border-bottom-color]=\"cell.style?.['border-bottom-color'] | color\"\r\n [style.border-left-width]=\"cell.style?.['border-left-width'] | pt:service.scale\"\r\n [style.border-left-color]=\"cell.style?.['border-left-color'] | color\">\r\n <ng-container *ngFor=\"let node of cell.body\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n</div>\r\n<ng-container *ngIf=\"node.type === 'paragraph'\">\r\n <ng-container *ngIf=\"editMode\">\r\n <rs-paragraph [paragraph]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\"></rs-paragraph>\r\n </ng-container>\r\n <ng-container *ngIf=\"!editMode\">\r\n <rs-paragraph-for-input [paragraph]=\"node\" [editMode]=\"editMode\"\r\n [readonly]=\"readonly\"></rs-paragraph-for-input>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [":host .table{display:flex;flex-flow:column nowrap;justify-content:center}:host .table table{border-collapse:collapse}:host .table table td{border:1px solid #000000}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NodeComponent, selector: "rs-node", inputs: ["node", "editMode", "pasteMode", "readonly"] }, { kind: "component", type: i3.ParagraphComponent, selector: "rs-paragraph", inputs: ["paragraph", "editMode", "pasteMode"] }, { kind: "component", type: i4.ParagraphForInputComponent, selector: "rs-paragraph-for-input", inputs: ["paragraph", "editMode", "readonly"] }, { kind: "pipe", type: i5.ColorPipe, name: "color" }, { kind: "pipe", type: i6.PtPipe, name: "pt" }] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'rs-node', template: "<div class=\"table\" [style.align-items]=\"node.align\" *ngIf=\"node.type === 'table'\">\r\n <table [style.margin-left]=\"node.style?.['margin-left'] | pt:service.scale\"\r\n [style.width]=\"(node.style?.widthType === 'percent' ? node.style?.width + '%' : node.style?.width) | pt:service.scale\"\r\n [style.border-top-width]=\"node.style?.['border-top-width'] | pt:service.scale\"\r\n [style.border-top-color]=\"node.style?.['border-top-color'] | color\"\r\n [style.border-right-width]=\"node.style?.['border-right-width'] | pt:service.scale\"\r\n [style.border-right-color]=\"node.style?.['border-right-color'] | color\"\r\n [style.border-bottom-width]=\"node.style?.['border-bottom-width'] | pt:service.scale\"\r\n [style.border-bottom-color]=\"node.style?.['border-bottom-color'] | color\"\r\n [style.border-left-width]=\"node.style?.['border-left-width'] | pt:service.scale\"\r\n [style.border-left-color]=\"node.style?.['border-left-color'] | color\">\r\n <tr *ngFor=\"let row of node.rows\" [style.height]=\"row.style.height | pt:service.scale\">\r\n <ng-container *ngFor=\"let cell of row.cells\">\r\n <ng-container *ngIf=\"!cell.ignore\">\r\n <td [rowSpan]=\"cell.rowSpan\" [colSpan]=\"cell.colSpan\"\r\n [style.width]=\"cell.style.width | pt:service.scale\"\r\n [style.padding-top]=\"cell.style?.['padding-top'] | pt:service.scale\"\r\n [style.padding-right]=\"cell.style?.['padding-right'] | pt:service.scale\"\r\n [style.padding-bottom]=\"cell.style?.['padding-bottom'] | pt:service.scale\"\r\n [style.padding-left]=\"cell.style?.['padding-left'] | pt:service.scale\"\r\n [style.vertical-align]=\"cell.style?.['vertical-align']\"\r\n [style.background-color]=\"cell.style?.['background-color'] | color\"\r\n [style.border-top-width]=\"cell.style?.['border-top-width'] | pt:service.scale\"\r\n [style.border-top-color]=\"cell.style?.['border-top-color'] | color\"\r\n [style.border-right-width]=\"cell.style?.['border-right-width'] | pt:service.scale\"\r\n [style.border-right-color]=\"cell.style?.['border-right-color'] | color\"\r\n [style.border-bottom-width]=\"cell.style?.['border-bottom-width'] | pt:service.scale\"\r\n [style.border-bottom-color]=\"cell.style?.['border-bottom-color'] | color\"\r\n [style.border-left-width]=\"cell.style?.['border-left-width'] | pt:service.scale\"\r\n [style.border-left-color]=\"cell.style?.['border-left-color'] | color\">\r\n <ng-container *ngFor=\"let node of cell.body\">\r\n <rs-node [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\" [readonly]=\"readonly\"></rs-node>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n</div>\r\n<ng-container *ngIf=\"node.type === 'paragraph'\">\r\n <ng-container *ngIf=\"editMode\">\r\n <rs-paragraph [paragraph]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\"></rs-paragraph>\r\n </ng-container>\r\n <ng-container *ngIf=\"!editMode\">\r\n <rs-paragraph-for-input [paragraph]=\"node\" [editMode]=\"editMode\"\r\n [readonly]=\"readonly\"></rs-paragraph-for-input>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [":host .table{display:flex;flex-flow:column nowrap;justify-content:center}:host .table table{border-collapse:collapse}:host .table table td{border:1px solid #000000}\n"] }]
22
+ }], ctorParameters: function () { return [{ type: i1.SectionService }]; }, propDecorators: { node: [{
23
+ type: Input
24
+ }], editMode: [{
25
+ type: Input
26
+ }], pasteMode: [{
27
+ type: Input
28
+ }], readonly: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vbm9kZS9ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvc2VjdGlvbi9ub2RlL25vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBUS9DLE1BQU0sT0FBTyxhQUFhO0lBVXhCLFlBQXNCLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBTjdDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixhQUFRLEdBQVksS0FBSyxDQUFDO0lBRzFCLENBQUM7OzJHQVhVLGFBQWE7K0ZBQWIsYUFBYSw2SUNSMUIsczRHQWdEQSxpY0R4Q2EsYUFBYTs0RkFBYixhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7cUdBTW5CLElBQUk7c0JBREgsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtbm9kZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25vZGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm9kZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBub2RlOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFzdGVNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UpIHtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRhYmxlXCIgW3N0eWxlLmFsaWduLWl0ZW1zXT1cIm5vZGUuYWxpZ25cIiAqbmdJZj1cIm5vZGUudHlwZSA9PT0gJ3RhYmxlJ1wiPlxyXG4gIDx0YWJsZSBbc3R5bGUubWFyZ2luLWxlZnRdPVwibm9kZS5zdHlsZT8uWydtYXJnaW4tbGVmdCddIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgIFtzdHlsZS53aWR0aF09XCIobm9kZS5zdHlsZT8ud2lkdGhUeXBlID09PSAncGVyY2VudCcgPyBub2RlLnN0eWxlPy53aWR0aCArICclJyA6IG5vZGUuc3R5bGU/LndpZHRoKSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgICBbc3R5bGUuYm9yZGVyLXRvcC13aWR0aF09XCJub2RlLnN0eWxlPy5bJ2JvcmRlci10b3Atd2lkdGgnXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgICBbc3R5bGUuYm9yZGVyLXRvcC1jb2xvcl09XCJub2RlLnN0eWxlPy5bJ2JvcmRlci10b3AtY29sb3InXSB8IGNvbG9yXCJcclxuICAgICAgICAgW3N0eWxlLmJvcmRlci1yaWdodC13aWR0aF09XCJub2RlLnN0eWxlPy5bJ2JvcmRlci1yaWdodC13aWR0aCddIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgIFtzdHlsZS5ib3JkZXItcmlnaHQtY29sb3JdPVwibm9kZS5zdHlsZT8uWydib3JkZXItcmlnaHQtY29sb3InXSB8IGNvbG9yXCJcclxuICAgICAgICAgW3N0eWxlLmJvcmRlci1ib3R0b20td2lkdGhdPVwibm9kZS5zdHlsZT8uWydib3JkZXItYm90dG9tLXdpZHRoJ10gfCBwdDpzZXJ2aWNlLnNjYWxlXCJcclxuICAgICAgICAgW3N0eWxlLmJvcmRlci1ib3R0b20tY29sb3JdPVwibm9kZS5zdHlsZT8uWydib3JkZXItYm90dG9tLWNvbG9yJ10gfCBjb2xvclwiXHJcbiAgICAgICAgIFtzdHlsZS5ib3JkZXItbGVmdC13aWR0aF09XCJub2RlLnN0eWxlPy5bJ2JvcmRlci1sZWZ0LXdpZHRoJ10gfCBwdDpzZXJ2aWNlLnNjYWxlXCJcclxuICAgICAgICAgW3N0eWxlLmJvcmRlci1sZWZ0LWNvbG9yXT1cIm5vZGUuc3R5bGU/LlsnYm9yZGVyLWxlZnQtY29sb3InXSB8IGNvbG9yXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBub2RlLnJvd3NcIiBbc3R5bGUuaGVpZ2h0XT1cInJvdy5zdHlsZS5oZWlnaHQgIHwgcHQ6c2VydmljZS5zY2FsZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjZWxsIG9mIHJvdy5jZWxsc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2VsbC5pZ25vcmVcIj5cclxuICAgICAgICAgIDx0ZCBbcm93U3Bhbl09XCJjZWxsLnJvd1NwYW5cIiBbY29sU3Bhbl09XCJjZWxsLmNvbFNwYW5cIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjZWxsLnN0eWxlLndpZHRoIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctdG9wXT1cImNlbGwuc3R5bGU/LlsncGFkZGluZy10b3AnXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cImNlbGwuc3R5bGU/LlsncGFkZGluZy1yaWdodCddIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctYm90dG9tXT1cImNlbGwuc3R5bGU/LlsncGFkZGluZy1ib3R0b20nXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiY2VsbC5zdHlsZT8uWydwYWRkaW5nLWxlZnQnXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS52ZXJ0aWNhbC1hbGlnbl09XCJjZWxsLnN0eWxlPy5bJ3ZlcnRpY2FsLWFsaWduJ11cIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNlbGwuc3R5bGU/LlsnYmFja2dyb3VuZC1jb2xvciddIHwgY29sb3JcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5ib3JkZXItdG9wLXdpZHRoXT1cImNlbGwuc3R5bGU/LlsnYm9yZGVyLXRvcC13aWR0aCddIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci10b3AtY29sb3JdPVwiY2VsbC5zdHlsZT8uWydib3JkZXItdG9wLWNvbG9yJ10gfCBjb2xvclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci1yaWdodC13aWR0aF09XCJjZWxsLnN0eWxlPy5bJ2JvcmRlci1yaWdodC13aWR0aCddIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci1yaWdodC1jb2xvcl09XCJjZWxsLnN0eWxlPy5bJ2JvcmRlci1yaWdodC1jb2xvciddIHwgY29sb3JcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5ib3JkZXItYm90dG9tLXdpZHRoXT1cImNlbGwuc3R5bGU/LlsnYm9yZGVyLWJvdHRvbS13aWR0aCddIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci1ib3R0b20tY29sb3JdPVwiY2VsbC5zdHlsZT8uWydib3JkZXItYm90dG9tLWNvbG9yJ10gfCBjb2xvclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci1sZWZ0LXdpZHRoXT1cImNlbGwuc3R5bGU/LlsnYm9yZGVyLWxlZnQtd2lkdGgnXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5ib3JkZXItbGVmdC1jb2xvcl09XCJjZWxsLnN0eWxlPy5bJ2JvcmRlci1sZWZ0LWNvbG9yJ10gfCBjb2xvclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIGNlbGwuYm9keVwiPlxyXG4gICAgICAgICAgICAgIDxycy1ub2RlIFtub2RlXT1cIm5vZGVcIiBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIiBbcGFzdGVNb2RlXT1cInBhc3RlTW9kZVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtbm9kZT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdHI+XHJcbiAgPC90YWJsZT5cclxuPC9kaXY+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLnR5cGUgPT09ICdwYXJhZ3JhcGgnXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRNb2RlXCI+XHJcbiAgICA8cnMtcGFyYWdyYXBoIFtwYXJhZ3JhcGhdPVwibm9kZVwiIFtlZGl0TW9kZV09XCJlZGl0TW9kZVwiIFtwYXN0ZU1vZGVdPVwicGFzdGVNb2RlXCI+PC9ycy1wYXJhZ3JhcGg+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlZGl0TW9kZVwiPlxyXG4gICAgPHJzLXBhcmFncmFwaC1mb3ItaW5wdXQgW3BhcmFncmFwaF09XCJub2RlXCIgW2VkaXRNb2RlXT1cImVkaXRNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtcGFyYWdyYXBoLWZvci1pbnB1dD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../section.service";
4
+ import * as i2 from "../../pt.pipe";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "./run/run.component";
7
+ export class ParagraphComponent {
8
+ get _style() {
9
+ return {
10
+ display: 'block',
11
+ marginTop: this.pt.transform(this.paragraph.style['margin-top'], this.service.scale),
12
+ marginBottom: this.pt.transform(this.paragraph.style['margin-bottom'], this.service.scale),
13
+ marginLeft: this.pt.transform(this.paragraph.style['margin-left'], this.service.scale),
14
+ textIndent: this.pt.transform(this.paragraph.style['text-indent'], this.service.scale),
15
+ textAlign: this.paragraph.style['text-align'],
16
+ lineHeight: this.pt.transform(this.paragraph.style['line-height'], this.service.scale),
17
+ minHeight: this.pt.transform(this.paragraph.style['min-height'], this.service.scale),
18
+ fontFamily: this.paragraph.style['font-family'],
19
+ fontSize: this.pt.transform(this.paragraph.style['font-size'], this.service.scale)
20
+ };
21
+ }
22
+ constructor(service, pt) {
23
+ this.service = service;
24
+ this.pt = pt;
25
+ this.editMode = false;
26
+ this.pasteMode = false;
27
+ }
28
+ }
29
+ ParagraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ParagraphComponent, deps: [{ token: i1.SectionService }, { token: i2.PtPipe }], target: i0.ɵɵFactoryTarget.Component });
30
+ ParagraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ParagraphComponent, selector: "rs-paragraph", inputs: { paragraph: "paragraph", editMode: "editMode", pasteMode: "pasteMode" }, host: { properties: { "style": "this._style" } }, ngImport: i0, template: "<ng-container *ngFor=\"let node of paragraph.content\">\r\n <rs-run [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\"></rs-run>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.RunComponent, selector: "rs-run", inputs: ["node", "editMode", "pasteMode"] }] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ParagraphComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'rs-paragraph', template: "<ng-container *ngFor=\"let node of paragraph.content\">\r\n <rs-run [node]=\"node\" [editMode]=\"editMode\" [pasteMode]=\"pasteMode\"></rs-run>\r\n</ng-container>\r\n" }]
34
+ }], ctorParameters: function () { return [{ type: i1.SectionService }, { type: i2.PtPipe }]; }, propDecorators: { paragraph: [{
35
+ type: Input
36
+ }], editMode: [{
37
+ type: Input
38
+ }], pasteMode: [{
39
+ type: Input
40
+ }], _style: [{
41
+ type: HostBinding,
42
+ args: ['style']
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvc2VjdGlvbi9ub2RlL3BhcmFncmFwaC9wYXJhZ3JhcGguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC9zZWN0aW9uL25vZGUvcGFyYWdyYXBoL3BhcmFncmFwaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVM1RCxNQUFNLE9BQU8sa0JBQWtCO0lBa0I3QixJQUEwQixNQUFNO1FBQzlCLE9BQU87WUFDTCxPQUFPLEVBQUUsT0FBTztZQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDcEYsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzFGLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN0RixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEYsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM3QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEYsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3BGLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDL0MsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ25GLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBc0IsT0FBdUIsRUFBVSxFQUFVO1FBQTNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQW5CakUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixjQUFTLEdBQVksS0FBSyxDQUFDO0lBa0IzQixDQUFDOztnSEFsQ1Usa0JBQWtCO29HQUFsQixrQkFBa0Isd0xDVC9CLHlLQUdBOzRGRE1hLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxjQUFjOzBIQU14QixTQUFTO3NCQURSLEtBQUs7Z0JBYU4sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHb0IsTUFBTTtzQkFBL0IsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UHRQaXBlfSBmcm9tIFwiLi4vLi4vcHQucGlwZVwiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VjdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLXBhcmFncmFwaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcmFncmFwaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGFyYWdyYXBoLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaENvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBwYXJhZ3JhcGghOiB7XHJcbiAgICBzdHlsZTogYW55LFxyXG4gICAgY29udGVudDoge1xyXG4gICAgICB0eXBlOiBzdHJpbmcsXHJcbiAgICAgIHN0eWxlOiBhbnksXHJcbiAgICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICAgIGRhdGE/OiBzdHJpbmcsXHJcbiAgICAgIG1hcms/OiBzdHJpbmcsXHJcbiAgICAgIHNldHRpbmc/OiBib29sZWFuXHJcbiAgICB9W11cclxuICB9O1xyXG4gIEBJbnB1dCgpXHJcbiAgZWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHBhc3RlTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IF9zdHlsZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXHJcbiAgICAgIG1hcmdpblRvcDogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ21hcmdpbi10b3AnXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgbWFyZ2luQm90dG9tOiB0aGlzLnB0LnRyYW5zZm9ybSh0aGlzLnBhcmFncmFwaC5zdHlsZVsnbWFyZ2luLWJvdHRvbSddLCB0aGlzLnNlcnZpY2Uuc2NhbGUpLFxyXG4gICAgICBtYXJnaW5MZWZ0OiB0aGlzLnB0LnRyYW5zZm9ybSh0aGlzLnBhcmFncmFwaC5zdHlsZVsnbWFyZ2luLWxlZnQnXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgdGV4dEluZGVudDogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ3RleHQtaW5kZW50J10sIHRoaXMuc2VydmljZS5zY2FsZSksXHJcbiAgICAgIHRleHRBbGlnbjogdGhpcy5wYXJhZ3JhcGguc3R5bGVbJ3RleHQtYWxpZ24nXSxcclxuICAgICAgbGluZUhlaWdodDogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ2xpbmUtaGVpZ2h0J10sIHRoaXMuc2VydmljZS5zY2FsZSksXHJcbiAgICAgIG1pbkhlaWdodDogdGhpcy5wdC50cmFuc2Zvcm0odGhpcy5wYXJhZ3JhcGguc3R5bGVbJ21pbi1oZWlnaHQnXSwgdGhpcy5zZXJ2aWNlLnNjYWxlKSxcclxuICAgICAgZm9udEZhbWlseTogdGhpcy5wYXJhZ3JhcGguc3R5bGVbJ2ZvbnQtZmFtaWx5J10sXHJcbiAgICAgIGZvbnRTaXplOiB0aGlzLnB0LnRyYW5zZm9ybSh0aGlzLnBhcmFncmFwaC5zdHlsZVsnZm9udC1zaXplJ10sIHRoaXMuc2VydmljZS5zY2FsZSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UsIHByaXZhdGUgcHQ6IFB0UGlwZSkge1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIHBhcmFncmFwaC5jb250ZW50XCI+XHJcbiAgPHJzLXJ1biBbbm9kZV09XCJub2RlXCIgW2VkaXRNb2RlXT1cImVkaXRNb2RlXCIgW3Bhc3RlTW9kZV09XCJwYXN0ZU1vZGVcIj48L3JzLXJ1bj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,84 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../section.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../../../mark.pipe";
6
+ import * as i4 from "../../../pt.pipe";
7
+ export class RunComponent {
8
+ constructor(service) {
9
+ this.service = service;
10
+ this.editMode = false;
11
+ this.pasteMode = false;
12
+ }
13
+ ngOnInit() {
14
+ if (!this.node.text) {
15
+ if (this.node.mark && this.editMode) {
16
+ this.nodeText = '&ensp;';
17
+ }
18
+ else {
19
+ this.nodeText = '';
20
+ }
21
+ }
22
+ else {
23
+ this.nodeText = this.node.text.replaceAll(' ', '&ensp;').replaceAll('\f', '&ensp;');
24
+ }
25
+ }
26
+ click($event, markName) {
27
+ if (this.pasteMode) {
28
+ if (markName === this.service.activeMark?.name) {
29
+ return;
30
+ }
31
+ if ($event.ctrlKey) {
32
+ if (this.service.readyPasteMarkNames.includes(markName)) {
33
+ this.service.readyPasteMarkNames.splice(this.service.readyPasteMarkNames.indexOf(markName), 1);
34
+ }
35
+ else {
36
+ this.service.lastClickToPasteMarkName = markName;
37
+ this.service.readyPasteMarkNames.push(markName);
38
+ }
39
+ }
40
+ else if ($event.shiftKey) {
41
+ if (this.service.lastClickToPasteMarkName) {
42
+ let startIndex = this.service.getMarkIndex(this.service.lastClickToPasteMarkName);
43
+ let endIndex = this.service.getMarkIndex(markName);
44
+ this.service.lastClickToPasteMarkName = markName;
45
+ if (startIndex > endIndex) {
46
+ let temp = startIndex;
47
+ startIndex = endIndex;
48
+ endIndex = temp;
49
+ }
50
+ for (let i = startIndex; i <= endIndex; i++) {
51
+ let name = this.service.marks[i].name;
52
+ if (!this.service.readyPasteMarkNames.includes(name)) {
53
+ this.service.readyPasteMarkNames.push(name);
54
+ }
55
+ }
56
+ }
57
+ else {
58
+ this.service.lastClickToPasteMarkName = markName;
59
+ this.service.readyPasteMarkNames = [markName];
60
+ }
61
+ }
62
+ else {
63
+ this.service.lastClickToPasteMarkName = markName;
64
+ this.service.readyPasteMarkNames = [markName];
65
+ }
66
+ }
67
+ else {
68
+ this.service.activeMark = this.service.getMark(markName);
69
+ }
70
+ }
71
+ }
72
+ RunComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RunComponent, deps: [{ token: i1.SectionService }], target: i0.ɵɵFactoryTarget.Component });
73
+ RunComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RunComponent, selector: "rs-run", inputs: { node: "node", editMode: "editMode", pasteMode: "pasteMode" }, ngImport: i0, template: "<div class=\"node\" [style.display]=\"node.type === 'image' ? 'inline-block' : ''\" [style.float]=\"node.style?.['float']\">\r\n <i *ngIf=\"node.mark && node.setting && editMode\"\r\n [id]=\"'mark-setting_' + node.mark\"\r\n [style.font-size]=\"12 | pt:service.scale\"\r\n [style.left]=\"-12 | pt:service.scale\"\r\n class=\"mark-setting coast-icon-setting\"\r\n [class.used]=\"(node.mark | mark)?.type\"\r\n [class.active]=\"node.mark === service.activeMark.name\"\r\n [class.copied]=\"node.mark === service.copiedMark.name\"\r\n [class.ready-paste]=\"service.readyPasteMarkNames.includes(node.mark)\"\r\n (click)=\"click($event, node.mark)\"></i>\r\n <span *ngIf=\"node.type === 'run'\"\r\n [style.font-family]=\"node.style['font-family']\"\r\n [style.font-size]=\"node.style['font-size'] | pt:service.scale\"\r\n [style.font-weight]=\"node.style['font-bold'] ? 'bold' : 'normal'\"\r\n [style.text-decoration]=\"node.style['underline'] ? 'underline 1px' : 'none'\"\r\n [style.float]=\"node.style['float']\"\r\n [class.mark]=\"node.mark === service.activeMark.name && editMode\"\r\n [innerHTML]=\"nodeText\">\r\n </span>\r\n <img *ngIf=\"node.type === 'image'\"\r\n [style.width]=\"node.style['width'] | pt:service.scale\"\r\n [style.height]=\"node.style['height'] | pt:service.scale\"\r\n [style.position]=\"node.style['position']\"\r\n [style.top]=\"node.style['top'] | pt:service.scale\"\r\n [style.left]=\"node.style['left'] | pt:service.scale\"\r\n [style.z-index]=\"node.style['z-index']\"\r\n [class.mark]=\"node.mark === service.activeMark.name && editMode\"\r\n [src]=\"'data:image/png;base64,' + node.data\" alt=\"\">\r\n</div>\r\n", styles: [":host .node{position:relative;display:inline;text-indent:0}:host .node .mark-setting{position:absolute;cursor:pointer;color:var(--coast-warning-color, rgb(240, 173, 78));z-index:1}:host .node .mark-setting.used{color:var(--coast-success-color, rgb(92, 184, 92))}:host .node .mark-setting.active{color:var(--coast-default-color, rgb(51, 122, 183))}:host .node .mark-setting.copied{background-color:var(--coast-success-color, rgb(92, 184, 92))}:host .node .mark-setting.ready-paste{background-color:var(--coast-danger-color, rgb(217, 83, 79))}:host .node span.mark{background-color:var(--coast-active-color, rgba(51, 122, 183, .5))}:host .node img.mark{border:1px solid var(--coast-active-color, rgba(51, 122, 183, .5))}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.MarkPipe, name: "mark" }, { kind: "pipe", type: i4.PtPipe, name: "pt" }] });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RunComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'rs-run', template: "<div class=\"node\" [style.display]=\"node.type === 'image' ? 'inline-block' : ''\" [style.float]=\"node.style?.['float']\">\r\n <i *ngIf=\"node.mark && node.setting && editMode\"\r\n [id]=\"'mark-setting_' + node.mark\"\r\n [style.font-size]=\"12 | pt:service.scale\"\r\n [style.left]=\"-12 | pt:service.scale\"\r\n class=\"mark-setting coast-icon-setting\"\r\n [class.used]=\"(node.mark | mark)?.type\"\r\n [class.active]=\"node.mark === service.activeMark.name\"\r\n [class.copied]=\"node.mark === service.copiedMark.name\"\r\n [class.ready-paste]=\"service.readyPasteMarkNames.includes(node.mark)\"\r\n (click)=\"click($event, node.mark)\"></i>\r\n <span *ngIf=\"node.type === 'run'\"\r\n [style.font-family]=\"node.style['font-family']\"\r\n [style.font-size]=\"node.style['font-size'] | pt:service.scale\"\r\n [style.font-weight]=\"node.style['font-bold'] ? 'bold' : 'normal'\"\r\n [style.text-decoration]=\"node.style['underline'] ? 'underline 1px' : 'none'\"\r\n [style.float]=\"node.style['float']\"\r\n [class.mark]=\"node.mark === service.activeMark.name && editMode\"\r\n [innerHTML]=\"nodeText\">\r\n </span>\r\n <img *ngIf=\"node.type === 'image'\"\r\n [style.width]=\"node.style['width'] | pt:service.scale\"\r\n [style.height]=\"node.style['height'] | pt:service.scale\"\r\n [style.position]=\"node.style['position']\"\r\n [style.top]=\"node.style['top'] | pt:service.scale\"\r\n [style.left]=\"node.style['left'] | pt:service.scale\"\r\n [style.z-index]=\"node.style['z-index']\"\r\n [class.mark]=\"node.mark === service.activeMark.name && editMode\"\r\n [src]=\"'data:image/png;base64,' + node.data\" alt=\"\">\r\n</div>\r\n", styles: [":host .node{position:relative;display:inline;text-indent:0}:host .node .mark-setting{position:absolute;cursor:pointer;color:var(--coast-warning-color, rgb(240, 173, 78));z-index:1}:host .node .mark-setting.used{color:var(--coast-success-color, rgb(92, 184, 92))}:host .node .mark-setting.active{color:var(--coast-default-color, rgb(51, 122, 183))}:host .node .mark-setting.copied{background-color:var(--coast-success-color, rgb(92, 184, 92))}:host .node .mark-setting.ready-paste{background-color:var(--coast-danger-color, rgb(217, 83, 79))}:host .node span.mark{background-color:var(--coast-active-color, rgba(51, 122, 183, .5))}:host .node img.mark{border:1px solid var(--coast-active-color, rgba(51, 122, 183, .5))}\n"] }]
77
+ }], ctorParameters: function () { return [{ type: i1.SectionService }]; }, propDecorators: { node: [{
78
+ type: Input
79
+ }], editMode: [{
80
+ type: Input
81
+ }], pasteMode: [{
82
+ type: Input
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvc2VjdGlvbi9ub2RlL3BhcmFncmFwaC9ydW4vcnVuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL3dvcmQvc2VjdGlvbi9ub2RlL3BhcmFncmFwaC9ydW4vcnVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRL0MsTUFBTSxPQUFPLFlBQVk7SUFnQnZCLFlBQXNCLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBTDdDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUkzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2FBQ3BCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3JGO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7UUFDakMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtnQkFDOUMsT0FBTzthQUNSO1lBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDaEc7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxRQUFRLENBQUM7b0JBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNqRDthQUNGO2lCQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFO29CQUN6QyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7b0JBQ2xGLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixHQUFHLFFBQVEsQ0FBQztvQkFDakQsSUFBSSxVQUFVLEdBQUcsUUFBUSxFQUFFO3dCQUN6QixJQUFJLElBQUksR0FBRyxVQUFVLENBQUM7d0JBQ3RCLFVBQVUsR0FBRyxRQUFRLENBQUM7d0JBQ3RCLFFBQVEsR0FBRyxJQUFJLENBQUM7cUJBQ2pCO29CQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQzNDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFOzRCQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDN0M7cUJBQ0Y7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxRQUFRLENBQUM7b0JBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDL0M7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixHQUFHLFFBQVEsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9DO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFEO0lBQ0gsQ0FBQzs7MEdBdEVVLFlBQVk7OEZBQVosWUFBWSxzSENSekIsdXZEQThCQTs0RkR0QmEsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxRQUFRO3FHQU1sQixJQUFJO3NCQURILEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtcnVuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcnVuLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ydW4uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnVuQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIG5vZGUhOiB7XHJcbiAgICB0eXBlOiBzdHJpbmcsXHJcbiAgICBzdHlsZTogYW55LFxyXG4gICAgdGV4dD86IHN0cmluZyxcclxuICAgIGRhdGE/OiBzdHJpbmcsXHJcbiAgICBtYXJrPzogc3RyaW5nLFxyXG4gICAgc2V0dGluZz86IGJvb2xlYW5cclxuICB9O1xyXG4gIEBJbnB1dCgpXHJcbiAgZWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHBhc3RlTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBub2RlVGV4dDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLm5vZGUudGV4dCkge1xyXG4gICAgICBpZiAodGhpcy5ub2RlLm1hcmsgJiYgdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICAgIHRoaXMubm9kZVRleHQgPSAnJmVuc3A7JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5vZGVUZXh0ID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZVRleHQgPSB0aGlzLm5vZGUudGV4dC5yZXBsYWNlQWxsKCcgJywgJyZlbnNwOycpLnJlcGxhY2VBbGwoJ1xcZicsICcmZW5zcDsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsaWNrKCRldmVudDogYW55LCBtYXJrTmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5wYXN0ZU1vZGUpIHtcclxuICAgICAgaWYgKG1hcmtOYW1lID09PSB0aGlzLnNlcnZpY2UuYWN0aXZlTWFyaz8ubmFtZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoJGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLnJlYWR5UGFzdGVNYXJrTmFtZXMuaW5jbHVkZXMobWFya05hbWUpKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcy5zcGxpY2UodGhpcy5zZXJ2aWNlLnJlYWR5UGFzdGVNYXJrTmFtZXMuaW5kZXhPZihtYXJrTmFtZSksIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UubGFzdENsaWNrVG9QYXN0ZU1hcmtOYW1lID0gbWFya05hbWU7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcy5wdXNoKG1hcmtOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoJGV2ZW50LnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VydmljZS5sYXN0Q2xpY2tUb1Bhc3RlTWFya05hbWUpIHtcclxuICAgICAgICAgIGxldCBzdGFydEluZGV4ID0gdGhpcy5zZXJ2aWNlLmdldE1hcmtJbmRleCh0aGlzLnNlcnZpY2UubGFzdENsaWNrVG9QYXN0ZU1hcmtOYW1lKTtcclxuICAgICAgICAgIGxldCBlbmRJbmRleCA9IHRoaXMuc2VydmljZS5nZXRNYXJrSW5kZXgobWFya05hbWUpO1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmxhc3RDbGlja1RvUGFzdGVNYXJrTmFtZSA9IG1hcmtOYW1lO1xyXG4gICAgICAgICAgaWYgKHN0YXJ0SW5kZXggPiBlbmRJbmRleCkge1xyXG4gICAgICAgICAgICBsZXQgdGVtcCA9IHN0YXJ0SW5kZXg7XHJcbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBlbmRJbmRleDtcclxuICAgICAgICAgICAgZW5kSW5kZXggPSB0ZW1wO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgbmFtZSA9IHRoaXMuc2VydmljZS5tYXJrc1tpXS5uYW1lO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VydmljZS5yZWFkeVBhc3RlTWFya05hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlYWR5UGFzdGVNYXJrTmFtZXMucHVzaChuYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UubGFzdENsaWNrVG9QYXN0ZU1hcmtOYW1lID0gbWFya05hbWU7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcyA9IFttYXJrTmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5sYXN0Q2xpY2tUb1Bhc3RlTWFya05hbWUgPSBtYXJrTmFtZTtcclxuICAgICAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcyA9IFttYXJrTmFtZV07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5hY3RpdmVNYXJrID0gdGhpcy5zZXJ2aWNlLmdldE1hcmsobWFya05hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibm9kZVwiIFtzdHlsZS5kaXNwbGF5XT1cIm5vZGUudHlwZSA9PT0gJ2ltYWdlJyA/ICdpbmxpbmUtYmxvY2snIDogJydcIiBbc3R5bGUuZmxvYXRdPVwibm9kZS5zdHlsZT8uWydmbG9hdCddXCI+XHJcbiAgPGkgKm5nSWY9XCJub2RlLm1hcmsgJiYgbm9kZS5zZXR0aW5nICYmIGVkaXRNb2RlXCJcclxuICAgICBbaWRdPVwiJ21hcmstc2V0dGluZ18nICsgbm9kZS5tYXJrXCJcclxuICAgICBbc3R5bGUuZm9udC1zaXplXT1cIjEyIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgW3N0eWxlLmxlZnRdPVwiLTEyIHwgcHQ6c2VydmljZS5zY2FsZVwiXHJcbiAgICAgY2xhc3M9XCJtYXJrLXNldHRpbmcgY29hc3QtaWNvbi1zZXR0aW5nXCJcclxuICAgICBbY2xhc3MudXNlZF09XCIobm9kZS5tYXJrIHwgbWFyayk/LnR5cGVcIlxyXG4gICAgIFtjbGFzcy5hY3RpdmVdPVwibm9kZS5tYXJrID09PSBzZXJ2aWNlLmFjdGl2ZU1hcmsubmFtZVwiXHJcbiAgICAgW2NsYXNzLmNvcGllZF09XCJub2RlLm1hcmsgPT09IHNlcnZpY2UuY29waWVkTWFyay5uYW1lXCJcclxuICAgICBbY2xhc3MucmVhZHktcGFzdGVdPVwic2VydmljZS5yZWFkeVBhc3RlTWFya05hbWVzLmluY2x1ZGVzKG5vZGUubWFyaylcIlxyXG4gICAgIChjbGljayk9XCJjbGljaygkZXZlbnQsIG5vZGUubWFyaylcIj48L2k+XHJcbiAgPHNwYW4gKm5nSWY9XCJub2RlLnR5cGUgPT09ICdydW4nXCJcclxuICAgICAgICBbc3R5bGUuZm9udC1mYW1pbHldPVwibm9kZS5zdHlsZVsnZm9udC1mYW1pbHknXVwiXHJcbiAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCJub2RlLnN0eWxlWydmb250LXNpemUnXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCJub2RlLnN0eWxlWydmb250LWJvbGQnXSA/ICdib2xkJyA6ICdub3JtYWwnXCJcclxuICAgICAgICBbc3R5bGUudGV4dC1kZWNvcmF0aW9uXT1cIm5vZGUuc3R5bGVbJ3VuZGVybGluZSddID8gJ3VuZGVybGluZSAxcHgnIDogJ25vbmUnXCJcclxuICAgICAgICBbc3R5bGUuZmxvYXRdPVwibm9kZS5zdHlsZVsnZmxvYXQnXVwiXHJcbiAgICAgICAgW2NsYXNzLm1hcmtdPVwibm9kZS5tYXJrID09PSBzZXJ2aWNlLmFjdGl2ZU1hcmsubmFtZSAmJiBlZGl0TW9kZVwiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJub2RlVGV4dFwiPlxyXG4gICAgPC9zcGFuPlxyXG4gIDxpbWcgKm5nSWY9XCJub2RlLnR5cGUgPT09ICdpbWFnZSdcIlxyXG4gICAgICAgW3N0eWxlLndpZHRoXT1cIm5vZGUuc3R5bGVbJ3dpZHRoJ10gfCBwdDpzZXJ2aWNlLnNjYWxlXCJcclxuICAgICAgIFtzdHlsZS5oZWlnaHRdPVwibm9kZS5zdHlsZVsnaGVpZ2h0J10gfCBwdDpzZXJ2aWNlLnNjYWxlXCJcclxuICAgICAgIFtzdHlsZS5wb3NpdGlvbl09XCJub2RlLnN0eWxlWydwb3NpdGlvbiddXCJcclxuICAgICAgIFtzdHlsZS50b3BdPVwibm9kZS5zdHlsZVsndG9wJ10gfCBwdDpzZXJ2aWNlLnNjYWxlXCJcclxuICAgICAgIFtzdHlsZS5sZWZ0XT1cIm5vZGUuc3R5bGVbJ2xlZnQnXSB8IHB0OnNlcnZpY2Uuc2NhbGVcIlxyXG4gICAgICAgW3N0eWxlLnotaW5kZXhdPVwibm9kZS5zdHlsZVsnei1pbmRleCddXCJcclxuICAgICAgIFtjbGFzcy5tYXJrXT1cIm5vZGUubWFyayA9PT0gc2VydmljZS5hY3RpdmVNYXJrLm5hbWUgJiYgZWRpdE1vZGVcIlxyXG4gICAgICAgW3NyY109XCInZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBub2RlLmRhdGFcIiBhbHQ9XCJcIj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { Component, HostBinding, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { MarkItemFactory } from "coast-plugin-register";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../section.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../../paragraph/run/run.component";
7
+ export class ItemComponent {
8
+ get _style() {
9
+ if (this.node.style?.float) {
10
+ return { float: this.node.style.float };
11
+ }
12
+ return {};
13
+ }
14
+ constructor(service) {
15
+ this.service = service;
16
+ this.editMode = false;
17
+ this.readonly = false;
18
+ }
19
+ ngOnInit() {
20
+ if (!this.mark.type || !this.node.setting) {
21
+ return;
22
+ }
23
+ let markItem = MarkItemFactory.get(this.mark.type);
24
+ if (!markItem) {
25
+ console.error('不存在组件:' + this.mark.type);
26
+ return;
27
+ }
28
+ setTimeout(() => {
29
+ let componentRef = this.itemRef.createComponent(markItem.component);
30
+ const componentInstance = componentRef.instance;
31
+ componentInstance.tenant = this.service.tenant;
32
+ componentInstance.templateClassName = this.service.templateClassName;
33
+ componentInstance.instanceClassName = this.service.instanceClassName;
34
+ componentInstance.instanceOid = this.service.instanceOid;
35
+ componentInstance.mark = this.mark;
36
+ componentInstance.marks = this.service.marks;
37
+ componentInstance.readonly = this.service.readonly || this.readonly;
38
+ componentInstance.valueUpdated = this.service.valueUpdated;
39
+ componentInstance.params = this.service.params;
40
+ componentInstance.tabViewContainerRef = this.service.tabViewContainerRef;
41
+ });
42
+ }
43
+ }
44
+ ItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ItemComponent, deps: [{ token: i1.SectionService }], target: i0.ɵɵFactoryTarget.Component });
45
+ ItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ItemComponent, selector: "rs-item", inputs: { node: "node", mark: "mark", editMode: "editMode", readonly: "readonly" }, host: { properties: { "style": "this._style" } }, viewQueries: [{ propertyName: "itemRef", first: true, predicate: ["itemRef"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ng-container *ngIf=\"node.setting\" #itemRef></ng-container>\r\n<rs-run *ngIf=\"mark.config.showMarkContent\" [node]=\"node\" [editMode]=\"editMode\"></rs-run>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.RunComponent, selector: "rs-run", inputs: ["node", "editMode", "pasteMode"] }] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ItemComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'rs-item', template: "<ng-container *ngIf=\"node.setting\" #itemRef></ng-container>\r\n<rs-run *ngIf=\"mark.config.showMarkContent\" [node]=\"node\" [editMode]=\"editMode\"></rs-run>\r\n" }]
49
+ }], ctorParameters: function () { return [{ type: i1.SectionService }]; }, propDecorators: { node: [{
50
+ type: Input
51
+ }], mark: [{
52
+ type: Input
53
+ }], editMode: [{
54
+ type: Input
55
+ }], readonly: [{
56
+ type: Input
57
+ }], _style: [{
58
+ type: HostBinding,
59
+ args: ['style']
60
+ }], itemRef: [{
61
+ type: ViewChild,
62
+ args: ['itemRef', { read: ViewContainerRef }]
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vbm9kZS9wYXJhZ3JhcGgtZm9yLWlucHV0L2l0ZW0vaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3NlY3Rpb24vbm9kZS9wYXJhZ3JhcGgtZm9yLWlucHV0L2l0ZW0vaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFRdEQsTUFBTSxPQUFPLGFBQWE7SUFpQnhCLElBQTBCLE1BQU07UUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUlELFlBQW9CLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBYjNDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQVkxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3pDLE9BQU87U0FDUjtRQUNELElBQUksUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1I7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0saUJBQWlCLEdBQVEsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUNyRCxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDL0MsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUNyRSxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQ3JFLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDN0MsaUJBQWlCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDcEUsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQzNELGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUMvQyxpQkFBaUIsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBcERVLGFBQWE7K0ZBQWIsYUFBYSxvUUF3QkssZ0JBQWdCLDZCQ2pDL0Msc0tBRUE7NEZET2EsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxTQUFTO3FHQU1uQixJQUFJO3NCQURILEtBQUs7Z0JBVU4sSUFBSTtzQkFESCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR29CLE1BQU07c0JBQS9CLFdBQVc7dUJBQUMsT0FBTztnQkFPNEIsT0FBTztzQkFBdEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hcmtJdGVtRmFjdG9yeX0gZnJvbSBcImNvYXN0LXBsdWdpbi1yZWdpc3RlclwiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VjdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pdGVtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgbm9kZSE6IHtcclxuICAgIHR5cGU6IHN0cmluZyxcclxuICAgIHN0eWxlOiBhbnksXHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgZGF0YT86IHN0cmluZyxcclxuICAgIG1hcms/OiBzdHJpbmcsXHJcbiAgICBzZXR0aW5nPzogYm9vbGVhblxyXG4gIH07XHJcbiAgQElucHV0KClcclxuICBtYXJrOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIGdldCBfc3R5bGUoKSB7XHJcbiAgICBpZiAodGhpcy5ub2RlLnN0eWxlPy5mbG9hdCkge1xyXG4gICAgICByZXR1cm4ge2Zsb2F0OiB0aGlzLm5vZGUuc3R5bGUuZmxvYXR9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt9O1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnaXRlbVJlZicsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSkgaXRlbVJlZiE6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogU2VjdGlvblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLm1hcmsudHlwZSB8fCAhdGhpcy5ub2RlLnNldHRpbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IG1hcmtJdGVtID0gTWFya0l0ZW1GYWN0b3J5LmdldCh0aGlzLm1hcmsudHlwZSk7XHJcbiAgICBpZiAoIW1hcmtJdGVtKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+S4jeWtmOWcqOe7hOS7tu+8micgKyB0aGlzLm1hcmsudHlwZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5pdGVtUmVmLmNyZWF0ZUNvbXBvbmVudChtYXJrSXRlbS5jb21wb25lbnQpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRJbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICBjb21wb25lbnRJbnN0YW5jZS50ZW5hbnQgPSB0aGlzLnNlcnZpY2UudGVuYW50O1xyXG4gICAgICBjb21wb25lbnRJbnN0YW5jZS50ZW1wbGF0ZUNsYXNzTmFtZSA9IHRoaXMuc2VydmljZS50ZW1wbGF0ZUNsYXNzTmFtZTtcclxuICAgICAgY29tcG9uZW50SW5zdGFuY2UuaW5zdGFuY2VDbGFzc05hbWUgPSB0aGlzLnNlcnZpY2UuaW5zdGFuY2VDbGFzc05hbWU7XHJcbiAgICAgIGNvbXBvbmVudEluc3RhbmNlLmluc3RhbmNlT2lkID0gdGhpcy5zZXJ2aWNlLmluc3RhbmNlT2lkO1xyXG4gICAgICBjb21wb25lbnRJbnN0YW5jZS5tYXJrID0gdGhpcy5tYXJrO1xyXG4gICAgICBjb21wb25lbnRJbnN0YW5jZS5tYXJrcyA9IHRoaXMuc2VydmljZS5tYXJrcztcclxuICAgICAgY29tcG9uZW50SW5zdGFuY2UucmVhZG9ubHkgPSB0aGlzLnNlcnZpY2UucmVhZG9ubHkgfHwgdGhpcy5yZWFkb25seTtcclxuICAgICAgY29tcG9uZW50SW5zdGFuY2UudmFsdWVVcGRhdGVkID0gdGhpcy5zZXJ2aWNlLnZhbHVlVXBkYXRlZDtcclxuICAgICAgY29tcG9uZW50SW5zdGFuY2UucGFyYW1zID0gdGhpcy5zZXJ2aWNlLnBhcmFtcztcclxuICAgICAgY29tcG9uZW50SW5zdGFuY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IHRoaXMuc2VydmljZS50YWJWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLnNldHRpbmdcIiAjaXRlbVJlZj48L25nLWNvbnRhaW5lcj5cclxuPHJzLXJ1biAqbmdJZj1cIm1hcmsuY29uZmlnLnNob3dNYXJrQ29udGVudFwiIFtub2RlXT1cIm5vZGVcIiBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIj48L3JzLXJ1bj5cclxuIl19