@bizdoc/core 1.8.5 → 1.8.9
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.
- package/LICENSE.md +1 -0
- package/karma.conf.js +44 -0
- package/ng-package.json +38 -0
- package/package.json +81 -71
- package/src/lib/admin/admin-dismiss.service.ts +24 -0
- package/src/lib/admin/admin-menu.component.html +18 -0
- package/src/lib/admin/admin-menu.component.ts +20 -0
- package/src/lib/admin/core/ace.input.ts +133 -0
- package/src/lib/admin/core/color-picker.input.scss +17 -0
- package/src/lib/admin/core/color-picker.input.ts +175 -0
- package/src/lib/admin/core/search.input.ts +32 -0
- package/src/lib/admin/diff/_configuration-diff-theme.scss +72 -0
- package/src/lib/admin/diff/configuration-diff.component.html +24 -0
- package/src/lib/admin/diff/configuration-diff.component.scss +16 -0
- package/src/lib/admin/diff/configuration-diff.component.ts +549 -0
- package/src/lib/admin/document-trace/Timeline.ts +41 -0
- package/src/lib/admin/document-trace/_timeline-theme.scss +70 -0
- package/src/lib/admin/document-trace/document-trace.component.html +55 -0
- package/src/lib/admin/document-trace/document-trace.component.scss +10 -0
- package/src/lib/admin/document-trace/document-trace.component.ts +463 -0
- package/src/lib/admin/document-trace/reassign.dialog.html +24 -0
- package/src/lib/admin/document-trace/reassign.dialog.ts +34 -0
- package/src/lib/admin/document-trace/trace-element.component.html +57 -0
- package/src/lib/admin/document-trace/trace-element.component.scss +21 -0
- package/src/lib/admin/document-trace/trace-element.component.ts +116 -0
- package/src/lib/admin/form/form.resolve.service.ts +13 -0
- package/src/lib/admin/form/form.service.ts +23 -0
- package/src/lib/admin/form/workflow/node-ref.ts +8 -0
- package/src/lib/admin/form/workflow/node.component.html +36 -0
- package/src/lib/admin/form/workflow/node.component.scss +4 -0
- package/src/lib/admin/form/workflow/node.component.ts +128 -0
- package/src/lib/admin/form/workflow/role-node.component.html +36 -0
- package/src/lib/admin/form/workflow/role-node.component.ts +65 -0
- package/src/lib/admin/form/workflow/tools.component.exp.ts +13 -0
- package/src/lib/admin/form/workflow/tools.component.html +1 -0
- package/src/lib/admin/form/workflow/workflow.component.html +73 -0
- package/src/lib/admin/form/workflow/workflow.component.scss +52 -0
- package/src/lib/admin/form/workflow/workflow.component.ts +390 -0
- package/src/lib/admin/indices/manage-cube-index.component.html +35 -0
- package/src/lib/admin/indices/manage-cube-index.component.scss +16 -0
- package/src/lib/admin/indices/manage-cube-index.component.ts +155 -0
- package/src/lib/admin/patterns/patterns.component.html +70 -0
- package/src/lib/admin/patterns/patterns.component.ts +166 -0
- package/src/lib/admin/permissions/permissions.component.html +21 -0
- package/src/lib/admin/permissions/permissions.component.scss +7 -0
- package/src/lib/admin/permissions/permissions.component.ts +89 -0
- package/src/lib/admin/positions/positions-popup.component.html +23 -0
- package/src/lib/admin/positions/positions-popup.component.ts +67 -0
- package/src/lib/admin/positions/positions.component.html +142 -0
- package/src/lib/admin/positions/positions.component.scss +14 -0
- package/src/lib/admin/positions/positions.component.ts +285 -0
- package/src/lib/admin/profiler/profiler.component.html +109 -0
- package/src/lib/admin/profiler/profiler.component.scss +22 -0
- package/src/lib/admin/profiler/profiler.component.ts +268 -0
- package/src/lib/admin/utility-ref.ts +44 -0
- package/src/lib/admin/utility-wrapper.component.ts +52 -0
- package/src/lib/admin/utility.pane.component.ts +49 -0
- package/src/lib/app.component.ts +86 -0
- package/src/lib/bizdoc.module.ts +81 -0
- package/src/lib/browse/_browse-theme.scss +86 -0
- package/src/lib/browse/browse-items.component.html +163 -0
- package/src/lib/browse/browse-items.component.scss +52 -0
- package/src/lib/browse/browse-items.component.ts +419 -0
- package/src/lib/browse/browse.mobile.component.html +33 -0
- package/src/lib/browse/browse.mobile.component.ts +89 -0
- package/src/lib/browse/browse.pane.component.html +43 -0
- package/src/lib/browse/browse.pane.component.scss +4 -0
- package/src/lib/browse/browse.pane.component.ts +133 -0
- package/src/lib/browse/expanded-item/expanded-item.component.html +37 -0
- package/src/lib/browse/expanded-item/expanded-item.component.scss +35 -0
- package/src/lib/browse/expanded-item/expanded-item.component.ts +287 -0
- package/src/lib/browse/filter/filter.component.html +50 -0
- package/src/lib/browse/filter/filter.component.scss +10 -0
- package/src/lib/browse/filter/filter.component.ts +143 -0
- package/src/lib/browse/folders-menu.component.html +20 -0
- package/src/lib/browse/folders-menu.component.scss +15 -0
- package/src/lib/browse/folders-menu.component.ts +42 -0
- package/src/lib/chart.module.ts +33 -0
- package/src/lib/chat/_chat-theme.scss +162 -0
- package/src/lib/chat/chat-info.ts +73 -0
- package/src/lib/chat/chat-pool.component.exp.ts +117 -0
- package/src/lib/chat/chat-pool.component.html +13 -0
- package/src/lib/chat/chat-pool.component.scss +10 -0
- package/src/lib/chat/chat.mobile.component.html +6 -0
- package/src/lib/chat/chat.mobile.component.scss +8 -0
- package/src/lib/chat/chat.mobile.component.ts +18 -0
- package/src/lib/chat/chat.service.ts +128 -0
- package/src/lib/chat/contacts.component.html +37 -0
- package/src/lib/chat/contacts.component.scss +49 -0
- package/src/lib/chat/contacts.component.ts +88 -0
- package/src/lib/chat/contacts.pane.component.ts +25 -0
- package/src/lib/chat/conversation.component.html +28 -0
- package/src/lib/chat/conversation.component.scss +6 -0
- package/src/lib/chat/conversation.component.ts +186 -0
- package/src/lib/chat/conversation.pane.component.ts +45 -0
- package/src/lib/circular-gauge.module.ts +11 -0
- package/src/lib/compose/_compose-theme.scss +38 -0
- package/src/lib/compose/action/action-picker.component.html +25 -0
- package/src/lib/compose/action/action-picker.component.scss +4 -0
- package/src/lib/compose/action/action-picker.component.ts +95 -0
- package/src/lib/compose/action/action-ref.ts +19 -0
- package/src/lib/compose/action/action.dialog.html +17 -0
- package/src/lib/compose/action/action.dialog.scss +1 -0
- package/src/lib/compose/action/action.dialog.ts +58 -0
- package/src/lib/compose/action/action.pane.dialog.html +12 -0
- package/src/lib/compose/action/action.pane.dialog.ts +64 -0
- package/src/lib/compose/action/assign-action.component.html +17 -0
- package/src/lib/compose/action/assign-action.component.ts +43 -0
- package/src/lib/compose/action/return-action.component.html +13 -0
- package/src/lib/compose/action/return-action.component.ts +31 -0
- package/src/lib/compose/attachments/attachments.component.html +23 -0
- package/src/lib/compose/attachments/attachments.component.scss +21 -0
- package/src/lib/compose/attachments/attachments.component.ts +103 -0
- package/src/lib/compose/attachments/preview/attachment-preview.component.html +15 -0
- package/src/lib/compose/attachments/preview/attachment-preview.component.scss +36 -0
- package/src/lib/compose/attachments/preview/attachment-preview.component.ts +143 -0
- package/src/lib/compose/attachments/progress-button.directive.ts +18 -0
- package/src/lib/compose/can-deactivate-changes.service.ts +22 -0
- package/src/lib/compose/comments/_comments-theme.scss +82 -0
- package/src/lib/compose/comments/comment.component.html +36 -0
- package/src/lib/compose/comments/comment.component.ts +160 -0
- package/src/lib/compose/comments/comments.component.html +27 -0
- package/src/lib/compose/comments/comments.component.scss +33 -0
- package/src/lib/compose/comments/comments.component.ts +220 -0
- package/src/lib/compose/comments/comments.pane.component.ts +41 -0
- package/src/lib/compose/comments/edit-comment.component.html +3 -0
- package/src/lib/compose/comments/edit-comment.component.ts +35 -0
- package/src/lib/compose/comments/edits.component.html +7 -0
- package/src/lib/compose/comments/edits.component.ts +33 -0
- package/src/lib/compose/comments/quick-comment.component.exp.ts +60 -0
- package/src/lib/compose/comments/quick-comment.component.html +5 -0
- package/src/lib/compose/comments/quick-comment.component.scss +11 -0
- package/src/lib/compose/comments/votes.component.html +7 -0
- package/src/lib/compose/comments/votes.component.ts +38 -0
- package/src/lib/compose/compose-resolve.service.ts +42 -0
- package/src/lib/compose/compose.mobile.component.html +48 -0
- package/src/lib/compose/compose.mobile.component.scss +11 -0
- package/src/lib/compose/compose.mobile.component.ts +84 -0
- package/src/lib/compose/compose.pane.component.html +48 -0
- package/src/lib/compose/compose.pane.component.scss +26 -0
- package/src/lib/compose/compose.pane.component.ts +181 -0
- package/src/lib/compose/copy/copy.dialog.html +21 -0
- package/src/lib/compose/copy/copy.dialog.ts +40 -0
- package/src/lib/compose/dismiss.service.ts +26 -0
- package/src/lib/compose/document-resolver.service.ts +13 -0
- package/src/lib/compose/document.component.html +5 -0
- package/src/lib/compose/document.component.ts +44 -0
- package/src/lib/compose/document.mobile.component.ts +20 -0
- package/src/lib/compose/document.pane.component.ts +22 -0
- package/src/lib/compose/events/events.component.html +6 -0
- package/src/lib/compose/events/events.component.ts +21 -0
- package/src/lib/compose/form-ref.ts +53 -0
- package/src/lib/compose/form-selector/form-selector.sheet.html +10 -0
- package/src/lib/compose/form-selector/form-selector.sheet.ts +74 -0
- package/src/lib/compose/form.component.html +12 -0
- package/src/lib/compose/form.component.ts +401 -0
- package/src/lib/compose/maps/maps.component.html +3 -0
- package/src/lib/compose/maps/maps.component.ts +22 -0
- package/src/lib/compose/new-menu.component.html +29 -0
- package/src/lib/compose/new-menu.component.scss +11 -0
- package/src/lib/compose/new-menu.component.ts +106 -0
- package/src/lib/compose/privilage.directive.ts +43 -0
- package/src/lib/compose/recipient-resolver.service.ts +15 -0
- package/src/lib/compose/save-changes.dialog.html +13 -0
- package/src/lib/compose/save-changes.dialog.ts +10 -0
- package/src/lib/compose/state.component.ts +29 -0
- package/src/lib/compose/tag/tags.component.html +22 -0
- package/src/lib/compose/tag/tags.component.scss +1 -0
- package/src/lib/compose/tag/tags.component.ts +83 -0
- package/src/lib/compose/trace/flow.component.html +3 -0
- package/src/lib/compose/trace/flow.component.scss +7 -0
- package/src/lib/compose/trace/flow.component.ts +669 -0
- package/src/lib/compose/trace/people.component.ts +32 -0
- package/src/lib/compose/trace/trace.base.ts +66 -0
- package/src/lib/compose/trace/trace.component.html +43 -0
- package/src/lib/compose/trace/trace.component.scss +16 -0
- package/src/lib/compose/trace/trace.component.ts +289 -0
- package/src/lib/compose/trace/trace.pane.component.html +3 -0
- package/src/lib/compose/trace/trace.pane.component.scss +5 -0
- package/src/lib/compose/trace/trace.pane.component.ts +43 -0
- package/src/lib/compose/version-compare/_compare-theme.scss +147 -0
- package/src/lib/compose/version-compare/version-compare.component.ts +51 -0
- package/src/lib/compose/version-compare/version-compare.directive.ts +292 -0
- package/src/lib/compose/version-compare/version.pane.component.html +19 -0
- package/src/lib/compose/version-compare/version.pane.component.scss +8 -0
- package/src/lib/compose/version-compare/version.pane.component.ts +48 -0
- package/src/lib/core/NgComponentOutlet.ts +31 -0
- package/src/lib/core/account.service.ts +28 -0
- package/src/lib/core/animated-icon/animated-icon.directive.html +3 -0
- package/src/lib/core/animated-icon/animated-icon.directive.scss +12 -0
- package/src/lib/core/animated-icon/animated-icon.directive.ts +41 -0
- package/src/lib/core/animations.ts +196 -0
- package/src/lib/core/authentication.ts +7 -0
- package/src/lib/core/avatar/_avatar-theme.scss +60 -0
- package/src/lib/core/avatar/avatar.component.html +6 -0
- package/src/lib/core/avatar/avatar.component.ts +108 -0
- package/src/lib/core/base.ts +44 -0
- package/src/lib/core/can-activate.service.exp.ts +31 -0
- package/src/lib/core/colors.ts +322 -0
- package/src/lib/core/component-factory-resolver.ts +59 -0
- package/src/lib/core/configuration.ts +95 -0
- package/src/lib/core/controls/_daterange-theme.scss +16 -0
- package/src/lib/core/controls/address.input.ts +158 -0
- package/src/lib/core/controls/auto-complete.input.ts +218 -0
- package/src/lib/core/controls/combination-picker-body.html +34 -0
- package/src/lib/core/controls/combination-picker-body.scss +40 -0
- package/src/lib/core/controls/combination-picker-body.ts +191 -0
- package/src/lib/core/controls/combination-picker.html +6 -0
- package/src/lib/core/controls/combination-picker.scss +9 -0
- package/src/lib/core/controls/combination-picker.ts +243 -0
- package/src/lib/core/controls/combination-pool.html +10 -0
- package/src/lib/core/controls/combination-pool.scss +35 -0
- package/src/lib/core/controls/combination-pool.ts +96 -0
- package/src/lib/core/controls/select.input.ts +205 -0
- package/src/lib/core/controls/time-picker.html +4 -0
- package/src/lib/core/controls/time-picker.ts +199 -0
- package/src/lib/core/controls/timespan.input.ts +175 -0
- package/src/lib/core/datasource.service.ts +67 -0
- package/src/lib/core/decorators.ts +56 -0
- package/src/lib/core/firebase.service.ts +55 -0
- package/src/lib/core/functions.ts +229 -0
- package/src/lib/core/guide/_guide-theme.scss +197 -0
- package/src/lib/core/guide/guide.component.html +20 -0
- package/src/lib/core/guide/guide.component.ts +210 -0
- package/src/lib/core/guide/guide.service.ts +98 -0
- package/src/lib/core/http.interceptor.ts +80 -0
- package/src/lib/core/hub.service.ts +194 -0
- package/src/lib/core/identity/identity.component.html +2 -0
- package/src/lib/core/identity/identity.component.ts +57 -0
- package/src/lib/core/info/attachment-info.service.ts +49 -0
- package/src/lib/core/info/document-info.service.ts +14 -0
- package/src/lib/core/info/location-info.component.scss +13 -0
- package/src/lib/core/info/location-info.component.ts +64 -0
- package/src/lib/core/info/map-info.ts +33 -0
- package/src/lib/core/layout/autocomplete.field.ts +41 -0
- package/src/lib/core/layout/checkbox.field.ts +21 -0
- package/src/lib/core/layout/date-range.field.ts +32 -0
- package/src/lib/core/layout/date.field.ts +26 -0
- package/src/lib/core/layout/expression.field.ts +26 -0
- package/src/lib/core/layout/html.field.ts +28 -0
- package/src/lib/core/layout/input.base.ts +12 -0
- package/src/lib/core/layout/input.field.ts +43 -0
- package/src/lib/core/layout/layout.component.scss +9 -0
- package/src/lib/core/layout/layout.component.ts +173 -0
- package/src/lib/core/layout/numeric.field.ts +24 -0
- package/src/lib/core/layout/select.field.ts +52 -0
- package/src/lib/core/layout/switch.field.ts +21 -0
- package/src/lib/core/layout/textarea.field.ts +21 -0
- package/src/lib/core/layout/timespan.field.ts +25 -0
- package/src/lib/core/lottie-animation.ts +37 -0
- package/src/lib/core/mailbox.service.ts +296 -0
- package/src/lib/core/models.ts +667 -0
- package/src/lib/core/none.component.scss +26 -0
- package/src/lib/core/none.component.ts +28 -0
- package/src/lib/core/pipes/action.pipe.ts +18 -0
- package/src/lib/core/pipes/daterange.pipe.ts +45 -0
- package/src/lib/core/pipes/duration.pipe.ts +39 -0
- package/src/lib/core/pipes/form.pipe.ts +19 -0
- package/src/lib/core/pipes/join.pipe.ts +10 -0
- package/src/lib/core/pipes/role.pipe.ts +19 -0
- package/src/lib/core/pipes/sanitize-html.pipe.ts +10 -0
- package/src/lib/core/pipes/sort.pipe.ts +34 -0
- package/src/lib/core/pipes/state.pipe.ts +19 -0
- package/src/lib/core/pipes/translate.pipe.ts +14 -0
- package/src/lib/core/pipes/type-value.pipe.ts +37 -0
- package/src/lib/core/pipes/user-name.pipe.ts +14 -0
- package/src/lib/core/popup/_popup-theme.scss +226 -0
- package/src/lib/core/popup/popup-ref.ts +19 -0
- package/src/lib/core/popup/popup.component.html +6 -0
- package/src/lib/core/popup/popup.component.ts +40 -0
- package/src/lib/core/popup/popup.service.ts +164 -0
- package/src/lib/core/popup/tooltip.directive.ts +47 -0
- package/src/lib/core/prompt/ask/ask.dialog.html +6 -0
- package/src/lib/core/prompt/ask/ask.dialog.ts +35 -0
- package/src/lib/core/prompt/mask/mask.component.html +1 -0
- package/src/lib/core/prompt/mask/mask.component.scss +14 -0
- package/src/lib/core/prompt/mask/mask.component.ts +15 -0
- package/src/lib/core/prompt.service.ts +81 -0
- package/src/lib/core/router.ts +29 -0
- package/src/lib/core/session.service.ts +247 -0
- package/src/lib/core/slots/_slots-theme.scss +142 -0
- package/src/lib/core/slots/extended-tab.component.exp.ts +35 -0
- package/src/lib/core/slots/extended-tab.component.html +0 -0
- package/src/lib/core/slots/intro.pane.component.exp.ts +23 -0
- package/src/lib/core/slots/intro.pane.component.html +22 -0
- package/src/lib/core/slots/intro.pane.component.scss +8 -0
- package/src/lib/core/slots/pane-ref.ts +156 -0
- package/src/lib/core/slots/router.directive.ts +55 -0
- package/src/lib/core/slots/router.service.ts +67 -0
- package/src/lib/core/slots/slot.component.exp.ts +49 -0
- package/src/lib/core/slots/slot.component.html +15 -0
- package/src/lib/core/slots/slot.component.scss +18 -0
- package/src/lib/core/slots/slots.component.html +65 -0
- package/src/lib/core/slots/slots.component.scss +160 -0
- package/src/lib/core/slots/slots.component.ts +1138 -0
- package/src/lib/core/tagging/documents.component.html +11 -0
- package/src/lib/core/tagging/documents.component.ts +19 -0
- package/src/lib/core/tagging/edit-input.component.html +42 -0
- package/src/lib/core/tagging/edit-input.component.scss +21 -0
- package/src/lib/core/tagging/edit-input.component.ts +211 -0
- package/src/lib/core/tagging/emoji.component.ts +23 -0
- package/src/lib/core/tagging/tagging-item.directive.ts +34 -0
- package/src/lib/core/tagging/tagging.component-base.ts +29 -0
- package/src/lib/core/tagging/tagging.component.scss +22 -0
- package/src/lib/core/tagging/tagging.directive.ts +128 -0
- package/src/lib/core/tagging/tagging.pipe.ts +76 -0
- package/src/lib/core/tagging/users.component.html +13 -0
- package/src/lib/core/tagging/users.component.ts +28 -0
- package/src/lib/core/translate.service.ts +1203 -0
- package/src/lib/core/window-title.service.ts +54 -0
- package/src/lib/cube/accum/accum.component.html +16 -0
- package/src/lib/cube/accum/accum.component.ts +186 -0
- package/src/lib/cube/chart/chart.component.html +32 -0
- package/src/lib/cube/chart/chart.component.ts +252 -0
- package/src/lib/cube/cube-info.service.ts +129 -0
- package/src/lib/cube/cube-menu.component.html +13 -0
- package/src/lib/cube/cube-menu.component.ts +18 -0
- package/src/lib/cube/cube-view.component.ts +174 -0
- package/src/lib/cube/cube.service.ts +415 -0
- package/src/lib/cube/declarations.ts +23 -0
- package/src/lib/cube/explore/document-item.component.ts +28 -0
- package/src/lib/cube/explore/explore-item.component.scss +4 -0
- package/src/lib/cube/explore/explore-item.component.ts +23 -0
- package/src/lib/cube/explore/explore-items.component.html +27 -0
- package/src/lib/cube/explore/explore-items.component.scss +24 -0
- package/src/lib/cube/explore/explore-items.component.ts +142 -0
- package/src/lib/cube/explore/explore.pane.component.html +11 -0
- package/src/lib/cube/explore/explore.pane.component.ts +69 -0
- package/src/lib/cube/explore/item-resolver.service.ts +24 -0
- package/src/lib/cube/explore/item.pane.component.html +3 -0
- package/src/lib/cube/explore/item.pane.component.ts +23 -0
- package/src/lib/cube/filter/filter-tags.component.exp.ts +59 -0
- package/src/lib/cube/filter/filter-tags.component.html +8 -0
- package/src/lib/cube/filter/filter-tags.component.scss +0 -0
- package/src/lib/cube/filter/filter-tags.component.spec.ts +25 -0
- package/src/lib/cube/filter/filter.component.html +25 -0
- package/src/lib/cube/filter/filter.component.scss +8 -0
- package/src/lib/cube/filter/filter.component.ts +102 -0
- package/src/lib/cube/grid/grid.component.html +30 -0
- package/src/lib/cube/grid/grid.component.scss +4 -0
- package/src/lib/cube/grid/grid.component.ts +220 -0
- package/src/lib/cube/grid/spreadsheet.component.ts +268 -0
- package/src/lib/cube/matrix/_matrix.theme.scss +77 -0
- package/src/lib/cube/matrix/matrix.base.ts +156 -0
- package/src/lib/cube/matrix/matrix.component.html +27 -0
- package/src/lib/cube/matrix/matrix.component.scss +3 -0
- package/src/lib/cube/matrix/matrix.component.ts +52 -0
- package/src/lib/cube/matrix/matrix.mobile.component.html +26 -0
- package/src/lib/cube/matrix/matrix.mobile.component.ts +57 -0
- package/src/lib/cube/matrix/matrix.pane.component.html +26 -0
- package/src/lib/cube/matrix/matrix.pane.component.scss +7 -0
- package/src/lib/cube/matrix/matrix.pane.component.ts +63 -0
- package/src/lib/cube/matrix/table.component.html +64 -0
- package/src/lib/cube/matrix/table.component.scss +22 -0
- package/src/lib/cube/matrix/table.component.ts +337 -0
- package/src/lib/cube/pivot/pivot.component.html +14 -0
- package/src/lib/cube/pivot/pivot.component.ts +409 -0
- package/src/lib/cube/view-base.ts +81 -0
- package/src/lib/cube/view.mobile.component.html +38 -0
- package/src/lib/cube/view.mobile.component.scss +9 -0
- package/src/lib/cube/view.mobile.component.ts +112 -0
- package/src/lib/cube/view.pane.component.html +25 -0
- package/src/lib/cube/view.pane.component.scss +12 -0
- package/src/lib/cube/view.pane.component.ts +75 -0
- package/src/lib/dashboard/_table.widget.scss +19 -0
- package/src/lib/dashboard/actions/actions.widget.html +6 -0
- package/src/lib/dashboard/actions/actions.widget.ts +118 -0
- package/src/lib/dashboard/cube/accum-cube.widget.html +15 -0
- package/src/lib/dashboard/cube/accum-cube.widget.ts +154 -0
- package/src/lib/dashboard/cube/cube-analysis.base.ts +116 -0
- package/src/lib/dashboard/cube/cube-analysis.widget.ts +42 -0
- package/src/lib/dashboard/cube/cube-chart.widget.html +7 -0
- package/src/lib/dashboard/cube/cube-chart.widget.ts +146 -0
- package/src/lib/dashboard/cube/documents.widget.html +19 -0
- package/src/lib/dashboard/cube/documents.widget.ts +59 -0
- package/src/lib/dashboard/cube/filter/filter.component.html +3 -0
- package/src/lib/dashboard/cube/filter/filter.component.ts +49 -0
- package/src/lib/dashboard/cube/gauge.component.exp.ts +18 -0
- package/src/lib/dashboard/dashboard.component.html +18 -0
- package/src/lib/dashboard/dashboard.component.scss +36 -0
- package/src/lib/dashboard/dashboard.component.ts +45 -0
- package/src/lib/dashboard/dashboard.pane.component.ts +19 -0
- package/src/lib/dashboard/recents/recents.widget.html +27 -0
- package/src/lib/dashboard/recents/recents.widget.scss +9 -0
- package/src/lib/dashboard/recents/recents.widget.ts +74 -0
- package/src/lib/dashboard/score/activity.widget.html +9 -0
- package/src/lib/dashboard/score/activity.widget.ts +167 -0
- package/src/lib/dashboard/score/compare-departments.widget.html +8 -0
- package/src/lib/dashboard/score/compare-departments.widget.ts +204 -0
- package/src/lib/dashboard/score/peers-performance.widget.html +23 -0
- package/src/lib/dashboard/score/peers-performance.widget.ts +254 -0
- package/src/lib/dashboard/score/pending-results.widget.html +29 -0
- package/src/lib/dashboard/score/pending-results.widget.ts +57 -0
- package/src/lib/dashboard/score/personal-score.widget.html +18 -0
- package/src/lib/dashboard/score/personal-score.widget.ts +225 -0
- package/src/lib/dashboard/widget-item.component.ts +90 -0
- package/src/lib/dashboard/widget-ref.ts +20 -0
- package/src/lib/desktop.module.ts +93 -0
- package/src/lib/diagram.module.ts +20 -0
- package/src/lib/grid.module.ts +16 -0
- package/src/lib/home/_home-theme.scss +155 -0
- package/src/lib/home/about/about.dialog.html +19 -0
- package/src/lib/home/about/about.dialog.ts +18 -0
- package/src/lib/home/home-base.component.ts +88 -0
- package/src/lib/home/home.desktop.component.html +87 -0
- package/src/lib/home/home.desktop.component.scss +66 -0
- package/src/lib/home/home.desktop.component.ts +181 -0
- package/src/lib/home/home.mobile.component.html +79 -0
- package/src/lib/home/home.mobile.component.scss +49 -0
- package/src/lib/home/home.mobile.component.ts +105 -0
- package/src/lib/home/notifications/notifications.component.html +18 -0
- package/src/lib/home/notifications/notifications.component.scss +36 -0
- package/src/lib/home/notifications/notifications.component.ts +55 -0
- package/src/lib/home/options/options.component.html +39 -0
- package/src/lib/home/options/options.component.scss +16 -0
- package/src/lib/home/options/options.component.ts +92 -0
- package/src/lib/home/outofoffice/outofoffice.component.html +5 -0
- package/src/lib/home/outofoffice/outofoffice.component.scss +10 -0
- package/src/lib/home/outofoffice/outofoffice.component.ts +33 -0
- package/src/lib/home/progress-bar.directive.exp.ts +24 -0
- package/src/lib/home/search.service.ts +71 -0
- package/src/lib/home/sign/sign.component.html +15 -0
- package/src/lib/home/sign/sign.component.ts +42 -0
- package/src/lib/home/submenu.directive.exp.ts +43 -0
- package/src/lib/home/tools.component.html +27 -0
- package/src/lib/home/tools.component.scss +15 -0
- package/src/lib/home/tools.component.ts +72 -0
- package/src/lib/home/welcome/welcome.dialog.exp.ts +35 -0
- package/src/lib/home/welcome/welcome.dialog.html +14 -0
- package/src/lib/impersonate/impersonate.component.html +17 -0
- package/src/lib/impersonate/impersonate.component.scss +3 -0
- package/src/lib/impersonate/impersonate.component.spec.ts +24 -0
- package/src/lib/impersonate/impersonate.component.ts +60 -0
- package/src/lib/linear-gauge.module.ts +11 -0
- package/src/lib/material.module.ts +99 -0
- package/src/lib/mobile.module.ts +41 -0
- package/src/lib/notifications/commented.notification.html +14 -0
- package/src/lib/notifications/commented.notification.ts +51 -0
- package/src/lib/notifications/cube-anomaly.notification.ts +50 -0
- package/src/lib/notifications/escalated.notification.ts +37 -0
- package/src/lib/notifications/filter.component.html +6 -0
- package/src/lib/notifications/filter.component.ts +16 -0
- package/src/lib/notifications/liked.notification.ts +49 -0
- package/src/lib/notifications/long-running-task.notification.ts +23 -0
- package/src/lib/notifications/notification-base.ts +38 -0
- package/src/lib/notifications/notifications-table.component.html +54 -0
- package/src/lib/notifications/notifications-table.component.scss +14 -0
- package/src/lib/notifications/notifications-table.component.ts +94 -0
- package/src/lib/notifications/notifications.component-base.ts +45 -0
- package/src/lib/notifications/notifications.mobile.component.ts +13 -0
- package/src/lib/notifications/notifications.pane.component.ts +16 -0
- package/src/lib/notifications/notifications.service.ts +66 -0
- package/src/lib/notifications/nudge.notification.ts +33 -0
- package/src/lib/notifications/state-changed.notification.ts +27 -0
- package/src/lib/notifications/tagged.notification.ts +46 -0
- package/src/lib/notifications/text.notification.ts +13 -0
- package/src/lib/notifications/upcoming-event.notification.ts +25 -0
- package/src/lib/options/options.component.html +149 -0
- package/src/lib/options/options.component.scss +19 -0
- package/src/lib/options/options.component.ts +244 -0
- package/src/lib/options/options.service.ts +30 -0
- package/src/lib/pivot.module.ts +18 -0
- package/src/lib/reports/arguments-component.ts +73 -0
- package/src/lib/reports/cube/grid-documents.component.html +25 -0
- package/src/lib/reports/cube/grid-documents.component.ts +85 -0
- package/src/lib/reports/cube/table-documents.component.css +18 -0
- package/src/lib/reports/cube/table-documents.component.html +30 -0
- package/src/lib/reports/cube/table-documents.component.ts +65 -0
- package/src/lib/reports/cube/usage-args.component.html +3 -0
- package/src/lib/reports/cube/usage-args.component.ts +57 -0
- package/src/lib/reports/cube/usage-base.ts +121 -0
- package/src/lib/reports/cube/usage-browse.component.exp.ts +93 -0
- package/src/lib/reports/cube/usage-browse.component.html +27 -0
- package/src/lib/reports/cube/usage-browse.component.scss +24 -0
- package/src/lib/reports/cube/usage-chart.component.html +11 -0
- package/src/lib/reports/cube/usage-chart.component.ts +304 -0
- package/src/lib/reports/cube/usage-pivot.component.html +19 -0
- package/src/lib/reports/cube/usage-pivot.component.ts +252 -0
- package/src/lib/reports/report-ref.ts +42 -0
- package/src/lib/reports/report-viewer.component.html +2 -0
- package/src/lib/reports/report-viewer.component.scss +12 -0
- package/src/lib/reports/report-viewer.component.ts +129 -0
- package/src/lib/reports/report.mobile.component.html +16 -0
- package/src/lib/reports/report.mobile.component.scss +7 -0
- package/src/lib/reports/report.mobile.component.ts +107 -0
- package/src/lib/reports/report.pane.component.html +8 -0
- package/src/lib/reports/report.pane.component.scss +9 -0
- package/src/lib/reports/report.pane.component.ts +78 -0
- package/src/lib/reports/reports-menu.component.html +9 -0
- package/src/lib/reports/reports-menu.component.ts +20 -0
- package/src/lib/reports/substitution/substitution.component.html +26 -0
- package/src/lib/reports/substitution/substitution.component.ts +34 -0
- package/src/lib/reports/table/table-view.component.html +8 -0
- package/src/lib/reports/table/table-view.component.scss +0 -0
- package/src/lib/reports/table/table-view.component.ts +33 -0
- package/src/lib/reports/tasks/tasks.component.html +21 -0
- package/src/lib/reports/tasks/tasks.component.ts +114 -0
- package/src/lib/reports/timeline/timeline.component.exp.ts +225 -0
- package/src/lib/reports/timeline/timeline.component.html +9 -0
- package/src/lib/routes.desktop.ts +191 -0
- package/src/lib/routes.mobile.ts +69 -0
- package/src/lib/schedule.module.ts +12 -0
- package/src/lib/scheduler/schedule.component.html +36 -0
- package/src/lib/scheduler/schedule.component.scss +13 -0
- package/src/lib/scheduler/schedule.component.ts +158 -0
- package/src/lib/scheduler/scheduler.mobile.component.ts +30 -0
- package/src/lib/scheduler/scheduler.pane.component.ts +49 -0
- package/src/lib/shared.module.ts +355 -0
- package/src/lib/spreadsheet.module.ts +17 -0
- package/src/lib/system.module.ts +77 -0
- package/src/lib/views/_views.theme.scss +11 -0
- package/src/lib/views/cube/_sum.theme.scss +59 -0
- package/src/lib/views/cube/chart.component.html +18 -0
- package/src/lib/views/cube/chart.component.ts +86 -0
- package/src/lib/views/cube/cube-base.ts +126 -0
- package/src/lib/views/cube/explore.component.html +33 -0
- package/src/lib/views/cube/explore.component.ts +77 -0
- package/src/lib/views/cube/matrix.component.html +42 -0
- package/src/lib/views/cube/matrix.component.ts +116 -0
- package/src/lib/views/cube/parallel.component.html +17 -0
- package/src/lib/views/cube/parallel.component.scss +13 -0
- package/src/lib/views/cube/parallel.component.ts +209 -0
- package/src/lib/views/cube/pivot.component.html +5 -0
- package/src/lib/views/cube/pivot.component.ts +60 -0
- package/src/lib/views/cube/sum.component.html +86 -0
- package/src/lib/views/cube/sum.component.scss +94 -0
- package/src/lib/views/cube/sum.component.ts +433 -0
- package/src/lib/views/cube/view.component.html +34 -0
- package/src/lib/views/cube/view.component.scss +12 -0
- package/src/lib/views/cube/view.component.ts +102 -0
- package/src/lib/views/document-view-ref.ts +34 -0
- package/src/lib/views/timeline/timeline.component.exp.ts +333 -0
- package/src/lib/views/timeline/timeline.component.html +6 -0
- package/src/lib/views/timeline/timeline.component.scss +6 -0
- package/src/lib/views/view-item.component.ts +67 -0
- package/src/lib/views/views.component.html +4 -0
- package/src/lib/views/views.component.scss +35 -0
- package/src/lib/views/views.component.ts +23 -0
- package/src/lib/views/views.mobile.component.ts +21 -0
- package/src/lib/views/views.pane.component.ts +31 -0
- package/src/polyfills.ts +81 -0
- package/src/public-api.ts +137 -0
- package/src/styles/_app.scss +315 -0
- package/src/styles/_emoji-mart.scss +504 -0
- package/src/styles/_syncfusion-base-definitions.scss +64 -0
- package/src/styles/_syncfusion-dark-definitions.scss +23 -0
- package/src/styles/_syncfusion-icons.scss +57 -0
- package/src/styles/_syncfusion-light-definitions.scss +23 -0
- package/src/styles/_syncfusion.scss +22 -0
- package/src/styles/brown.css +25532 -0
- package/src/styles/brown.css.map +1 -0
- package/src/styles/brown.min.css +83 -0
- package/src/styles/brown.scss +14 -0
- package/src/styles/build.ps1 +21 -0
- package/src/styles/dark.css +25582 -0
- package/src/styles/dark.css.map +1 -0
- package/src/styles/dark.min.css +78 -0
- package/src/styles/dark.scss +26 -0
- package/src/styles/default.css +30068 -0
- package/src/styles/default.css.map +1 -0
- package/src/styles/default.min.css +90 -0
- package/src/styles/default.scss +30 -0
- package/src/styles/diagram-icons.eot +0 -0
- package/src/styles/diagram-icons.ttf +0 -0
- package/src/styles/green.css +25532 -0
- package/src/styles/green.css.map +1 -0
- package/src/styles/green.min.css +83 -0
- package/src/styles/green.scss +14 -0
- package/src/styles/indigo.css +25532 -0
- package/src/styles/indigo.css.map +1 -0
- package/src/styles/indigo.min.css +83 -0
- package/src/styles/indigo.scss +15 -0
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +25 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +18 -0
- package/bizdoc-core.d.ts +0 -5
- package/bundles/bizdoc-core.umd.js +0 -29844
- package/bundles/bizdoc-core.umd.js.map +0 -1
- package/esm2015/bizdoc-core.js +0 -5
- package/esm2015/lib/admin/admin-dismiss.service.js +0 -22
- package/esm2015/lib/admin/admin-menu.component.js +0 -30
- package/esm2015/lib/admin/core/ace.input.js +0 -147
- package/esm2015/lib/admin/core/color-picker.input.js +0 -214
- package/esm2015/lib/admin/core/search.input.js +0 -43
- package/esm2015/lib/admin/diff/configuration-diff.component.js +0 -559
- package/esm2015/lib/admin/document-trace/Timeline.js +0 -2
- package/esm2015/lib/admin/document-trace/document-trace.component.js +0 -464
- package/esm2015/lib/admin/document-trace/reassign.dialog.js +0 -42
- package/esm2015/lib/admin/document-trace/trace-element.component.js +0 -113
- package/esm2015/lib/admin/form/form.resolve.service.js +0 -17
- package/esm2015/lib/admin/form/form.service.js +0 -26
- package/esm2015/lib/admin/form/workflow/node-ref.js +0 -8
- package/esm2015/lib/admin/form/workflow/node.component.js +0 -130
- package/esm2015/lib/admin/form/workflow/role-node.component.js +0 -91
- package/esm2015/lib/admin/form/workflow/workflow.component.js +0 -403
- package/esm2015/lib/admin/indices/manage-cube-index.component.js +0 -164
- package/esm2015/lib/admin/patterns/patterns.component.js +0 -181
- package/esm2015/lib/admin/permissions/permissions.component.js +0 -100
- package/esm2015/lib/admin/positions/positions-popup.component.js +0 -77
- package/esm2015/lib/admin/positions/positions.component.js +0 -285
- package/esm2015/lib/admin/profiler/profiler.component.js +0 -263
- package/esm2015/lib/admin/utility-ref.js +0 -38
- package/esm2015/lib/admin/utility-wrapper.component.js +0 -51
- package/esm2015/lib/admin/utility.pane.component.js +0 -51
- package/esm2015/lib/app.component.js +0 -89
- package/esm2015/lib/bizdoc.module.js +0 -109
- package/esm2015/lib/browse/browse-items.component.js +0 -448
- package/esm2015/lib/browse/browse.mobile.component.js +0 -103
- package/esm2015/lib/browse/browse.pane.component.js +0 -148
- package/esm2015/lib/browse/expanded-item/expanded-item.component.js +0 -281
- package/esm2015/lib/browse/filter/filter.component.js +0 -152
- package/esm2015/lib/browse/folders-menu.component.js +0 -56
- package/esm2015/lib/chart.module.js +0 -35
- package/esm2015/lib/chat/chat-info.js +0 -67
- package/esm2015/lib/chat/chat.mobile.component.js +0 -30
- package/esm2015/lib/chat/chat.service.js +0 -122
- package/esm2015/lib/chat/contacts.component.js +0 -106
- package/esm2015/lib/chat/contacts.pane.component.js +0 -29
- package/esm2015/lib/chat/conversation.component.js +0 -195
- package/esm2015/lib/chat/conversation.pane.component.js +0 -43
- package/esm2015/lib/circular-gauge.module.js +0 -17
- package/esm2015/lib/compose/action/action-picker.component.js +0 -115
- package/esm2015/lib/compose/action/action-ref.js +0 -19
- package/esm2015/lib/compose/action/action.dialog.js +0 -64
- package/esm2015/lib/compose/action/action.pane.dialog.js +0 -64
- package/esm2015/lib/compose/action/assign-action.component.js +0 -58
- package/esm2015/lib/compose/action/return-action.component.js +0 -48
- package/esm2015/lib/compose/attachments/attachments.component.js +0 -125
- package/esm2015/lib/compose/attachments/preview/attachment-preview.component.js +0 -164
- package/esm2015/lib/compose/attachments/progress-button.directive.js +0 -25
- package/esm2015/lib/compose/can-deactivate-changes.service.js +0 -27
- package/esm2015/lib/compose/comments/Comments.pane.component.js +0 -49
- package/esm2015/lib/compose/comments/comment.component.js +0 -189
- package/esm2015/lib/compose/comments/comments.component.js +0 -232
- package/esm2015/lib/compose/comments/edit-comment.component.js +0 -35
- package/esm2015/lib/compose/comments/edits.component.js +0 -34
- package/esm2015/lib/compose/comments/quick-comment.component.exp.js +0 -67
- package/esm2015/lib/compose/comments/votes.component.js +0 -45
- package/esm2015/lib/compose/compose-resolve.service.js +0 -55
- package/esm2015/lib/compose/compose.mobile.component.js +0 -100
- package/esm2015/lib/compose/compose.pane.component.js +0 -201
- package/esm2015/lib/compose/copy/copy.dialog.js +0 -49
- package/esm2015/lib/compose/dismiss.service.js +0 -25
- package/esm2015/lib/compose/document-resolver.service.js +0 -17
- package/esm2015/lib/compose/document.component.js +0 -50
- package/esm2015/lib/compose/document.mobile.component.js +0 -22
- package/esm2015/lib/compose/document.pane.component.js +0 -26
- package/esm2015/lib/compose/events/events.component.js +0 -33
- package/esm2015/lib/compose/form-ref.js +0 -47
- package/esm2015/lib/compose/form-selector/form-selector.sheet.js +0 -85
- package/esm2015/lib/compose/form.component.js +0 -412
- package/esm2015/lib/compose/new-menu.component.js +0 -109
- package/esm2015/lib/compose/privilage.directive.js +0 -64
- package/esm2015/lib/compose/recipient-resolver.service.js +0 -18
- package/esm2015/lib/compose/save-changes.dialog.js +0 -18
- package/esm2015/lib/compose/state.component.js +0 -37
- package/esm2015/lib/compose/tag/tags.component.js +0 -94
- package/esm2015/lib/compose/trace/flow.component.js +0 -604
- package/esm2015/lib/compose/trace/people.component.js +0 -34
- package/esm2015/lib/compose/trace/trace.base.js +0 -70
- package/esm2015/lib/compose/trace/trace.component.js +0 -259
- package/esm2015/lib/compose/trace/trace.pane.component.js +0 -52
- package/esm2015/lib/compose/version-compare/version-compare.component.js +0 -55
- package/esm2015/lib/compose/version-compare/version-compare.directive.js +0 -344
- package/esm2015/lib/compose/version-compare/version.pane.component.js +0 -56
- package/esm2015/lib/core/NgComponentOutlet.js +0 -38
- package/esm2015/lib/core/account.service.js +0 -34
- package/esm2015/lib/core/animated-icon/animated-icon.directive.js +0 -17
- package/esm2015/lib/core/animations.js +0 -150
- package/esm2015/lib/core/authentication.js +0 -3
- package/esm2015/lib/core/avatar/avatar.component.js +0 -106
- package/esm2015/lib/core/base.js +0 -2
- package/esm2015/lib/core/colors.js +0 -322
- package/esm2015/lib/core/component-factory-resolver.js +0 -57
- package/esm2015/lib/core/configuration.js +0 -16
- package/esm2015/lib/core/controls/address.input.js +0 -189
- package/esm2015/lib/core/controls/auto-complete.input.js +0 -256
- package/esm2015/lib/core/controls/combination-picker-body.js +0 -172
- package/esm2015/lib/core/controls/combination-picker.js +0 -283
- package/esm2015/lib/core/controls/combination-pool.js +0 -113
- package/esm2015/lib/core/controls/select.input.js +0 -235
- package/esm2015/lib/core/controls/time-picker.js +0 -201
- package/esm2015/lib/core/controls/timespan.input.js +0 -207
- package/esm2015/lib/core/datasource.service.js +0 -63
- package/esm2015/lib/core/decorators.js +0 -46
- package/esm2015/lib/core/firebase.service.js +0 -53
- package/esm2015/lib/core/functions.js +0 -190
- package/esm2015/lib/core/guide/guide.component.js +0 -222
- package/esm2015/lib/core/guide/guide.service.js +0 -107
- package/esm2015/lib/core/http.interceptor.js +0 -79
- package/esm2015/lib/core/hub.service.js +0 -110
- package/esm2015/lib/core/identity/identity.component.js +0 -70
- package/esm2015/lib/core/info/attachment-info.service.js +0 -53
- package/esm2015/lib/core/info/document-info.service.js +0 -21
- package/esm2015/lib/core/info/location-info.component.js +0 -66
- package/esm2015/lib/core/info/map-info.js +0 -40
- package/esm2015/lib/core/layout/autocomplete.field.js +0 -60
- package/esm2015/lib/core/layout/checkbox.field.js +0 -41
- package/esm2015/lib/core/layout/date-range.field.js +0 -53
- package/esm2015/lib/core/layout/date.field.js +0 -52
- package/esm2015/lib/core/layout/expression.field.js +0 -51
- package/esm2015/lib/core/layout/html.field.js +0 -48
- package/esm2015/lib/core/layout/input.base.js +0 -11
- package/esm2015/lib/core/layout/input.field.js +0 -64
- package/esm2015/lib/core/layout/layout.component.js +0 -186
- package/esm2015/lib/core/layout/numeric.field.js +0 -47
- package/esm2015/lib/core/layout/select.field.js +0 -82
- package/esm2015/lib/core/layout/switch.field.js +0 -41
- package/esm2015/lib/core/layout/textarea.field.js +0 -42
- package/esm2015/lib/core/layout/timespan.field.js +0 -50
- package/esm2015/lib/core/lottie-animation.js +0 -46
- package/esm2015/lib/core/mailbox.service.js +0 -265
- package/esm2015/lib/core/models.js +0 -38
- package/esm2015/lib/core/none.component.js +0 -45
- package/esm2015/lib/core/pipes/action.pipe.js +0 -25
- package/esm2015/lib/core/pipes/daterange.pipe.js +0 -62
- package/esm2015/lib/core/pipes/duration.pipe.js +0 -47
- package/esm2015/lib/core/pipes/form.pipe.js +0 -25
- package/esm2015/lib/core/pipes/join.pipe.js +0 -18
- package/esm2015/lib/core/pipes/role.pipe.js +0 -25
- package/esm2015/lib/core/pipes/sanitize-html.pipe.js +0 -18
- package/esm2015/lib/core/pipes/sort.pipe.js +0 -48
- package/esm2015/lib/core/pipes/state.pipe.js +0 -25
- package/esm2015/lib/core/pipes/translate.pipe.js +0 -23
- package/esm2015/lib/core/pipes/type-value.pipe.js +0 -42
- package/esm2015/lib/core/pipes/user-name.pipe.js +0 -21
- package/esm2015/lib/core/popup/popup-ref.js +0 -20
- package/esm2015/lib/core/popup/popup.component.js +0 -40
- package/esm2015/lib/core/popup/popup.service.js +0 -155
- package/esm2015/lib/core/popup/tooltip.directive.js +0 -71
- package/esm2015/lib/core/prompt/ask/ask.dialog.js +0 -32
- package/esm2015/lib/core/prompt/mask/mask.component.js +0 -25
- package/esm2015/lib/core/prompt.service.js +0 -84
- package/esm2015/lib/core/router.js +0 -35
- package/esm2015/lib/core/session.service.js +0 -233
- package/esm2015/lib/core/slots/pane-ref.js +0 -117
- package/esm2015/lib/core/slots/router.directive.js +0 -70
- package/esm2015/lib/core/slots/router.service.js +0 -42
- package/esm2015/lib/core/slots/slots.component.js +0 -1047
- package/esm2015/lib/core/tagging/documents.component.js +0 -28
- package/esm2015/lib/core/tagging/edit-input.component.js +0 -236
- package/esm2015/lib/core/tagging/emoji.component.js +0 -35
- package/esm2015/lib/core/tagging/tagging-item.directive.js +0 -39
- package/esm2015/lib/core/tagging/tagging.component-base.js +0 -29
- package/esm2015/lib/core/tagging/tagging.directive.js +0 -136
- package/esm2015/lib/core/tagging/tagging.pipe.js +0 -72
- package/esm2015/lib/core/tagging/users.component.js +0 -35
- package/esm2015/lib/core/translate.service.js +0 -1214
- package/esm2015/lib/core/window-title.service.js +0 -53
- package/esm2015/lib/cube/accum/accum.component.js +0 -190
- package/esm2015/lib/cube/chart/chart.component.js +0 -261
- package/esm2015/lib/cube/cube-info.service.js +0 -100
- package/esm2015/lib/cube/cube-menu.component.js +0 -31
- package/esm2015/lib/cube/cube-view.component.js +0 -173
- package/esm2015/lib/cube/cube.service.js +0 -343
- package/esm2015/lib/cube/declarations.js +0 -2
- package/esm2015/lib/cube/explore/document-item.component.js +0 -38
- package/esm2015/lib/cube/explore/explore-item.component.js +0 -31
- package/esm2015/lib/cube/explore/explore-items.component.js +0 -150
- package/esm2015/lib/cube/explore/explore.pane.component.js +0 -75
- package/esm2015/lib/cube/explore/item-resolver.service.js +0 -32
- package/esm2015/lib/cube/explore/item.pane.component.js +0 -26
- package/esm2015/lib/cube/filter/filter-tags.component.exp.js +0 -68
- package/esm2015/lib/cube/filter/filter.component.js +0 -122
- package/esm2015/lib/cube/grid/grid.component.js +0 -219
- package/esm2015/lib/cube/grid/spreadsheet.component.js +0 -255
- package/esm2015/lib/cube/matrix/matrix.base.js +0 -130
- package/esm2015/lib/cube/matrix/matrix.component.js +0 -69
- package/esm2015/lib/cube/matrix/matrix.mobile.component.js +0 -63
- package/esm2015/lib/cube/matrix/matrix.pane.component.js +0 -71
- package/esm2015/lib/cube/matrix/table.component.js +0 -310
- package/esm2015/lib/cube/pivot/pivot.component.js +0 -407
- package/esm2015/lib/cube/view-base.js +0 -76
- package/esm2015/lib/cube/view.mobile.component.js +0 -127
- package/esm2015/lib/cube/view.pane.component.js +0 -86
- package/esm2015/lib/dashboard/actions/actions.widget.js +0 -126
- package/esm2015/lib/dashboard/cube/accum-cube.widget.js +0 -146
- package/esm2015/lib/dashboard/cube/cube-analysis.base.js +0 -90
- package/esm2015/lib/dashboard/cube/cube-analysis.widget.js +0 -51
- package/esm2015/lib/dashboard/cube/cube-chart.widget.js +0 -144
- package/esm2015/lib/dashboard/cube/documents.widget.js +0 -68
- package/esm2015/lib/dashboard/cube/filter/filter.component.js +0 -57
- package/esm2015/lib/dashboard/dashboard.component.js +0 -52
- package/esm2015/lib/dashboard/dashboard.pane.component.js +0 -24
- package/esm2015/lib/dashboard/recents/recents.widget.js +0 -86
- package/esm2015/lib/dashboard/score/activity.widget.js +0 -165
- package/esm2015/lib/dashboard/score/compare-departments.widget.js +0 -198
- package/esm2015/lib/dashboard/score/peers-performance.widget.js +0 -253
- package/esm2015/lib/dashboard/score/pending-results.widget.js +0 -69
- package/esm2015/lib/dashboard/score/personal-score.widget.js +0 -219
- package/esm2015/lib/dashboard/widget-item.component.js +0 -89
- package/esm2015/lib/dashboard/widget-ref.js +0 -18
- package/esm2015/lib/desktop.module.js +0 -142
- package/esm2015/lib/diagram.module.js +0 -34
- package/esm2015/lib/grid.module.js +0 -23
- package/esm2015/lib/home/about/about.dialog.js +0 -29
- package/esm2015/lib/home/home-base.component.js +0 -86
- package/esm2015/lib/home/home.desktop.component.js +0 -201
- package/esm2015/lib/home/home.mobile.component.js +0 -120
- package/esm2015/lib/home/notifications/notifications.component.js +0 -70
- package/esm2015/lib/home/options/options.component.js +0 -98
- package/esm2015/lib/home/outofoffice/outofoffice.component.js +0 -42
- package/esm2015/lib/home/search.service.js +0 -63
- package/esm2015/lib/home/sign/sign.component.js +0 -56
- package/esm2015/lib/home/tools.component.js +0 -87
- package/esm2015/lib/impersonate/impersonate.component.js +0 -69
- package/esm2015/lib/linear-gauge.module.js +0 -17
- package/esm2015/lib/material.module.js +0 -182
- package/esm2015/lib/mobile.module.js +0 -63
- package/esm2015/lib/notifications/commented.notification.js +0 -53
- package/esm2015/lib/notifications/cube-anomaly.notification.js +0 -58
- package/esm2015/lib/notifications/escalated.notification.js +0 -33
- package/esm2015/lib/notifications/filter.component.js +0 -28
- package/esm2015/lib/notifications/liked.notification.js +0 -50
- package/esm2015/lib/notifications/long-running-task.notification.js +0 -31
- package/esm2015/lib/notifications/notification-base.js +0 -40
- package/esm2015/lib/notifications/notifications-table.component.js +0 -110
- package/esm2015/lib/notifications/notifications.component-base.js +0 -47
- package/esm2015/lib/notifications/notifications.mobile.component.js +0 -20
- package/esm2015/lib/notifications/notifications.pane.component.js +0 -23
- package/esm2015/lib/notifications/notifications.service.js +0 -71
- package/esm2015/lib/notifications/nudge.notification.js +0 -31
- package/esm2015/lib/notifications/state-changed.notification.js +0 -30
- package/esm2015/lib/notifications/tagged.notification.js +0 -43
- package/esm2015/lib/notifications/text.notification.js +0 -20
- package/esm2015/lib/notifications/upcoming-event.notification.js +0 -36
- package/esm2015/lib/options/options.component.js +0 -231
- package/esm2015/lib/options/options.service.js +0 -38
- package/esm2015/lib/pivot.module.js +0 -24
- package/esm2015/lib/reports/arguments-component.js +0 -83
- package/esm2015/lib/reports/cube/grid-documents.component.js +0 -82
- package/esm2015/lib/reports/cube/table-documents.component.js +0 -68
- package/esm2015/lib/reports/cube/usage-args.component.js +0 -65
- package/esm2015/lib/reports/cube/usage-base.js +0 -82
- package/esm2015/lib/reports/cube/usage-chart.component.js +0 -294
- package/esm2015/lib/reports/cube/usage-pivot.component.js +0 -243
- package/esm2015/lib/reports/report-ref.js +0 -31
- package/esm2015/lib/reports/report-viewer.component.js +0 -132
- package/esm2015/lib/reports/report.mobile.component.js +0 -124
- package/esm2015/lib/reports/report.pane.component.js +0 -93
- package/esm2015/lib/reports/reports-menu.component.js +0 -30
- package/esm2015/lib/reports/substitution/substitution.component.js +0 -43
- package/esm2015/lib/reports/table/table-view.component.js +0 -46
- package/esm2015/lib/reports/tasks/tasks.component.js +0 -97
- package/esm2015/lib/routes.desktop.js +0 -192
- package/esm2015/lib/routes.mobile.js +0 -69
- package/esm2015/lib/schedule.module.js +0 -21
- package/esm2015/lib/scheduler/schedule.component.js +0 -173
- package/esm2015/lib/scheduler/scheduler.mobile.component.js +0 -37
- package/esm2015/lib/scheduler/scheduler.pane.component.js +0 -53
- package/esm2015/lib/shared.module.js +0 -497
- package/esm2015/lib/spreadsheet.module.js +0 -28
- package/esm2015/lib/system.module.js +0 -114
- package/esm2015/lib/views/cube/chart.component.js +0 -76
- package/esm2015/lib/views/cube/cube-base.js +0 -98
- package/esm2015/lib/views/cube/explore.component.js +0 -87
- package/esm2015/lib/views/cube/matrix.component.js +0 -107
- package/esm2015/lib/views/cube/parallel.component.js +0 -201
- package/esm2015/lib/views/cube/pivot.component.js +0 -58
- package/esm2015/lib/views/cube/sum.component.js +0 -435
- package/esm2015/lib/views/cube/view.component.js +0 -103
- package/esm2015/lib/views/document-view-ref.js +0 -26
- package/esm2015/lib/views/timeline/timeline.component.exp.js +0 -319
- package/esm2015/lib/views/view-item.component.js +0 -70
- package/esm2015/lib/views/views.component.js +0 -29
- package/esm2015/lib/views/views.mobile.component.js +0 -24
- package/esm2015/lib/views/views.pane.component.js +0 -31
- package/esm2015/public-api.js +0 -132
- package/fesm2015/bizdoc-core.js +0 -27488
- package/fesm2015/bizdoc-core.js.map +0 -1
- package/lib/admin/admin-dismiss.service.d.ts +0 -14
- package/lib/admin/admin-menu.component.d.ts +0 -12
- package/lib/admin/core/ace.input.d.ts +0 -52
- package/lib/admin/core/color-picker.input.d.ts +0 -64
- package/lib/admin/core/search.input.d.ts +0 -13
- package/lib/admin/diff/configuration-diff.component.d.ts +0 -115
- package/lib/admin/document-trace/Timeline.d.ts +0 -37
- package/lib/admin/document-trace/document-trace.component.d.ts +0 -83
- package/lib/admin/document-trace/reassign.dialog.d.ts +0 -22
- package/lib/admin/document-trace/trace-element.component.d.ts +0 -38
- package/lib/admin/form/form.resolve.service.d.ts +0 -12
- package/lib/admin/form/form.service.d.ts +0 -13
- package/lib/admin/form/workflow/node-ref.d.ts +0 -7
- package/lib/admin/form/workflow/node.component.d.ts +0 -37
- package/lib/admin/form/workflow/role-node.component.d.ts +0 -22
- package/lib/admin/form/workflow/workflow.component.d.ts +0 -73
- package/lib/admin/indices/manage-cube-index.component.d.ts +0 -54
- package/lib/admin/patterns/patterns.component.d.ts +0 -79
- package/lib/admin/permissions/permissions.component.d.ts +0 -45
- package/lib/admin/positions/positions-popup.component.d.ts +0 -39
- package/lib/admin/positions/positions.component.d.ts +0 -105
- package/lib/admin/profiler/profiler.component.d.ts +0 -108
- package/lib/admin/utility-ref.d.ts +0 -19
- package/lib/admin/utility-wrapper.component.d.ts +0 -28
- package/lib/admin/utility.pane.component.d.ts +0 -24
- package/lib/app.component.d.ts +0 -22
- package/lib/bizdoc.module.d.ts +0 -19
- package/lib/browse/browse-items.component.d.ts +0 -102
- package/lib/browse/browse.mobile.component.d.ts +0 -38
- package/lib/browse/browse.pane.component.d.ts +0 -47
- package/lib/browse/expanded-item/expanded-item.component.d.ts +0 -66
- package/lib/browse/filter/filter.component.d.ts +0 -69
- package/lib/browse/folders-menu.component.d.ts +0 -22
- package/lib/chart.module.d.ts +0 -7
- package/lib/chat/chat-info.d.ts +0 -36
- package/lib/chat/chat.mobile.component.d.ts +0 -10
- package/lib/chat/chat.service.d.ts +0 -38
- package/lib/chat/contacts.component.d.ts +0 -38
- package/lib/chat/contacts.pane.component.d.ts +0 -12
- package/lib/chat/conversation.component.d.ts +0 -56
- package/lib/chat/conversation.pane.component.d.ts +0 -15
- package/lib/circular-gauge.module.d.ts +0 -7
- package/lib/compose/action/action-picker.component.d.ts +0 -25
- package/lib/compose/action/action-ref.d.ts +0 -10
- package/lib/compose/action/action.dialog.d.ts +0 -29
- package/lib/compose/action/action.pane.dialog.d.ts +0 -26
- package/lib/compose/action/assign-action.component.d.ts +0 -22
- package/lib/compose/action/return-action.component.d.ts +0 -15
- package/lib/compose/attachments/attachments.component.d.ts +0 -35
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts +0 -48
- package/lib/compose/attachments/progress-button.directive.d.ts +0 -12
- package/lib/compose/can-deactivate-changes.service.d.ts +0 -12
- package/lib/compose/comments/Comments.pane.component.d.ts +0 -18
- package/lib/compose/comments/comment.component.d.ts +0 -51
- package/lib/compose/comments/comments.component.d.ts +0 -66
- package/lib/compose/comments/edit-comment.component.d.ts +0 -25
- package/lib/compose/comments/edits.component.d.ts +0 -26
- package/lib/compose/comments/quick-comment.component.exp.d.ts +0 -28
- package/lib/compose/comments/votes.component.d.ts +0 -22
- package/lib/compose/compose-resolve.service.d.ts +0 -27
- package/lib/compose/compose.mobile.component.d.ts +0 -40
- package/lib/compose/compose.pane.component.d.ts +0 -54
- package/lib/compose/copy/copy.dialog.d.ts +0 -23
- package/lib/compose/dismiss.service.d.ts +0 -12
- package/lib/compose/document-resolver.service.d.ts +0 -12
- package/lib/compose/document.component.d.ts +0 -20
- package/lib/compose/document.mobile.component.d.ts +0 -10
- package/lib/compose/document.pane.component.d.ts +0 -12
- package/lib/compose/events/events.component.d.ts +0 -13
- package/lib/compose/form-ref.d.ts +0 -32
- package/lib/compose/form-selector/form-selector.sheet.d.ts +0 -28
- package/lib/compose/form.component.d.ts +0 -92
- package/lib/compose/new-menu.component.d.ts +0 -36
- package/lib/compose/privilage.directive.d.ts +0 -26
- package/lib/compose/recipient-resolver.service.d.ts +0 -12
- package/lib/compose/save-changes.dialog.d.ts +0 -7
- package/lib/compose/state.component.d.ts +0 -12
- package/lib/compose/tag/tags.component.d.ts +0 -36
- package/lib/compose/trace/flow.component.d.ts +0 -64
- package/lib/compose/trace/people.component.d.ts +0 -18
- package/lib/compose/trace/trace.base.d.ts +0 -25
- package/lib/compose/trace/trace.component.d.ts +0 -73
- package/lib/compose/trace/trace.pane.component.d.ts +0 -20
- package/lib/compose/version-compare/version-compare.component.d.ts +0 -26
- package/lib/compose/version-compare/version-compare.directive.d.ts +0 -89
- package/lib/compose/version-compare/version.pane.component.d.ts +0 -21
- package/lib/core/NgComponentOutlet.d.ts +0 -15
- package/lib/core/account.service.d.ts +0 -18
- package/lib/core/animated-icon/animated-icon.directive.d.ts +0 -7
- package/lib/core/animations.d.ts +0 -25
- package/lib/core/authentication.d.ts +0 -6
- package/lib/core/avatar/avatar.component.d.ts +0 -34
- package/lib/core/base.d.ts +0 -27
- package/lib/core/colors.d.ts +0 -6
- package/lib/core/component-factory-resolver.d.ts +0 -12
- package/lib/core/configuration.d.ts +0 -90
- package/lib/core/controls/address.input.d.ts +0 -62
- package/lib/core/controls/auto-complete.input.d.ts +0 -86
- package/lib/core/controls/combination-picker-body.d.ts +0 -114
- package/lib/core/controls/combination-picker.d.ts +0 -82
- package/lib/core/controls/combination-pool.d.ts +0 -42
- package/lib/core/controls/select.input.d.ts +0 -82
- package/lib/core/controls/time-picker.d.ts +0 -52
- package/lib/core/controls/timespan.input.d.ts +0 -55
- package/lib/core/datasource.service.d.ts +0 -43
- package/lib/core/decorators.d.ts +0 -17
- package/lib/core/firebase.service.d.ts +0 -17
- package/lib/core/functions.d.ts +0 -42
- package/lib/core/guide/guide.component.d.ts +0 -31
- package/lib/core/guide/guide.service.d.ts +0 -32
- package/lib/core/http.interceptor.d.ts +0 -21
- package/lib/core/hub.service.d.ts +0 -128
- package/lib/core/identity/identity.component.d.ts +0 -29
- package/lib/core/info/attachment-info.service.d.ts +0 -18
- package/lib/core/info/document-info.service.d.ts +0 -13
- package/lib/core/info/location-info.component.d.ts +0 -28
- package/lib/core/info/map-info.d.ts +0 -15
- package/lib/core/layout/autocomplete.field.d.ts +0 -21
- package/lib/core/layout/checkbox.field.d.ts +0 -11
- package/lib/core/layout/date-range.field.d.ts +0 -13
- package/lib/core/layout/date.field.d.ts +0 -11
- package/lib/core/layout/expression.field.d.ts +0 -12
- package/lib/core/layout/html.field.d.ts +0 -12
- package/lib/core/layout/input.base.d.ts +0 -10
- package/lib/core/layout/input.field.d.ts +0 -14
- package/lib/core/layout/layout.component.d.ts +0 -34
- package/lib/core/layout/numeric.field.d.ts +0 -11
- package/lib/core/layout/select.field.d.ts +0 -22
- package/lib/core/layout/switch.field.d.ts +0 -11
- package/lib/core/layout/textarea.field.d.ts +0 -11
- package/lib/core/layout/timespan.field.d.ts +0 -11
- package/lib/core/lottie-animation.d.ts +0 -14
- package/lib/core/mailbox.service.d.ts +0 -121
- package/lib/core/models.d.ts +0 -635
- package/lib/core/none.component.d.ts +0 -9
- package/lib/core/pipes/action.pipe.d.ts +0 -10
- package/lib/core/pipes/daterange.pipe.d.ts +0 -15
- package/lib/core/pipes/duration.pipe.d.ts +0 -11
- package/lib/core/pipes/form.pipe.d.ts +0 -10
- package/lib/core/pipes/join.pipe.d.ts +0 -10
- package/lib/core/pipes/role.pipe.d.ts +0 -10
- package/lib/core/pipes/sanitize-html.pipe.d.ts +0 -10
- package/lib/core/pipes/sort.pipe.d.ts +0 -12
- package/lib/core/pipes/state.pipe.d.ts +0 -10
- package/lib/core/pipes/translate.pipe.d.ts +0 -10
- package/lib/core/pipes/type-value.pipe.d.ts +0 -15
- package/lib/core/pipes/user-name.pipe.d.ts +0 -11
- package/lib/core/popup/popup-ref.d.ts +0 -14
- package/lib/core/popup/popup.component.d.ts +0 -22
- package/lib/core/popup/popup.service.d.ts +0 -26
- package/lib/core/popup/tooltip.directive.d.ts +0 -27
- package/lib/core/prompt/ask/ask.dialog.d.ts +0 -22
- package/lib/core/prompt/mask/mask.component.d.ts +0 -10
- package/lib/core/prompt.service.d.ts +0 -36
- package/lib/core/router.d.ts +0 -20
- package/lib/core/session.service.d.ts +0 -83
- package/lib/core/slots/pane-ref.d.ts +0 -109
- package/lib/core/slots/router.directive.d.ts +0 -25
- package/lib/core/slots/router.service.d.ts +0 -39
- package/lib/core/slots/slots.component.d.ts +0 -182
- package/lib/core/tagging/documents.component.d.ts +0 -11
- package/lib/core/tagging/edit-input.component.d.ts +0 -65
- package/lib/core/tagging/emoji.component.d.ts +0 -18
- package/lib/core/tagging/tagging-item.directive.d.ts +0 -15
- package/lib/core/tagging/tagging.component-base.d.ts +0 -19
- package/lib/core/tagging/tagging.directive.d.ts +0 -34
- package/lib/core/tagging/tagging.pipe.d.ts +0 -24
- package/lib/core/tagging/users.component.d.ts +0 -15
- package/lib/core/translate.service.d.ts +0 -82
- package/lib/core/window-title.service.d.ts +0 -21
- package/lib/cube/accum/accum.component.d.ts +0 -57
- package/lib/cube/chart/chart.component.d.ts +0 -68
- package/lib/cube/cube-info.service.d.ts +0 -71
- package/lib/cube/cube-menu.component.d.ts +0 -12
- package/lib/cube/cube-view.component.d.ts +0 -30
- package/lib/cube/cube.service.d.ts +0 -244
- package/lib/cube/declarations.d.ts +0 -22
- package/lib/cube/explore/document-item.component.d.ts +0 -16
- package/lib/cube/explore/explore-item.component.d.ts +0 -14
- package/lib/cube/explore/explore-items.component.d.ts +0 -51
- package/lib/cube/explore/explore.pane.component.d.ts +0 -28
- package/lib/cube/explore/item-resolver.service.d.ts +0 -20
- package/lib/cube/explore/item.pane.component.d.ts +0 -13
- package/lib/cube/filter/filter-tags.component.exp.d.ts +0 -27
- package/lib/cube/filter/filter.component.d.ts +0 -43
- package/lib/cube/grid/grid.component.d.ts +0 -58
- package/lib/cube/grid/spreadsheet.component.d.ts +0 -53
- package/lib/cube/matrix/matrix.base.d.ts +0 -75
- package/lib/cube/matrix/matrix.component.d.ts +0 -23
- package/lib/cube/matrix/matrix.mobile.component.d.ts +0 -21
- package/lib/cube/matrix/matrix.pane.component.d.ts +0 -20
- package/lib/cube/matrix/table.component.d.ts +0 -84
- package/lib/cube/pivot/pivot.component.d.ts +0 -98
- package/lib/cube/view-base.d.ts +0 -39
- package/lib/cube/view.mobile.component.d.ts +0 -45
- package/lib/cube/view.pane.component.d.ts +0 -27
- package/lib/dashboard/actions/actions.widget.d.ts +0 -39
- package/lib/dashboard/cube/accum-cube.widget.d.ts +0 -33
- package/lib/dashboard/cube/cube-analysis.base.d.ts +0 -62
- package/lib/dashboard/cube/cube-analysis.widget.d.ts +0 -17
- package/lib/dashboard/cube/cube-chart.widget.d.ts +0 -32
- package/lib/dashboard/cube/documents.widget.d.ts +0 -30
- package/lib/dashboard/cube/filter/filter.component.d.ts +0 -22
- package/lib/dashboard/dashboard.component.d.ts +0 -20
- package/lib/dashboard/dashboard.pane.component.d.ts +0 -8
- package/lib/dashboard/recents/recents.widget.d.ts +0 -34
- package/lib/dashboard/score/activity.widget.d.ts +0 -50
- package/lib/dashboard/score/compare-departments.widget.d.ts +0 -51
- package/lib/dashboard/score/peers-performance.widget.d.ts +0 -65
- package/lib/dashboard/score/pending-results.widget.d.ts +0 -28
- package/lib/dashboard/score/personal-score.widget.d.ts +0 -57
- package/lib/dashboard/widget-item.component.d.ts +0 -31
- package/lib/dashboard/widget-ref.d.ts +0 -11
- package/lib/desktop.module.d.ts +0 -43
- package/lib/diagram.module.d.ts +0 -8
- package/lib/grid.module.d.ts +0 -7
- package/lib/home/about/about.dialog.d.ts +0 -13
- package/lib/home/home-base.component.d.ts +0 -32
- package/lib/home/home.desktop.component.d.ts +0 -55
- package/lib/home/home.mobile.component.d.ts +0 -38
- package/lib/home/notifications/notifications.component.d.ts +0 -28
- package/lib/home/options/options.component.d.ts +0 -44
- package/lib/home/outofoffice/outofoffice.component.d.ts +0 -19
- package/lib/home/search.service.d.ts +0 -21
- package/lib/home/sign/sign.component.d.ts +0 -17
- package/lib/home/tools.component.d.ts +0 -36
- package/lib/impersonate/impersonate.component.d.ts +0 -27
- package/lib/linear-gauge.module.d.ts +0 -7
- package/lib/material.module.d.ts +0 -45
- package/lib/mobile.module.d.ts +0 -26
- package/lib/notifications/commented.notification.d.ts +0 -26
- package/lib/notifications/cube-anomaly.notification.d.ts +0 -28
- package/lib/notifications/escalated.notification.d.ts +0 -26
- package/lib/notifications/filter.component.d.ts +0 -9
- package/lib/notifications/liked.notification.d.ts +0 -25
- package/lib/notifications/long-running-task.notification.d.ts +0 -21
- package/lib/notifications/notification-base.d.ts +0 -20
- package/lib/notifications/notifications-table.component.d.ts +0 -32
- package/lib/notifications/notifications.component-base.d.ts +0 -8
- package/lib/notifications/notifications.mobile.component.d.ts +0 -8
- package/lib/notifications/notifications.pane.component.d.ts +0 -8
- package/lib/notifications/notifications.service.d.ts +0 -24
- package/lib/notifications/nudge.notification.d.ts +0 -22
- package/lib/notifications/state-changed.notification.d.ts +0 -22
- package/lib/notifications/tagged.notification.d.ts +0 -26
- package/lib/notifications/text.notification.d.ts +0 -13
- package/lib/notifications/upcoming-event.notification.d.ts +0 -19
- package/lib/options/options.component.d.ts +0 -67
- package/lib/options/options.service.d.ts +0 -14
- package/lib/pivot.module.d.ts +0 -7
- package/lib/reports/arguments-component.d.ts +0 -27
- package/lib/reports/cube/grid-documents.component.d.ts +0 -45
- package/lib/reports/cube/table-documents.component.d.ts +0 -44
- package/lib/reports/cube/usage-args.component.d.ts +0 -22
- package/lib/reports/cube/usage-base.d.ts +0 -76
- package/lib/reports/cube/usage-chart.component.d.ts +0 -66
- package/lib/reports/cube/usage-pivot.component.d.ts +0 -66
- package/lib/reports/report-ref.d.ts +0 -27
- package/lib/reports/report-viewer.component.d.ts +0 -46
- package/lib/reports/report.mobile.component.d.ts +0 -45
- package/lib/reports/report.pane.component.d.ts +0 -34
- package/lib/reports/reports-menu.component.d.ts +0 -12
- package/lib/reports/substitution/substitution.component.d.ts +0 -23
- package/lib/reports/table/table-view.component.d.ts +0 -19
- package/lib/reports/tasks/tasks.component.d.ts +0 -68
- package/lib/routes.desktop.d.ts +0 -2
- package/lib/routes.mobile.d.ts +0 -2
- package/lib/schedule.module.d.ts +0 -7
- package/lib/scheduler/schedule.component.d.ts +0 -43
- package/lib/scheduler/scheduler.mobile.component.d.ts +0 -14
- package/lib/scheduler/scheduler.pane.component.d.ts +0 -20
- package/lib/shared.module.d.ts +0 -178
- package/lib/spreadsheet.module.d.ts +0 -8
- package/lib/system.module.d.ts +0 -33
- package/lib/views/cube/chart.component.d.ts +0 -38
- package/lib/views/cube/cube-base.d.ts +0 -44
- package/lib/views/cube/explore.component.d.ts +0 -41
- package/lib/views/cube/matrix.component.d.ts +0 -62
- package/lib/views/cube/parallel.component.d.ts +0 -63
- package/lib/views/cube/pivot.component.d.ts +0 -33
- package/lib/views/cube/sum.component.d.ts +0 -78
- package/lib/views/cube/view.component.d.ts +0 -40
- package/lib/views/document-view-ref.d.ts +0 -17
- package/lib/views/timeline/timeline.component.exp.d.ts +0 -66
- package/lib/views/view-item.component.d.ts +0 -28
- package/lib/views/views.component.d.ts +0 -14
- package/lib/views/views.mobile.component.d.ts +0 -14
- package/lib/views/views.pane.component.d.ts +0 -12
- package/public-api.d.ts +0 -134
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2RvY3VtZW50LXRyYWNlL1RpbWVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRhY2htZW50LCBMb2csIFJlY2lwaWVudCwgV29ya2Zsb3cgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1vdmVNb2RlbCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ3JhbUluZm8ge1xyXG4gIGRpYWdyYW06IFdvcmtmbG93O1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICBsb2c6IExvZ1tdO1xyXG4gIGZvcm06IHN0cmluZztcclxuICBtb2RlbDogYW55O1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUluZm8ge1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIGluZGljYXRvcj86IGJvb2xlYW47XHJcbiAgdmlydHVhbD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGltZWxpbmUge1xyXG4gICAgZGF0ZTogRGF0ZTtcclxuICAgIHN1Ym1pc3Npb25zOiBEYXRlW107XHJcbiAgICBtaW5EYXRlOiBEYXRlO1xyXG4gICAgbWF4RGF0ZTogRGF0ZTtcclxuICAgIGl0ZW1zOiB7XHJcbiAgICAgICAgdGltZT86IERhdGU7XHJcbiAgICAgICAgdXNlcklkPzogc3RyaW5nO1xyXG4gICAgICAgIHN0YXRlPzogc3RyaW5nO1xyXG4gICAgfVtdO1xyXG4gICAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgICBzdGFydERhdGU6IERhdGU7XHJcbiAgICBlbmREYXRlOiBEYXRlO1xyXG4gICAgcmVjaXBpZW50cz86IFJlY2lwaWVudFtdO1xyXG4gICAgbG9nPzogTG9nW107XHJcbn1cclxuIl19
|
@@ -1,464 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { Component, ViewChild, Inject, HostListener } from '@angular/core';
|
3
|
-
import { DiagramConstraints, NodeConstraints, SelectorConstraints, ToolBase, Diagram, DiagramTools, ConnectorConstraints } from '@syncfusion/ej2-angular-diagrams';
|
4
|
-
import { Subject } from 'rxjs';
|
5
|
-
import { takeUntil, debounceTime, switchMap, filter } from 'rxjs/operators';
|
6
|
-
import { BizDoc } from '../../core/decorators';
|
7
|
-
import { getWarn, isObject } from '../../core/functions';
|
8
|
-
import { UtilityRef } from '../utility-ref';
|
9
|
-
import { ReassignDialog } from "./reassign.dialog";
|
10
|
-
import { trigger } from '@angular/animations';
|
11
|
-
import { EnterExitRight } from '../../core/animations';
|
12
|
-
import * as i0 from "@angular/core";
|
13
|
-
import * as i1 from "../form/form.service";
|
14
|
-
import * as i2 from "../../core/session.service";
|
15
|
-
import * as i3 from "../../core/slots/pane-ref";
|
16
|
-
import * as i4 from "../../core/slots/router.service";
|
17
|
-
import * as i5 from "../../core/prompt.service";
|
18
|
-
import * as i6 from "../../core/translate.service";
|
19
|
-
import * as i7 from "@angular/material/dialog";
|
20
|
-
import * as i8 from "../../core/guide/guide.service";
|
21
|
-
import * as i9 from "@angular/forms";
|
22
|
-
import * as i10 from "@angular/material/toolbar";
|
23
|
-
import * as i11 from "@angular/material/button";
|
24
|
-
import * as i12 from "@angular/material/icon";
|
25
|
-
import * as i13 from "./trace-element.component";
|
26
|
-
import * as i14 from "@angular/material/form-field";
|
27
|
-
import * as i15 from "@angular/material/autocomplete";
|
28
|
-
import * as i16 from "@angular/material/core";
|
29
|
-
import * as i17 from "@angular/material/progress-bar";
|
30
|
-
import * as i18 from "@angular/common";
|
31
|
-
import * as i19 from "@angular/flex-layout/flex";
|
32
|
-
import * as i20 from "@angular/material/tooltip";
|
33
|
-
import * as i21 from "@angular/cdk/bidi";
|
34
|
-
import * as i22 from "@angular/material/input";
|
35
|
-
import * as i23 from "../../core/pipes/translate.pipe";
|
36
|
-
import * as i24 from "../../core/pipes/user-name.pipe";
|
37
|
-
import * as i25 from "ngx-moment";
|
38
|
-
import * as i26 from "../utility-ref";
|
39
|
-
const moment = require('moment');
|
40
|
-
const WARNNING_PATH = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z', JUMP_PATH = 'M 6,18 14.5,12 6,6 Z M 16,6 v 12 h 2 V 6 Z';
|
41
|
-
function getPorts() {
|
42
|
-
const ports = [
|
43
|
-
{ id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },
|
44
|
-
{ id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },
|
45
|
-
{ id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 } },
|
46
|
-
{ id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }
|
47
|
-
];
|
48
|
-
return ports;
|
49
|
-
}
|
50
|
-
//Defines the tool used
|
51
|
-
class InfoTool extends ToolBase {
|
52
|
-
constructor(diagram, tap) {
|
53
|
-
super(diagram.commandHandler);
|
54
|
-
this.diagram = diagram;
|
55
|
-
this.tap = tap;
|
56
|
-
}
|
57
|
-
mouseDown(args) {
|
58
|
-
if (this.diagram.selectedItems.nodes.length > 0) {
|
59
|
-
const node = this.diagram.selectedItems.nodes[0];
|
60
|
-
super.mouseDown(args);
|
61
|
-
this.tap.next(node);
|
62
|
-
this.inAction = true;
|
63
|
-
}
|
64
|
-
}
|
65
|
-
}
|
66
|
-
let DocumentTraceComponent = class DocumentTraceComponent {
|
67
|
-
/** workflow ctor */
|
68
|
-
constructor(_utilityRef, _service, _session, _slot, _router, _sb, _translate, _dialog, _guide, _cd, _fb) {
|
69
|
-
this._utilityRef = _utilityRef;
|
70
|
-
this._service = _service;
|
71
|
-
this._session = _session;
|
72
|
-
this._slot = _slot;
|
73
|
-
this._router = _router;
|
74
|
-
this._sb = _sb;
|
75
|
-
this._translate = _translate;
|
76
|
-
this._dialog = _dialog;
|
77
|
-
this._guide = _guide;
|
78
|
-
this._cd = _cd;
|
79
|
-
this._fb = _fb;
|
80
|
-
this.search = this._fb.control(null);
|
81
|
-
this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging |
|
82
|
-
DiagramConstraints.LineRouting |
|
83
|
-
DiagramConstraints.Pan |
|
84
|
-
DiagramConstraints.Zoom
|
85
|
-
& ~DiagramConstraints.UndoRedo;
|
86
|
-
this.diagramTool = DiagramTools.SingleSelect;
|
87
|
-
this.snapSettings = {};
|
88
|
-
this.scrollSettings = {
|
89
|
-
minZoom: .5,
|
90
|
-
maxZoom: 2.5
|
91
|
-
};
|
92
|
-
this._accentColor = this._session.getAccent(800);
|
93
|
-
this._primeryColor = this._session.getPrimery();
|
94
|
-
this.selectedItems = {
|
95
|
-
constraints: SelectorConstraints.UserHandle,
|
96
|
-
userHandles: [
|
97
|
-
{
|
98
|
-
name: 'info',
|
99
|
-
pathData: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z',
|
100
|
-
visible: true,
|
101
|
-
offset: 0,
|
102
|
-
side: 'Right',
|
103
|
-
verticalAlignment: 'Bottom',
|
104
|
-
backgroundColor: 'transparent',
|
105
|
-
pathColor: this._primeryColor,
|
106
|
-
size: 40,
|
107
|
-
margin: { top: 0, bottom: 0, left: 0, right: 0 }
|
108
|
-
}
|
109
|
-
]
|
110
|
-
};
|
111
|
-
this.getCustomTool = this.getTool.bind(this);
|
112
|
-
this.mode = 'search';
|
113
|
-
this._highLightedIds = [];
|
114
|
-
this._tap = new Subject();
|
115
|
-
this._destroy = new Subject();
|
116
|
-
this.nodeDefaults = (node) => {
|
117
|
-
const { indicator, virtual } = node.addInfo || {};
|
118
|
-
if (indicator) {
|
119
|
-
node.constraints = NodeConstraints.PointerEvents | NodeConstraints.Tooltip,
|
120
|
-
node.style.strokeWidth = 0,
|
121
|
-
node.width = node.height = 15;
|
122
|
-
}
|
123
|
-
else if (node.id !== 'version') {
|
124
|
-
node.constraints = NodeConstraints.InConnect | NodeConstraints.OutConnect |
|
125
|
-
NodeConstraints.PointerEvents | NodeConstraints.Select;
|
126
|
-
this._decorateNode(node);
|
127
|
-
node.ports = getPorts();
|
128
|
-
}
|
129
|
-
return node;
|
130
|
-
};
|
131
|
-
this.connDefaults = (connector) => {
|
132
|
-
connector.constraints = ConnectorConstraints.ReadOnly & ~ConnectorConstraints.Select;
|
133
|
-
this._decorateConnector(connector);
|
134
|
-
};
|
135
|
-
}
|
136
|
-
getTool(action) {
|
137
|
-
let tool;
|
138
|
-
if (action === 'info') {
|
139
|
-
tool = new InfoTool(this.diagram, this._tap);
|
140
|
-
}
|
141
|
-
return tool;
|
142
|
-
}
|
143
|
-
ngOnInit() {
|
144
|
-
this.documents$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => !isObject(v)), switchMap(v => this._service.findAll(v)));
|
145
|
-
this._tap.pipe(takeUntil(this._destroy)).subscribe(n => this._info(n));
|
146
|
-
this._slot.queryParamsChange.pipe(takeUntil(this._destroy)).subscribe(p => {
|
147
|
-
const { id } = p;
|
148
|
-
id && this._open(id.decodeId());
|
149
|
-
});
|
150
|
-
this._slot.resize.pipe(takeUntil(this._destroy)).subscribe(() => this.diagram &&
|
151
|
-
this.diagram.refresh());
|
152
|
-
}
|
153
|
-
guide(evt) {
|
154
|
-
const steps = [];
|
155
|
-
if (this.timeline) {
|
156
|
-
if (this.timeline.items.length > 1)
|
157
|
-
steps.push({
|
158
|
-
selector: '[data-help=timeline]',
|
159
|
-
content: this._translate.get('TraceTimelineHelp')
|
160
|
-
});
|
161
|
-
steps.push({
|
162
|
-
selector: 'g[id^=start]',
|
163
|
-
content: this._translate.get('TraceElementHelp'),
|
164
|
-
simulate: true
|
165
|
-
});
|
166
|
-
}
|
167
|
-
else
|
168
|
-
steps.push({
|
169
|
-
selector: '[data-help=search]',
|
170
|
-
position: 'Below',
|
171
|
-
content: this._translate.get('TraceSearchHelp')
|
172
|
-
});
|
173
|
-
this._guide.start({
|
174
|
-
name: 'trace',
|
175
|
-
steps
|
176
|
-
});
|
177
|
-
evt && evt.preventDefault();
|
178
|
-
}
|
179
|
-
_open(id) {
|
180
|
-
this.mode = null;
|
181
|
-
this.diagram && this.diagram.destroy();
|
182
|
-
this._utilityRef.populate(id).subscribe(e => {
|
183
|
-
this._highLightedIds = [];
|
184
|
-
this.model = e;
|
185
|
-
this._timeline();
|
186
|
-
this.mode = 'diagram';
|
187
|
-
this._cd.detectChanges();
|
188
|
-
this.diagram = new Diagram({
|
189
|
-
width: "100%", height: "100%",
|
190
|
-
snapSettings: this.snapSettings,
|
191
|
-
getConnectorDefaults: this.connDefaults,
|
192
|
-
selectedItems: this.selectedItems,
|
193
|
-
tool: this.diagramTool,
|
194
|
-
constraints: this.diagramConstraints, getNodeDefaults: this.nodeDefaults, scrollSettings: this.scrollSettings,
|
195
|
-
nodes: e.diagram.nodes,
|
196
|
-
connectors: e.diagram.connectors,
|
197
|
-
selectionChange: this.selectionChange.bind(this)
|
198
|
-
}, this.diagramElement.nativeElement);
|
199
|
-
this._version();
|
200
|
-
this._indicators();
|
201
|
-
this.diagram.fitToPage();
|
202
|
-
}, () => this._sb.error());
|
203
|
-
}
|
204
|
-
display(item) {
|
205
|
-
return item ? item.number : null;
|
206
|
-
}
|
207
|
-
change(evt) {
|
208
|
-
const { id } = evt.option.value;
|
209
|
-
this._router.navigate([], { queryParams: { id: id.encodeId() } });
|
210
|
-
}
|
211
|
-
_timeline() {
|
212
|
-
const items = [], submissions = [];
|
213
|
-
let minDate, maxDate, estimate;
|
214
|
-
this.model.log.forEach(l => {
|
215
|
-
const { time, userId } = l;
|
216
|
-
switch (l.type) {
|
217
|
-
case 'Submit':
|
218
|
-
submissions.push(time);
|
219
|
-
break;
|
220
|
-
default:
|
221
|
-
}
|
222
|
-
if (!items.find(t => t.time === time))
|
223
|
-
items.push({ time, userId });
|
224
|
-
if (!minDate || moment(time).isBefore(minDate))
|
225
|
-
minDate = time;
|
226
|
-
if (!maxDate || moment(time).isAfter(maxDate))
|
227
|
-
maxDate = time;
|
228
|
-
if (l.estimate)
|
229
|
-
estimate = true;
|
230
|
-
});
|
231
|
-
this.timeline = {
|
232
|
-
items, minDate, maxDate,
|
233
|
-
submissions, estimate
|
234
|
-
};
|
235
|
-
this._scope(submissions[submissions.length - 1]);
|
236
|
-
}
|
237
|
-
/**
|
238
|
-
*
|
239
|
-
* @param date
|
240
|
-
*/
|
241
|
-
_scope(date) {
|
242
|
-
const startDate = this.timeline.submissions.reverse().
|
243
|
-
find(s => s <= date), nextDate = this.timeline.submissions.find(s => s > date), endDate = nextDate ? new Date(new Date(nextDate).valueOf() - 1).toJSON() : this.timeline.maxDate;
|
244
|
-
Object.assign(this.timeline, {
|
245
|
-
startDate,
|
246
|
-
endDate,
|
247
|
-
recipients: this.model.recipients.filter(r => r.received >= startDate && r.received <= endDate),
|
248
|
-
log: this.model.log.filter(l => l.time >= startDate && l.time <= endDate)
|
249
|
-
});
|
250
|
-
}
|
251
|
-
_indicators() {
|
252
|
-
const indicators = [];
|
253
|
-
this.model.log.forEach(l => {
|
254
|
-
switch (l.type) {
|
255
|
-
case 'Node':
|
256
|
-
if (l.error)
|
257
|
-
indicators.push({
|
258
|
-
shape: {
|
259
|
-
type: 'Path',
|
260
|
-
data: WARNNING_PATH,
|
261
|
-
align: 'XMinYMax'
|
262
|
-
},
|
263
|
-
tooltip: {
|
264
|
-
content: l.error,
|
265
|
-
position: 'BottomCenter'
|
266
|
-
},
|
267
|
-
style: {
|
268
|
-
fill: getWarn(800)
|
269
|
-
},
|
270
|
-
addInfo: {
|
271
|
-
indicator: true,
|
272
|
-
parentId: l.nodeId
|
273
|
-
}
|
274
|
-
});
|
275
|
-
break;
|
276
|
-
case 'Jump':
|
277
|
-
//indicators.push({
|
278
|
-
// shape: {
|
279
|
-
// type: 'Path',
|
280
|
-
// data: JUMP_PATH,
|
281
|
-
// align: 'XMinYMax'
|
282
|
-
// },
|
283
|
-
// style: {
|
284
|
-
// fill: 'black'
|
285
|
-
// },
|
286
|
-
// addInfo: {
|
287
|
-
// indicator: true,
|
288
|
-
// parentId: l.nodeId
|
289
|
-
// }
|
290
|
-
//});
|
291
|
-
break;
|
292
|
-
}
|
293
|
-
});
|
294
|
-
this.diagram.removeLayer('indicators');
|
295
|
-
indicators.forEach(i => {
|
296
|
-
const parent = this.diagram.getNodeObject(i.addInfo.parentId);
|
297
|
-
i.offsetX = parent.offsetX + parent.width / 2 - 15,
|
298
|
-
i.offsetY = parent.offsetY + parent.height / 2 - 15;
|
299
|
-
this.diagram.add(i);
|
300
|
-
});
|
301
|
-
this.diagram.addLayer({ id: 'indicators' }, indicators);
|
302
|
-
}
|
303
|
-
_decorateNode(node) {
|
304
|
-
const log = this.timeline.log.filter(r => r.nodeId === node.id);
|
305
|
-
if (log.length) {
|
306
|
-
const recipients = this.timeline.recipients.filter(r => r.nodeId === node.id);
|
307
|
-
node.style.strokeColor = this._accentColor;
|
308
|
-
node.style.strokeDashArray = log.find(l => l.estimate) ? '3 2' : '';
|
309
|
-
node.style.fill = recipients.find(r => r.pending && !r.estimate) ? this._accentColor : 'white';
|
310
|
-
}
|
311
|
-
else
|
312
|
-
node.style.fill = 'transparent',
|
313
|
-
node.style.strokeColor = 'darkgray',
|
314
|
-
node.style.strokeDashArray = '6 2';
|
315
|
-
}
|
316
|
-
_decorateConnector(connector) {
|
317
|
-
const log = this.timeline.log.filter(r => r.nodeId === connector.id);
|
318
|
-
if (log.length) {
|
319
|
-
connector.style.strokeColor = connector.targetDecorator.style.strokeColor = connector.targetDecorator.style.fill =
|
320
|
-
this._accentColor;
|
321
|
-
connector.style.strokeDashArray = log.find(l => l.estimate) ? '3 2' : '';
|
322
|
-
}
|
323
|
-
else
|
324
|
-
connector.style.strokeColor = connector.targetDecorator.style.strokeColor = connector.targetDecorator.style.fill = 'darkgray',
|
325
|
-
connector.style.strokeDashArray = '6 2';
|
326
|
-
}
|
327
|
-
_version() {
|
328
|
-
this.diagram.removeLayer('version');
|
329
|
-
const version = {
|
330
|
-
id: 'version',
|
331
|
-
shape: {
|
332
|
-
type: 'Text',
|
333
|
-
content: this._translate.get('DiagramVersion', this.model.diagram.version)
|
334
|
-
},
|
335
|
-
offsetY: 5,
|
336
|
-
offsetX: 5,
|
337
|
-
style: {
|
338
|
-
fontSize: 50,
|
339
|
-
opacity: .1
|
340
|
-
},
|
341
|
-
constraints: NodeConstraints.ReadOnly
|
342
|
-
};
|
343
|
-
this.diagram.addLayer({
|
344
|
-
id: 'version',
|
345
|
-
objects: [
|
346
|
-
version
|
347
|
-
]
|
348
|
-
});
|
349
|
-
this.diagram.add(version);
|
350
|
-
}
|
351
|
-
fileName(fileId) {
|
352
|
-
const file = this.model.attachments.find(f => f.id === fileId);
|
353
|
-
return file.fileName;
|
354
|
-
}
|
355
|
-
selectionChange(evt) {
|
356
|
-
this._unhighlight();
|
357
|
-
if (evt.newValue.length) {
|
358
|
-
let node = evt.newValue[0];
|
359
|
-
const { indicator, parentId } = node.addInfo || {};
|
360
|
-
if (indicator) {
|
361
|
-
node = this.diagram.getNodeObject(parentId);
|
362
|
-
this.diagram.select([node]);
|
363
|
-
}
|
364
|
-
else {
|
365
|
-
const ids = (node.inEdges).concat(node.outEdges);
|
366
|
-
ids.push(node.id);
|
367
|
-
this._highlight(ids);
|
368
|
-
}
|
369
|
-
this.diagram.dataBind();
|
370
|
-
this._info(node);
|
371
|
-
}
|
372
|
-
else
|
373
|
-
this.node = null;
|
374
|
-
}
|
375
|
-
/** */
|
376
|
-
assign(recipient) {
|
377
|
-
this._dialog.open(ReassignDialog, { data: { exclude: [recipient.userId] } }).afterClosed().
|
378
|
-
subscribe((m) => {
|
379
|
-
m && this._utilityRef.execute(Object.assign({ id: recipient.id }, m)).subscribe(r => {
|
380
|
-
Object.assign(this.model, r);
|
381
|
-
}, () => this._sb.error());
|
382
|
-
});
|
383
|
-
}
|
384
|
-
_info(node) {
|
385
|
-
this.node = node;
|
386
|
-
}
|
387
|
-
highlightTime(time) {
|
388
|
-
this.timeline.date = time;
|
389
|
-
this.diagram.clearSelection();
|
390
|
-
this._unhighlight();
|
391
|
-
if (time < this.timeline.startDate || time > this.timeline.endDate) {
|
392
|
-
this._scope(time);
|
393
|
-
for (let i = 0; i < this.diagram.nodes.length; i++)
|
394
|
-
this._decorateNode(this.diagram.nodes[i]);
|
395
|
-
for (let i = 0; i < this.diagram.connectors.length; i++)
|
396
|
-
this._decorateConnector(this.diagram.connectors[i]);
|
397
|
-
}
|
398
|
-
const ids = this.timeline.log.filter(l => l.nodeId && l.time === time).map(l => l.nodeId).
|
399
|
-
filter((v, i, a) => a.indexOf(v) === i);
|
400
|
-
this._highlight(ids);
|
401
|
-
this.diagram.dataBind();
|
402
|
-
}
|
403
|
-
pan() {
|
404
|
-
this.diagram.constraints = this.diagram.constraints | DiagramConstraints.Pan;
|
405
|
-
this.diagram.tool = DiagramTools.ZoomPan;
|
406
|
-
}
|
407
|
-
cursor() {
|
408
|
-
this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints.Pan;
|
409
|
-
this.diagram.tool = DiagramTools.SingleSelect;
|
410
|
-
}
|
411
|
-
_highlight(ids) {
|
412
|
-
for (let i = 0; i < ids.length; i++) {
|
413
|
-
const obj = this.diagram.getObject(ids[i]);
|
414
|
-
if (obj.sourceID)
|
415
|
-
obj.style.strokeColor =
|
416
|
-
obj.targetDecorator.style.strokeColor =
|
417
|
-
obj.targetDecorator.style.fill = this._primeryColor;
|
418
|
-
else
|
419
|
-
obj.style.strokeColor = this._primeryColor;
|
420
|
-
}
|
421
|
-
this._highLightedIds = ids;
|
422
|
-
}
|
423
|
-
_unhighlight() {
|
424
|
-
for (let i = this._highLightedIds.length - 1; i >= 0; i--) {
|
425
|
-
const obj = this.diagram.getObject(this._highLightedIds[i]);
|
426
|
-
if (obj.sourceID)
|
427
|
-
this._decorateConnector(obj);
|
428
|
-
else
|
429
|
-
this._decorateNode(obj);
|
430
|
-
}
|
431
|
-
this._highLightedIds = [];
|
432
|
-
}
|
433
|
-
ngOnDestroy() {
|
434
|
-
this._destroy.next();
|
435
|
-
this._destroy.complete();
|
436
|
-
}
|
437
|
-
};
|
438
|
-
DocumentTraceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: DocumentTraceComponent, deps: [{ token: UtilityRef }, { token: i1.FormService }, { token: i2.SessionService }, { token: i3.PaneRef }, { token: i4.PanesRouter }, { token: i5.PromptService }, { token: i6.TranslateService }, { token: i7.MatDialog }, { token: i8.GuideService }, { token: i0.ChangeDetectorRef }, { token: i9.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
439
|
-
DocumentTraceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: DocumentTraceComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "diagramElement", first: true, predicate: ["diagram"], descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"pan()\" [matTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [matTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"mode = null\" [matTooltip]=\"'Refresh' | translate\"><mat-icon>refresh</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [matTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <bizdoc-document-trace-element [timeline]=\"timeline\" [node]=\"node\" *ngIf=\"node\"\r\n [model]=model (assign)=\"assign($event)\"></bizdoc-document-trace-element>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'search'\" fxFlex fxLayoutAlign=\"center\">\r\n <form>\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"40\" [placeholder]=\"'Number'|translate\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let d of documents$ | async\" [value]=\"d\">\r\n <span>{{d.number}} | {{d.subject}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n <mat-progress-bar mode=\"indeterminate\" *ngSwitchDefault></mat-progress-bar>\r\n</ng-container>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}\n"], components: [{ type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i13.TraceElementComponent, selector: "bizdoc-document-trace-element", inputs: ["model", "timeline", "node"], outputs: ["assign"] }, { type: i14.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i15.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i16.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i17.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i18.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i18.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i19.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i20.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i18.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i18.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleRadius", "matRippleDisabled", "matRippleTrigger", "matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleAnimation"], exportAs: ["matRipple"] }, { type: i21.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i19.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i22.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i15.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i14.MatSuffix, selector: "[matSuffix]" }, { type: i18.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": i23.TranslatePipe, "async": i18.AsyncPipe, "userName": i24.UserNamePipe, "amDateFormat": i25.DateFormatPipe }, animations: [trigger('element', EnterExitRight)] });
|
440
|
-
DocumentTraceComponent = __decorate([
|
441
|
-
BizDoc({ selector: 'bizdoc-trace-utility' })
|
442
|
-
/** workflow component*/
|
443
|
-
], DocumentTraceComponent);
|
444
|
-
export { DocumentTraceComponent };
|
445
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0, type: DocumentTraceComponent, decorators: [{
|
446
|
-
type: Component,
|
447
|
-
args: [{
|
448
|
-
templateUrl: './document-trace.component.html',
|
449
|
-
styleUrls: ['./document-trace.component.scss'],
|
450
|
-
host: {
|
451
|
-
class: 'pane'
|
452
|
-
}, animations: [trigger('element', EnterExitRight)]
|
453
|
-
}]
|
454
|
-
}], ctorParameters: function () { return [{ type: i26.UtilityRef, decorators: [{
|
455
|
-
type: Inject,
|
456
|
-
args: [UtilityRef]
|
457
|
-
}] }, { type: i1.FormService }, { type: i2.SessionService }, { type: i3.PaneRef }, { type: i4.PanesRouter }, { type: i5.PromptService }, { type: i6.TranslateService }, { type: i7.MatDialog }, { type: i8.GuideService }, { type: i0.ChangeDetectorRef }, { type: i9.FormBuilder }]; }, propDecorators: { diagramElement: [{
|
458
|
-
type: ViewChild,
|
459
|
-
args: ['diagram']
|
460
|
-
}], guide: [{
|
461
|
-
type: HostListener,
|
462
|
-
args: ['window:keydown.f1', ['$event']]
|
463
|
-
}] } });
|
464
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kb2N1bWVudC10cmFjZS9kb2N1bWVudC10cmFjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2RvY3VtZW50LXRyYWNlL2RvY3VtZW50LXRyYWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQ0wsa0JBQWtCLEVBQWtCLGVBQWUsRUFBc0MsbUJBQW1CLEVBQzVHLFFBQVEsRUFBRSxPQUFPLEVBQWdFLFlBQVksRUFBYSxvQkFBb0IsRUFDL0gsTUFBTSxrQ0FBa0MsQ0FBQztBQUkxQyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxtQkFBbUIsQ0FBQztBQVFsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZnZELE1BQU0sTUFBTSxH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LEVBQUUsQ0FBQztJQUM3Qyx3QkFBd0I7R0FDWCxzQkFBc0IsQ0E0WWxDO1NBNVlZLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQVRsQyxTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO29CQUM5QyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2QsRUFBRSxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2lCQUNwRDs7MEJBd0RJLE1BQU07MkJBQUMsVUFBVTsyVEFwREUsY0FBYztzQkFBbkMsU0FBUzt1QkFBQyxTQUFTO2dCQStFcEIsS0FBSztzQkFESixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIERpYWdyYW1Db25zdHJhaW50cywgUG9pbnRQb3J0TW9kZWwsIE5vZGVDb25zdHJhaW50cywgU2Nyb2xsU2V0dGluZ3NNb2RlbCwgU2VsZWN0b3JNb2RlbCwgU2VsZWN0b3JDb25zdHJhaW50cyxcclxuICBUb29sQmFzZSwgRGlhZ3JhbSwgTW91c2VFdmVudEFyZ3MsIENvbm5lY3Rvck1vZGVsLCBOb2RlTW9kZWwsIFNuYXBTZXR0aW5nc01vZGVsLCBEaWFncmFtVG9vbHMsIFRleHRNb2RlbCwgQ29ubmVjdG9yQ29uc3RyYWludHMsIElTZWxlY3Rpb25DaGFuZ2VFdmVudEFyZ3MsIExheWVyTW9kZWxcclxufSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1kaWFncmFtcyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgZ2V0V2FybiwgaXNPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IFJlY2lwaWVudCwgSGVhZGVyTW9kZWwsIERvY3VtZW50TW9kZWwsIEd1aWRlU3RlcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5UmVmIH0gZnJvbSAnLi4vdXRpbGl0eS1yZWYnO1xyXG5pbXBvcnQgeyBSZWFzc2lnbkRpYWxvZywgUmVhc3NpZ25Nb2RlbCB9IGZyb20gXCIuL3JlYXNzaWduLmRpYWxvZ1wiO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uL2Zvcm0vZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFncmFtSW5mbywgTW92ZU1vZGVsLCBOb2RlSW5mbywgVGltZWxpbmUgfSBmcm9tICcuL1RpbWVsaW5lJztcclxuaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnRlckV4aXRSaWdodCB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5jb25zdCBXQVJOTklOR19QQVRIID0gJ00gMTMuNzYzNzM1LDEuODQzMzczNSBIIDYuMzAzNzM0OSBsIC01LjI3LDUuMjcgdiA3LjQ1OTk5OTUgbCA1LjI3LDUuMjcgaCA3LjQ2MDAwMDEgbCA1LjI3LC01LjI3IFYgNy4xMTMzNzM1IFogbSAtMy43MywxNC4yOTk5OTk1IGMgLTAuNzIwMDAwMSwwIC0xLjMwMDAwMDEsLTAuNTggLTEuMzAwMDAwMSwtMS4zIDAsLTAuNzIgMC41OCwtMS4zIDEuMzAwMDAwMSwtMS4zIDAuNzIsMCAxLjMsMC41OCAxLjMsMS4zIDAsMC43MiAtMC41OCwxLjMgLTEuMywxLjMgeiBtIDEsLTQuMyBIIDkuMDMzNzM0OSBWIDUuODQzMzczNSBoIDIuMDAwMDAwMSB6JyxcclxuICBKVU1QX1BBVEggPSAnTSA2LDE4IDE0LjUsMTIgNiw2IFogTSAxNiw2IHYgMTIgaCAyIFYgNiBaJztcclxuXHJcbmZ1bmN0aW9uIGdldFBvcnRzKCk6IFBvaW50UG9ydE1vZGVsW10ge1xyXG4gIGNvbnN0IHBvcnRzOiBQb2ludFBvcnRNb2RlbFtdID0gW1xyXG4gICAgeyBpZDogJ3BvcnQxJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMCwgeTogMC41IH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0MicsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAuNSwgeTogMSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDMnLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAxLCB5OiAwLjUgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQ0Jywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMC41LCB5OiAwIH0gfVxyXG4gIF07XHJcbiAgcmV0dXJuIHBvcnRzO1xyXG59XHJcblxyXG4vL0RlZmluZXMgdGhlIHRvb2wgdXNlZFxyXG5jbGFzcyBJbmZvVG9vbCBleHRlbmRzIFRvb2xCYXNlIHtcclxuICBwdWJsaWMgbW91c2VEb3duKGFyZ3M6IE1vdXNlRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBub2RlID0gdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXNbMF07XHJcbiAgICAgIHN1cGVyLm1vdXNlRG93bihhcmdzKVxyXG4gICAgICB0aGlzLnRhcC5uZXh0KG5vZGUpO1xyXG4gICAgICB0aGlzLmluQWN0aW9uID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWdyYW06IERpYWdyYW0sIHB1YmxpYyB0YXA6IFN1YmplY3Q8Tm9kZU1vZGVsPikge1xyXG4gICAgc3VwZXIoZGlhZ3JhbS5jb21tYW5kSGFuZGxlcik7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtdHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LXRyYWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH0sIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdlbGVtZW50JywgRW50ZXJFeGl0UmlnaHQpXVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UtdXRpbGl0eScgfSlcclxuLyoqIHdvcmtmbG93IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFRyYWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWdyYW0nKSBkaWFncmFtRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgZGlhZ3JhbTogRGlhZ3JhbTtcclxuICByZWFkb25seSBzZWFyY2ggPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gIGRvY3VtZW50cyQ6IE9ic2VydmFibGU8RG9jdW1lbnRNb2RlbFtdPjtcclxuICBtb2RlbDogRGlhZ3JhbUluZm87XHJcbiAgdGltZWxpbmU6IFRpbWVsaW5lO1xyXG4gIGRpYWdyYW1Db25zdHJhaW50czogRGlhZ3JhbUNvbnN0cmFpbnRzID0gRGlhZ3JhbUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBEaWFncmFtQ29uc3RyYWludHMuQnJpZGdpbmcgfFxyXG4gICAgRGlhZ3JhbUNvbnN0cmFpbnRzLkxpbmVSb3V0aW5nIHxcclxuICAgIERpYWdyYW1Db25zdHJhaW50cy5QYW4gfFxyXG4gICAgRGlhZ3JhbUNvbnN0cmFpbnRzLlpvb21cclxuICAgICYgfkRpYWdyYW1Db25zdHJhaW50cy5VbmRvUmVkbztcclxuICBkaWFncmFtVG9vbDogRGlhZ3JhbVRvb2xzID0gRGlhZ3JhbVRvb2xzLlNpbmdsZVNlbGVjdDtcclxuICByZWFkb25seSBzbmFwU2V0dGluZ3M6IFNuYXBTZXR0aW5nc01vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2Nyb2xsU2V0dGluZ3M6IFNjcm9sbFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBtaW5ab29tOiAuNSxcclxuICAgIG1heFpvb206IDIuNVxyXG4gIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWNjZW50Q29sb3IgPSB0aGlzLl9zZXNzaW9uLmdldEFjY2VudCg4MDApO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByaW1lcnlDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZEl0ZW1zOiBTZWxlY3Rvck1vZGVsID0ge1xyXG4gICAgY29uc3RyYWludHM6IFNlbGVjdG9yQ29uc3RyYWludHMuVXNlckhhbmRsZSxcclxuICAgIHVzZXJIYW5kbGVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnaW5mbycsXHJcbiAgICAgICAgcGF0aERhdGE6ICdNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnonLFxyXG4gICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgIHNpZGU6ICdSaWdodCcsXHJcbiAgICAgICAgdmVydGljYWxBbGlnbm1lbnQ6ICdCb3R0b20nLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICBwYXRoQ29sb3I6IHRoaXMuX3ByaW1lcnlDb2xvcixcclxuICAgICAgICBzaXplOiA0MCxcclxuICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1cclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH07XHJcbiAgcHVibGljIGdldEN1c3RvbVRvb2w6IEZ1bmN0aW9uID0gdGhpcy5nZXRUb29sLmJpbmQodGhpcyk7XHJcbiAgbm9kZTogTm9kZU1vZGVsO1xyXG4gIHB1YmxpYyBnZXRUb29sKGFjdGlvbjogc3RyaW5nKTogVG9vbEJhc2Uge1xyXG4gICAgbGV0IHRvb2w6IFRvb2xCYXNlO1xyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2luZm8nKSB7XHJcbiAgICAgIHRvb2wgPSBuZXcgSW5mb1Rvb2wodGhpcy5kaWFncmFtLCB0aGlzLl90YXApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvb2w7XHJcbiAgfVxyXG4gIG1vZGU6ICdkaWFncmFtJyB8ICdzZWFyY2gnIHwgbnVsbCA9ICdzZWFyY2gnO1xyXG4gIHByaXZhdGUgX2hpZ2hMaWdodGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RhcCA9IG5ldyBTdWJqZWN0PE5vZGVNb2RlbD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogd29ya2Zsb3cgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChVdGlsaXR5UmVmKSBwcml2YXRlIF91dGlsaXR5UmVmOiBVdGlsaXR5UmVmPERpYWdyYW1JbmZvLCBNb3ZlTW9kZWwsIERpYWdyYW1JbmZvLCBudW1iZXI+LFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nsb3Q6IFBhbmVSZWY8RG9jdW1lbnRUcmFjZUNvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRvY3VtZW50cyQgPSB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksIGRlYm91bmNlVGltZSgyNTApLFxyXG4gICAgICBmaWx0ZXIodiA9PiAhaXNPYmplY3QodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9zZXJ2aWNlLmZpbmRBbGwodikpKTtcclxuICAgIHRoaXMuX3RhcC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKG4gPT4gdGhpcy5faW5mbyhuKSk7XHJcbiAgICB0aGlzLl9zbG90LnF1ZXJ5UGFyYW1zQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIGNvbnN0IHsgaWQgfSA9IHA7XHJcbiAgICAgIGlkICYmIHRoaXMuX29wZW4oKGlkIGFzIHN0cmluZykuZGVjb2RlSWQoKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3Nsb3QucmVzaXplLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy5kaWFncmFtICYmXHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5yZWZyZXNoKClcclxuICAgICk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmYxJywgWyckZXZlbnQnXSlcclxuICBndWlkZShldnQ/OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHN0ZXBzOiBHdWlkZVN0ZXBbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMudGltZWxpbmUpIHtcclxuICAgICAgaWYgKHRoaXMudGltZWxpbmUuaXRlbXMubGVuZ3RoID4gMSlcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD10aW1lbGluZV0nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnVHJhY2VUaW1lbGluZUhlbHAnKVxyXG4gICAgICAgIH0pOyBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnZ1tpZF49c3RhcnRdJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RyYWNlRWxlbWVudEhlbHAnKSxcclxuICAgICAgICAgIHNpbXVsYXRlOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHN0ZXBzLnB1c2goe1xyXG4gICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2VhcmNoXScsXHJcbiAgICAgIHBvc2l0aW9uOiAnQmVsb3cnLFxyXG4gICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdUcmFjZVNlYXJjaEhlbHAnKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydCh7XHJcbiAgICAgIG5hbWU6ICd0cmFjZScsXHJcbiAgICAgIHN0ZXBzXHJcbiAgICB9KTtcclxuICAgIGV2dCAmJiBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29wZW4oaWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5tb2RlID0gbnVsbDtcclxuICAgIHRoaXMuZGlhZ3JhbSAmJiB0aGlzLmRpYWdyYW0uZGVzdHJveSgpO1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5wb3B1bGF0ZShpZCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdoTGlnaHRlZElkcyA9IFtdO1xyXG4gICAgICB0aGlzLm1vZGVsID0gZTtcclxuICAgICAgdGhpcy5fdGltZWxpbmUoKTtcclxuICAgICAgdGhpcy5tb2RlID0gJ2RpYWdyYW0nO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbSA9IG5ldyBEaWFncmFtKHtcclxuICAgICAgICB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIsXHJcbiAgICAgICAgc25hcFNldHRpbmdzOiB0aGlzLnNuYXBTZXR0aW5ncyxcclxuICAgICAgICBnZXRDb25uZWN0b3JEZWZhdWx0czogdGhpcy5jb25uRGVmYXVsdHMsXHJcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zLFxyXG4gICAgICAgIHRvb2w6IHRoaXMuZGlhZ3JhbVRvb2wsXHJcbiAgICAgICAgY29uc3RyYWludHM6IHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzLCBnZXROb2RlRGVmYXVsdHM6IHRoaXMubm9kZURlZmF1bHRzLCBzY3JvbGxTZXR0aW5nczogdGhpcy5zY3JvbGxTZXR0aW5ncyxcclxuICAgICAgICBub2RlczogZS5kaWFncmFtLm5vZGVzLFxyXG4gICAgICAgIGNvbm5lY3RvcnM6IGUuZGlhZ3JhbS5jb25uZWN0b3JzLFxyXG4gICAgICAgIHNlbGVjdGlvbkNoYW5nZTogdGhpcy5zZWxlY3Rpb25DaGFuZ2UuYmluZCh0aGlzKVxyXG4gICAgICB9LCB0aGlzLmRpYWdyYW1FbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICB0aGlzLl92ZXJzaW9uKCk7XHJcbiAgICAgIHRoaXMuX2luZGljYXRvcnMoKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmZpdFRvUGFnZSgpO1xyXG5cclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICBub2RlRGVmYXVsdHMgPSAobm9kZTogTm9kZU1vZGVsKTogTm9kZU1vZGVsID0+IHtcclxuICAgIGNvbnN0IHsgaW5kaWNhdG9yLCB2aXJ0dWFsIH0gPSBub2RlLmFkZEluZm8gYXMgTm9kZUluZm8gfHwge307XHJcblxyXG4gICAgaWYgKGluZGljYXRvcikge1xyXG4gICAgICBub2RlLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLlBvaW50ZXJFdmVudHMgfCBOb2RlQ29uc3RyYWludHMuVG9vbHRpcCxcclxuICAgICAgICBub2RlLnN0eWxlLnN0cm9rZVdpZHRoID0gMCxcclxuICAgICAgICBub2RlLndpZHRoID0gbm9kZS5oZWlnaHQgPSAxNTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG5vZGUuaWQgIT09ICd2ZXJzaW9uJykge1xyXG4gICAgICBub2RlLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkluQ29ubmVjdCB8IE5vZGVDb25zdHJhaW50cy5PdXRDb25uZWN0IHxcclxuICAgICAgICBOb2RlQ29uc3RyYWludHMuUG9pbnRlckV2ZW50cyB8IE5vZGVDb25zdHJhaW50cy5TZWxlY3Q7XHJcbiAgICAgIHRoaXMuX2RlY29yYXRlTm9kZShub2RlKTtcclxuICAgICAgbm9kZS5wb3J0cyA9IGdldFBvcnRzKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbm9kZTtcclxuICB9XHJcbiAgcHVibGljIGNvbm5EZWZhdWx0cyA9IChjb25uZWN0b3I6IENvbm5lY3Rvck1vZGVsKSA9PiB7XHJcbiAgICBjb25uZWN0b3IuY29uc3RyYWludHMgPSBDb25uZWN0b3JDb25zdHJhaW50cy5SZWFkT25seSAmIH5Db25uZWN0b3JDb25zdHJhaW50cy5TZWxlY3Q7XHJcblxyXG4gICAgdGhpcy5fZGVjb3JhdGVDb25uZWN0b3IoY29ubmVjdG9yKTtcclxuICB9XHJcbiAgZGlzcGxheShpdGVtOiBIZWFkZXJNb2RlbCkge1xyXG4gICAgcmV0dXJuIGl0ZW0gPyBpdGVtLm51bWJlciA6IG51bGw7XHJcbiAgfVxyXG4gIGNoYW5nZShldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgaWQgfSA9IGV2dC5vcHRpb24udmFsdWU7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHsgaWQ6IChpZCBhcyBudW1iZXIpLmVuY29kZUlkKCkgfSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RpbWVsaW5lKCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSBbXSwgc3VibWlzc2lvbnM6IERhdGVbXSA9IFtdO1xyXG4gICAgbGV0IG1pbkRhdGU6IERhdGUsIG1heERhdGU6IERhdGUsIGVzdGltYXRlOiBib29sZWFuO1xyXG4gICAgdGhpcy5tb2RlbC5sb2cuZm9yRWFjaChsID0+IHtcclxuICAgICAgY29uc3QgeyB0aW1lLCB1c2VySWQgfSA9IGw7XHJcbiAgICAgIHN3aXRjaCAobC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnU3VibWl0JzpcclxuICAgICAgICAgIHN1Ym1pc3Npb25zLnB1c2godGltZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICB9XHJcbiAgICAgIGlmICghaXRlbXMuZmluZCh0ID0+IHQudGltZSA9PT0gdGltZSkpXHJcbiAgICAgICAgaXRlbXMucHVzaCh7IHRpbWUsIHVzZXJJZCB9KTtcclxuICAgICAgaWYgKCFtaW5EYXRlIHx8IG1vbWVudCh0aW1lKS5pc0JlZm9yZShtaW5EYXRlKSkgbWluRGF0ZSA9IHRpbWU7XHJcbiAgICAgIGlmICghbWF4RGF0ZSB8fCBtb21lbnQodGltZSkuaXNBZnRlcihtYXhEYXRlKSkgbWF4RGF0ZSA9IHRpbWU7XHJcbiAgICAgIGlmIChsLmVzdGltYXRlKSBlc3RpbWF0ZSA9IHRydWU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZWxpbmUgPSB7XHJcbiAgICAgIGl0ZW1zLCBtaW5EYXRlLCBtYXhEYXRlLFxyXG4gICAgICBzdWJtaXNzaW9ucywgZXN0aW1hdGVcclxuICAgIH0gYXMgYW55O1xyXG4gICAgdGhpcy5fc2NvcGUoc3VibWlzc2lvbnNbc3VibWlzc2lvbnMubGVuZ3RoIC0gMV0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Njb3BlKGRhdGU6IERhdGUpIHtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMudGltZWxpbmUuc3VibWlzc2lvbnMucmV2ZXJzZSgpLlxyXG4gICAgICBmaW5kKHMgPT4gcyA8PSBkYXRlKSxcclxuICAgICAgbmV4dERhdGUgPSB0aGlzLnRpbWVsaW5lLnN1Ym1pc3Npb25zLmZpbmQocyA9PiBzID4gZGF0ZSksXHJcbiAgICAgIGVuZERhdGUgPSBuZXh0RGF0ZSA/IG5ldyBEYXRlKG5ldyBEYXRlKG5leHREYXRlKS52YWx1ZU9mKCkgLSAxKS50b0pTT04oKSBhcyBhbnkgOiB0aGlzLnRpbWVsaW5lLm1heERhdGU7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMudGltZWxpbmUsIHtcclxuICAgICAgc3RhcnREYXRlLFxyXG4gICAgICBlbmREYXRlLFxyXG4gICAgICByZWNpcGllbnRzOiB0aGlzLm1vZGVsLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5yZWNlaXZlZCA+PSBzdGFydERhdGUgJiYgci5yZWNlaXZlZCA8PSBlbmREYXRlKSxcclxuICAgICAgbG9nOiB0aGlzLm1vZGVsLmxvZy5maWx0ZXIobCA9PiBsLnRpbWUgPj0gc3RhcnREYXRlICYmIGwudGltZSA8PSBlbmREYXRlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGljYXRvcnMoKSB7XHJcbiAgICBjb25zdCBpbmRpY2F0b3JzOiBOb2RlTW9kZWxbXSA9IFtdO1xyXG4gICAgdGhpcy5tb2RlbC5sb2cuZm9yRWFjaChsID0+IHtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdOb2RlJzpcclxuICAgICAgICAgIGlmIChsLmVycm9yKVxyXG4gICAgICAgICAgICBpbmRpY2F0b3JzLnB1c2goe1xyXG4gICAgICAgICAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnUGF0aCcsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBXQVJOTklOR19QQVRILFxyXG4gICAgICAgICAgICAgICAgYWxpZ246ICdYTWluWU1heCdcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRvb2x0aXA6IHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGwuZXJyb3IsXHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ0JvdHRvbUNlbnRlcidcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICBmaWxsOiBnZXRXYXJuKDgwMClcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGFkZEluZm86IHtcclxuICAgICAgICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBsLm5vZGVJZFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdKdW1wJzpcclxuICAgICAgICAgIC8vaW5kaWNhdG9ycy5wdXNoKHtcclxuICAgICAgICAgIC8vICBzaGFwZToge1xyXG4gICAgICAgICAgLy8gICAgdHlwZTogJ1BhdGgnLFxyXG4gICAgICAgICAgLy8gICAgZGF0YTogSlVNUF9QQVRILFxyXG4gICAgICAgICAgLy8gICAgYWxpZ246ICdYTWluWU1heCdcclxuICAgICAgICAgIC8vICB9LFxyXG4gICAgICAgICAgLy8gIHN0eWxlOiB7XHJcbiAgICAgICAgICAvLyAgICBmaWxsOiAnYmxhY2snXHJcbiAgICAgICAgICAvLyAgfSxcclxuICAgICAgICAgIC8vICBhZGRJbmZvOiB7XHJcbiAgICAgICAgICAvLyAgICBpbmRpY2F0b3I6IHRydWUsXHJcbiAgICAgICAgICAvLyAgICBwYXJlbnRJZDogbC5ub2RlSWRcclxuICAgICAgICAgIC8vICB9XHJcbiAgICAgICAgICAvL30pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFncmFtLnJlbW92ZUxheWVyKCdpbmRpY2F0b3JzJyk7XHJcbiAgICBpbmRpY2F0b3JzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZGlhZ3JhbS5nZXROb2RlT2JqZWN0KChpLmFkZEluZm8gYXMgTm9kZUluZm8pLnBhcmVudElkKTtcclxuICAgICAgaS5vZmZzZXRYID0gcGFyZW50Lm9mZnNldFggKyBwYXJlbnQud2lkdGggLyAyIC0gMTUsXHJcbiAgICAgICAgaS5vZmZzZXRZID0gcGFyZW50Lm9mZnNldFkgKyBwYXJlbnQuaGVpZ2h0IC8gMiAtIDE1O1xyXG4gICAgICB0aGlzLmRpYWdyYW0uYWRkKGkpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWdyYW0uYWRkTGF5ZXIoeyBpZDogJ2luZGljYXRvcnMnIH0sIGluZGljYXRvcnMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9kZWNvcmF0ZU5vZGUobm9kZTogTm9kZU1vZGVsKSB7XHJcbiAgICBjb25zdCBsb2cgPSB0aGlzLnRpbWVsaW5lLmxvZy5maWx0ZXIociA9PiByLm5vZGVJZCA9PT0gbm9kZS5pZCk7XHJcblxyXG4gICAgaWYgKGxvZy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgcmVjaXBpZW50cyA9IHRoaXMudGltZWxpbmUucmVjaXBpZW50cy5maWx0ZXIociA9PiByLm5vZGVJZCA9PT0gbm9kZS5pZCk7XHJcblxyXG4gICAgICBub2RlLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fYWNjZW50Q29sb3I7XHJcbiAgICAgIG5vZGUuc3R5bGUuc3Ryb2tlRGFzaEFycmF5ID0gbG9nLmZpbmQobCA9PiBsLmVzdGltYXRlKSA/ICczIDInIDogJyc7XHJcblxyXG4gICAgICBub2RlLnN0eWxlLmZpbGwgPSByZWNpcGllbnRzLmZpbmQociA9PiByLnBlbmRpbmcgJiYgIXIuZXN0aW1hdGUpID8gdGhpcy5fYWNjZW50Q29sb3IgOiAnd2hpdGUnO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICBub2RlLnN0eWxlLmZpbGwgPSAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgIG5vZGUuc3R5bGUuc3Ryb2tlQ29sb3IgPSAnZGFya2dyYXknLFxyXG4gICAgICAgIG5vZGUuc3R5bGUuc3Ryb2tlRGFzaEFycmF5ID0gJzYgMic7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RlY29yYXRlQ29ubmVjdG9yKGNvbm5lY3RvcjogQ29ubmVjdG9yTW9kZWwpIHtcclxuICAgIGNvbnN0IGxvZyA9IHRoaXMudGltZWxpbmUubG9nLmZpbHRlcihyID0+IHIubm9kZUlkID09PSBjb25uZWN0b3IuaWQpO1xyXG5cclxuICAgIGlmIChsb2cubGVuZ3RoKSB7XHJcbiAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VDb2xvciA9IGNvbm5lY3Rvci50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPSBjb25uZWN0b3IudGFyZ2V0RGVjb3JhdG9yLnN0eWxlLmZpbGwgPVxyXG4gICAgICAgIHRoaXMuX2FjY2VudENvbG9yO1xyXG4gICAgICBjb25uZWN0b3Iuc3R5bGUuc3Ryb2tlRGFzaEFycmF5ID0gbG9nLmZpbmQobCA9PiBsLmVzdGltYXRlKSA/ICczIDInIDogJyc7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VDb2xvciA9IGNvbm5lY3Rvci50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPSBjb25uZWN0b3IudGFyZ2V0RGVjb3JhdG9yLnN0eWxlLmZpbGwgPSAnZGFya2dyYXknLFxyXG4gICAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VEYXNoQXJyYXkgPSAnNiAyJztcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmVyc2lvbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5yZW1vdmVMYXllcihcclxuICAgICAgJ3ZlcnNpb24nKTtcclxuICAgIGNvbnN0IHZlcnNpb24gPSB7XHJcbiAgICAgIGlkOiAndmVyc2lvbicsXHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdGhpcy5tb2RlbC5kaWFncmFtLnZlcnNpb24pXHJcbiAgICAgIH0sXHJcbiAgICAgIG9mZnNldFk6IDUsXHJcbiAgICAgIG9mZnNldFg6IDUsXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZm9udFNpemU6IDUwLFxyXG4gICAgICAgIG9wYWNpdHk6IC4xXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbnN0cmFpbnRzOiBOb2RlQ29uc3RyYWludHMuUmVhZE9ubHlcclxuICAgIH0gYXMgVGV4dE1vZGVsO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZExheWVyKHtcclxuICAgICAgaWQ6ICd2ZXJzaW9uJyxcclxuICAgICAgb2JqZWN0czogW1xyXG4gICAgICAgIHZlcnNpb25dXHJcbiAgICB9IGFzIExheWVyTW9kZWwpO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZCh2ZXJzaW9uKTtcclxuICB9XHJcbiAgZmlsZU5hbWUoZmlsZUlkOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbGUgPSB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLmZpbmQoZiA9PiBmLmlkID09PSBmaWxlSWQpO1xyXG4gICAgcmV0dXJuIGZpbGUuZmlsZU5hbWU7XHJcbiAgfVxyXG4gIHNlbGVjdGlvbkNoYW5nZShldnQ6IElTZWxlY3Rpb25DaGFuZ2VFdmVudEFyZ3MpIHtcclxuICAgIHRoaXMuX3VuaGlnaGxpZ2h0KCk7XHJcbiAgICBpZiAoZXZ0Lm5ld1ZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBsZXQgbm9kZSA9IGV2dC5uZXdWYWx1ZVswXSBhcyBOb2RlTW9kZWw7XHJcblxyXG4gICAgICBjb25zdCB7IGluZGljYXRvciwgcGFyZW50SWQgfSA9IG5vZGUuYWRkSW5mbyBhcyBOb2RlSW5mbyB8fCB7fTtcclxuXHJcbiAgICAgIGlmIChpbmRpY2F0b3IpIHtcclxuICAgICAgICBub2RlID0gdGhpcy5kaWFncmFtLmdldE5vZGVPYmplY3QocGFyZW50SWQpO1xyXG4gICAgICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3QoW25vZGVdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBpZHMgPSAoKG5vZGUgYXMgYW55KS5pbkVkZ2VzKS5jb25jYXQoKG5vZGUgYXMgYW55KS5vdXRFZGdlcyk7XHJcbiAgICAgICAgaWRzLnB1c2gobm9kZS5pZCk7XHJcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0KGlkcyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kaWFncmFtLmRhdGFCaW5kKCk7XHJcbiAgICAgIHRoaXMuX2luZm8obm9kZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMubm9kZSA9IG51bGw7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIGFzc2lnbihyZWNpcGllbnQ6IFJlY2lwaWVudCkge1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oUmVhc3NpZ25EaWFsb2csIHsgZGF0YTogeyBleGNsdWRlOiBbcmVjaXBpZW50LnVzZXJJZF0gfSB9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUoKG06IFJlYXNzaWduTW9kZWwpID0+IHtcclxuICAgICAgICBtICYmIHRoaXMuX3V0aWxpdHlSZWYuZXhlY3V0ZSh7IGlkOiByZWNpcGllbnQuaWQsIC4uLm0gfSkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCByKTtcclxuICAgICAgICB9LCAoKSA9PlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmZvKG5vZGU6IE5vZGVNb2RlbCk6IHZvaWQge1xyXG4gICAgdGhpcy5ub2RlID0gbm9kZTtcclxuICB9XHJcbiAgcHVibGljIGhpZ2hsaWdodFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy50aW1lbGluZS5kYXRlID0gdGltZTtcclxuICAgIHRoaXMuZGlhZ3JhbS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgdGhpcy5fdW5oaWdobGlnaHQoKTtcclxuICAgIGlmICh0aW1lIDwgdGhpcy50aW1lbGluZS5zdGFydERhdGUgfHwgdGltZSA+IHRoaXMudGltZWxpbmUuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLl9zY29wZSh0aW1lKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRpYWdyYW0ubm9kZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKHRoaXMuZGlhZ3JhbS5ub2Rlc1tpXSk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kaWFncmFtLmNvbm5lY3RvcnMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVDb25uZWN0b3IodGhpcy5kaWFncmFtLmNvbm5lY3RvcnNbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlkcyA9IHRoaXMudGltZWxpbmUubG9nLmZpbHRlcihsID0+IGwubm9kZUlkICYmIGwudGltZSA9PT0gdGltZSkubWFwKGwgPT4gbC5ub2RlSWQpLlxyXG4gICAgICBmaWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSk7XHJcblxyXG4gICAgdGhpcy5faGlnaGxpZ2h0KGlkcyk7XHJcbiAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICB9XHJcblxyXG4gIHBhbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyB8IERpYWdyYW1Db25zdHJhaW50cy5QYW47XHJcbiAgICB0aGlzLmRpYWdyYW0udG9vbCA9IERpYWdyYW1Ub29scy5ab29tUGFuO1xyXG4gIH1cclxuICBjdXJzb3IoKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uY29uc3RyYWludHMgPSB0aGlzLmRpYWdyYW0uY29uc3RyYWludHMgJiB+RGlhZ3JhbUNvbnN0cmFpbnRzLlBhbjtcclxuICAgIHRoaXMuZGlhZ3JhbS50b29sID0gRGlhZ3JhbVRvb2xzLlNpbmdsZVNlbGVjdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0KGlkczogc3RyaW5nW10pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHRoaXMuZGlhZ3JhbS5nZXRPYmplY3QoaWRzW2ldKSBhcyBhbnk7XHJcbiAgICAgIGlmIChvYmouc291cmNlSUQpXHJcbiAgICAgICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID1cclxuICAgICAgICAgIG9iai50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPVxyXG4gICAgICAgICAgb2JqLnRhcmdldERlY29yYXRvci5zdHlsZS5maWxsID0gdGhpcy5fcHJpbWVyeUNvbG9yO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fcHJpbWVyeUNvbG9yO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faGlnaExpZ2h0ZWRJZHMgPSBpZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bmhpZ2hsaWdodCgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHRoaXMuX2hpZ2hMaWdodGVkSWRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHRoaXMuZGlhZ3JhbS5nZXRPYmplY3QodGhpcy5faGlnaExpZ2h0ZWRJZHNbaV0pIGFzIGFueTtcclxuICAgICAgaWYgKG9iai5zb3VyY2VJRClcclxuICAgICAgICB0aGlzLl9kZWNvcmF0ZUNvbm5lY3RvcihvYmopO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKG9iaik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWdoTGlnaHRlZElkcyA9IFtdO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibW9kZVwiPlxyXG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkaWFncmFtJ1wiIGNsYXNzPVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgPG1hdC10b29sYmFyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFuKClcIiBbbWF0VG9vbHRpcF09XCInUGFuJyB8IHRyYW5zbGF0ZVwiPjxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLXBhblwiPjwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImN1cnNvcigpXCIgW21hdFRvb2x0aXBdPVwiJ0N1cnNvcicgfCB0cmFuc2xhdGVcIj48c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1jdXJzb3JcIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm1vZGUgPSBudWxsXCIgW21hdFRvb2x0aXBdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnJlZnJlc2g8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZ3VpZGUoKVwiIFttYXRUb29sdGlwXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5oZWxwX291dGxpbmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtdG9vbGJhcj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBmeEZsZXg+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZVwiICpuZ0lmPVwidGltZWxpbmU/Lml0ZW1zLmxlbmd0aCA+IDFcIiBkYXRhLWhlbHA9XCJ0aW1lbGluZVwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRhdGUgb2YgdGltZWxpbmUuaXRlbXM7IGxldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiaXRlbVwiXHJcbiAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRhdGUudGltZSA9PT0gdGltZWxpbmUuZGF0ZVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwiaGlnaGxpZ2h0VGltZShkYXRlLnRpbWUpXCIgbWF0UmlwcGxlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdCB8fCAhdGltZWxpbmUuZXN0aW1hdGU7IGVsc2UgZXN0aW1hdGVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndob1wiPlxyXG4gICAgICAgICAgICAgICAge3tkYXRlLnVzZXJJZCB8IHVzZXJOYW1lIHwgYXN5bmMgfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7e2RhdGUudGltZSB8IGFtRGF0ZUZvcm1hdDogJ01NTSBEbyBIOm1tJyB9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmRpY2F0b3ItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmRpY2F0b3JcIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJpemRvYy1kb2N1bWVudC10cmFjZS1lbGVtZW50IFt0aW1lbGluZV09XCJ0aW1lbGluZVwiIFtub2RlXT1cIm5vZGVcIiAqbmdJZj1cIm5vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1tb2RlbCAoYXNzaWduKT1cImFzc2lnbigkZXZlbnQpXCI+PC9iaXpkb2MtZG9jdW1lbnQtdHJhY2UtZWxlbWVudD5cclxuICAgICAgPGRpdiBmeEZsZXggI2RpYWdyYW0gZGlyPVwibHRyXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIiBmeEZsZXggZnhMYXlvdXRBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgPGZvcm0+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInNlYXJjaFwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hcIiBkYXRhLWhlbHA9XCJzZWFyY2hcIiB3aWR0aD1cIjQwXCIgW3BsYWNlaG9sZGVyXT1cIidOdW1iZXInfHRyYW5zbGF0ZVwiIC8+XHJcbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZCBvZiBkb2N1bWVudHMkIHwgYXN5bmNcIiBbdmFsdWVdPVwiZFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57e2QubnVtYmVyfX0gfCB7e2Quc3ViamVjdH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4IGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdTd2l0Y2hEZWZhdWx0PjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjZXN0aW1hdGU+XHJcbiAge3snRXN0aW1hdGUnIHwgdHJhbnNsYXRlfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|