@unifylib/ui-lib 1.0.68 → 1.0.69

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 (78) hide show
  1. package/esm2022/lib/base-model/field-info.mjs +2 -1
  2. package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +11 -3
  3. package/esm2022/lib/utils/base-utils.mjs +6 -3
  4. package/fesm2022/iq-ui-lib.mjs +16 -4
  5. package/fesm2022/iq-ui-lib.mjs.map +1 -1
  6. package/fesm2022/unifylib-ui-lib.mjs +16 -4
  7. package/fesm2022/unifylib-ui-lib.mjs.map +1 -1
  8. package/iq-ui-lib.d.ts.map +1 -0
  9. package/lib/base-model/SearchStrConfig.d.ts.map +1 -0
  10. package/lib/base-model/api-response.d.ts.map +1 -0
  11. package/lib/base-model/audit-log-entry.d.ts.map +1 -0
  12. package/lib/base-model/button-action-settings.d.ts.map +1 -0
  13. package/lib/base-model/column-def.model.d.ts.map +1 -0
  14. package/lib/base-model/do-action-request.d.ts.map +1 -0
  15. package/lib/base-model/field-action.d.ts.map +1 -0
  16. package/lib/base-model/field-filter.model.d.ts.map +1 -0
  17. package/lib/base-model/field-info.d.ts +1 -0
  18. package/lib/base-model/field-info.d.ts.map +1 -0
  19. package/lib/base-model/field-predicate.model.d.ts.map +1 -0
  20. package/lib/base-model/filter-request.d.ts.map +1 -0
  21. package/lib/base-model/filter.model.d.ts.map +1 -0
  22. package/lib/base-model/get-items-list.d.ts.map +1 -0
  23. package/lib/base-model/index.d.ts.map +1 -0
  24. package/lib/base-model/items-total.model.d.ts.map +1 -0
  25. package/lib/base-model/line-item.model.d.ts.map +1 -0
  26. package/lib/base-model/lookupItem.d.ts.map +1 -0
  27. package/lib/base-model/page-info.d.ts.map +1 -0
  28. package/lib/base-model/permission-matrix.model.d.ts.map +1 -0
  29. package/lib/base-model/report-request.model.d.ts.map +1 -0
  30. package/lib/base-model/response-envelop.model.d.ts.map +1 -0
  31. package/lib/base-model/snack-message.model.d.ts.map +1 -0
  32. package/lib/base-model/table-column.interface.d.ts.map +1 -0
  33. package/lib/base-model/table-page-user-action.interface.d.ts.map +1 -0
  34. package/lib/base-model/workflow/workflow-steps.model.d.ts.map +1 -0
  35. package/lib/base-model/workflow/workflow.model.d.ts.map +1 -0
  36. package/lib/components/action-comment/action-comment.component.d.ts.map +1 -0
  37. package/lib/components/action-confirmation/action-confirmation.component.d.ts.map +1 -0
  38. package/lib/components/activity-report-form/activity-report-form.component.d.ts.map +1 -0
  39. package/lib/components/advanced-filter/field-filter/field-filter.component.d.ts.map +1 -0
  40. package/lib/components/advanced-filter/filter-builder/filter-builder.component.d.ts.map +1 -0
  41. package/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.d.ts.map +1 -0
  42. package/lib/components/audit-log-list/audit-log.component.d.ts.map +1 -0
  43. package/lib/components/auto-complete/auto-complete.component.d.ts.map +1 -0
  44. package/lib/components/base-form/base-form.component.d.ts.map +1 -0
  45. package/lib/components/base-form-canvas/MaxDigitsDirective.d.ts.map +1 -0
  46. package/lib/components/base-form-canvas/NumbersOnlyDirective.d.ts.map +1 -0
  47. package/lib/components/base-form-canvas/base-form-canvas.component.d.ts +1 -0
  48. package/lib/components/base-form-canvas/base-form-canvas.component.d.ts.map +1 -0
  49. package/lib/components/base-input-dialog/base-input-dialog.component.d.ts.map +1 -0
  50. package/lib/components/base-table/base-table.component.d.ts.map +1 -0
  51. package/lib/components/button-actions/button-actions.component.d.ts.map +1 -0
  52. package/lib/components/editable-base-table/editable-base-table.component.d.ts.map +1 -0
  53. package/lib/components/equation-builder/equation-builder.component.d.ts.map +1 -0
  54. package/lib/components/item-line-editor/item-line-editor.component.d.ts.map +1 -0
  55. package/lib/components/multi-auto-complete/multi-auto-complete.component.d.ts.map +1 -0
  56. package/lib/components/paginator/paginator.component.d.ts.map +1 -0
  57. package/lib/components/permission-matrix/permission-matrix.component.d.ts.map +1 -0
  58. package/lib/components/report-details-dialog/report-details-dialog.component.d.ts.map +1 -0
  59. package/lib/components/report-form/report-form.component.d.ts.map +1 -0
  60. package/lib/components/search-bar/search-bar.component.d.ts.map +1 -0
  61. package/lib/components/section-form-canvas/section-form-canvas.component.d.ts.map +1 -0
  62. package/lib/components/shared/action-button/action-button.component.d.ts.map +1 -0
  63. package/lib/components/shared/action-card/action-card.component.d.ts.map +1 -0
  64. package/lib/components/shared/attachment-uploader/attachment-uploader.component.d.ts.map +1 -0
  65. package/lib/components/shared-list/shared-list.component.d.ts.map +1 -0
  66. package/lib/components/snackbar-static/snackbar-static.component.d.ts.map +1 -0
  67. package/lib/components/title-bar/title-bar.component.d.ts.map +1 -0
  68. package/lib/services/backend-service.d.ts.map +1 -0
  69. package/lib/services/index.d.ts.map +1 -0
  70. package/lib/services/top-panel.d.ts.map +1 -0
  71. package/lib/services/trigger-form.service.d.ts.map +1 -0
  72. package/lib/utils/base-utils.d.ts.map +1 -0
  73. package/lib/validators/date-range-validator.d.ts.map +1 -0
  74. package/lib/validators/index.d.ts.map +1 -0
  75. package/lib/validators/match-list.validator.d.ts.map +1 -0
  76. package/lib/validators/multi-email-validator.d.ts.map +1 -0
  77. package/package.json +1 -1
  78. package/public-api.d.ts.map +1 -0
@@ -40,9 +40,12 @@ export function buildFormFields(fields, item) {
40
40
  ? []
41
41
  : '';
42
42
  const extractedValue = item ? extractFieldName(item, field.property) : undefined;
43
- const validators = field.required
43
+ let validators = field.required
44
44
  ? [...(field.validators || []), Validators.required]
45
- : field.validators || [];
45
+ : [...(field.validators || [])];
46
+ if (field.type === 'number' && !field.allowNegative) {
47
+ validators = [...validators, Validators.min(0)];
48
+ }
46
49
  fieldsControls[field.property] = extractedValue !== undefined && extractedValue !== null
47
50
  ? [extractedValue, validators]
48
51
  : [emptyValue, validators];
@@ -98,4 +101,4 @@ export function getWfActionId(stateType) {
98
101
  }
99
102
  return actionId;
100
103
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL3V0aWxzL2Jhc2UtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLGVBQWUsRUFBWSxhQUFhLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUVFLGFBQVEsR0FBYSxlQUFlLENBQUM7SUE0QnZDLENBQUM7SUExQkMsUUFBUSxDQUFDLE1BQVc7UUFDbEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDckMsT0FBTywwQkFBMEIsQ0FBQTtRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUNuRSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUN4SSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1B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LFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWVsZEluZm8sIEVNUFRZX1BBR0VfSU5GTywgUGFnZUluZm8sIEZpbHRlclJlcXVlc3QsIFNBVkVfQU5EX0NPTVBMRVRFfSBmcm9tIFwiLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0FQUFJPVkUsIE5FVywgU0FWRX0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZG8tYWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlVXRpbHMge1xyXG5cclxuICBwYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcblxyXG4gIGxhYmVsS2V5KGNvbHVtbjogYW55KSB7XHJcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICd3b3JrZmxvd1N0YXR1cycpIHtcclxuICAgICAgcmV0dXJuICdJTlZFTlRPUlkud29ya2Zsb3dTdGF0dXMnXHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmVkS2V5ID0gY29sdW1uLmxhYmVsID8gY29sdW1uLmxhYmVsIDogY29sdW1uLnByb3BlcnR5XHJcbiAgICByZXR1cm4gY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbikgPyBgJHtjb25maWd1cmVkS2V5fWAgOiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y29uZmlndXJlZEtleX1gO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxLZXlCeVZhbHVlKGNvbHVtbjogYW55LCBlbGVtZW50KSB7XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke2VsZW1lbnRbY29sdW1uLnByb3BlcnR5XX1gXHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lVG9EYXRlKHY6IGFueSl7XHJcbiAgICBjb25zdCBmcm9tVGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAodikge1xyXG4gICAgICBsZXQgc3BsaXQgPSB2LnNwbGl0KFwiOlwiKTtcclxuICAgICAgZnJvbVRpbWUuc2V0SG91cnMoc3BsaXRbMF0sIHNwbGl0WzFdKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShmcm9tVGltZS5nZXRUaW1lKCkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUZpZWxkcyhmaWVsZHM6IEZpZWxkSW5mb1tdLCBpdGVtOmFueSl7XHJcbiAgbGV0IGZpZWxkc0NvbnRyb2xzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgaWYgKGZpZWxkLnR5cGUgIT09ICdzcGFjZXInKSB7XHJcbiAgICAgIGNvbnN0IGVtcHR5VmFsdWUgPVxyXG4gICAgICAgIGZpZWxkLnR5cGUgPT09ICdsb29rdXAnIHx8IGZpZWxkLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnXHJcbiAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgIDogZmllbGQudHlwZSA9PT0gJ211bHRpLXN0YXRlLWNoZWNrYm94J1xyXG4gICAgICAgICAgICA/IFtdXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICAgIGNvbnN0IGV4dHJhY3RlZFZhbHVlID0gaXRlbSA/IGV4dHJhY3RGaWVsZE5hbWUoaXRlbSwgZmllbGQucHJvcGVydHkpIDogdW5kZWZpbmVkO1xyXG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gZmllbGQucmVxdWlyZWRcclxuICAgICAgICA/IFsuLi4oZmllbGQudmFsaWRhdG9ycyB8fCBbXSksIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgICAgOiBmaWVsZC52YWxpZGF0b3JzIHx8IFtdO1xyXG5cclxuICAgICAgZmllbGRzQ29udHJvbHNbZmllbGQucHJvcGVydHldID0gZXh0cmFjdGVkVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBleHRyYWN0ZWRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gW2V4dHJhY3RlZFZhbHVlLCB2YWxpZGF0b3JzXVxyXG4gICAgICAgIDogW2VtcHR5VmFsdWUsIHZhbGlkYXRvcnNdO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZmllbGRzQ29udHJvbHM7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSXRlbXNMaXN0KHNlYXJjaFN0cjogc3RyaW5nLCBhcGlQYXRoPzogc3RyaW5nLCBjYXNjYWRlZEJ5UHJvcGVydHk/OnN0cmluZyl7XHJcbiAgY29uc3QgZmlsdGVyUmVxdWVzdCA6IEZpbHRlclJlcXVlc3QgPSBuZXcgRmlsdGVyUmVxdWVzdCgpO1xyXG4gIC8vIHJldHVybiB7XHJcbiAgZmlsdGVyUmVxdWVzdC5hcGlVcmkgPSBjYXNjYWRlZEJ5UHJvcGVydHkgPyBgJHthcGlQYXRofS8ke2Nhc2NhZGVkQnlQcm9wZXJ0eX1gIDphcGlQYXRoO1xyXG4gIGZpbHRlclJlcXVlc3Quc2VhcmNoU3RyPSBzZWFyY2hTdHJcclxuICBmaWx0ZXJSZXF1ZXN0LnBhZ2VJbmRleCA9IDA7XHJcbiAgZmlsdGVyUmVxdWVzdC5wYWdlU2l6ZT0gMTA7XHJcbiAgZmlsdGVyUmVxdWVzdC5zb3J0S2V5PSAnaWQnO1xyXG4gIGZpbHRlclJlcXVlc3Quc29ydERpcmVjdGlvbiA9IFwiREVTQ1wiIGFzIGNvbnN0O1xyXG4gIC8vIH1cclxuICByZXR1cm4gZmlsdGVyUmVxdWVzdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWVsZE5hbWUoZWxlbWVudDogYW55LCBwcm9wZXJ0eTogc3RyaW5nKSB7XHJcbiAgaWYgKHByb3BlcnR5LmluY2x1ZGVzKCcuJykpIHtcclxuICAgIHJldHVybiBwcm9wZXJ0eS5zcGxpdCgnLicpLnJlZHVjZSgoYWNjLCBwYXJ0KSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBlbGVtZW50KTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGVsZW1lbnRbcHJvcGVydHldO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvc2l0aXZlV2ZBY3Rpb25LZXkoc3RhdGVUeXBlOiBhbnkpIHtcclxuICBpZiAgKHN0YXRlVHlwZSA9PT0gXCJDT01QTEVURURcIikge1xyXG4gICAgcmV0dXJuIFwic2F2ZVwiO1xyXG4gIH0gZWxzZSBpZiAgKHN0YXRlVHlwZSA9PT0gXCJQRU5ESU5HXCIgfHwgc3RhdGVUeXBlID09PSBcIk5FV1wiKSB7XHJcbiAgICByZXR1cm4gXCJhcHByb3ZlXCI7XHJcbiAgfVxyXG4gIHJldHVybiBcInNhdmVcIjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lZ2F0aXZlV2ZBY3Rpb25LZXkoc3RhdGVUeXBlOiBhbnkpIHtcclxuICBpZiAgKHN0YXRlVHlwZSA9PT0gXCJDT01QTEVURURcIiApIHtcclxuICAgIHJldHVybiBcImNhbmNlbFwiO1xyXG4gIH0gZWxzZSBpZiAgKHN0YXRlVHlwZSA9PT0gXCJQRU5ESU5HXCJ8fCBzdGF0ZVR5cGUgPT09IFwiTkVXXCIpIHtcclxuICAgIHJldHVybiBcInJlamVjdFwiO1xyXG4gIH1cclxuICByZXR1cm4gXCJjYW5jZWxcIjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFdmQWN0aW9uSWQoc3RhdGVUeXBlKSB7XHJcbiAgbGV0IGFjdGlvbklkID0gTkVXO1xyXG4gIGlmICAoc3RhdGVUeXBlID09PSBcIkNPTVBMRVRFRFwiKSB7XHJcbiAgICBhY3Rpb25JZCA9ICBTQVZFO1xyXG4gIH0gZWxzZSBpZiAgKHN0YXRlVHlwZSA9PT0gXCJQRU5ESU5HXCIgfHwgc3RhdGVUeXBlID09PSBcIk5FV1wiKSB7XHJcbiAgICBhY3Rpb25JZCA9ICBBUFBST1ZFO1xyXG4gIH1cclxuICByZXR1cm4gYWN0aW9uSWQ7XHJcbn1cclxuXHJcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL3V0aWxzL2Jhc2UtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLGVBQWUsRUFBWSxhQUFhLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUVFLGFBQVEsR0FBYSxlQUFlLENBQUM7SUE0QnZDLENBQUM7SUExQkMsUUFBUSxDQUFDLE1BQVc7UUFDbEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDckMsT0FBTywwQkFBMEIsQ0FBQTtRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUNuRSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUN4SSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1B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QUFHLENBQUM7SUFDbkIsSUFBSyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDL0IsUUFBUSxHQUFJLElBQUksQ0FBQztJQUNuQixDQUFDO1NBQU0sSUFBSyxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzRCxRQUFRLEdBQUksT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWVsZEluZm8sIEVNUFRZX1BBR0VfSU5GTywgUGFnZUluZm8sIEZpbHRlclJlcXVlc3QsIFNBVkVfQU5EX0NPTVBMRVRFfSBmcm9tIFwiLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0FQUFJPVkUsIE5FVywgU0FWRX0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZG8tYWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlVXRpbHMge1xyXG5cclxuICBwYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcblxyXG4gIGxhYmVsS2V5KGNvbHVtbjogYW55KSB7XHJcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICd3b3JrZmxvd1N0YXR1cycpIHtcclxuICAgICAgcmV0dXJuICdJTlZFTlRPUlkud29ya2Zsb3dTdGF0dXMnXHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmVkS2V5ID0gY29sdW1uLmxhYmVsID8gY29sdW1uLmxhYmVsIDogY29sdW1uLnByb3BlcnR5XHJcbiAgICByZXR1cm4gY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbikgPyBgJHtjb25maWd1cmVkS2V5fWAgOiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y29uZmlndXJlZEtleX1gO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxLZXlCeVZhbHVlKGNvbHVtbjogYW55LCBlbGVtZW50KSB7XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke2VsZW1lbnRbY29sdW1uLnByb3BlcnR5XX1gXHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lVG9EYXRlKHY6IGFueSl7XHJcbiAgICBjb25zdCBmcm9tVGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAodikge1xyXG4gICAgICBsZXQgc3BsaXQgPSB2LnNwbGl0KFwiOlwiKTtcclxuICAgICAgZnJvbVRpbWUuc2V0SG91cnMoc3BsaXRbMF0sIHNwbGl0WzFdKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShmcm9tVGltZS5nZXRUaW1lKCkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUZpZWxkcyhmaWVsZHM6IEZpZWxkSW5mb1tdLCBpdGVtOmFueSl7XHJcbiAgbGV0IGZpZWxkc0NvbnRyb2xzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgaWYgKGZpZWxkLnR5cGUgIT09ICdzcGFjZXInKSB7XHJcbiAgICAgIGNvbnN0IGVtcHR5VmFsdWUgPVxyXG4gICAgICAgIGZpZWxkLnR5cGUgPT09ICdsb29rdXAnIHx8IGZpZWxkLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnXHJcbiAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgIDogZmllbGQudHlwZSA9PT0gJ211bHRpLXN0YXRlLWNoZWNrYm94J1xyXG4gICAgICAgICAgICA/IFtdXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICAgIGNvbnN0IGV4dHJhY3RlZFZhbHVlID0gaXRlbSA/IGV4dHJhY3RGaWVsZE5hbWUoaXRlbSwgZmllbGQucHJvcGVydHkpIDogdW5kZWZpbmVkO1xyXG4gICAgICBsZXQgdmFsaWRhdG9ycyA9IGZpZWxkLnJlcXVpcmVkXHJcbiAgICAgICAgPyBbLi4uKGZpZWxkLnZhbGlkYXRvcnMgfHwgW10pLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgIDogWy4uLihmaWVsZC52YWxpZGF0b3JzIHx8IFtdKV07XHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiAhZmllbGQuYWxsb3dOZWdhdGl2ZSkge1xyXG4gICAgICAgIHZhbGlkYXRvcnMgPSBbLi4udmFsaWRhdG9ycywgVmFsaWRhdG9ycy5taW4oMCldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmaWVsZHNDb250cm9sc1tmaWVsZC5wcm9wZXJ0eV0gPSBleHRyYWN0ZWRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIGV4dHJhY3RlZFZhbHVlICE9PSBudWxsXHJcbiAgICAgICAgPyBbZXh0cmFjdGVkVmFsdWUsIHZhbGlkYXRvcnNdXHJcbiAgICAgICAgOiBbZW1wdHlWYWx1ZSwgdmFsaWRhdG9yc107XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBmaWVsZHNDb250cm9scztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRJdGVtc0xpc3Qoc2VhcmNoU3RyOiBzdHJpbmcsIGFwaVBhdGg/OiBzdHJpbmcsIGNhc2NhZGVkQnlQcm9wZXJ0eT86c3RyaW5nKXtcclxuICBjb25zdCBmaWx0ZXJSZXF1ZXN0IDogRmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KCk7XHJcbiAgLy8gcmV0dXJuIHtcclxuICBmaWx0ZXJSZXF1ZXN0LmFwaVVyaSA9IGNhc2NhZGVkQnlQcm9wZXJ0eSA/IGAke2FwaVBhdGh9LyR7Y2FzY2FkZWRCeVByb3BlcnR5fWAgOmFwaVBhdGg7XHJcbiAgZmlsdGVyUmVxdWVzdC5zZWFyY2hTdHI9IHNlYXJjaFN0clxyXG4gIGZpbHRlclJlcXVlc3QucGFnZUluZGV4ID0gMDtcclxuICBmaWx0ZXJSZXF1ZXN0LnBhZ2VTaXplPSAxMDtcclxuICBmaWx0ZXJSZXF1ZXN0LnNvcnRLZXk9ICdpZCc7XHJcbiAgZmlsdGVyUmVxdWVzdC5zb3J0RGlyZWN0aW9uID0gXCJERVNDXCIgYXMgY29uc3Q7XHJcbiAgLy8gfVxyXG4gIHJldHVybiBmaWx0ZXJSZXF1ZXN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpZWxkTmFtZShlbGVtZW50OiBhbnksIHByb3BlcnR5OiBzdHJpbmcpIHtcclxuICBpZiAocHJvcGVydHkuaW5jbHVkZXMoJy4nKSkge1xyXG4gICAgcmV0dXJuIHByb3BlcnR5LnNwbGl0KCcuJykucmVkdWNlKChhY2MsIHBhcnQpID0+IGFjYyAmJiBhY2NbcGFydF0sIGVsZW1lbnQpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZWxlbWVudFtwcm9wZXJ0eV07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9zaXRpdmVXZkFjdGlvbktleShzdGF0ZVR5cGU6IGFueSkge1xyXG4gIGlmICAoc3RhdGVUeXBlID09PSBcIkNPTVBMRVRFRFwiKSB7XHJcbiAgICByZXR1cm4gXCJzYXZlXCI7XHJcbiAgfSBlbHNlIGlmICAoc3RhdGVUeXBlID09PSBcIlBFTkRJTkdcIiB8fCBzdGF0ZVR5cGUgPT09IFwiTkVXXCIpIHtcclxuICAgIHJldHVybiBcImFwcHJvdmVcIjtcclxuICB9XHJcbiAgcmV0dXJuIFwic2F2ZVwiO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVnYXRpdmVXZkFjdGlvbktleShzdGF0ZVR5cGU6IGFueSkge1xyXG4gIGlmICAoc3RhdGVUeXBlID09PSBcIkNPTVBMRVRFRFwiICkge1xyXG4gICAgcmV0dXJuIFwiY2FuY2VsXCI7XHJcbiAgfSBlbHNlIGlmICAoc3RhdGVUeXBlID09PSBcIlBFTkRJTkdcInx8IHN0YXRlVHlwZSA9PT0gXCJORVdcIikge1xyXG4gICAgcmV0dXJuIFwicmVqZWN0XCI7XHJcbiAgfVxyXG4gIHJldHVybiBcImNhbmNlbFwiO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2ZBY3Rpb25JZChzdGF0ZVR5cGUpIHtcclxuICBsZXQgYWN0aW9uSWQgPSBORVc7XHJcbiAgaWYgIChzdGF0ZVR5cGUgPT09IFwiQ09NUExFVEVEXCIpIHtcclxuICAgIGFjdGlvbklkID0gIFNBVkU7XHJcbiAgfSBlbHNlIGlmICAoc3RhdGVUeXBlID09PSBcIlBFTkRJTkdcIiB8fCBzdGF0ZVR5cGUgPT09IFwiTkVXXCIpIHtcclxuICAgIGFjdGlvbklkID0gIEFQUFJPVkU7XHJcbiAgfVxyXG4gIHJldHVybiBhY3Rpb25JZDtcclxufVxyXG5cclxuIl19