@bizdoc/core 1.14.5 → 1.14.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/assets/bizdoc-schema.json +10 -2
- package/karma.conf.js +44 -0
- package/ng-package.json +11 -0
- package/package.json +78 -78
- package/src/icons/pdf.svg +24 -0
- package/src/icons/word.svg +13 -0
- package/src/lib/admin/_admin-theme.scss +6 -0
- 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 +84 -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 +552 -0
- package/src/lib/admin/document-trace/Timeline.ts +45 -0
- package/src/lib/admin/document-trace/_timeline-theme.scss +70 -0
- package/src/lib/admin/document-trace/document-trace.component.html +96 -0
- package/src/lib/admin/document-trace/document-trace.component.scss +16 -0
- package/src/lib/admin/document-trace/document-trace.component.ts +526 -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 +55 -0
- package/src/lib/admin/document-trace/trace-element.component.scss +23 -0
- package/src/lib/admin/document-trace/trace-element.component.ts +139 -0
- package/src/lib/admin/form/form.resolve.service.ts +13 -0
- package/src/lib/admin/form/form.service.ts +49 -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 +129 -0
- package/src/lib/admin/form/workflow/role-node.component.html +40 -0
- package/src/lib/admin/form/workflow/role-node.component.ts +66 -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 +66 -0
- package/src/lib/admin/form/workflow/workflow.component.scss +57 -0
- package/src/lib/admin/form/workflow/workflow.component.ts +438 -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 +68 -0
- package/src/lib/admin/positions/positions.component.html +150 -0
- package/src/lib/admin/positions/positions.component.scss +20 -0
- package/src/lib/admin/positions/positions.component.ts +464 -0
- package/src/lib/admin/profiler/assign.component.html +14 -0
- package/src/lib/admin/profiler/outofoffice.component.html +64 -0
- package/src/lib/admin/profiler/outofoffice.component.ts +146 -0
- package/src/lib/admin/profiler/profiler.component.html +110 -0
- package/src/lib/admin/profiler/profiler.component.scss +23 -0
- package/src/lib/admin/profiler/profiler.component.ts +302 -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 +90 -0
- package/src/lib/bizdoc.module.ts +82 -0
- package/src/lib/browse/_browse-theme.scss +86 -0
- package/src/lib/browse/browse-items.component.html +171 -0
- package/src/lib/browse/browse-items.component.scss +52 -0
- package/src/lib/browse/browse-items.component.ts +460 -0
- package/src/lib/browse/browse.mobile.component.html +33 -0
- package/src/lib/browse/browse.mobile.component.ts +90 -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 +141 -0
- package/src/lib/browse/expanded-item/expanded-item.component.html +38 -0
- package/src/lib/browse/expanded-item/expanded-item.component.scss +35 -0
- package/src/lib/browse/expanded-item/expanded-item.component.ts +339 -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 +156 -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/chat/_chat-theme.scss +95 -0
- package/src/lib/chat/chat-info.ts +74 -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 +14 -0
- package/src/lib/chat/conversation.component.ts +186 -0
- package/src/lib/chat/conversation.pane.component.ts +55 -0
- package/src/lib/compose/_compose-theme.scss +63 -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 +72 -0
- package/src/lib/compose/action/action-ref.ts +19 -0
- package/src/lib/compose/action/action.base.ts +58 -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 +57 -0
- package/src/lib/compose/action/action.pane.dialog.exp.ts +77 -0
- package/src/lib/compose/action/action.pane.dialog.html +12 -0
- package/src/lib/compose/action/assign-action.component.html +23 -0
- package/src/lib/compose/action/assign-action.component.ts +57 -0
- package/src/lib/compose/action/moveto-action.component.html +33 -0
- package/src/lib/compose/action/moveto-action.component.ts +77 -0
- package/src/lib/compose/action/return-action.component.html +13 -0
- package/src/lib/compose/action/return-action.component.ts +42 -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 +114 -0
- package/src/lib/compose/attachments/preview/attachment-preview.component.html +17 -0
- package/src/lib/compose/attachments/preview/attachment-preview.component.scss +36 -0
- package/src/lib/compose/attachments/preview/attachment-preview.component.ts +140 -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 +67 -0
- package/src/lib/compose/compose.mobile.component.scss +14 -0
- package/src/lib/compose/compose.mobile.component.ts +97 -0
- package/src/lib/compose/compose.pane.component.html +68 -0
- package/src/lib/compose/compose.pane.component.scss +6 -0
- package/src/lib/compose/compose.pane.component.ts +188 -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 +41 -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 +84 -0
- package/src/lib/compose/form.component.html +13 -0
- package/src/lib/compose/form.component.ts +456 -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 +13 -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 +19 -0
- package/src/lib/compose/trace/flow.component.scss +7 -0
- package/src/lib/compose/trace/flow.component.ts +747 -0
- package/src/lib/compose/trace/people.component.ts +33 -0
- package/src/lib/compose/trace/trace.base.ts +72 -0
- package/src/lib/compose/trace/trace.component.html +57 -0
- package/src/lib/compose/trace/trace.component.scss +21 -0
- package/src/lib/compose/trace/trace.component.ts +388 -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 +47 -0
- package/src/lib/compose/version-compare/_compare-theme.scss +147 -0
- package/src/lib/compose/version-compare/version-compare.component.ts +49 -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 +53 -0
- package/src/lib/core/NgComponentOutlet.ts +31 -0
- package/src/lib/core/account.service.ts +30 -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 +207 -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 +43 -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 +67 -0
- package/src/lib/core/configuration.ts +124 -0
- package/src/lib/core/controls/_daterange-theme.scss +16 -0
- package/src/lib/core/controls/address.input.ts +173 -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 +194 -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 +92 -0
- package/src/lib/core/controls/file.input.html +50 -0
- package/src/lib/core/controls/file.input.scss +41 -0
- package/src/lib/core/controls/file.input.ts +400 -0
- package/src/lib/core/controls/select.input.ts +210 -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 +80 -0
- package/src/lib/core/decorators.ts +56 -0
- package/src/lib/core/firebase.service.ts +55 -0
- package/src/lib/core/functions.ts +246 -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 +222 -0
- package/src/lib/core/guide/guide.service.ts +108 -0
- package/src/lib/core/guide/help-tip.component.ts +43 -0
- package/src/lib/core/http.interceptor.ts +80 -0
- package/src/lib/core/hub.service.ts +202 -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 +46 -0
- package/src/lib/core/info/document-info.service.ts +15 -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/checkbox.scss +13 -0
- package/src/lib/core/layout/checkbox.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/file.field.ts +27 -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 +189 -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 +471 -0
- package/src/lib/core/models.ts +685 -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/calendar.pipe.ts +84 -0
- package/src/lib/core/pipes/date-format.pipe.ts +12 -0
- package/src/lib/core/pipes/daterange.pipe.ts +45 -0
- package/src/lib/core/pipes/difference.pipe.ts +9 -0
- package/src/lib/core/pipes/duration-format.pipe.ts +42 -0
- package/src/lib/core/pipes/duration.pipe.ts +13 -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/time-ago.pipe.ts +59 -0
- package/src/lib/core/pipes/translate.pipe.ts +22 -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 +363 -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 +156 -0
- package/src/lib/core/popup/tooltip.directive.ts +58 -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 +31 -0
- package/src/lib/core/session.service.ts +265 -0
- package/src/lib/core/slots/_slots-theme.scss +139 -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 +188 -0
- package/src/lib/core/slots/router.directive.ts +53 -0
- package/src/lib/core/slots/router.service.ts +53 -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 +68 -0
- package/src/lib/core/slots/slots.component.scss +163 -0
- package/src/lib/core/slots/slots.component.ts +1260 -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 +41 -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 +130 -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 +128 -0
- package/src/lib/core/translations.ts +1138 -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 +264 -0
- package/src/lib/cube/chart/chart.component.html +32 -0
- package/src/lib/cube/chart/chart.component.ts +344 -0
- package/src/lib/cube/cube-info.service.ts +135 -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.html +66 -0
- package/src/lib/cube/cube-view.component.ts +186 -0
- package/src/lib/cube/cube.service.ts +495 -0
- package/src/lib/cube/declarations.ts +24 -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 +25 -0
- package/src/lib/cube/explore/explore-items.component.scss +7 -0
- package/src/lib/cube/explore/explore-items.component.ts +185 -0
- package/src/lib/cube/explore/explore.pane.component.html +12 -0
- package/src/lib/cube/explore/explore.pane.component.ts +78 -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 +70 -0
- package/src/lib/cube/filter/filter-tags.component.html +11 -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 +116 -0
- package/src/lib/cube/grid/grid.component.html +29 -0
- package/src/lib/cube/grid/grid.component.scss +10 -0
- package/src/lib/cube/grid/grid.component.ts +223 -0
- package/src/lib/cube/grid/spreadsheet.component.ts +382 -0
- package/src/lib/cube/matrix/_matrix.theme.scss +86 -0
- package/src/lib/cube/matrix/matrix.base.ts +149 -0
- package/src/lib/cube/matrix/matrix.mobile.component.html +28 -0
- package/src/lib/cube/matrix/matrix.mobile.component.ts +60 -0
- package/src/lib/cube/matrix/matrix.pane.component.html +34 -0
- package/src/lib/cube/matrix/matrix.pane.component.scss +10 -0
- package/src/lib/cube/matrix/matrix.pane.component.ts +83 -0
- package/src/lib/cube/matrix/popup.component.html +32 -0
- package/src/lib/cube/matrix/popup.component.scss +7 -0
- package/src/lib/cube/matrix/popup.component.ts +55 -0
- package/src/lib/cube/matrix/table.component.html +46 -0
- package/src/lib/cube/matrix/table.component.scss +25 -0
- package/src/lib/cube/matrix/table.component.ts +517 -0
- package/src/lib/cube/parallel/item.ts +47 -0
- package/src/lib/cube/parallel/parallel.component.html +22 -0
- package/src/lib/cube/parallel/parallel.component.scss +13 -0
- package/src/lib/cube/parallel/parallel.component.ts +166 -0
- package/src/lib/cube/pivot/pivot.component.html +14 -0
- package/src/lib/cube/pivot/pivot.component.ts +518 -0
- package/src/lib/cube/sum/_sum.theme.scss +63 -0
- package/src/lib/cube/sum/sum.component.html +60 -0
- package/src/lib/cube/sum/sum.component.scss +94 -0
- package/src/lib/cube/sum/sum.component.ts +437 -0
- package/src/lib/cube/view-base.ts +82 -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 +116 -0
- package/src/lib/cube/view.pane.component.html +24 -0
- package/src/lib/cube/view.pane.component.scss +12 -0
- package/src/lib/cube/view.pane.component.ts +80 -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/compare.widget.ts +219 -0
- package/src/lib/dashboard/cube/cube-analysis.base.ts +113 -0
- package/src/lib/dashboard/cube/cube-analysis.widget.ts +44 -0
- package/src/lib/dashboard/cube/cube-chart.widget.html +7 -0
- package/src/lib/dashboard/cube/cube-chart.widget.ts +144 -0
- package/src/lib/dashboard/cube/documents.widget.html +19 -0
- package/src/lib/dashboard/cube/documents.widget.ts +57 -0
- package/src/lib/dashboard/cube/filter/filter.component.html +3 -0
- package/src/lib/dashboard/cube/filter/filter.component.ts +53 -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 +53 -0
- package/src/lib/dashboard/dashboard.pane.component.ts +19 -0
- package/src/lib/dashboard/recents/recents.widget.html +32 -0
- package/src/lib/dashboard/recents/recents.widget.scss +9 -0
- package/src/lib/dashboard/recents/recents.widget.ts +89 -0
- package/src/lib/dashboard/score/activity.widget.html +9 -0
- package/src/lib/dashboard/score/activity.widget.ts +175 -0
- package/src/lib/dashboard/score/compare-groups.widget.html +8 -0
- package/src/lib/dashboard/score/compare-groups.widget.ts +212 -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 +31 -0
- package/src/lib/dashboard/score/pending-results.widget.ts +52 -0
- package/src/lib/dashboard/score/personal-score.widget.html +18 -0
- package/src/lib/dashboard/score/personal-score.widget.ts +229 -0
- package/src/lib/dashboard/widget-item.component.ts +92 -0
- package/src/lib/dashboard/widget-ref.ts +20 -0
- package/src/lib/desktop.module.ts +98 -0
- package/src/lib/home/_home-theme.scss +174 -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 +100 -0
- package/src/lib/home/home.desktop.component.html +92 -0
- package/src/lib/home/home.desktop.component.scss +66 -0
- package/src/lib/home/home.desktop.component.ts +211 -0
- package/src/lib/home/home.mobile.component.html +81 -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-theme.scss +11 -0
- package/src/lib/home/options/options.component.html +41 -0
- package/src/lib/home/options/options.component.scss +16 -0
- package/src/lib/home/options/options.component.ts +95 -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 +87 -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/mobile.module.ts +39 -0
- package/src/lib/modules/chart.module.ts +53 -0
- package/src/lib/modules/circular-gauge.module.ts +10 -0
- package/src/lib/modules/date.adapter.ts +31 -0
- package/src/lib/modules/datepicker.intl.ts +35 -0
- package/src/lib/modules/dayjs.module.ts +32 -0
- package/src/lib/modules/diagram.module.ts +25 -0
- package/src/lib/modules/gantt.module.ts +12 -0
- package/src/lib/modules/grid.module.ts +16 -0
- package/src/lib/modules/material.module.ts +104 -0
- package/src/lib/modules/paginator.intl.ts +16 -0
- package/src/lib/modules/pivot.module.ts +23 -0
- package/src/lib/modules/schedule.module.ts +12 -0
- package/src/lib/modules/spreadsheet.module.ts +21 -0
- package/src/lib/modules/stepper.intl.ts +12 -0
- package/src/lib/modules/texteditor.module.ts +16 -0
- package/src/lib/notifications/filter.component.html +6 -0
- package/src/lib/notifications/filter.component.ts +16 -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 +49 -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/types/commented.notification.html +14 -0
- package/src/lib/notifications/types/commented.notification.ts +51 -0
- package/src/lib/notifications/types/cube-anomaly.notification.ts +51 -0
- package/src/lib/notifications/types/escalated.notification.ts +36 -0
- package/src/lib/notifications/types/liked.notification.ts +49 -0
- package/src/lib/notifications/types/long-running-task.notification.ts +23 -0
- package/src/lib/notifications/types/notification-base.ts +37 -0
- package/src/lib/notifications/types/nudge.notification.ts +32 -0
- package/src/lib/notifications/types/state-changed.notification.ts +27 -0
- package/src/lib/notifications/types/tagged.notification.ts +46 -0
- package/src/lib/notifications/types/text.notification.ts +13 -0
- package/src/lib/notifications/types/upcoming-event.notification.ts +25 -0
- package/src/lib/options/options.component.html +148 -0
- package/src/lib/options/options.component.scss +19 -0
- package/src/lib/options/options.component.ts +262 -0
- package/src/lib/options/options.service.ts +30 -0
- package/src/lib/reports/arguments-component.ts +73 -0
- package/src/lib/reports/cube/documents.component.ts +50 -0
- package/src/lib/reports/cube/grid-documents.component.html +25 -0
- package/src/lib/reports/cube/grid-documents.component.ts +67 -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 +46 -0
- package/src/lib/reports/cube/usage-args.component.html +3 -0
- package/src/lib/reports/cube/usage-args.component.ts +55 -0
- package/src/lib/reports/cube/usage-base.ts +113 -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 +386 -0
- package/src/lib/reports/cube/usage-pivot.component.html +19 -0
- package/src/lib/reports/cube/usage-pivot.component.ts +266 -0
- package/src/lib/reports/cube/usage.component.ts +34 -0
- package/src/lib/reports/report-ref.ts +41 -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 +159 -0
- package/src/lib/reports/report.mobile.component.html +17 -0
- package/src/lib/reports/report.mobile.component.scss +7 -0
- package/src/lib/reports/report.mobile.component.ts +117 -0
- package/src/lib/reports/report.pane.component.html +9 -0
- package/src/lib/reports/report.pane.component.scss +9 -0
- package/src/lib/reports/report.pane.component.ts +88 -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 +115 -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 +196 -0
- package/src/lib/routes.mobile.ts +70 -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 +374 -0
- package/src/lib/system.module.ts +77 -0
- package/src/lib/views/_views.theme.scss +18 -0
- package/src/lib/views/cube/chart.component.html +24 -0
- package/src/lib/views/cube/chart.component.ts +88 -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 +82 -0
- package/src/lib/views/cube/filter.component.exp.ts +66 -0
- package/src/lib/views/cube/filter.component.html +25 -0
- package/src/lib/views/cube/matrix.component.html +42 -0
- package/src/lib/views/cube/matrix.component.scss +3 -0
- package/src/lib/views/cube/matrix.component.ts +106 -0
- package/src/lib/views/cube/parallel.component.html +10 -0
- package/src/lib/views/cube/parallel.component.scss +13 -0
- package/src/lib/views/cube/parallel.component.ts +63 -0
- package/src/lib/views/cube/pivot.component.html +8 -0
- package/src/lib/views/cube/pivot.component.ts +62 -0
- package/src/lib/views/cube/sum.component.html +30 -0
- package/src/lib/views/cube/sum.component.scss +3 -0
- package/src/lib/views/cube/sum.component.ts +71 -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 +103 -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 +33 -0
- package/src/lib/views/views.component.ts +29 -0
- package/src/lib/views/views.mobile.component.ts +19 -0
- package/src/lib/views/views.pane.component.ts +33 -0
- package/src/polyfills.ts +81 -0
- package/src/public-api.ts +149 -0
- package/src/styles/_app.scss +317 -0
- package/src/styles/_emoji-mart.scss +504 -0
- package/src/styles/_syncfusion-base-definitions.scss +63 -0
- package/src/styles/_syncfusion-dark-definitions.scss +21 -0
- package/src/styles/_syncfusion-dark.scss +2 -0
- package/src/styles/_syncfusion-icons.scss +57 -0
- package/src/styles/_syncfusion-light-definitions.scss +23 -0
- package/src/styles/_syncfusion-light.scss +2 -0
- package/src/styles/_syncfusion.scss +21 -0
- package/src/styles/_xslt.scss +377 -0
- package/src/styles/brown.scss +14 -0
- package/src/styles/build-xslt.ps1 +2 -0
- package/src/styles/build.ps1 +26 -0
- package/src/styles/dark.scss +13 -0
- package/src/styles/deep-purple-light-blue.scss +20 -0
- package/src/styles/deep-purple-teal.scss +20 -0
- package/src/styles/default.scss +21 -0
- package/src/styles/diagram-icons.eot +0 -0
- package/src/styles/diagram-icons.ttf +0 -0
- package/src/styles/green.scss +13 -0
- package/src/styles/indigo.scss +13 -0
- package/src/styles/xslt.scss +21 -0
- package/src/styles/xslt.scss.map +1 -0
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +26 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +18 -0
- package/bizdoc-core.d.ts +0 -5
- package/esm2020/bizdoc-core.mjs +0 -5
- package/esm2020/lib/admin/admin-dismiss.service.mjs +0 -22
- package/esm2020/lib/admin/admin-menu.component.mjs +0 -27
- package/esm2020/lib/admin/core/ace.input.mjs +0 -147
- package/esm2020/lib/admin/core/color-picker.input.mjs +0 -208
- package/esm2020/lib/admin/core/search.input.mjs +0 -43
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +0 -558
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +0 -532
- package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +0 -40
- package/esm2020/lib/admin/document-trace/timeline.mjs +0 -2
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +0 -123
- package/esm2020/lib/admin/form/form.resolve.service.mjs +0 -17
- package/esm2020/lib/admin/form/form.service.mjs +0 -43
- package/esm2020/lib/admin/form/workflow/node-ref.mjs +0 -8
- package/esm2020/lib/admin/form/workflow/node.component.mjs +0 -128
- package/esm2020/lib/admin/form/workflow/role-node.component.mjs +0 -90
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +0 -447
- package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +0 -161
- package/esm2020/lib/admin/patterns/patterns.component.mjs +0 -179
- package/esm2020/lib/admin/permissions/permissions.component.mjs +0 -97
- package/esm2020/lib/admin/positions/positions-popup.component.mjs +0 -74
- package/esm2020/lib/admin/positions/positions.component.mjs +0 -460
- package/esm2020/lib/admin/profiler/outofoffice.component.mjs +0 -155
- package/esm2020/lib/admin/profiler/profiler.component.mjs +0 -289
- package/esm2020/lib/admin/utility-ref.mjs +0 -38
- package/esm2020/lib/admin/utility-wrapper.component.mjs +0 -51
- package/esm2020/lib/admin/utility.pane.component.mjs +0 -51
- package/esm2020/lib/app.component.mjs +0 -90
- package/esm2020/lib/bizdoc.module.mjs +0 -101
- package/esm2020/lib/browse/browse-items.component.mjs +0 -481
- package/esm2020/lib/browse/browse.mobile.component.mjs +0 -101
- package/esm2020/lib/browse/browse.pane.component.mjs +0 -149
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +0 -316
- package/esm2020/lib/browse/filter/filter.component.mjs +0 -164
- package/esm2020/lib/browse/folders-menu.component.mjs +0 -51
- package/esm2020/lib/chat/chat-info.mjs +0 -68
- package/esm2020/lib/chat/chat.mobile.component.mjs +0 -26
- package/esm2020/lib/chat/chat.service.mjs +0 -122
- package/esm2020/lib/chat/contacts.component.mjs +0 -103
- package/esm2020/lib/chat/contacts.pane.component.mjs +0 -29
- package/esm2020/lib/chat/conversation.component.mjs +0 -193
- package/esm2020/lib/chat/conversation.pane.component.mjs +0 -53
- package/esm2020/lib/compose/action/action-picker.component.mjs +0 -84
- package/esm2020/lib/compose/action/action-ref.mjs +0 -19
- package/esm2020/lib/compose/action/action.base.mjs +0 -49
- package/esm2020/lib/compose/action/action.dialog.mjs +0 -61
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +0 -72
- package/esm2020/lib/compose/action/assign-action.component.mjs +0 -70
- package/esm2020/lib/compose/action/moveto-action.component.mjs +0 -91
- package/esm2020/lib/compose/action/return-action.component.mjs +0 -52
- package/esm2020/lib/compose/attachments/attachments.component.mjs +0 -127
- package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +0 -155
- package/esm2020/lib/compose/attachments/progress-button.directive.mjs +0 -25
- package/esm2020/lib/compose/can-deactivate-changes.service.mjs +0 -27
- package/esm2020/lib/compose/comments/Comments.pane.component.mjs +0 -49
- package/esm2020/lib/compose/comments/comment.component.mjs +0 -186
- package/esm2020/lib/compose/comments/comments.component.mjs +0 -227
- package/esm2020/lib/compose/comments/edit-comment.component.mjs +0 -32
- package/esm2020/lib/compose/comments/edits.component.mjs +0 -30
- package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +0 -63
- package/esm2020/lib/compose/comments/votes.component.mjs +0 -42
- package/esm2020/lib/compose/compose-resolve.service.mjs +0 -55
- package/esm2020/lib/compose/compose.mobile.component.mjs +0 -112
- package/esm2020/lib/compose/compose.pane.component.mjs +0 -204
- package/esm2020/lib/compose/copy/copy.dialog.mjs +0 -46
- package/esm2020/lib/compose/dismiss.service.mjs +0 -25
- package/esm2020/lib/compose/document-resolver.service.mjs +0 -17
- package/esm2020/lib/compose/document.component.mjs +0 -45
- package/esm2020/lib/compose/document.mobile.component.mjs +0 -22
- package/esm2020/lib/compose/document.pane.component.mjs +0 -26
- package/esm2020/lib/compose/events/events.component.mjs +0 -30
- package/esm2020/lib/compose/form-ref.mjs +0 -46
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +0 -88
- package/esm2020/lib/compose/form.component.mjs +0 -458
- package/esm2020/lib/compose/new-menu.component.mjs +0 -104
- package/esm2020/lib/compose/privilage.directive.mjs +0 -64
- package/esm2020/lib/compose/recipient-resolver.service.mjs +0 -18
- package/esm2020/lib/compose/save-changes.dialog.mjs +0 -18
- package/esm2020/lib/compose/state.component.mjs +0 -37
- package/esm2020/lib/compose/tag/tags.component.mjs +0 -91
- package/esm2020/lib/compose/trace/flow.component.mjs +0 -700
- package/esm2020/lib/compose/trace/people.component.mjs +0 -35
- package/esm2020/lib/compose/trace/trace.base.mjs +0 -71
- package/esm2020/lib/compose/trace/trace.component.mjs +0 -359
- package/esm2020/lib/compose/trace/trace.pane.component.mjs +0 -52
- package/esm2020/lib/compose/version-compare/version-compare.component.mjs +0 -53
- package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +0 -344
- package/esm2020/lib/compose/version-compare/version.pane.component.mjs +0 -56
- package/esm2020/lib/core/NgComponentOutlet.mjs +0 -38
- package/esm2020/lib/core/account.service.mjs +0 -37
- package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +0 -17
- package/esm2020/lib/core/animations.mjs +0 -156
- package/esm2020/lib/core/authentication.mjs +0 -3
- package/esm2020/lib/core/avatar/avatar.component.mjs +0 -103
- package/esm2020/lib/core/base.mjs +0 -2
- package/esm2020/lib/core/colors.mjs +0 -322
- package/esm2020/lib/core/component-factory-resolver.mjs +0 -64
- package/esm2020/lib/core/configuration.mjs +0 -17
- package/esm2020/lib/core/controls/address.input.mjs +0 -206
- package/esm2020/lib/core/controls/auto-complete.input.mjs +0 -256
- package/esm2020/lib/core/controls/combination-picker-body.mjs +0 -173
- package/esm2020/lib/core/controls/combination-picker.mjs +0 -277
- package/esm2020/lib/core/controls/combination-pool.mjs +0 -105
- package/esm2020/lib/core/controls/file.input.mjs +0 -420
- package/esm2020/lib/core/controls/select.input.mjs +0 -237
- package/esm2020/lib/core/controls/time-picker.mjs +0 -196
- package/esm2020/lib/core/controls/timespan.input.mjs +0 -207
- package/esm2020/lib/core/datasource.service.mjs +0 -75
- package/esm2020/lib/core/decorators.mjs +0 -46
- package/esm2020/lib/core/firebase.service.mjs +0 -50
- package/esm2020/lib/core/functions.mjs +0 -205
- package/esm2020/lib/core/guide/guide.component.mjs +0 -219
- package/esm2020/lib/core/guide/guide.service.mjs +0 -118
- package/esm2020/lib/core/http.interceptor.mjs +0 -79
- package/esm2020/lib/core/hub.service.mjs +0 -108
- package/esm2020/lib/core/identity/identity.component.mjs +0 -67
- package/esm2020/lib/core/info/attachment-info.service.mjs +0 -51
- package/esm2020/lib/core/info/document-info.service.mjs +0 -21
- package/esm2020/lib/core/info/location-info.component.mjs +0 -61
- package/esm2020/lib/core/info/map-info.mjs +0 -40
- package/esm2020/lib/core/layout/autocomplete.field.mjs +0 -60
- package/esm2020/lib/core/layout/checkbox.field.mjs +0 -41
- package/esm2020/lib/core/layout/checkbox.mjs +0 -35
- package/esm2020/lib/core/layout/date-range.field.mjs +0 -53
- package/esm2020/lib/core/layout/date.field.mjs +0 -52
- package/esm2020/lib/core/layout/expression.field.mjs +0 -51
- package/esm2020/lib/core/layout/file.field.mjs +0 -47
- package/esm2020/lib/core/layout/html.field.mjs +0 -48
- package/esm2020/lib/core/layout/input.base.mjs +0 -11
- package/esm2020/lib/core/layout/input.field.mjs +0 -64
- package/esm2020/lib/core/layout/layout.component.mjs +0 -196
- package/esm2020/lib/core/layout/numeric.field.mjs +0 -47
- package/esm2020/lib/core/layout/select.field.mjs +0 -82
- package/esm2020/lib/core/layout/switch.field.mjs +0 -41
- package/esm2020/lib/core/layout/textarea.field.mjs +0 -42
- package/esm2020/lib/core/layout/timespan.field.mjs +0 -50
- package/esm2020/lib/core/lottie-animation.mjs +0 -46
- package/esm2020/lib/core/mailbox.service.mjs +0 -410
- package/esm2020/lib/core/models.mjs +0 -40
- package/esm2020/lib/core/none.component.mjs +0 -40
- package/esm2020/lib/core/pipes/action.pipe.mjs +0 -25
- package/esm2020/lib/core/pipes/calendar.pipe.mjs +0 -72
- package/esm2020/lib/core/pipes/date-format.pipe.mjs +0 -19
- package/esm2020/lib/core/pipes/daterange.pipe.mjs +0 -62
- package/esm2020/lib/core/pipes/difference.pipe.mjs +0 -15
- package/esm2020/lib/core/pipes/duration-format.pipe.mjs +0 -48
- package/esm2020/lib/core/pipes/duration.pipe.mjs +0 -19
- package/esm2020/lib/core/pipes/form.pipe.mjs +0 -25
- package/esm2020/lib/core/pipes/join.pipe.mjs +0 -18
- package/esm2020/lib/core/pipes/role.pipe.mjs +0 -25
- package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +0 -18
- package/esm2020/lib/core/pipes/sort.pipe.mjs +0 -48
- package/esm2020/lib/core/pipes/state.pipe.mjs +0 -25
- package/esm2020/lib/core/pipes/time-ago.pipe.mjs +0 -66
- package/esm2020/lib/core/pipes/translate.pipe.mjs +0 -38
- package/esm2020/lib/core/pipes/type-value.pipe.mjs +0 -42
- package/esm2020/lib/core/pipes/user-name.pipe.mjs +0 -21
- package/esm2020/lib/core/popup/popup-ref.mjs +0 -20
- package/esm2020/lib/core/popup/popup.component.mjs +0 -37
- package/esm2020/lib/core/popup/popup.service.mjs +0 -148
- package/esm2020/lib/core/popup/tooltip.directive.mjs +0 -82
- package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +0 -29
- package/esm2020/lib/core/prompt/mask/mask.component.mjs +0 -21
- package/esm2020/lib/core/prompt.service.mjs +0 -86
- package/esm2020/lib/core/router.mjs +0 -35
- package/esm2020/lib/core/session.service.mjs +0 -256
- package/esm2020/lib/core/slots/pane-ref.mjs +0 -146
- package/esm2020/lib/core/slots/router.directive.mjs +0 -70
- package/esm2020/lib/core/slots/router.service.mjs +0 -33
- package/esm2020/lib/core/slots/slots.component.mjs +0 -1105
- package/esm2020/lib/core/tagging/documents.component.mjs +0 -25
- package/esm2020/lib/core/tagging/edit-input.component.mjs +0 -233
- package/esm2020/lib/core/tagging/emoji.component.mjs +0 -35
- package/esm2020/lib/core/tagging/tagging-item.directive.mjs +0 -39
- package/esm2020/lib/core/tagging/tagging.component-base.mjs +0 -29
- package/esm2020/lib/core/tagging/tagging.directive.mjs +0 -138
- package/esm2020/lib/core/tagging/tagging.pipe.mjs +0 -72
- package/esm2020/lib/core/tagging/users.component.mjs +0 -32
- package/esm2020/lib/core/translate.service.mjs +0 -124
- package/esm2020/lib/core/translations.mjs +0 -1135
- package/esm2020/lib/core/window-title.service.mjs +0 -53
- package/esm2020/lib/cube/accum/accum.component.mjs +0 -258
- package/esm2020/lib/cube/chart/chart.component.mjs +0 -341
- package/esm2020/lib/cube/cube-info.service.mjs +0 -100
- package/esm2020/lib/cube/cube-menu.component.mjs +0 -27
- package/esm2020/lib/cube/cube-view.component.mjs +0 -186
- package/esm2020/lib/cube/cube.service.mjs +0 -418
- package/esm2020/lib/cube/declarations.mjs +0 -2
- package/esm2020/lib/cube/explore/document-item.component.mjs +0 -38
- package/esm2020/lib/cube/explore/explore-item.component.mjs +0 -27
- package/esm2020/lib/cube/explore/explore-items.component.mjs +0 -186
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +0 -83
- package/esm2020/lib/cube/explore/item-resolver.service.mjs +0 -32
- package/esm2020/lib/cube/explore/item.pane.component.mjs +0 -23
- package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +0 -75
- package/esm2020/lib/cube/filter/filter.component.mjs +0 -137
- package/esm2020/lib/cube/grid/grid.component.mjs +0 -218
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +0 -367
- package/esm2020/lib/cube/matrix/matrix.base.mjs +0 -127
- package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +0 -63
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +0 -76
- package/esm2020/lib/cube/matrix/popup.component.mjs +0 -67
- package/esm2020/lib/cube/matrix/table.component.mjs +0 -493
- package/esm2020/lib/cube/parallel/item.mjs +0 -41
- package/esm2020/lib/cube/parallel/parallel.component.mjs +0 -159
- package/esm2020/lib/cube/pivot/pivot.component.mjs +0 -507
- package/esm2020/lib/cube/sum/sum.component.mjs +0 -404
- package/esm2020/lib/cube/view-base.mjs +0 -79
- package/esm2020/lib/cube/view.mobile.component.mjs +0 -127
- package/esm2020/lib/cube/view.pane.component.mjs +0 -88
- package/esm2020/lib/dashboard/actions/actions.widget.mjs +0 -126
- package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +0 -145
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +0 -215
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +0 -90
- package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +0 -53
- package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +0 -144
- package/esm2020/lib/dashboard/cube/documents.widget.mjs +0 -64
- package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +0 -61
- package/esm2020/lib/dashboard/dashboard.component.mjs +0 -47
- package/esm2020/lib/dashboard/dashboard.pane.component.mjs +0 -24
- package/esm2020/lib/dashboard/recents/recents.widget.mjs +0 -98
- package/esm2020/lib/dashboard/score/activity.widget.mjs +0 -173
- package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +0 -206
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +0 -253
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +0 -60
- package/esm2020/lib/dashboard/score/personal-score.widget.mjs +0 -223
- package/esm2020/lib/dashboard/widget-item.component.mjs +0 -89
- package/esm2020/lib/dashboard/widget-ref.mjs +0 -18
- package/esm2020/lib/desktop.module.mjs +0 -144
- package/esm2020/lib/home/about/about.dialog.mjs +0 -26
- package/esm2020/lib/home/home-base.component.mjs +0 -91
- package/esm2020/lib/home/home.desktop.component.mjs +0 -221
- package/esm2020/lib/home/home.mobile.component.mjs +0 -116
- package/esm2020/lib/home/notifications/notifications.component.mjs +0 -67
- package/esm2020/lib/home/options/options.component.mjs +0 -94
- package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +0 -38
- package/esm2020/lib/home/search.service.mjs +0 -75
- package/esm2020/lib/home/sign/sign.component.mjs +0 -54
- package/esm2020/lib/home/tools.component.mjs +0 -82
- package/esm2020/lib/impersonate/impersonate.component.mjs +0 -65
- package/esm2020/lib/mobile.module.mjs +0 -59
- package/esm2020/lib/modules/chart.module.mjs +0 -39
- package/esm2020/lib/modules/circular-gauge.module.mjs +0 -17
- package/esm2020/lib/modules/date.adapter.mjs +0 -23
- package/esm2020/lib/modules/datepicker.intl.mjs +0 -39
- package/esm2020/lib/modules/dayjs.module.mjs +0 -41
- package/esm2020/lib/modules/diagram.module.mjs +0 -34
- package/esm2020/lib/modules/gantt.module.mjs +0 -18
- package/esm2020/lib/modules/grid.module.mjs +0 -23
- package/esm2020/lib/modules/material.module.mjs +0 -188
- package/esm2020/lib/modules/paginator.intl.mjs +0 -21
- package/esm2020/lib/modules/pivot.module.mjs +0 -24
- package/esm2020/lib/modules/schedule.module.mjs +0 -21
- package/esm2020/lib/modules/spreadsheet.module.mjs +0 -30
- package/esm2020/lib/modules/stepper.intl.mjs +0 -17
- package/esm2020/lib/modules/texteditor.module.mjs +0 -27
- package/esm2020/lib/notifications/filter.component.mjs +0 -25
- package/esm2020/lib/notifications/notifications-table.component.mjs +0 -106
- package/esm2020/lib/notifications/notifications.component-base.mjs +0 -47
- package/esm2020/lib/notifications/notifications.mobile.component.mjs +0 -20
- package/esm2020/lib/notifications/notifications.pane.component.mjs +0 -23
- package/esm2020/lib/notifications/notifications.service.mjs +0 -71
- package/esm2020/lib/notifications/types/commented.notification.mjs +0 -53
- package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +0 -58
- package/esm2020/lib/notifications/types/escalated.notification.mjs +0 -33
- package/esm2020/lib/notifications/types/liked.notification.mjs +0 -50
- package/esm2020/lib/notifications/types/long-running-task.notification.mjs +0 -31
- package/esm2020/lib/notifications/types/notification-base.mjs +0 -40
- package/esm2020/lib/notifications/types/nudge.notification.mjs +0 -31
- package/esm2020/lib/notifications/types/state-changed.notification.mjs +0 -30
- package/esm2020/lib/notifications/types/tagged.notification.mjs +0 -43
- package/esm2020/lib/notifications/types/text.notification.mjs +0 -20
- package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +0 -36
- package/esm2020/lib/options/options.component.mjs +0 -248
- package/esm2020/lib/options/options.service.mjs +0 -38
- package/esm2020/lib/reports/arguments-component.mjs +0 -83
- package/esm2020/lib/reports/cube/documents.component.mjs +0 -40
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +0 -72
- package/esm2020/lib/reports/cube/table-documents.component.mjs +0 -56
- package/esm2020/lib/reports/cube/usage-args.component.mjs +0 -61
- package/esm2020/lib/reports/cube/usage-base.mjs +0 -79
- package/esm2020/lib/reports/cube/usage-chart.component.mjs +0 -357
- package/esm2020/lib/reports/cube/usage-pivot.component.mjs +0 -256
- package/esm2020/lib/reports/cube/usage.component.mjs +0 -40
- package/esm2020/lib/reports/report-ref.mjs +0 -31
- package/esm2020/lib/reports/report-viewer.component.mjs +0 -151
- package/esm2020/lib/reports/report.mobile.component.mjs +0 -128
- package/esm2020/lib/reports/report.pane.component.mjs +0 -96
- package/esm2020/lib/reports/reports-menu.component.mjs +0 -26
- package/esm2020/lib/reports/substitution/substitution.component.mjs +0 -40
- package/esm2020/lib/reports/table/table-view.component.mjs +0 -41
- package/esm2020/lib/reports/tasks/tasks.component.mjs +0 -95
- package/esm2020/lib/routes.desktop.mjs +0 -197
- package/esm2020/lib/routes.mobile.mjs +0 -69
- package/esm2020/lib/scheduler/schedule.component.mjs +0 -166
- package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +0 -37
- package/esm2020/lib/scheduler/scheduler.pane.component.mjs +0 -53
- package/esm2020/lib/shared.module.mjs +0 -517
- package/esm2020/lib/system.module.mjs +0 -113
- package/esm2020/lib/views/cube/chart.component.mjs +0 -75
- package/esm2020/lib/views/cube/cube-base.mjs +0 -96
- package/esm2020/lib/views/cube/explore.component.mjs +0 -83
- package/esm2020/lib/views/cube/matrix.component.mjs +0 -97
- package/esm2020/lib/views/cube/parallel.component.mjs +0 -54
- package/esm2020/lib/views/cube/pivot.component.mjs +0 -51
- package/esm2020/lib/views/cube/sum.component.mjs +0 -64
- package/esm2020/lib/views/cube/view.component.mjs +0 -102
- package/esm2020/lib/views/document-view-ref.mjs +0 -27
- package/esm2020/lib/views/timeline/timeline.component.exp.mjs +0 -313
- package/esm2020/lib/views/view-item.component.mjs +0 -66
- package/esm2020/lib/views/views.component.mjs +0 -25
- package/esm2020/lib/views/views.mobile.component.mjs +0 -20
- package/esm2020/lib/views/views.pane.component.mjs +0 -31
- package/esm2020/public-api.mjs +0 -143
- package/fesm2015/bizdoc-core.mjs +0 -30636
- package/fesm2015/bizdoc-core.mjs.map +0 -1
- package/fesm2020/bizdoc-core.mjs +0 -30414
- package/fesm2020/bizdoc-core.mjs.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 -116
- package/lib/admin/document-trace/document-trace.component.d.ts +0 -98
- package/lib/admin/document-trace/reassign.dialog.d.ts +0 -22
- package/lib/admin/document-trace/timeline.d.ts +0 -40
- package/lib/admin/document-trace/trace-element.component.d.ts +0 -51
- package/lib/admin/form/form.resolve.service.d.ts +0 -12
- package/lib/admin/form/form.service.d.ts +0 -30
- 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 -77
- 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 -117
- package/lib/admin/profiler/outofoffice.component.d.ts +0 -48
- package/lib/admin/profiler/profiler.component.d.ts +0 -117
- 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 -24
- package/lib/bizdoc.module.d.ts +0 -18
- package/lib/browse/browse-items.component.d.ts +0 -103
- package/lib/browse/browse.mobile.component.d.ts +0 -39
- package/lib/browse/browse.pane.component.d.ts +0 -50
- package/lib/browse/expanded-item/expanded-item.component.d.ts +0 -67
- package/lib/browse/filter/filter.component.d.ts +0 -71
- package/lib/browse/folders-menu.component.d.ts +0 -22
- package/lib/chat/chat-info.d.ts +0 -37
- 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 -16
- 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.base.d.ts +0 -15
- package/lib/compose/action/action.dialog.d.ts +0 -29
- package/lib/compose/action/action.pane.dialog.exp.d.ts +0 -31
- package/lib/compose/action/assign-action.component.d.ts +0 -30
- package/lib/compose/action/moveto-action.component.d.ts +0 -36
- package/lib/compose/action/return-action.component.d.ts +0 -19
- package/lib/compose/attachments/attachments.component.d.ts +0 -35
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts +0 -49
- 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 -42
- package/lib/compose/compose.pane.component.d.ts +0 -58
- 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 -18
- 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 -30
- package/lib/compose/form-selector/form-selector.sheet.d.ts +0 -28
- package/lib/compose/form.component.d.ts +0 -101
- 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 -59
- package/lib/compose/trace/people.component.d.ts +0 -18
- package/lib/compose/trace/trace.base.d.ts +0 -28
- package/lib/compose/trace/trace.component.d.ts +0 -55
- package/lib/compose/trace/trace.pane.component.d.ts +0 -20
- package/lib/compose/version-compare/version-compare.component.d.ts +0 -24
- 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 -26
- 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 -31
- 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 -113
- package/lib/core/controls/address.input.d.ts +0 -65
- 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/file.input.d.ts +0 -99
- package/lib/core/controls/select.input.d.ts +0 -84
- 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 -46
- package/lib/core/decorators.d.ts +0 -17
- package/lib/core/firebase.service.d.ts +0 -17
- package/lib/core/functions.d.ts +0 -54
- package/lib/core/guide/guide.component.d.ts +0 -31
- package/lib/core/guide/guide.service.d.ts +0 -38
- package/lib/core/http.interceptor.d.ts +0 -21
- package/lib/core/hub.service.d.ts +0 -133
- package/lib/core/identity/identity.component.d.ts +0 -29
- package/lib/core/info/attachment-info.service.d.ts +0 -17
- package/lib/core/info/document-info.service.d.ts +0 -14
- 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.d.ts +0 -10
- 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/file.field.d.ts +0 -14
- 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 -33
- 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 -142
- package/lib/core/models.d.ts +0 -652
- package/lib/core/none.component.d.ts +0 -9
- package/lib/core/pipes/action.pipe.d.ts +0 -10
- package/lib/core/pipes/calendar.pipe.d.ts +0 -27
- package/lib/core/pipes/date-format.pipe.d.ts +0 -8
- package/lib/core/pipes/daterange.pipe.d.ts +0 -15
- package/lib/core/pipes/difference.pipe.d.ts +0 -7
- package/lib/core/pipes/duration-format.pipe.d.ts +0 -11
- package/lib/core/pipes/duration.pipe.d.ts +0 -8
- 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/time-ago.pipe.d.ts +0 -16
- package/lib/core/pipes/translate.pipe.d.ts +0 -18
- 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 -24
- package/lib/core/popup/tooltip.directive.d.ts +0 -29
- 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 -82
- package/lib/core/slots/pane-ref.d.ts +0 -136
- package/lib/core/slots/router.directive.d.ts +0 -25
- package/lib/core/slots/router.service.d.ts +0 -37
- package/lib/core/slots/slots.component.d.ts +0 -205
- 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 -31
- package/lib/core/translations.d.ts +0 -1128
- package/lib/core/window-title.service.d.ts +0 -21
- package/lib/cube/accum/accum.component.d.ts +0 -63
- package/lib/cube/chart/chart.component.d.ts +0 -74
- package/lib/cube/cube-info.service.d.ts +0 -77
- package/lib/cube/cube-menu.component.d.ts +0 -12
- package/lib/cube/cube-view.component.d.ts +0 -31
- package/lib/cube/cube.service.d.ts +0 -268
- package/lib/cube/declarations.d.ts +0 -23
- 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 -57
- package/lib/cube/explore/explore.pane.component.d.ts +0 -30
- 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 -31
- package/lib/cube/filter/filter.component.d.ts +0 -44
- package/lib/cube/grid/grid.component.d.ts +0 -59
- package/lib/cube/grid/spreadsheet.component.d.ts +0 -62
- package/lib/cube/matrix/matrix.base.d.ts +0 -72
- package/lib/cube/matrix/matrix.mobile.component.d.ts +0 -22
- package/lib/cube/matrix/matrix.pane.component.d.ts +0 -23
- package/lib/cube/matrix/popup.component.d.ts +0 -21
- package/lib/cube/matrix/table.component.d.ts +0 -100
- package/lib/cube/parallel/item.d.ts +0 -13
- package/lib/cube/parallel/parallel.component.d.ts +0 -52
- package/lib/cube/pivot/pivot.component.d.ts +0 -103
- package/lib/cube/sum/sum.component.d.ts +0 -81
- package/lib/cube/view-base.d.ts +0 -39
- package/lib/cube/view.mobile.component.d.ts +0 -46
- 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/compare.widget.d.ts +0 -53
- package/lib/dashboard/cube/cube-analysis.base.d.ts +0 -59
- 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 -40
- package/lib/dashboard/score/activity.widget.d.ts +0 -50
- package/lib/dashboard/score/compare-groups.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 -27
- 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 -45
- package/lib/home/about/about.dialog.d.ts +0 -14
- package/lib/home/home-base.component.d.ts +0 -34
- package/lib/home/home.desktop.component.d.ts +0 -60
- 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 -46
- package/lib/home/outofoffice/outofoffice.component.d.ts +0 -19
- package/lib/home/search.service.d.ts +0 -23
- 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/mobile.module.d.ts +0 -25
- package/lib/modules/chart.module.d.ts +0 -7
- package/lib/modules/circular-gauge.module.d.ts +0 -7
- package/lib/modules/date.adapter.d.ts +0 -10
- package/lib/modules/datepicker.intl.d.ts +0 -30
- package/lib/modules/dayjs.module.d.ts +0 -6
- package/lib/modules/diagram.module.d.ts +0 -8
- package/lib/modules/gantt.module.d.ts +0 -7
- package/lib/modules/grid.module.d.ts +0 -7
- package/lib/modules/material.module.d.ts +0 -45
- package/lib/modules/paginator.intl.d.ts +0 -14
- package/lib/modules/pivot.module.d.ts +0 -7
- package/lib/modules/schedule.module.d.ts +0 -7
- package/lib/modules/spreadsheet.module.d.ts +0 -8
- package/lib/modules/stepper.intl.d.ts +0 -10
- package/lib/modules/texteditor.module.d.ts +0 -8
- package/lib/notifications/filter.component.d.ts +0 -9
- package/lib/notifications/notifications-table.component.d.ts +0 -32
- package/lib/notifications/notifications.component-base.d.ts +0 -12
- 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/types/commented.notification.d.ts +0 -26
- package/lib/notifications/types/cube-anomaly.notification.d.ts +0 -29
- package/lib/notifications/types/escalated.notification.d.ts +0 -25
- package/lib/notifications/types/liked.notification.d.ts +0 -25
- package/lib/notifications/types/long-running-task.notification.d.ts +0 -21
- package/lib/notifications/types/notification-base.d.ts +0 -20
- package/lib/notifications/types/nudge.notification.d.ts +0 -23
- package/lib/notifications/types/state-changed.notification.d.ts +0 -22
- package/lib/notifications/types/tagged.notification.d.ts +0 -26
- package/lib/notifications/types/text.notification.d.ts +0 -13
- package/lib/notifications/types/upcoming-event.notification.d.ts +0 -20
- package/lib/options/options.component.d.ts +0 -67
- package/lib/options/options.service.d.ts +0 -14
- package/lib/reports/arguments-component.d.ts +0 -27
- package/lib/reports/cube/documents.component.d.ts +0 -34
- package/lib/reports/cube/grid-documents.component.d.ts +0 -28
- package/lib/reports/cube/table-documents.component.d.ts +0 -28
- package/lib/reports/cube/usage-args.component.d.ts +0 -21
- package/lib/reports/cube/usage-base.d.ts +0 -72
- package/lib/reports/cube/usage-chart.component.d.ts +0 -62
- package/lib/reports/cube/usage-pivot.component.d.ts +0 -66
- package/lib/reports/cube/usage.component.d.ts +0 -16
- package/lib/reports/report-ref.d.ts +0 -27
- package/lib/reports/report-viewer.component.d.ts +0 -47
- package/lib/reports/report.mobile.component.d.ts +0 -48
- package/lib/reports/report.pane.component.d.ts +0 -37
- 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/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 -191
- package/lib/system.module.d.ts +0 -34
- package/lib/views/cube/chart.component.d.ts +0 -39
- package/lib/views/cube/cube-base.d.ts +0 -46
- package/lib/views/cube/explore.component.d.ts +0 -43
- package/lib/views/cube/matrix.component.d.ts +0 -51
- package/lib/views/cube/parallel.component.d.ts +0 -32
- package/lib/views/cube/pivot.component.d.ts +0 -34
- package/lib/views/cube/sum.component.d.ts +0 -33
- package/lib/views/cube/view.component.d.ts +0 -40
- package/lib/views/document-view-ref.d.ts +0 -18
- package/lib/views/timeline/timeline.component.exp.d.ts +0 -66
- package/lib/views/view-item.component.d.ts +0 -26
- package/lib/views/views.component.d.ts +0 -14
- package/lib/views/views.mobile.component.d.ts +0 -10
- package/lib/views/views.pane.component.d.ts +0 -12
- package/public-api.d.ts +0 -145
@@ -1,447 +0,0 @@
|
|
1
|
-
import { Component, ViewChild, HostListener } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
4
|
-
import { DiagramConstraints, SelectorConstraints, ConnectorDrawingTool, NodeConstraints, Diagram, UndoRedo, Node, DiagramTools, ConnectorConstraints, SymbolPalette, BpmnDiagrams, DataBinding, ConnectorEditing, ConnectorBridging, Snapping } from '@syncfusion/ej2-diagrams';
|
5
|
-
import { WorkflowNodeComponent } from './node.component';
|
6
|
-
import { OpenPolicy } from '../../../core/configuration';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "../../../core/prompt.service";
|
9
|
-
import * as i2 from "../form.service";
|
10
|
-
import * as i3 from "../../../core/slots/pane-ref";
|
11
|
-
import * as i4 from "../../../core/slots/router.service";
|
12
|
-
import * as i5 from "../../../core/session.service";
|
13
|
-
import * as i6 from "../../../core/translate.service";
|
14
|
-
import * as i7 from "@angular/material/toolbar";
|
15
|
-
import * as i8 from "@angular/material/button";
|
16
|
-
import * as i9 from "@angular/material/icon";
|
17
|
-
import * as i10 from "@angular/material/menu";
|
18
|
-
import * as i11 from "../../../core/popup/tooltip.directive";
|
19
|
-
import * as i12 from "@angular/common";
|
20
|
-
import * as i13 from "@angular/flex-layout/extended";
|
21
|
-
import * as i14 from "@angular/cdk/bidi";
|
22
|
-
import * as i15 from "@angular/flex-layout/flex";
|
23
|
-
import * as i16 from "../../../core/pipes/translate.pipe";
|
24
|
-
Diagram.Inject(BpmnDiagrams, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, DataBinding);
|
25
|
-
SymbolPalette.Inject(BpmnDiagrams);
|
26
|
-
function getPorts() {
|
27
|
-
const ports = [
|
28
|
-
{ id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },
|
29
|
-
{ id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },
|
30
|
-
{ id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 } },
|
31
|
-
{ id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }
|
32
|
-
];
|
33
|
-
return ports;
|
34
|
-
}
|
35
|
-
function showPaletteIcon() {
|
36
|
-
const paletteSpace = document.getElementById('palette-space');
|
37
|
-
const isMobile = window.matchMedia('(max-width:550px)').matches;
|
38
|
-
if (isMobile) {
|
39
|
-
if (!paletteSpace.classList.contains('sb-mobile-palette-open')) {
|
40
|
-
paletteSpace.classList.add('sb-mobile-palette-open');
|
41
|
-
}
|
42
|
-
else {
|
43
|
-
paletteSpace.classList.remove('sb-mobile-palette-open');
|
44
|
-
}
|
45
|
-
}
|
46
|
-
}
|
47
|
-
function paletteIconClick() {
|
48
|
-
const isMobile = window.matchMedia('(max-width:550px)').matches;
|
49
|
-
if (isMobile) {
|
50
|
-
const paletteIcon = document.getElementById('palette-icon');
|
51
|
-
if (paletteIcon) {
|
52
|
-
paletteIcon.addEventListener('click', showPaletteIcon, false);
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
//Defines the tool
|
57
|
-
class DrawTool extends ConnectorDrawingTool {
|
58
|
-
constructor(diagram, segments) {
|
59
|
-
super(diagram.commandHandler, 'ConnectorSourceEnd', null);
|
60
|
-
this.diagram = diagram;
|
61
|
-
this.segments = segments;
|
62
|
-
}
|
63
|
-
mouseMove(args) {
|
64
|
-
if (this.diagram.selectedItems.nodes.length) {
|
65
|
-
this.diagram.drawingObject = {
|
66
|
-
type: this.segments || 'Bezier',
|
67
|
-
sourceID: this.diagram.selectedItems.nodes[0].id
|
68
|
-
};
|
69
|
-
this.inAction = true;
|
70
|
-
}
|
71
|
-
const ok = super.mouseMove(args);
|
72
|
-
return ok;
|
73
|
-
}
|
74
|
-
}
|
75
|
-
const LINK_PATH = 'M346.7,714.6l368.1-368.1c17.9-17.9,17.9-47.1,0-64.9c-17.9-17.9-47.1-17.9-64.9,0l-368,368c-17.9,17.9-17.9,47.1,0,64.9C299.6,732.5,328.9,732.5,346.7,714.6z M468.2,651c6.4,9,7.6,18.5,7.6,23.8c0,6.3-1.5,18.6-11.8,28.9L271,896.5c-10.3,10.3-22.5,11.8-28.9,11.8c-6.3,0-18.6-1.5-28.9-11.8L103.5,786.8c-10.3-10.3-11.8-22.5-11.8-28.9c0-6.4,1.5-18.6,11.8-28.9l192.9-192.9c10.3-10.3,22.5-11.8,28.9-11.8c4.5,0,11.8,0.8,19.3,4.8l58.6-58.6c-48-39.6-119.6-36.9-164.5,7.9L45.7,671.3c-47.7,47.7-47.7,125.5,0,173.2l109.7,109.7c47.7,47.7,125.5,47.7,173.2,0l192.9-192.9c46-46,47.6-120.4,4.6-168.4L468.2,651z M954.2,155.5L844.5,45.8C796.9-1.9,719-1.9,671.3,45.8L478.4,238.7c-44.8,44.8-47.5,116.5-7.9,164.5l58.6-58.6c-4-7.6-4.8-14.9-4.8-19.3c0-6.3,1.5-18.6,11.8-28.9l192.9-192.9c10.3-10.3,22.5-11.8,28.9-11.8c6.3,0,18.6,1.5,28.9,11.8l109.7,109.7c10.3,10.3,11.8,22.5,11.8,28.9c0,6.3-1.5,18.6-11.8,28.9L703.7,464c-10.3,10.3-22.5,11.8-28.9,11.8c-5.3,0-14.8-1.1-23.8-7.6l-58,58c48,43,122.3,41.5,168.4-4.6l192.9-192.9C1001.9,281.1,1001.9,203.1,954.2,155.5z';
|
76
|
-
/** workflow component*/
|
77
|
-
export class WorkflowComponent {
|
78
|
-
/** workflow ctor */
|
79
|
-
constructor(ps, _service, _pane, _router, _session, _translate) {
|
80
|
-
this.ps = ps;
|
81
|
-
this._service = _service;
|
82
|
-
this._pane = _pane;
|
83
|
-
this._router = _router;
|
84
|
-
this._session = _session;
|
85
|
-
this._translate = _translate;
|
86
|
-
this.tools = true;
|
87
|
-
this.connectorType = 'Bezier';
|
88
|
-
this.alignment = 'Center';
|
89
|
-
this.fontSize = 12;
|
90
|
-
this.saving = false;
|
91
|
-
this.dirty = false;
|
92
|
-
this.palettes = [];
|
93
|
-
this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging | DiagramConstraints.UserInteraction | DiagramConstraints.Zoom;
|
94
|
-
this.diagramTool = DiagramTools.Default;
|
95
|
-
//Defines the user handle collection for nodes in diagram
|
96
|
-
this._userHandles = [
|
97
|
-
{
|
98
|
-
name: 'connect',
|
99
|
-
pathData: LINK_PATH,
|
100
|
-
visible: true,
|
101
|
-
offset: 0,
|
102
|
-
side: 'Right',
|
103
|
-
displacement: 20,
|
104
|
-
margin: { top: 0, bottom: 0, left: 0, right: 0 }
|
105
|
-
}
|
106
|
-
];
|
107
|
-
//SymbolPalette Properties
|
108
|
-
this.symbolMargin = { left: 10, right: 10, top: 10, bottom: 10 };
|
109
|
-
this.snapSettings = {};
|
110
|
-
this.selectedItems = {};
|
111
|
-
this.scrollSettings = {
|
112
|
-
minZoom: .5,
|
113
|
-
maxZoom: 2.5
|
114
|
-
};
|
115
|
-
this._rulerColor = this._session.getAccent(100);
|
116
|
-
this.rulerSettings = {
|
117
|
-
horizontalRuler: { markerColor: this._rulerColor },
|
118
|
-
verticalRuler: { markerColor: this._rulerColor }
|
119
|
-
};
|
120
|
-
this._destroy = new Subject();
|
121
|
-
this.nodeDefaults = () => {
|
122
|
-
const obj = {
|
123
|
-
style: {
|
124
|
-
fill: 'transparent',
|
125
|
-
strokeColor: this._session.theme.dark ? 'white' : 'black',
|
126
|
-
strokeWidth: 1
|
127
|
-
},
|
128
|
-
annotations: [{
|
129
|
-
style: {
|
130
|
-
color: this._session.theme.dark ? 'white' : 'black',
|
131
|
-
fill: 'transparent',
|
132
|
-
opacity: .8
|
133
|
-
}
|
134
|
-
}]
|
135
|
-
};
|
136
|
-
if (obj.width === undefined) {
|
137
|
-
obj.width = 145;
|
138
|
-
}
|
139
|
-
else {
|
140
|
-
const ratio = 100 / obj.width;
|
141
|
-
obj.width = 100;
|
142
|
-
obj.height *= ratio;
|
143
|
-
}
|
144
|
-
obj.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio;
|
145
|
-
obj.ports = getPorts();
|
146
|
-
return obj;
|
147
|
-
};
|
148
|
-
this.connDefaults = (obj) => {
|
149
|
-
obj.constraints = ConnectorConstraints.Default | ConnectorConstraints.Bridging | ConnectorConstraints.DragSegmentThumb;
|
150
|
-
obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
|
151
|
-
};
|
152
|
-
this._palettes();
|
153
|
-
}
|
154
|
-
getTool(action) {
|
155
|
-
let tool = null;
|
156
|
-
if (action === 'connect')
|
157
|
-
tool = new DrawTool(this.diagram, this.connectorType);
|
158
|
-
return tool;
|
159
|
-
}
|
160
|
-
ngOnInit() {
|
161
|
-
}
|
162
|
-
ngAfterViewInit() {
|
163
|
-
this.symbolPalette = new SymbolPalette({
|
164
|
-
expandMode: 'Multiple',
|
165
|
-
palettes: this.palettes,
|
166
|
-
width: "100%", height: "100%", symbolHeight: 80,
|
167
|
-
enableRtl: false, enableAnimation: false, symbolWidth: 80,
|
168
|
-
symbolMargin: this.symbolMargin,
|
169
|
-
getSymbolInfo: this.getSymbolInfo.bind(this),
|
170
|
-
getNodeDefaults: this.getSymbolDefaults.bind(this)
|
171
|
-
});
|
172
|
-
this.symbolPalette.appendTo(this.symbolPaletteEl.nativeElement);
|
173
|
-
this.diagram = new Diagram({
|
174
|
-
width: "100%", height: "100%",
|
175
|
-
snapSettings: this.snapSettings,
|
176
|
-
getConnectorDefaults: this.connDefaults.bind(this),
|
177
|
-
constraints: this.diagramConstraints,
|
178
|
-
tool: this.diagramTool,
|
179
|
-
getNodeDefaults: this.nodeDefaults.bind(this),
|
180
|
-
getCustomTool: this.getTool.bind(this),
|
181
|
-
scrollSettings: this.scrollSettings,
|
182
|
-
selectedItems: this.selectedItems,
|
183
|
-
rulerSettings: this.rulerSettings,
|
184
|
-
dragEnter: this.dragEnter.bind(this),
|
185
|
-
connectionChange: this.change.bind(this),
|
186
|
-
collectionChange: this.change.bind(this),
|
187
|
-
propertyChange: this.propertyChange.bind(this),
|
188
|
-
selectionChange: this.selectionChange.bind(this),
|
189
|
-
}, this.diagramEl.nativeElement);
|
190
|
-
this.diagramCreate();
|
191
|
-
}
|
192
|
-
diagramCreate() {
|
193
|
-
paletteIconClick();
|
194
|
-
this._pane.paramsChange.pipe(takeUntil(this._destroy)).subscribe(p => {
|
195
|
-
const id = p['id'];
|
196
|
-
this._form = this._session.profile.forms.find(f => f.name === id);
|
197
|
-
this._pane.title = this._form.title;
|
198
|
-
this.params = { id: this._form.name };
|
199
|
-
});
|
200
|
-
this._pane.dataChange.pipe(takeUntil(this._destroy)).subscribe(d => {
|
201
|
-
Object.assign(this._form, d.form);
|
202
|
-
const flow = this._form.workflow;
|
203
|
-
this.diagram.nodes = flow.nodes;
|
204
|
-
this.diagram.connectors = flow.connectors;
|
205
|
-
this.diagram.dataBind();
|
206
|
-
this.diagram.add(this._versionNode(flow.version));
|
207
|
-
this.diagram.fitToPage();
|
208
|
-
this.dirty = false;
|
209
|
-
});
|
210
|
-
this._pane.resize.pipe(takeUntil(this._destroy)).subscribe(() => this.diagram.refresh());
|
211
|
-
}
|
212
|
-
_palettes() {
|
213
|
-
this._session.profile.nodes.forEach(n => {
|
214
|
-
const node = {
|
215
|
-
id: n.name,
|
216
|
-
shape: n.shape,
|
217
|
-
addInfo: {
|
218
|
-
nodeType: n.name,
|
219
|
-
title: n.title
|
220
|
-
},
|
221
|
-
};
|
222
|
-
node.node = n.name;
|
223
|
-
let palette = this.palettes.find(p => p.title === (n.palette || ''));
|
224
|
-
if (!palette) {
|
225
|
-
palette = { id: `_${n.palette}`, expanded: true, title: n.palette || '', symbols: [] };
|
226
|
-
this.palettes.push(palette);
|
227
|
-
}
|
228
|
-
palette.symbols.push(node);
|
229
|
-
});
|
230
|
-
//this.palettes.push({ id: 'design', title: this._translation.get('Design'), symbols: [{ id: 'text', shape: { type: 'Text', textContent: 'T' }, addInfo: { title: this._translation.get('Text') } }] });
|
231
|
-
/*this.palettes.push(swimlane );*/
|
232
|
-
}
|
233
|
-
_versionNode(version) {
|
234
|
-
return {
|
235
|
-
id: 'version',
|
236
|
-
shape: {
|
237
|
-
type: 'Text',
|
238
|
-
content: this._translate.get('DiagramVersion', version || 0)
|
239
|
-
},
|
240
|
-
offsetY: 5,
|
241
|
-
offsetX: 5,
|
242
|
-
style: {
|
243
|
-
fontSize: 50,
|
244
|
-
color: this._session.theme.dark ? 'white' : 'black',
|
245
|
-
opacity: .1
|
246
|
-
},
|
247
|
-
constraints: NodeConstraints.ReadOnly,
|
248
|
-
zIndex: -1
|
249
|
-
};
|
250
|
-
}
|
251
|
-
getSymbolInfo(symbol) {
|
252
|
-
return {
|
253
|
-
fit: true,
|
254
|
-
tooltip: symbol.addInfo.title,
|
255
|
-
description: { text: symbol.addInfo.title, overflow: 'Wrap', wrap: 'WrapWithOverflow' }
|
256
|
-
};
|
257
|
-
}
|
258
|
-
getSymbolDefaults(symbol) {
|
259
|
-
symbol.width = symbol.height = 40;
|
260
|
-
symbol.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio;
|
261
|
-
}
|
262
|
-
pan() {
|
263
|
-
this.diagramConstraints = this.diagramConstraints | DiagramConstraints.Pan;
|
264
|
-
this.diagramTool = DiagramTools.ZoomPan;
|
265
|
-
}
|
266
|
-
cursor() {
|
267
|
-
this.diagramConstraints = this.diagramConstraints & ~DiagramConstraints.Pan;
|
268
|
-
this.diagramTool = DiagramTools.Default;
|
269
|
-
}
|
270
|
-
selectionChange(evt) {
|
271
|
-
if (evt.state !== 'Changed')
|
272
|
-
return;
|
273
|
-
const { nodes, connectors } = this.diagram.selectedItems;
|
274
|
-
if (connectors.length || nodes.length) {
|
275
|
-
if (nodes.length === 1 && nodes[0].addInfo) {
|
276
|
-
this.diagram.selectedItems.constraints = SelectorConstraints.All | SelectorConstraints.UserHandle;
|
277
|
-
this.diagram.selectedItems.userHandles = this._userHandles;
|
278
|
-
}
|
279
|
-
else
|
280
|
-
this.diagram.selectedItems.constraints = SelectorConstraints.All ^ SelectorConstraints.UserHandle;
|
281
|
-
if (connectors.length) {
|
282
|
-
const connector = connectors[0];
|
283
|
-
connectors.forEach(c => { if (!c.addInfo)
|
284
|
-
c.addInfo = {}; });
|
285
|
-
const type = connector.type;
|
286
|
-
this.connectorType = connectors.length === 1 || connectors.every(c => c.type === type) ? type : null;
|
287
|
-
if (connector.annotations.length)
|
288
|
-
this.fontSize = connector.annotations[0].style.fontSize;
|
289
|
-
this.connectorType = connectors.length === 1 || connectors.every(c => c.type === type) ? type : null;
|
290
|
-
}
|
291
|
-
if (nodes.length) {
|
292
|
-
const node = nodes[0], addInfo = node.addInfo;
|
293
|
-
if (addInfo && addInfo.nodeType) {
|
294
|
-
if (node.annotations.length)
|
295
|
-
this.fontSize = node.annotations[0].style.fontSize;
|
296
|
-
}
|
297
|
-
}
|
298
|
-
this._router.collapse();
|
299
|
-
this._router.navigate(WorkflowNodeComponent, {
|
300
|
-
state: {
|
301
|
-
nodes, connectors
|
302
|
-
},
|
303
|
-
policy: OpenPolicy.Tab,
|
304
|
-
expandable: false,
|
305
|
-
group: ''
|
306
|
-
}).then(p => {
|
307
|
-
p.instance.change.
|
308
|
-
pipe(takeUntil(this._destroy)).subscribe(() => {
|
309
|
-
this.dirty = true;
|
310
|
-
this.diagram.dataBind();
|
311
|
-
});
|
312
|
-
});
|
313
|
-
}
|
314
|
-
else
|
315
|
-
this._router.collapse();
|
316
|
-
}
|
317
|
-
align(value) {
|
318
|
-
function align(n) {
|
319
|
-
n.annotations.length && Object.assign(n.annotations[0], {
|
320
|
-
offset: {
|
321
|
-
x: value === 'Right' ? 1 : value === 'Left' ? 0 : .5,
|
322
|
-
y: value === 'Top' ? 0 : value === 'Bottom' ? 1 : .5
|
323
|
-
},
|
324
|
-
verticalAlignment: value === 'Top' ? 'Bottom' : value === 'Bottom' ? 'Top' : 'Center',
|
325
|
-
horizontalAlignment: value === 'Right' ? 'Left' : value === 'Left' ? 'Right' : 'Center'
|
326
|
-
});
|
327
|
-
}
|
328
|
-
this.diagram.selectedItems.nodes.forEach(align);
|
329
|
-
this.diagram.selectedItems.connectors.forEach(align);
|
330
|
-
this.alignment = value;
|
331
|
-
this.dirty = true;
|
332
|
-
}
|
333
|
-
dragEnter(args) {
|
334
|
-
const obj = args.element;
|
335
|
-
if (obj instanceof Node) {
|
336
|
-
const { width, height } = obj;
|
337
|
-
obj.width = 100;
|
338
|
-
obj.height *= 100 / width;
|
339
|
-
obj.offsetX += (obj.width - width) / 2;
|
340
|
-
obj.offsetY += (obj.height - height) / 2;
|
341
|
-
obj.style = { fill: 'white', strokeColor: 'black' };
|
342
|
-
}
|
343
|
-
}
|
344
|
-
propertyChange(e) {
|
345
|
-
if (e.cause !== 2)
|
346
|
-
this.dirty = true;
|
347
|
-
}
|
348
|
-
change() {
|
349
|
-
this.dirty = true;
|
350
|
-
}
|
351
|
-
addText() {
|
352
|
-
this.diagram.drawingObject = {
|
353
|
-
shape: {
|
354
|
-
type: 'Text',
|
355
|
-
},
|
356
|
-
constraints: NodeConstraints.Default & ~NodeConstraints.InConnect & ~NodeConstraints.OutConnect
|
357
|
-
};
|
358
|
-
this.diagramTool = DiagramTools.DrawOnce;
|
359
|
-
}
|
360
|
-
/**
|
361
|
-
* Ctrl-s save
|
362
|
-
* @param event
|
363
|
-
*/
|
364
|
-
handleKeyboardEvent(event) {
|
365
|
-
if (this.dirty && event.ctrlKey && (event.which === 83 || event.which === 115)) {
|
366
|
-
this.save();
|
367
|
-
event.preventDefault();
|
368
|
-
}
|
369
|
-
}
|
370
|
-
bgChange(val) {
|
371
|
-
this.diagram.selectedItems.nodes.forEach(n => n.style.fill = val);
|
372
|
-
this.dirty = true;
|
373
|
-
}
|
374
|
-
colorChange(val) {
|
375
|
-
this.diagram.selectedItems.nodes.forEach(n => n.annotations.forEach(a => a.style.color = val));
|
376
|
-
this.diagram.selectedItems.connectors.forEach(c => c.annotations.forEach(a => a.style.color = val));
|
377
|
-
this.dirty = true;
|
378
|
-
}
|
379
|
-
connectorTypeChange(type) {
|
380
|
-
this.diagram.selectedItems.connectors.forEach(c => c.type = type);
|
381
|
-
this.connectorType = type;
|
382
|
-
this.dirty = true;
|
383
|
-
}
|
384
|
-
sizeChange(val) {
|
385
|
-
this.diagram.selectedItems.nodes.forEach(n => n.annotations.forEach(a => a.style.fontSize = parseInt(val)));
|
386
|
-
this.diagram.dataBind();
|
387
|
-
}
|
388
|
-
strokeChange(val) {
|
389
|
-
this.diagram.selectedItems.connectors.forEach(c => {
|
390
|
-
c.style.strokeColor = val;
|
391
|
-
if (c.annotations)
|
392
|
-
c.annotations[0].style.color = val;
|
393
|
-
});
|
394
|
-
this.diagram.selectedItems.nodes.forEach(n => n.style.strokeColor = val);
|
395
|
-
this.dirty = true;
|
396
|
-
}
|
397
|
-
save() {
|
398
|
-
this.diagram.serializationSettings = { preventDefaults: true };
|
399
|
-
const obj = JSON.parse(this.diagram.saveDiagram());
|
400
|
-
this._form.workflow.connectors = obj.connectors;
|
401
|
-
this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version').map((n) => {
|
402
|
-
n.offsetX = Math.round(n.offsetX);
|
403
|
-
n.offsetY = Math.round(n.offsetY);
|
404
|
-
return n;
|
405
|
-
});
|
406
|
-
this.saving = true;
|
407
|
-
return this._service.save(this._form).toPromise().then(v => {
|
408
|
-
this.ps.toast('ChangesSaved');
|
409
|
-
if (this._form.workflow.version < v) {
|
410
|
-
this.ps.toast('DiagramVersion', v);
|
411
|
-
const node = this.diagram.getNodeObject('version');
|
412
|
-
node.shape.content = this._translate.get('DiagramVersion', v);
|
413
|
-
this.diagram.dataBind();
|
414
|
-
}
|
415
|
-
this._form.workflow.version = v;
|
416
|
-
this.dirty = false;
|
417
|
-
this.saving = false;
|
418
|
-
}, () => {
|
419
|
-
this.ps.error();
|
420
|
-
this.saving = false;
|
421
|
-
});
|
422
|
-
}
|
423
|
-
ngOnDestroy() {
|
424
|
-
this.symbolPalette?.destroy();
|
425
|
-
this.diagram?.destroy();
|
426
|
-
this._destroy.next();
|
427
|
-
this._destroy.complete();
|
428
|
-
}
|
429
|
-
}
|
430
|
-
WorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: WorkflowComponent, deps: [{ token: i1.PromptService }, { token: i2.FormService }, { token: i3.PaneRef }, { token: i4.PanesRouter }, { token: i5.SessionService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
431
|
-
WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPalette"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagram"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n \r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n \r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPalette>\r\n </div>\r\n </div>\r\n <div #diagram id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i14.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i15.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"] }], pipes: { "translate": i16.TranslatePipe } });
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: WorkflowComponent, decorators: [{
|
433
|
-
type: Component,
|
434
|
-
args: [{ selector: 'bizdoc-workflow', host: {
|
435
|
-
class: 'pane'
|
436
|
-
}, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n \r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n \r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPalette>\r\n </div>\r\n </div>\r\n <div #diagram id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}\n"] }]
|
437
|
-
}], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.FormService }, { type: i3.PaneRef }, { type: i4.PanesRouter }, { type: i5.SessionService }, { type: i6.TranslateService }]; }, propDecorators: { symbolPaletteEl: [{
|
438
|
-
type: ViewChild,
|
439
|
-
args: ['symbolPalette', { static: true }]
|
440
|
-
}], diagramEl: [{
|
441
|
-
type: ViewChild,
|
442
|
-
args: ['diagram', { static: true }]
|
443
|
-
}], handleKeyboardEvent: [{
|
444
|
-
type: HostListener,
|
445
|
-
args: ['document:keydown', ['$event']]
|
446
|
-
}] } });
|
447
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL3dvcmtmbG93L3dvcmtmbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS93b3JrZmxvdy93b3JrZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxrQkFBa0IsRUFBbUIsbUJBQW1CLEVBQTRDLG9CQUFvQixFQUE2QixlQUFlLEVBQ3BLLE9BQU8sRUFBYSxRQUFRLEVBQW1FLElBQUksRUFBMEIsWUFBWSxFQUFFLG9CQUFvQixFQUF1RSxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFDOVEsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUM5QyxNQUFNLDBCQUEwQixDQUFDO0FBUWxDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR3pELE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDbkcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUVuQyxTQUFTLFFBQVE7SUFDZixNQUFNLEtBQUssR0FBcUI7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LGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs4R0F0V1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ1lDbkY5Qixnd0hBK0RBOzJGRG9CYSxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsaUJBQWlCLFFBR3JCO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkOzBPQU02QyxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0osU0FBUztzQkFBaEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQW1TdEMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBPbkluaXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgRGlhZ3JhbUNvbnN0cmFpbnRzLCBVc2VySGFuZGxlTW9kZWwsIFNlbGVjdG9yQ29uc3RyYWludHMsIFRvb2xCYXNlLCBNb3VzZUV2ZW50QXJncywgQ29ubmVjdG9yTW9kZWwsIENvbm5lY3RvckRyYXdpbmdUb29sLCBUZXh0TW9kZWwsIFBvaW50UG9ydE1vZGVsLCBOb2RlQ29uc3RyYWludHMsIFNjcm9sbFNldHRpbmdzTW9kZWwsXHJcbiAgRGlhZ3JhbSwgTm9kZU1vZGVsLCBVbmRvUmVkbywgU3ltYm9sSW5mbywgSURyYWdFbnRlckV2ZW50QXJncywgU25hcFNldHRpbmdzTW9kZWwsIE1hcmdpbk1vZGVsLCBOb2RlLCBQYWxldHRlTW9kZWwsIFNlZ21lbnRzLCBEaWFncmFtVG9vbHMsIENvbm5lY3RvckNvbnN0cmFpbnRzLCBTZWxlY3Rvck1vZGVsLCBSdWxlclNldHRpbmdzTW9kZWwsIEFsaWdubWVudE9wdGlvbnMsIFRleHRTdHlsZU1vZGVsLCBTeW1ib2xQYWxldHRlLCBCcG1uRGlhZ3JhbXMsIERhdGFCaW5kaW5nLFxyXG4gIENvbm5lY3RvckVkaXRpbmcsIENvbm5lY3RvckJyaWRnaW5nLCBTbmFwcGluZ1xyXG59IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1kaWFncmFtcyc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uL2Zvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93Tm9kZUNvbXBvbmVudCB9IGZyb20gJy4vbm9kZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZG1pbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FkbWluLWRpc21pc3Muc2VydmljZSc7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJU2VsZWN0aW9uQ2hhbmdlRXZlbnRBcmdzIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXMnO1xyXG5cclxuRGlhZ3JhbS5JbmplY3QoQnBtbkRpYWdyYW1zLCBVbmRvUmVkbywgQ29ubmVjdG9yQnJpZGdpbmcsIENvbm5lY3RvckVkaXRpbmcsIFNuYXBwaW5nLCBEYXRhQmluZGluZyk7XHJcblN5bWJvbFBhbGV0dGUuSW5qZWN0KEJwbW5EaWFncmFtcyk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb3J0cygpOiBQb2ludFBvcnRNb2RlbFtdIHtcclxuICBjb25zdCBwb3J0czogUG9pbnRQb3J0TW9kZWxbXSA9IFtcclxuICAgIHsgaWQ6ICdwb3J0MScsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAsIHk6IDAuNSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDInLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLjUsIHk6IDEgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQzJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMSwgeTogMC41IH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0NCcsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAuNSwgeTogMCB9IH1cclxuICBdO1xyXG4gIHJldHVybiBwb3J0cztcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1BhbGV0dGVJY29uKCk6IHZvaWQge1xyXG4gIGNvbnN0IHBhbGV0dGVTcGFjZTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFsZXR0ZS1zcGFjZScpO1xyXG4gIGNvbnN0IGlzTW9iaWxlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6NTUwcHgpJykubWF0Y2hlcztcclxuICBpZiAoaXNNb2JpbGUpIHtcclxuICAgIGlmICghcGFsZXR0ZVNwYWNlLmNsYXNzTGlzdC5jb250YWlucygnc2ItbW9iaWxlLXBhbGV0dGUtb3BlbicpKSB7XHJcbiAgICAgIHBhbGV0dGVTcGFjZS5jbGFzc0xpc3QuYWRkKCdzYi1tb2JpbGUtcGFsZXR0ZS1vcGVuJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYWxldHRlU3BhY2UuY2xhc3NMaXN0LnJlbW92ZSgnc2ItbW9iaWxlLXBhbGV0dGUtb3BlbicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcGFsZXR0ZUljb25DbGljaygpIHtcclxuICBjb25zdCBpc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOjU1MHB4KScpLm1hdGNoZXM7XHJcbiAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICBjb25zdCBwYWxldHRlSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWxldHRlLWljb24nKTtcclxuICAgIGlmIChwYWxldHRlSWNvbikge1xyXG4gICAgICBwYWxldHRlSWNvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHNob3dQYWxldHRlSWNvbiwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9EZWZpbmVzIHRoZSB0b29sXHJcbmNsYXNzIERyYXdUb29sIGV4dGVuZHMgQ29ubmVjdG9yRHJhd2luZ1Rvb2wge1xyXG4gIHB1YmxpYyBtb3VzZU1vdmUoYXJnczogTW91c2VFdmVudEFyZ3MpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kaWFncmFtLmRyYXdpbmdPYmplY3QgPSB7XHJcbiAgICAgICAgdHlwZTogdGhpcy5zZWdtZW50cyB8fCAnQmV6aWVyJyxcclxuICAgICAgICBzb3VyY2VJRDogdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXNbMF0uaWRcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbkFjdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvayA9IHN1cGVyLm1vdXNlTW92ZShhcmdzKTtcclxuICAgIHJldHVybiBvaztcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFncmFtOiBEaWFncmFtLCBwcml2YXRlIHNlZ21lbnRzOiBTZWdtZW50cykge1xyXG4gICAgc3VwZXIoZGlhZ3JhbS5jb21tYW5kSGFuZGxlciwgJ0Nvbm5lY3RvclNvdXJjZUVuZCcsIG51bGwpO1xyXG4gIH1cclxufVxyXG5jb25zdCBMSU5LX1BBVEggPSAnTTM0Ni43LDcxNC42bDM2OC4xLTM2OC4xYzE3LjktMTcuOSwxNy45LTQ3LjEsMC02NC45Yy0xNy45LTE3LjktNDcuMS0xNy45LTY0LjksMGwtMzY4LDM2OGMtMTcuOSwxNy45LTE3LjksNDcuMSwwLDY0LjlDMjk5LjYsNzMyLjUsMzI4LjksNzMyLjUsMzQ2LjcsNzE0LjZ6IE00NjguMiw2NTFjNi40LDksNy42LDE4LjUsNy42LDIzLjhjMCw2LjMtMS41LDE4LjYtMTEuOCwyOC45TDI3MSw4OTYuNWMtMTAuMywxMC4zLTIyLjUsMTEuOC0yOC45LDExLjhjLTYuMywwLTE4LjYtMS41LTI4LjktMTEuOEwxMDMuNSw3ODYuOGMtMTAuMy0xMC4zLTExLjgtMjIuNS0xMS44LTI4LjljMC02LjQsMS41LTE4LjYsMTEuOC0yOC45bDE5Mi45LTE5Mi45YzEwLjMtMTAuMywyMi41LTExLjgsMjguOS0xMS44YzQuNSwwLDExLjgsMC44LDE5LjMsNC44bDU4LjYtNTguNmMtNDgtMzkuNi0xMTkuNi0zNi45LTE2NC41LDcuOUw0NS43LDY3MS4zYy00Ny43LDQ3LjctNDcuNywxMjUuNSwwLDE3My4ybDEwOS43LDEwOS43YzQ3LjcsNDcuNywxMjUuNSw0Ny43LDE3My4yLDBsMTkyLjktMTkyLjljNDYtNDYsNDcuNi0xMjAuNCw0LjYtMTY4LjRMNDY4LjIsNjUxeiBNOTU0LjIsMTU1LjVMODQ0LjUsNDUuOEM3OTYuOS0xLjksNzE5LTEuOSw2NzEuMyw0NS44TDQ3OC40LDIzOC43Yy00NC44LDQ0LjgtNDcuNSwxMTYuNS03LjksMTY0LjVsNTguNi01OC42Yy00LTcuNi00LjgtMTQuOS00LjgtMTkuM2MwLTYuMywxLjUtMTguNiwxMS44LTI4LjlsMTkyLjktMTkyLjljMTAuMy0xMC4zLDIyLjUtMTEuOCwyOC45LTExLjhjNi4zLDAsMTguNiwxLjUsMjguOSwxMS44bDEwOS43LDEwOS43YzEwLjMsMTAuMywxMS44LDIyLjUsMTEuOCwyOC45YzAsNi4zLTEuNSwxOC42LTExLjgsMjguOUw3MDMuNyw0NjRjLTEwLjMsMTAuMy0yMi41LDExLjgtMjguOSwxMS44Yy01LjMsMC0xNC44LTEuMS0yMy44LTcuNmwtNTgsNThjNDgsNDMsMTIyLjMsNDEuNSwxNjguNC00LjZsMTkyLjktMTkyLjlDMTAwMS45LDI4MS4xLDEwMDEuOSwyMDMuMSw5NTQuMiwxNTUuNXonO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2Mtd29ya2Zsb3cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3cuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG4vKiogd29ya2Zsb3cgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFkbWluQ29tcG9uZW50IHtcclxuICBzeW1ib2xQYWxldHRlOiBTeW1ib2xQYWxldHRlO1xyXG4gIGRpYWdyYW06IERpYWdyYW07XHJcbiAgQFZpZXdDaGlsZCgnc3ltYm9sUGFsZXR0ZScsIHsgc3RhdGljOiB0cnVlIH0pIHN5bWJvbFBhbGV0dGVFbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkaWFncmFtJywgeyBzdGF0aWM6IHRydWUgfSkgZGlhZ3JhbUVsOiBFbGVtZW50UmVmO1xyXG4gIHRvb2xzID0gdHJ1ZTtcclxuICBjb25uZWN0b3JUeXBlOiBTZWdtZW50cyA9ICdCZXppZXInO1xyXG4gIGFsaWdubWVudDogQWxpZ25tZW50T3B0aW9ucyA9ICdDZW50ZXInO1xyXG4gIGZvbnRTaXplID0gMTI7XHJcbiAgcHVibGljIGdldFRvb2woYWN0aW9uOiBzdHJpbmcpOiBUb29sQmFzZSB7XHJcbiAgICBsZXQgdG9vbDogVG9vbEJhc2UgPSBudWxsO1xyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2Nvbm5lY3QnKVxyXG4gICAgICB0b29sID0gbmV3IERyYXdUb29sKHRoaXMuZGlhZ3JhbSwgdGhpcy5jb25uZWN0b3JUeXBlKTtcclxuICAgIHJldHVybiB0b29sO1xyXG4gIH1cclxuICBzYXZpbmcgPSBmYWxzZTtcclxuICBlbGVtZW50PzogYW55O1xyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgcGFyYW1zOiB7fTtcclxuICBwYWxldHRlczogUGFsZXR0ZU1vZGVsW10gPSBbXTtcclxuICBkaWFncmFtQ29uc3RyYWludHM6IERpYWdyYW1Db25zdHJhaW50cyA9IERpYWdyYW1Db25zdHJhaW50cy5EZWZhdWx0IHwgRGlhZ3JhbUNvbnN0cmFpbnRzLkJyaWRnaW5nIHwgRGlhZ3JhbUNvbnN0cmFpbnRzLlVzZXJJbnRlcmFjdGlvbiB8IERpYWdyYW1Db25zdHJhaW50cy5ab29tO1xyXG4gIGRpYWdyYW1Ub29sOiBEaWFncmFtVG9vbHMgPSBEaWFncmFtVG9vbHMuRGVmYXVsdDtcclxuICAvL0RlZmluZXMgdGhlIHVzZXIgaGFuZGxlIGNvbGxlY3Rpb24gZm9yIG5vZGVzIGluIGRpYWdyYW1cclxuICBwcml2YXRlIHJlYWRvbmx5IF91c2VySGFuZGxlczogVXNlckhhbmRsZU1vZGVsW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdjb25uZWN0JyxcclxuICAgICAgcGF0aERhdGE6IExJTktfUEFUSCxcclxuICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICBzaWRlOiAnUmlnaHQnLFxyXG4gICAgICBkaXNwbGFjZW1lbnQ6IDIwLFxyXG4gICAgICBtYXJnaW46IHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1cclxuICAgIH1cclxuICBdO1xyXG4gIC8vU3ltYm9sUGFsZXR0ZSBQcm9wZXJ0aWVzXHJcbiAgcmVhZG9ubHkgc3ltYm9sTWFyZ2luOiBNYXJnaW5Nb2RlbCA9IHsgbGVmdDogMTAsIHJpZ2h0OiAxMCwgdG9wOiAxMCwgYm90dG9tOiAxMCB9O1xyXG4gIHJlYWRvbmx5IHNuYXBTZXR0aW5nczogU25hcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzZWxlY3RlZEl0ZW1zOiBTZWxlY3Rvck1vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2Nyb2xsU2V0dGluZ3M6IFNjcm9sbFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBtaW5ab29tOiAuNSxcclxuICAgIG1heFpvb206IDIuNVxyXG4gIH07XHJcbiAgcHJpdmF0ZSBfcnVsZXJDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KDEwMCk7XHJcbiAgcmVhZG9ubHkgcnVsZXJTZXR0aW5nczogUnVsZXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgaG9yaXpvbnRhbFJ1bGVyOiB7IG1hcmtlckNvbG9yOiB0aGlzLl9ydWxlckNvbG9yIH0sXHJcbiAgICB2ZXJ0aWNhbFJ1bGVyOiB7IG1hcmtlckNvbG9yOiB0aGlzLl9ydWxlckNvbG9yIH1cclxuICB9O1xyXG4gIHByaXZhdGUgX2Zvcm06IEZvcm07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIHdvcmtmbG93IGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFdvcmtmbG93Q29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5fcGFsZXR0ZXMoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3ltYm9sUGFsZXR0ZSA9IG5ldyBTeW1ib2xQYWxldHRlKHtcclxuICAgICAgZXhwYW5kTW9kZTogJ011bHRpcGxlJyxcclxuICAgICAgcGFsZXR0ZXM6IHRoaXMucGFsZXR0ZXMsXHJcbiAgICAgIHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiwgc3ltYm9sSGVpZ2h0OiA4MCxcclxuICAgICAgZW5hYmxlUnRsOiBmYWxzZSwgZW5hYmxlQW5pbWF0aW9uOiBmYWxzZSwgc3ltYm9sV2lkdGg6IDgwLFxyXG4gICAgICBzeW1ib2xNYXJnaW46IHRoaXMuc3ltYm9sTWFyZ2luLFxyXG4gICAgICBnZXRTeW1ib2xJbmZvOiB0aGlzLmdldFN5bWJvbEluZm8uYmluZCh0aGlzKSxcclxuICAgICAgZ2V0Tm9kZURlZmF1bHRzOiB0aGlzLmdldFN5bWJvbERlZmF1bHRzLmJpbmQodGhpcylcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zeW1ib2xQYWxldHRlLmFwcGVuZFRvKHRoaXMuc3ltYm9sUGFsZXR0ZUVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5kaWFncmFtID0gbmV3IERpYWdyYW0oe1xyXG4gICAgICB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIsXHJcbiAgICAgIHNuYXBTZXR0aW5nczogdGhpcy5zbmFwU2V0dGluZ3MsXHJcbiAgICAgIGdldENvbm5lY3RvckRlZmF1bHRzOiB0aGlzLmNvbm5EZWZhdWx0cy5iaW5kKHRoaXMpLFxyXG4gICAgICBjb25zdHJhaW50czogdGhpcy5kaWFncmFtQ29uc3RyYWludHMsXHJcbiAgICAgIHRvb2w6IHRoaXMuZGlhZ3JhbVRvb2wsXHJcbiAgICAgIGdldE5vZGVEZWZhdWx0czogdGhpcy5ub2RlRGVmYXVsdHMuYmluZCh0aGlzKSxcclxuICAgICAgZ2V0Q3VzdG9tVG9vbDogdGhpcy5nZXRUb29sLmJpbmQodGhpcyksXHJcbiAgICAgIHNjcm9sbFNldHRpbmdzOiB0aGlzLnNjcm9sbFNldHRpbmdzLFxyXG4gICAgICBzZWxlY3RlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMsXHJcbiAgICAgIHJ1bGVyU2V0dGluZ3M6IHRoaXMucnVsZXJTZXR0aW5ncyxcclxuICAgICAgZHJhZ0VudGVyOiB0aGlzLmRyYWdFbnRlci5iaW5kKHRoaXMpLFxyXG4gICAgICBjb25uZWN0aW9uQ2hhbmdlOiB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICBjb2xsZWN0aW9uQ2hhbmdlOiB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICBwcm9wZXJ0eUNoYW5nZTogdGhpcy5wcm9wZXJ0eUNoYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICBzZWxlY3Rpb25DaGFuZ2U6IHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmJpbmQodGhpcyksXHJcbiAgICB9LCB0aGlzLmRpYWdyYW1FbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuZGlhZ3JhbUNyZWF0ZSgpO1xyXG4gIH1cclxuICBwdWJsaWMgZGlhZ3JhbUNyZWF0ZSgpOiB2b2lkIHtcclxuICAgIHBhbGV0dGVJY29uQ2xpY2soKTtcclxuICAgIHRoaXMuX3BhbmUucGFyYW1zQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIGNvbnN0IGlkID0gcFsnaWQnXTtcclxuICAgICAgdGhpcy5fZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBpZCk7XHJcbiAgICAgIHRoaXMuX3BhbmUudGl0bGUgPSB0aGlzLl9mb3JtLnRpdGxlO1xyXG4gICAgICB0aGlzLnBhcmFtcyA9IHsgaWQ6IHRoaXMuX2Zvcm0ubmFtZSB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShkID0+IHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9mb3JtLCBkLmZvcm0pO1xyXG4gICAgICBjb25zdCBmbG93ID0gdGhpcy5fZm9ybS53b3JrZmxvdztcclxuICAgICAgdGhpcy5kaWFncmFtLm5vZGVzID0gZmxvdy5ub2RlcztcclxuICAgICAgdGhpcy5kaWFncmFtLmNvbm5lY3RvcnMgPSBmbG93LmNvbm5lY3RvcnM7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uYWRkKHRoaXMuX3ZlcnNpb25Ob2RlKGZsb3cudmVyc2lvbikpO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uZml0VG9QYWdlKCk7XHJcbiAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5yZXNpemUucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLmRpYWdyYW0ucmVmcmVzaCgpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMoKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubm9kZXMuZm9yRWFjaChuID0+IHtcclxuICAgICAgY29uc3Qgbm9kZTogTm9kZU1vZGVsID0ge1xyXG4gICAgICAgIGlkOiBuLm5hbWUsXHJcbiAgICAgICAgc2hhcGU6IG4uc2hhcGUsXHJcbiAgICAgICAgYWRkSW5mbzoge1xyXG4gICAgICAgICAgbm9kZVR5cGU6IG4ubmFtZSxcclxuICAgICAgICAgIHRpdGxlOiBuLnRpdGxlXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgKG5vZGUgYXMgYW55KS5ub2RlID0gbi5uYW1lO1xyXG4gICAgICBsZXQgcGFsZXR0ZSA9IHRoaXMucGFsZXR0ZXMuZmluZChwID0+IHAudGl0bGUgPT09IChuLnBhbGV0dGUgfHwgJycpKTtcclxuICAgICAgaWYgKCFwYWxldHRlKSB7XHJcbiAgICAgICAgcGFsZXR0ZSA9IHsgaWQ6IGBfJHtuLnBhbGV0dGV9YCwgZXhwYW5kZWQ6IHRydWUsIHRpdGxlOiBuLnBhbGV0dGUgfHwgJycsIHN5bWJvbHM6IFtdIH07XHJcbiAgICAgICAgdGhpcy5wYWxldHRlcy5wdXNoKHBhbGV0dGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHBhbGV0dGUuc3ltYm9scy5wdXNoKG5vZGUpO1xyXG4gICAgfSk7XHJcbiAgICAvL3RoaXMucGFsZXR0ZXMucHVzaCh7IGlkOiAnZGVzaWduJywgdGl0bGU6IHRoaXMuX3RyYW5zbGF0aW9uLmdldCgnRGVzaWduJyksIHN5bWJvbHM6IFt7IGlkOiAndGV4dCcsIHNoYXBlOiB7IHR5cGU6ICdUZXh0JywgdGV4dENvbnRlbnQ6ICdUJyB9LCBhZGRJbmZvOiB7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGlvbi5nZXQoJ1RleHQnKSB9IH1dIH0pO1xyXG4gICAgLyp0aGlzLnBhbGV0dGVzLnB1c2goc3dpbWxhbmUgKTsqL1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdmVyc2lvbk5vZGUodmVyc2lvbjogbnVtYmVyKTogTm9kZU1vZGVsIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiAndmVyc2lvbicsXHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdmVyc2lvbiB8fCAwKVxyXG4gICAgICB9LFxyXG4gICAgICBvZmZzZXRZOiA1LFxyXG4gICAgICBvZmZzZXRYOiA1LFxyXG4gICAgICBzdHlsZToge1xyXG4gICAgICAgIGZvbnRTaXplOiA1MCxcclxuICAgICAgICBjb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgb3BhY2l0eTogLjFcclxuICAgICAgfSBhcyBUZXh0U3R5bGVNb2RlbCxcclxuICAgICAgY29uc3RyYWludHM6IE5vZGVDb25zdHJhaW50cy5SZWFkT25seSxcclxuICAgICAgekluZGV4OiAtMVxyXG4gICAgfSBhcyBUZXh0TW9kZWw7XHJcbiAgfVxyXG4gIG5vZGVEZWZhdWx0cyA9ICgpOiBOb2RlTW9kZWwgPT4ge1xyXG4gICAgY29uc3Qgb2JqOiBOb2RlTW9kZWwgPSB7XHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZmlsbDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICBzdHJva2VDb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDFcclxuICAgICAgfSxcclxuICAgICAgYW5ub3RhdGlvbnM6IFt7XHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnd2hpdGUnIDogJ2JsYWNrJyxcclxuICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgICBvcGFjaXR5OiAuOFxyXG4gICAgICAgIH1cclxuICAgICAgfV1cclxuICAgIH07XHJcbiAgICBpZiAob2JqLndpZHRoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgb2JqLndpZHRoID0gMTQ1O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmF0aW86IG51bWJlciA9IDEwMCAvIG9iai53aWR0aDtcclxuICAgICAgb2JqLndpZHRoID0gMTAwO1xyXG4gICAgICBvYmouaGVpZ2h0ICo9IHJhdGlvO1xyXG4gICAgfVxyXG4gICAgb2JqLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBOb2RlQ29uc3RyYWludHMuQXNwZWN0UmF0aW87XHJcbiAgICBvYmoucG9ydHMgPSBnZXRQb3J0cygpO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgcHVibGljIGNvbm5EZWZhdWx0cyA9IChvYmo6IENvbm5lY3Rvck1vZGVsKTogdm9pZCA9PiB7XHJcbiAgICBvYmouY29uc3RyYWludHMgPSBDb25uZWN0b3JDb25zdHJhaW50cy5EZWZhdWx0IHwgQ29ubmVjdG9yQ29uc3RyYWludHMuQnJpZGdpbmcgfCBDb25uZWN0b3JDb25zdHJhaW50cy5EcmFnU2VnbWVudFRodW1iO1xyXG4gICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjayc7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTeW1ib2xJbmZvKHN5bWJvbDogTm9kZU1vZGVsKTogU3ltYm9sSW5mbyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaXQ6IHRydWUsXHJcbiAgICAgIHRvb2x0aXA6IChzeW1ib2wuYWRkSW5mbyBhcyBhbnkpLnRpdGxlLFxyXG4gICAgICBkZXNjcmlwdGlvbjogeyB0ZXh0OiAoc3ltYm9sLmFkZEluZm8gYXMgYW55KS50aXRsZSwgb3ZlcmZsb3c6ICdXcmFwJywgd3JhcDogJ1dyYXBXaXRoT3ZlcmZsb3cnIH1cclxuICAgIH07XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTeW1ib2xEZWZhdWx0cyhzeW1ib2w6IE5vZGVNb2RlbCk6IHZvaWQge1xyXG4gICAgc3ltYm9sLndpZHRoID0gc3ltYm9sLmhlaWdodCA9IDQwO1xyXG4gICAgc3ltYm9sLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBOb2RlQ29uc3RyYWludHMuQXNwZWN0UmF0aW87XHJcbiAgfVxyXG4gIHBhbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzID0gdGhpcy5kaWFncmFtQ29uc3RyYWludHMgfCBEaWFncmFtQ29uc3RyYWludHMuUGFuO1xyXG4gICAgdGhpcy5kaWFncmFtVG9vbCA9IERpYWdyYW1Ub29scy5ab29tUGFuO1xyXG4gIH1cclxuICBjdXJzb3IoKSB7XHJcbiAgICB0aGlzLmRpYWdyYW1Db25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzICYgfkRpYWdyYW1Db25zdHJhaW50cy5QYW47XHJcbiAgICB0aGlzLmRpYWdyYW1Ub29sID0gRGlhZ3JhbVRvb2xzLkRlZmF1bHQ7XHJcbiAgfVxyXG4gIHNlbGVjdGlvbkNoYW5nZShldnQ6IElTZWxlY3Rpb25DaGFuZ2VFdmVudEFyZ3MpIHtcclxuICAgIGlmIChldnQuc3RhdGUgIT09ICdDaGFuZ2VkJykgcmV0dXJuO1xyXG4gICAgY29uc3QgeyBub2RlcywgY29ubmVjdG9ycyB9ID0gdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXM7XHJcbiAgICBpZiAoY29ubmVjdG9ycy5sZW5ndGggfHwgbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgIGlmIChub2Rlcy5sZW5ndGggPT09IDEgJiYgbm9kZXNbMF0uYWRkSW5mbykge1xyXG4gICAgICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbnN0cmFpbnRzID0gU2VsZWN0b3JDb25zdHJhaW50cy5BbGwgfCBTZWxlY3RvckNvbnN0cmFpbnRzLlVzZXJIYW5kbGU7XHJcbiAgICAgICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMudXNlckhhbmRsZXMgPSB0aGlzLl91c2VySGFuZGxlcztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbnN0cmFpbnRzID0gU2VsZWN0b3JDb25zdHJhaW50cy5BbGwgXiBTZWxlY3RvckNvbnN0cmFpbnRzLlVzZXJIYW5kbGU7XHJcblxyXG4gICAgICBpZiAoY29ubmVjdG9ycy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBjb25uZWN0b3IgPSBjb25uZWN0b3JzWzBdO1xyXG4gICAgICAgIGNvbm5lY3RvcnMuZm9yRWFjaChjID0+IHsgaWYgKCFjLmFkZEluZm8pIGMuYWRkSW5mbyA9IHt9IH0pO1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb25uZWN0b3IudHlwZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RvclR5cGUgPSBjb25uZWN0b3JzLmxlbmd0aCA9PT0gMSB8fCBjb25uZWN0b3JzLmV2ZXJ5KGMgPT4gYy50eXBlID09PSB0eXBlKSA/IHR5cGUgOiBudWxsO1xyXG4gICAgICAgIGlmIChjb25uZWN0b3IuYW5ub3RhdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5mb250U2l6ZSA9IGNvbm5lY3Rvci5hbm5vdGF0aW9uc1swXS5zdHlsZS5mb250U2l6ZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RvclR5cGUgPSBjb25uZWN0b3JzLmxlbmd0aCA9PT0gMSB8fCBjb25uZWN0b3JzLmV2ZXJ5KGMgPT4gYy50eXBlID09PSB0eXBlKSA/IHR5cGUgOiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChub2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbMF0sXHJcbiAgICAgICAgICBhZGRJbmZvID0gbm9kZS5hZGRJbmZvIGFzIGFueTtcclxuICAgICAgICBpZiAoYWRkSW5mbyAmJiBhZGRJbmZvLm5vZGVUeXBlKSB7XHJcbiAgICAgICAgICBpZiAobm9kZS5hbm5vdGF0aW9ucy5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemUgPSBub2RlLmFubm90YXRpb25zWzBdLnN0eWxlLmZvbnRTaXplO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9yb3V0ZXIuY29sbGFwc2UoKVxyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoV29ya2Zsb3dOb2RlQ29tcG9uZW50LCB7XHJcbiAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgIG5vZGVzLCBjb25uZWN0b3JzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiLFxyXG4gICAgICAgIGV4cGFuZGFibGU6IGZhbHNlLFxyXG4gICAgICAgIGdyb3VwOiAnJ1xyXG4gICAgICB9KS50aGVuKHAgPT4ge1xyXG4gICAgICAgIChwLmluc3RhbmNlIGFzIFdvcmtmbG93Tm9kZUNvbXBvbmVudCkuY2hhbmdlLlxyXG4gICAgICAgICAgcGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fcm91dGVyLmNvbGxhcHNlKCk7XHJcbiAgfVxyXG4gIGFsaWduKHZhbHVlOiBBbGlnbm1lbnRPcHRpb25zKSB7XHJcbiAgICBmdW5jdGlvbiBhbGlnbihuOiBOb2RlTW9kZWwgfCBDb25uZWN0b3JNb2RlbCkge1xyXG4gICAgICBuLmFubm90YXRpb25zLmxlbmd0aCAmJiBPYmplY3QuYXNzaWduKG4uYW5ub3RhdGlvbnNbMF0sIHtcclxuICAgICAgICBvZmZzZXQ6IHtcclxuICAgICAgICAgIHg6IHZhbHVlID09PSAnUmlnaHQnID8gMSA6IHZhbHVlID09PSAnTGVmdCcgPyAwIDogLjUsXHJcbiAgICAgICAgICB5OiB2YWx1ZSA9PT0gJ1RvcCcgPyAwIDogdmFsdWUgPT09ICdCb3R0b20nID8gMSA6IC41XHJcbiAgICAgICAgfSxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogdmFsdWUgPT09ICdUb3AnID8gJ0JvdHRvbScgOiB2YWx1ZSA9PT0gJ0JvdHRvbScgPyAnVG9wJyA6ICdDZW50ZXInLFxyXG4gICAgICAgIGhvcml6b250YWxBbGlnbm1lbnQ6IHZhbHVlID09PSAnUmlnaHQnID8gJ0xlZnQnIDogdmFsdWUgPT09ICdMZWZ0JyA/ICdSaWdodCcgOiAnQ2VudGVyJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2goYWxpZ24pO1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMuY29ubmVjdG9ycy5mb3JFYWNoKGFsaWduKTtcclxuICAgIHRoaXMuYWxpZ25tZW50ID0gdmFsdWU7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgcHVibGljIGRyYWdFbnRlcihhcmdzOiBJRHJhZ0VudGVyRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBjb25zdCBvYmo6IE5vZGVNb2RlbCA9IGFyZ3MuZWxlbWVudCBhcyBOb2RlTW9kZWw7XHJcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgTm9kZSkge1xyXG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IG9iajtcclxuICAgICAgb2JqLndpZHRoID0gMTAwO1xyXG4gICAgICBvYmouaGVpZ2h0ICo9IDEwMCAvIHdpZHRoO1xyXG4gICAgICBvYmoub2Zmc2V0WCArPSAob2JqLndpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgb2JqLm9mZnNldFkgKz0gKG9iai5oZWlnaHQgLSBoZWlnaHQpIC8gMjtcclxuICAgICAgb2JqLnN0eWxlID0geyBmaWxsOiAnd2hpdGUnLCBzdHJva2VDb2xvcjogJ2JsYWNrJyB9O1xyXG4gICAgfVxyXG4gIH1cclxuICBwcm9wZXJ0eUNoYW5nZShlKSB7XHJcbiAgICBpZiAoZS5jYXVzZSAhPT0gMikgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNoYW5nZSgpIHtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBhZGRUZXh0KCkge1xyXG4gICAgdGhpcy5kaWFncmFtLmRyYXdpbmdPYmplY3QgPSB7XHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICB9LFxyXG4gICAgICBjb25zdHJhaW50czogTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgJiB+Tm9kZUNvbnN0cmFpbnRzLkluQ29ubmVjdCAmIH5Ob2RlQ29uc3RyYWludHMuT3V0Q29ubmVjdFxyXG4gICAgfSBhcyBOb2RlTW9kZWw7XHJcbiAgICB0aGlzLmRpYWdyYW1Ub29sID0gRGlhZ3JhbVRvb2xzLkRyYXdPbmNlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRpcnR5ICYmIGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgYmdDaGFuZ2UodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2gobiA9PiBuLnN0eWxlLmZpbGwgPSB2YWwpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNvbG9yQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5hbm5vdGF0aW9ucy5mb3JFYWNoKGEgPT4gYS5zdHlsZS5jb2xvciA9IHZhbCkpO1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMuY29ubmVjdG9ycy5mb3JFYWNoKGMgPT4gYy5hbm5vdGF0aW9ucy5mb3JFYWNoKGEgPT4gYS5zdHlsZS5jb2xvciA9IHZhbCkpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNvbm5lY3RvclR5cGVDaGFuZ2UodHlwZTogU2VnbWVudHMpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaChjID0+IGMudHlwZSA9IHR5cGUpO1xyXG4gICAgdGhpcy5jb25uZWN0b3JUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBzaXplQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5hbm5vdGF0aW9ucy5mb3JFYWNoKGEgPT4gYS5zdHlsZS5mb250U2l6ZSA9IHBhcnNlSW50KHZhbCkpKTtcclxuICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gIH1cclxuICBzdHJva2VDaGFuZ2UodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy5zdHlsZS5zdHJva2VDb2xvciA9IHZhbDtcclxuICAgICAgaWYgKGMuYW5ub3RhdGlvbnMpIGMuYW5ub3RhdGlvbnNbMF0uc3R5bGUuY29sb3IgPSB2YWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2gobiA9PiBuLnN0eWxlLnN0cm9rZUNvbG9yID0gdmFsKTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBzYXZlKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VyaWFsaXphdGlvblNldHRpbmdzID0ge3ByZXZlbnREZWZhdWx0czogdHJ1ZX07XHJcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKHRoaXMuZGlhZ3JhbS5zYXZlRGlhZ3JhbSgpKTtcclxuICAgIHRoaXMuX2Zvcm0ud29ya2Zsb3cuY29ubmVjdG9ycyA9IG9iai5jb25uZWN0b3JzO1xyXG4gICAgdGhpcy5fZm9ybS53b3JrZmxvdy5ub2RlcyA9IG9iai5ub2Rlcy5maWx0ZXIobiA9PiBuLmlkICE9PSAndmVyc2lvbicpLm1hcCgobjogTm9kZU1vZGVsKSA9PiB7XHJcbiAgICAgIG4ub2Zmc2V0WCA9IE1hdGgucm91bmQobi5vZmZzZXRYKTtcclxuICAgICAgbi5vZmZzZXRZID0gTWF0aC5yb3VuZChuLm9mZnNldFkpO1xyXG4gICAgICByZXR1cm4gbjtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2Uuc2F2ZSh0aGlzLl9mb3JtKS50b1Byb21pc2UoKS50aGVuKHYgPT4ge1xyXG4gICAgICB0aGlzLnBzLnRvYXN0KCdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgaWYgKHRoaXMuX2Zvcm0ud29ya2Zsb3cudmVyc2lvbiA8IHYpIHtcclxuICAgICAgICB0aGlzLnBzLnRvYXN0KCdEaWFncmFtVmVyc2lvbicsIHYpO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmRpYWdyYW0uZ2V0Tm9kZU9iamVjdCgndmVyc2lvbicpO1xyXG4gICAgICAgIChub2RlLnNoYXBlIGFzIFRleHRNb2RlbCkuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdik7XHJcbiAgICAgICAgdGhpcy5kaWFncmFtLmRhdGFCaW5kKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fZm9ybS53b3JrZmxvdy52ZXJzaW9uID0gdjtcclxuICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnBzLmVycm9yKCk7XHJcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN5bWJvbFBhbGV0dGU/LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuZGlhZ3JhbT8uZGVzdHJveSgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9vbHMgPSAhdG9vbHNcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29sbGFwc2UnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnZpZXdfc2lkZWJhcjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWRpcnR5IHx8IHNhdmluZ1wiPnt7J1NhdmVDaGFuZ2VzJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRpYWdyYW0uZml0VG9QYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInRml0VG9QYWdlJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5mdWxsc2NyZWVuX2V4aXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtLnVuZG8oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidVbmRvJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhZGlhZ3JhbS5oaXN0b3J5TWFuYWdlcj8uY2FuVW5kb1wiPjxtYXQtaWNvbj51bmRvPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbS5yZWRvKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVkbycgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRpYWdyYW0uaGlzdG9yeU1hbmFnZXI/LmNhblJlZG9cIj48bWF0LWljb24+cmVkbzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgJm5ic3A7XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInBhbigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1BhbicgfCB0cmFuc2xhdGVcIj48c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1wYW5cIj48L3NwYW4+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImN1cnNvcigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0N1cnNvcicgfCB0cmFuc2xhdGVcIj48c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1jdXJzb3JcIj48L3NwYW4+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGRUZXh0KClcIiBbYml6ZG9jVG9vbHRpcF09XCInVGV4dCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+dGl0bGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGluZU1lbnVcIiBbZGlzYWJsZWRdPVwiZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zPy5jb25uZWN0b3JzLmxlbmd0aCA9PT0gMFwiIFtiaXpkb2NUb29sdGlwXT1cIidDb25uZWN0b3JNb2RlJ3x0cmFuc2xhdGVcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb25cIiBbbmdDbGFzc109XCJ7J3NmLWljb24tc3RyYWlnaHQtbGluZSc6IGNvbm5lY3RvclR5cGUgPT09ICdTdHJhaWdodCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1vcnRob2dvbmFsLWxpbmUnOiBjb25uZWN0b3JUeXBlID09PSAnT3J0aG9nb25hbCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1iZWl6ZXItbGluZSc6IGNvbm5lY3RvclR5cGUgPT09ICdCZXppZXInfVwiPjwvc3Bhbj5cclxuICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbGluZU1lbnUgcGFuZWxDbGFzcz1cImljb24tbWVudS1wYW5lbFwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjb25uZWN0b3JUeXBlQ2hhbmdlKCdTdHJhaWdodCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb24gc2YtaWNvbi1zdHJhaWdodC1saW5lXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbm5lY3RvclR5cGVDaGFuZ2UoJ09ydGhvZ29uYWwnKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtbWVudS1pY29uIHNmLWljb24tb3J0aG9nb25hbC1saW5lXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbm5lY3RvclR5cGVDaGFuZ2UoJ0JlemllcicpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb24gc2YtaWNvbi1iZWl6ZXItbGluZVwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgJm5ic3A7XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJhbGlnbk1lbnVcIiBbZGlzYWJsZWRdPVwiZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zPy5ub2Rlcy5sZW5ndGggPT09IDAgJiYgZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zPy5jb25uZWN0b3JzLmxlbmd0aCA9PT0gMFwiIFtiaXpkb2NUb29sdGlwXT1cIidBbGlnbid8dHJhbnNsYXRlXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImUtaWNvbnNcIiBbbmdDbGFzc109XCJ7J3NmLWljb24tdG9wJzogYWxpZ25tZW50ID09PSAnVG9wJyxcclxuICAgICAgICAgICdzZi1pY29uLWxlZnQnOiBhbGlnbm1lbnQgPT09ICdMZWZ0JyxcclxuICAgICAgICAgICdzZi1pY29uLWNlbnRlcic6IGFsaWdubWVudCA9PT0gJ0NlbnRlcicsXHJcbiAgICAgICAgICAnc2YtaWNvbi1ib3R0b20nOiBhbGlnbm1lbnQgPT09ICdCb3R0b20nLFxyXG4gICAgICAgICAgJ3NmLWljb24tcmlnaHQnOiBhbGlnbm1lbnQgPT09ICdSaWdodCd9XCI+PC9zcGFuPlxyXG4gICAgPG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNhbGlnbk1lbnUgcGFuZWxDbGFzcz1cImljb24tbWVudS1wYW5lbFwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignVG9wJylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tdG9wXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFsaWduKCdMZWZ0JylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tbGVmdFwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignQ2VudGVyJylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tY2VudGVyXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFsaWduKCdCb3R0b20nKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1ib3R0b21cIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ1JpZ2h0JylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tcmlnaHRcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1tZW51PlxyXG48L21hdC10b29sYmFyPlxyXG48ZGl2IGNsYXNzPVwicm93IGNvbnRhaW5lclwiPlxyXG4gIDxkaXYgaWQ9XCJzeW1ib2xwYWxldHRlXCIgW3N0eWxlLmRpc3BsYXldPVwidG9vbHM/Jyc6J25vbmUnXCI+XHJcbiAgICA8ZGl2IGRpcj1cImx0clwiICNzeW1ib2xQYWxldHRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAjZGlhZ3JhbSBpZD1cImRpYWdyYW1cIiBmeEZsZXggZGlyPVwibHRyXCI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|