@bizdoc/core 3.2.10 → 3.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +52 -6
- package/assets/themes/deep-purple-light-blue.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +52 -8
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo-amber.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/fesm2022/bizdoc-core.mjs +2129 -1873
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/admin-menu.component.d.ts +1 -3
- package/lib/admin/architecture/designer.base.d.ts +3 -3
- package/lib/admin/architecture/elements/form.component.d.ts +1 -1
- package/lib/compose/form-ref.d.ts +1 -0
- package/lib/compose/trace/trace.base.d.ts +1 -1
- package/lib/core/base.d.ts +5 -0
- package/lib/core/fields/options.base.d.ts +2 -2
- package/lib/core/inputs/combination-picker-body.d.ts +0 -2
- package/lib/core/inputs/combination-picker.d.ts +1 -1
- package/lib/core/session.service.d.ts +2 -2
- package/lib/core/tagging/tagging.component-base.d.ts +1 -1
- package/lib/core/translate.service.d.ts +2 -2
- package/lib/cube/cube.service.d.ts +1 -1
- package/lib/cube/matrix/matrix.base.d.ts +1 -1
- package/lib/cube/view-base.d.ts +1 -1
- package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
- package/lib/home/home-base.component.d.ts +1 -1
- package/lib/home/home.desktop.component.d.ts +5 -3
- package/lib/notifications/types/notification-base.d.ts +1 -1
- package/lib/reports/cube/usage-base.d.ts +1 -1
- package/lib/views/cube/cube-base.d.ts +1 -1
- package/package.json +31 -33
- package/esm2022/bizdoc-core.mjs +0 -5
- package/esm2022/lib/admin/admin-dismiss.service.mjs +0 -28
- package/esm2022/lib/admin/admin-menu.component.mjs +0 -24
- package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +0 -93
- package/esm2022/lib/admin/architecture/declarations.mjs +0 -79
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +0 -270
- package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +0 -96
- package/esm2022/lib/admin/architecture/designer.base.mjs +0 -136
- package/esm2022/lib/admin/architecture/designer.component.mjs +0 -396
- package/esm2022/lib/admin/architecture/elements/action.component.mjs +0 -43
- package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +0 -50
- package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +0 -49
- package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +0 -29
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +0 -35
- package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +0 -49
- package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +0 -66
- package/esm2022/lib/admin/architecture/elements/control.component.mjs +0 -21
- package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +0 -32
- package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +0 -34
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +0 -254
- package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +0 -40
- package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +0 -34
- package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +0 -40
- package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +0 -35
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +0 -56
- package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +0 -126
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +0 -156
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +0 -53
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +0 -57
- package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +0 -98
- package/esm2022/lib/admin/architecture/elements/node.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +0 -38
- package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +0 -32
- package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +0 -34
- package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +0 -40
- package/esm2022/lib/admin/architecture/elements/policy.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +0 -29
- package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +0 -33
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +0 -43
- package/esm2022/lib/admin/architecture/elements/rule.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/source.component.mjs +0 -25
- package/esm2022/lib/admin/architecture/elements/state.component.mjs +0 -44
- package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +0 -38
- package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +0 -39
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +0 -83
- package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +0 -64
- package/esm2022/lib/admin/architecture/elements/utility.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/view.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +0 -29
- package/esm2022/lib/admin/architecture/icon-picker.component.mjs +0 -173
- package/esm2022/lib/admin/core/ace.input.mjs +0 -144
- package/esm2022/lib/admin/core/color-picker.input.mjs +0 -183
- package/esm2022/lib/admin/core/localized-string.component.mjs +0 -129
- package/esm2022/lib/admin/core/search.input.mjs +0 -52
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +0 -573
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +0 -537
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +0 -39
- package/esm2022/lib/admin/document-trace/timeline.mjs +0 -2
- package/esm2022/lib/admin/document-trace/trace-element.component.mjs +0 -125
- package/esm2022/lib/admin/form/designer/box-designer.component.mjs +0 -270
- package/esm2022/lib/admin/form/designer/declarations.mjs +0 -2
- package/esm2022/lib/admin/form/designer/design-control.component.mjs +0 -41
- package/esm2022/lib/admin/form/designer/properties.component.mjs +0 -71
- package/esm2022/lib/admin/form/designer/section.component.mjs +0 -53
- package/esm2022/lib/admin/form/designer/settings.component.mjs +0 -51
- package/esm2022/lib/admin/form/form.resolve.service.mjs +0 -18
- package/esm2022/lib/admin/form/workflow/node-ref.mjs +0 -8
- package/esm2022/lib/admin/form/workflow/node.component.mjs +0 -156
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +0 -88
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +0 -586
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +0 -160
- package/esm2022/lib/admin/patterns/patterns.component.mjs +0 -180
- package/esm2022/lib/admin/permissions/permissions.component.mjs +0 -98
- package/esm2022/lib/admin/positions/positions-popup.component.mjs +0 -75
- package/esm2022/lib/admin/positions/positions.component.mjs +0 -463
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +0 -156
- package/esm2022/lib/admin/profiler/profiler.component.mjs +0 -284
- package/esm2022/lib/admin/system.service.mjs +0 -127
- package/esm2022/lib/admin/utility-ref.mjs +0 -39
- package/esm2022/lib/admin/utility-wrapper.component.mjs +0 -53
- package/esm2022/lib/admin/utility.pane.component.mjs +0 -48
- package/esm2022/lib/app.component.mjs +0 -73
- package/esm2022/lib/bizdoc.module.mjs +0 -110
- package/esm2022/lib/browse/browse-items.component.mjs +0 -496
- package/esm2022/lib/browse/browse.mobile.component.mjs +0 -102
- package/esm2022/lib/browse/browse.pane.component.mjs +0 -169
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +0 -316
- package/esm2022/lib/browse/filter/filter.component.mjs +0 -140
- package/esm2022/lib/browse/folders-menu.component.mjs +0 -49
- package/esm2022/lib/chat/chat-info.mjs +0 -77
- package/esm2022/lib/chat/chat.mobile.component.mjs +0 -24
- package/esm2022/lib/chat/chat.service.mjs +0 -122
- package/esm2022/lib/chat/contacts.component.mjs +0 -107
- package/esm2022/lib/chat/contacts.pane.component.mjs +0 -26
- package/esm2022/lib/chat/conversation.component.mjs +0 -196
- package/esm2022/lib/chat/conversation.pane.component.mjs +0 -46
- package/esm2022/lib/compose/action/action-picker.component.mjs +0 -82
- package/esm2022/lib/compose/action/action-ref.mjs +0 -19
- package/esm2022/lib/compose/action/action.base.mjs +0 -50
- package/esm2022/lib/compose/action/action.dialog.mjs +0 -62
- package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +0 -68
- package/esm2022/lib/compose/action/assign-action.component.mjs +0 -77
- package/esm2022/lib/compose/action/moveto-action.component.mjs +0 -90
- package/esm2022/lib/compose/action/return-action.component.mjs +0 -51
- package/esm2022/lib/compose/attachments/attachments.component.mjs +0 -130
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +0 -157
- package/esm2022/lib/compose/attachments/progress-button.directive.mjs +0 -25
- package/esm2022/lib/compose/box/box.component.mjs +0 -44
- package/esm2022/lib/compose/box/control.component.mjs +0 -50
- package/esm2022/lib/compose/box/row.component.mjs +0 -41
- package/esm2022/lib/compose/can-deactivate-changes.service.mjs +0 -27
- package/esm2022/lib/compose/comments/comment.component.mjs +0 -188
- package/esm2022/lib/compose/comments/comments.component.mjs +0 -226
- package/esm2022/lib/compose/comments/comments.pane.component.mjs +0 -40
- package/esm2022/lib/compose/comments/edit-comment.component.mjs +0 -32
- package/esm2022/lib/compose/comments/edits.component.mjs +0 -30
- package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +0 -64
- package/esm2022/lib/compose/comments/votes.component.mjs +0 -42
- package/esm2022/lib/compose/compose-resolve.service.mjs +0 -34
- package/esm2022/lib/compose/compose.mobile.component.mjs +0 -114
- package/esm2022/lib/compose/compose.pane.component.mjs +0 -202
- package/esm2022/lib/compose/copy/copy.dialog.mjs +0 -45
- package/esm2022/lib/compose/dismiss.service.mjs +0 -25
- package/esm2022/lib/compose/document-resolve.service.mjs +0 -33
- package/esm2022/lib/compose/document-resolver.service.mjs +0 -17
- package/esm2022/lib/compose/document.component.mjs +0 -48
- package/esm2022/lib/compose/document.mobile.component.mjs +0 -23
- package/esm2022/lib/compose/document.pane.component.mjs +0 -27
- package/esm2022/lib/compose/events/events.component.mjs +0 -29
- package/esm2022/lib/compose/form-ref.mjs +0 -43
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +0 -57
- package/esm2022/lib/compose/form.component.mjs +0 -512
- package/esm2022/lib/compose/new-menu.component.mjs +0 -94
- package/esm2022/lib/compose/overlay.component.exp.mjs +0 -71
- package/esm2022/lib/compose/privilage.directive.mjs +0 -64
- package/esm2022/lib/compose/recipient-resolver.service.mjs +0 -18
- package/esm2022/lib/compose/state.component.mjs +0 -37
- package/esm2022/lib/compose/tag/tags.component.mjs +0 -89
- package/esm2022/lib/compose/trace/flow.component.mjs +0 -687
- package/esm2022/lib/compose/trace/people.component.mjs +0 -39
- package/esm2022/lib/compose/trace/trace.base.mjs +0 -79
- package/esm2022/lib/compose/trace/trace.component.mjs +0 -353
- package/esm2022/lib/compose/trace/trace.pane.component.mjs +0 -48
- package/esm2022/lib/compose/version-compare/version-compare.component.mjs +0 -58
- package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +0 -343
- package/esm2022/lib/compose/version-compare/version.pane.component.mjs +0 -53
- package/esm2022/lib/core/account.service.mjs +0 -38
- package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +0 -17
- package/esm2022/lib/core/animations.mjs +0 -168
- package/esm2022/lib/core/authentication.mjs +0 -4
- package/esm2022/lib/core/avatar/avatar.component.mjs +0 -111
- package/esm2022/lib/core/base.mjs +0 -2
- package/esm2022/lib/core/checkbox.mjs +0 -38
- package/esm2022/lib/core/colors.mjs +0 -322
- package/esm2022/lib/core/component-factory-resolver.mjs +0 -48
- package/esm2022/lib/core/configuration.mjs +0 -17
- package/esm2022/lib/core/datasource.service.mjs +0 -75
- package/esm2022/lib/core/decorators.mjs +0 -46
- package/esm2022/lib/core/document-factory.service.mjs +0 -156
- package/esm2022/lib/core/fields/address.designer.mjs +0 -39
- package/esm2022/lib/core/fields/address.field.mjs +0 -65
- package/esm2022/lib/core/fields/autocomplete.field.mjs +0 -136
- package/esm2022/lib/core/fields/axes-picker.designer.mjs +0 -59
- package/esm2022/lib/core/fields/axes-picker.field.mjs +0 -46
- package/esm2022/lib/core/fields/checkbox.designer.mjs +0 -38
- package/esm2022/lib/core/fields/checkbox.field.mjs +0 -35
- package/esm2022/lib/core/fields/checklist.designer.mjs +0 -98
- package/esm2022/lib/core/fields/checklist.field.mjs +0 -36
- package/esm2022/lib/core/fields/date-range.designer.mjs +0 -43
- package/esm2022/lib/core/fields/date-range.field.mjs +0 -46
- package/esm2022/lib/core/fields/date.designer.mjs +0 -40
- package/esm2022/lib/core/fields/date.field.mjs +0 -40
- package/esm2022/lib/core/fields/expression.field.mjs +0 -87
- package/esm2022/lib/core/fields/file.designer.mjs +0 -39
- package/esm2022/lib/core/fields/file.field.mjs +0 -35
- package/esm2022/lib/core/fields/html.designer.mjs +0 -61
- package/esm2022/lib/core/fields/html.field.mjs +0 -44
- package/esm2022/lib/core/fields/input.designer.mjs +0 -38
- package/esm2022/lib/core/fields/input.field.mjs +0 -54
- package/esm2022/lib/core/fields/localized-string.field.mjs +0 -49
- package/esm2022/lib/core/fields/numeric.designer.mjs +0 -72
- package/esm2022/lib/core/fields/numeric.field.mjs +0 -37
- package/esm2022/lib/core/fields/options.base.mjs +0 -41
- package/esm2022/lib/core/fields/options.component.mjs +0 -58
- package/esm2022/lib/core/fields/radio-button.designer.mjs +0 -39
- package/esm2022/lib/core/fields/radio-button.field.mjs +0 -33
- package/esm2022/lib/core/fields/select.designer.mjs +0 -104
- package/esm2022/lib/core/fields/select.field.mjs +0 -36
- package/esm2022/lib/core/fields/signature.designer.mjs +0 -37
- package/esm2022/lib/core/fields/signature.field.mjs +0 -52
- package/esm2022/lib/core/fields/switch.field.mjs +0 -35
- package/esm2022/lib/core/fields/tags.designer.mjs +0 -28
- package/esm2022/lib/core/fields/tags.field.mjs +0 -51
- package/esm2022/lib/core/fields/textarea.designer.mjs +0 -33
- package/esm2022/lib/core/fields/textarea.field.mjs +0 -37
- package/esm2022/lib/core/fields/time.designer.mjs +0 -41
- package/esm2022/lib/core/fields/time.field.mjs +0 -39
- package/esm2022/lib/core/fields/timespan.field.mjs +0 -82
- package/esm2022/lib/core/fields/yesno.designer.mjs +0 -52
- package/esm2022/lib/core/fields/yesno.field.mjs +0 -34
- package/esm2022/lib/core/firebase.service.mjs +0 -51
- package/esm2022/lib/core/functions.mjs +0 -225
- package/esm2022/lib/core/guide/guide.component.mjs +0 -220
- package/esm2022/lib/core/guide/guide.service.mjs +0 -124
- package/esm2022/lib/core/guide/help-tip.component.mjs +0 -52
- package/esm2022/lib/core/http.interceptor.mjs +0 -63
- package/esm2022/lib/core/hub.service.mjs +0 -117
- package/esm2022/lib/core/identity/identity.component.mjs +0 -66
- package/esm2022/lib/core/info/attachment-info.service.mjs +0 -53
- package/esm2022/lib/core/info/document-info.service.mjs +0 -21
- package/esm2022/lib/core/info/location-info.component.mjs +0 -60
- package/esm2022/lib/core/info/map-info.mjs +0 -42
- package/esm2022/lib/core/inputs/address.input.mjs +0 -203
- package/esm2022/lib/core/inputs/auto-complete.input.mjs +0 -273
- package/esm2022/lib/core/inputs/combination-picker-body.mjs +0 -171
- package/esm2022/lib/core/inputs/combination-picker.mjs +0 -285
- package/esm2022/lib/core/inputs/combination-pool.mjs +0 -105
- package/esm2022/lib/core/inputs/file.input.mjs +0 -432
- package/esm2022/lib/core/inputs/select.input.mjs +0 -254
- package/esm2022/lib/core/inputs/signature.input.mjs +0 -150
- package/esm2022/lib/core/inputs/time-picker.mjs +0 -195
- package/esm2022/lib/core/inputs/timespan.input.mjs +0 -180
- package/esm2022/lib/core/layout.component.mjs +0 -93
- package/esm2022/lib/core/lottie-animation.exp.mjs +0 -49
- package/esm2022/lib/core/mailbox.service.mjs +0 -445
- package/esm2022/lib/core/models.mjs +0 -25
- package/esm2022/lib/core/none.component.mjs +0 -37
- package/esm2022/lib/core/pipes/action.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/calendar.pipe.mjs +0 -72
- package/esm2022/lib/core/pipes/date-format.pipe.mjs +0 -19
- package/esm2022/lib/core/pipes/daterange.pipe.mjs +0 -62
- package/esm2022/lib/core/pipes/difference.pipe.mjs +0 -15
- package/esm2022/lib/core/pipes/duration-format.pipe.mjs +0 -48
- package/esm2022/lib/core/pipes/duration.pipe.mjs +0 -19
- package/esm2022/lib/core/pipes/filter.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/form.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/join.pipe.mjs +0 -18
- package/esm2022/lib/core/pipes/localized-string.pipe.mjs +0 -26
- package/esm2022/lib/core/pipes/role.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +0 -18
- package/esm2022/lib/core/pipes/sort.pipe.mjs +0 -42
- package/esm2022/lib/core/pipes/state.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/time-ago.pipe.mjs +0 -51
- package/esm2022/lib/core/pipes/to-now.pipe.mjs +0 -66
- package/esm2022/lib/core/pipes/translate.pipe.mjs +0 -58
- package/esm2022/lib/core/pipes/type-value.pipe.mjs +0 -42
- package/esm2022/lib/core/pipes/user-name.pipe.mjs +0 -21
- package/esm2022/lib/core/popup/popup-ref.mjs +0 -20
- package/esm2022/lib/core/popup/popup.component.mjs +0 -36
- package/esm2022/lib/core/popup/popup.service.mjs +0 -158
- package/esm2022/lib/core/popup/tooltip.directive.mjs +0 -81
- package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +0 -29
- package/esm2022/lib/core/prompt/mask/mask.component.mjs +0 -21
- package/esm2022/lib/core/prompt.service.mjs +0 -88
- package/esm2022/lib/core/router.mjs +0 -37
- package/esm2022/lib/core/save-changes.dialog.mjs +0 -18
- package/esm2022/lib/core/session.service.mjs +0 -291
- package/esm2022/lib/core/slots/pane-ref.mjs +0 -152
- package/esm2022/lib/core/slots/router.directive.mjs +0 -68
- package/esm2022/lib/core/slots/router.service.mjs +0 -40
- package/esm2022/lib/core/slots/slots.component.mjs +0 -1193
- package/esm2022/lib/core/sticky-toolbar.exp.mjs +0 -33
- package/esm2022/lib/core/tagging/documents.component.mjs +0 -25
- package/esm2022/lib/core/tagging/edit-input.component.mjs +0 -238
- package/esm2022/lib/core/tagging/emoji.component.mjs +0 -35
- package/esm2022/lib/core/tagging/tagging-item.directive.mjs +0 -39
- package/esm2022/lib/core/tagging/tagging.component-base.mjs +0 -29
- package/esm2022/lib/core/tagging/tagging.directive.mjs +0 -136
- package/esm2022/lib/core/tagging/tagging.pipe.mjs +0 -72
- package/esm2022/lib/core/tagging/users.component.mjs +0 -32
- package/esm2022/lib/core/translate.service.mjs +0 -125
- package/esm2022/lib/core/translations.mjs +0 -1068
- package/esm2022/lib/core/virtual-tabs.component.exp.mjs +0 -84
- package/esm2022/lib/core/window-title.service.mjs +0 -65
- package/esm2022/lib/cube/accum/accum.component.mjs +0 -262
- package/esm2022/lib/cube/chart/chart.component.mjs +0 -345
- package/esm2022/lib/cube/cube-info.service.mjs +0 -103
- package/esm2022/lib/cube/cube-menu.component.mjs +0 -25
- package/esm2022/lib/cube/cube-view.component.mjs +0 -186
- package/esm2022/lib/cube/cube.service.mjs +0 -446
- package/esm2022/lib/cube/declarations.mjs +0 -2
- package/esm2022/lib/cube/explore/document-item.component.mjs +0 -38
- package/esm2022/lib/cube/explore/explore-item.component.mjs +0 -27
- package/esm2022/lib/cube/explore/explore-items.component.mjs +0 -193
- package/esm2022/lib/cube/explore/explore.pane.component.mjs +0 -78
- package/esm2022/lib/cube/explore/item-resolver.service.mjs +0 -30
- package/esm2022/lib/cube/explore/item.pane.component.mjs +0 -21
- package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +0 -75
- package/esm2022/lib/cube/filter/filter.component.mjs +0 -137
- package/esm2022/lib/cube/grid/grid.component.mjs +0 -210
- package/esm2022/lib/cube/matrix/matrix.base.mjs +0 -124
- package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +0 -67
- package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +0 -78
- package/esm2022/lib/cube/matrix/popup.component.mjs +0 -70
- package/esm2022/lib/cube/matrix/table.component.mjs +0 -512
- package/esm2022/lib/cube/parallel/item.mjs +0 -40
- package/esm2022/lib/cube/parallel/parallel.component.mjs +0 -162
- package/esm2022/lib/cube/pivot/pivot.component.mjs +0 -564
- package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +0 -382
- package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +0 -19
- package/esm2022/lib/cube/sum/sum.component.mjs +0 -403
- package/esm2022/lib/cube/view-base.mjs +0 -74
- package/esm2022/lib/cube/view.mobile.component.mjs +0 -121
- package/esm2022/lib/cube/view.pane.component.mjs +0 -99
- package/esm2022/lib/dashboard/actions/actions.widget.mjs +0 -127
- package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +0 -151
- package/esm2022/lib/dashboard/cube/compare.widget.mjs +0 -216
- package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +0 -117
- package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +0 -50
- package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +0 -146
- package/esm2022/lib/dashboard/cube/document-state.widget.mjs +0 -85
- package/esm2022/lib/dashboard/cube/documents.widget.mjs +0 -66
- package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +0 -61
- package/esm2022/lib/dashboard/dashboard.component.mjs +0 -67
- package/esm2022/lib/dashboard/dashboard.pane.component.mjs +0 -18
- package/esm2022/lib/dashboard/recents/recents.widget.mjs +0 -98
- package/esm2022/lib/dashboard/score/activity.widget.mjs +0 -177
- package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +0 -215
- package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +0 -251
- package/esm2022/lib/dashboard/score/pending-results.widget.mjs +0 -59
- package/esm2022/lib/dashboard/score/personal-score.widget.mjs +0 -222
- package/esm2022/lib/dashboard/widget-item.component.mjs +0 -91
- package/esm2022/lib/dashboard/widget-ref.mjs +0 -18
- package/esm2022/lib/designer.module.mjs +0 -106
- package/esm2022/lib/desktop.module.mjs +0 -140
- package/esm2022/lib/home/about/about.dialog.mjs +0 -25
- package/esm2022/lib/home/home-base.component.mjs +0 -92
- package/esm2022/lib/home/home.desktop.component.mjs +0 -286
- package/esm2022/lib/home/home.mobile.component.mjs +0 -131
- package/esm2022/lib/home/notifications/notifications.component.mjs +0 -64
- package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +0 -37
- package/esm2022/lib/home/sign/sign.component.mjs +0 -56
- package/esm2022/lib/impersonate/impersonate.component.mjs +0 -77
- package/esm2022/lib/mobile.module.mjs +0 -63
- package/esm2022/lib/modules/chart.module.mjs +0 -44
- package/esm2022/lib/modules/circular-gauge.module.mjs +0 -20
- package/esm2022/lib/modules/date.adapter.mjs +0 -23
- package/esm2022/lib/modules/datepicker.intl.mjs +0 -41
- package/esm2022/lib/modules/dayjs.module.mjs +0 -43
- package/esm2022/lib/modules/diagram.module.mjs +0 -43
- package/esm2022/lib/modules/gantt.module.mjs +0 -22
- package/esm2022/lib/modules/grid.module.mjs +0 -26
- package/esm2022/lib/modules/linear-gauge.module.mjs +0 -17
- package/esm2022/lib/modules/material.module.mjs +0 -182
- package/esm2022/lib/modules/paginator.intl.mjs +0 -21
- package/esm2022/lib/modules/pivot.module.mjs +0 -24
- package/esm2022/lib/modules/schedule.module.mjs +0 -24
- package/esm2022/lib/modules/spreadsheet.module.mjs +0 -28
- package/esm2022/lib/modules/stepper.intl.mjs +0 -17
- package/esm2022/lib/modules/texteditor.module.mjs +0 -26
- package/esm2022/lib/notifications/filter.component.mjs +0 -24
- package/esm2022/lib/notifications/notifications-table.component.mjs +0 -105
- package/esm2022/lib/notifications/notifications.component-base.mjs +0 -50
- package/esm2022/lib/notifications/notifications.mobile.component.mjs +0 -20
- package/esm2022/lib/notifications/notifications.pane.component.mjs +0 -21
- package/esm2022/lib/notifications/notifications.service.mjs +0 -78
- package/esm2022/lib/notifications/types/commented.notification.mjs +0 -60
- package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +0 -58
- package/esm2022/lib/notifications/types/escalated.notification.mjs +0 -33
- package/esm2022/lib/notifications/types/invite.notification.mjs +0 -45
- package/esm2022/lib/notifications/types/liked.notification.mjs +0 -58
- package/esm2022/lib/notifications/types/long-running-task.notification.mjs +0 -31
- package/esm2022/lib/notifications/types/notification-base.mjs +0 -40
- package/esm2022/lib/notifications/types/nudge.notification.mjs +0 -31
- package/esm2022/lib/notifications/types/state-changed.notification.mjs +0 -30
- package/esm2022/lib/notifications/types/tagged.notification.mjs +0 -43
- package/esm2022/lib/notifications/types/text.notification.mjs +0 -23
- package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +0 -36
- package/esm2022/lib/options/options.component.mjs +0 -308
- package/esm2022/lib/options/options.desktop.component.mjs +0 -26
- package/esm2022/lib/options/options.mobile.component.mjs +0 -23
- package/esm2022/lib/reports/arguments-component.mjs +0 -81
- package/esm2022/lib/reports/cube/documents.component.mjs +0 -38
- package/esm2022/lib/reports/cube/grid-documents.component.mjs +0 -72
- package/esm2022/lib/reports/cube/performance-hilo.component.mjs +0 -260
- package/esm2022/lib/reports/cube/performance-wind.component.mjs +0 -269
- package/esm2022/lib/reports/cube/table-documents.component.mjs +0 -57
- package/esm2022/lib/reports/cube/usage-args.component.mjs +0 -62
- package/esm2022/lib/reports/cube/usage-base.mjs +0 -79
- package/esm2022/lib/reports/cube/usage-chart.component.mjs +0 -354
- package/esm2022/lib/reports/cube/usage-pivot.component.mjs +0 -257
- package/esm2022/lib/reports/cube/usage.component.mjs +0 -40
- package/esm2022/lib/reports/report-ref.mjs +0 -38
- package/esm2022/lib/reports/report-viewer.component.mjs +0 -156
- package/esm2022/lib/reports/report.mobile.component.mjs +0 -127
- package/esm2022/lib/reports/report.pane.component.mjs +0 -109
- package/esm2022/lib/reports/reports-menu.component.mjs +0 -24
- package/esm2022/lib/reports/substitution/substitution.component.mjs +0 -39
- package/esm2022/lib/reports/table/table-view.component.mjs +0 -40
- package/esm2022/lib/reports/tasks/tasks.component.mjs +0 -95
- package/esm2022/lib/routes.desktop.mjs +0 -209
- package/esm2022/lib/routes.mobile.mjs +0 -84
- package/esm2022/lib/scheduler/schedule.component.mjs +0 -164
- package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +0 -37
- package/esm2022/lib/scheduler/scheduler.pane.component.mjs +0 -50
- package/esm2022/lib/search/cube.component.mjs +0 -47
- package/esm2022/lib/search/declarations.mjs +0 -7
- package/esm2022/lib/search/document.component.mjs +0 -41
- package/esm2022/lib/search/guide.component.mjs +0 -28
- package/esm2022/lib/search/path.component.mjs +0 -44
- package/esm2022/lib/search/search.service.mjs +0 -155
- package/esm2022/lib/shared.module.mjs +0 -622
- package/esm2022/lib/system.module.mjs +0 -562
- package/esm2022/lib/views/cube/chart.component.mjs +0 -74
- package/esm2022/lib/views/cube/cube-base.mjs +0 -101
- package/esm2022/lib/views/cube/explore.component.mjs +0 -85
- package/esm2022/lib/views/cube/matrix.component.mjs +0 -101
- package/esm2022/lib/views/cube/parallel.component.mjs +0 -53
- package/esm2022/lib/views/cube/pivot.component.mjs +0 -50
- package/esm2022/lib/views/cube/sum.component.mjs +0 -66
- package/esm2022/lib/views/cube/view.component.mjs +0 -101
- package/esm2022/lib/views/document-view-ref.mjs +0 -27
- package/esm2022/lib/views/timeline/timeline.component.mjs +0 -329
- package/esm2022/lib/views/view-item.component.mjs +0 -68
- package/esm2022/lib/views/views.component.mjs +0 -32
- package/esm2022/lib/views/views.mobile.component.mjs +0 -21
- package/esm2022/lib/views/views.pane.component.mjs +0 -29
- package/esm2022/public-api.mjs +0 -182
@@ -1,156 +0,0 @@
|
|
1
|
-
import { ENTER, COMMA, SEMICOLON } from "@angular/cdk/keycodes";
|
2
|
-
import { ViewChild } from "@angular/core";
|
3
|
-
import { Component, Inject } from "@angular/core";
|
4
|
-
import { Validators } from "@angular/forms";
|
5
|
-
import { MatChipInput } from "@angular/material/chips";
|
6
|
-
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
7
|
-
import { MatInput } from "@angular/material/input";
|
8
|
-
import { takeUntil, filter, switchMap, map } from "rxjs";
|
9
|
-
import { isMobile, isString } from "../../core/functions";
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
import * as i1 from "../../core/account.service";
|
12
|
-
import * as i2 from "@angular/material/dialog";
|
13
|
-
import * as i3 from "@angular/forms";
|
14
|
-
import * as i4 from "@angular/material/chips";
|
15
|
-
import * as i5 from "@angular/material/datepicker";
|
16
|
-
import * as i6 from "@angular/material/autocomplete";
|
17
|
-
import * as i7 from "@angular/material/core";
|
18
|
-
import * as i8 from "@angular/material/form-field";
|
19
|
-
import * as i9 from "@angular/material/slide-toggle";
|
20
|
-
import * as i10 from "@angular/material/button";
|
21
|
-
import * as i11 from "@angular/material/input";
|
22
|
-
import * as i12 from "@angular/material/icon";
|
23
|
-
import * as i13 from "@angular/common";
|
24
|
-
import * as i14 from "../../core/pipes/user-name.pipe";
|
25
|
-
import * as i15 from "../../core/pipes/translate.pipe";
|
26
|
-
export class ProfileSettingsDialog {
|
27
|
-
constructor(_accounts, _dialogRef, _fb, model) {
|
28
|
-
this._accounts = _accounts;
|
29
|
-
this._dialogRef = _dialogRef;
|
30
|
-
this._fb = _fb;
|
31
|
-
this.model = model;
|
32
|
-
this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
|
33
|
-
this.today = new Date();
|
34
|
-
this.isMobile = isMobile();
|
35
|
-
this.substitute = this._fb.control(null);
|
36
|
-
this.grants = this._fb.control([]);
|
37
|
-
this.outOfOffice = this._fb.group({
|
38
|
-
active: this._fb.control(false),
|
39
|
-
substitueId: this._fb.control(null),
|
40
|
-
from: this._fb.control(null),
|
41
|
-
to: this._fb.control(null)
|
42
|
-
});
|
43
|
-
this.grantAccess = this._fb.group({
|
44
|
-
active: this._fb.control(false),
|
45
|
-
users: this._fb.control([])
|
46
|
-
});
|
47
|
-
this.form = this._fb.group({
|
48
|
-
outOfOffice: this.outOfOffice,
|
49
|
-
grantAccess: this.grantAccess
|
50
|
-
});
|
51
|
-
this.userDisplay = (item) => {
|
52
|
-
return item ? item.name : null;
|
53
|
-
};
|
54
|
-
}
|
55
|
-
ngOnInit() {
|
56
|
-
this.form.patchValue(this.model);
|
57
|
-
const { active, to, from } = this.outOfOffice.controls;
|
58
|
-
if (!this.model.outOfOffice || !this.model.outOfOffice.active) {
|
59
|
-
to.disable({ emitEvent: false });
|
60
|
-
from.disable({ emitEvent: false });
|
61
|
-
this.substitute.disable({ emitEvent: false });
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
this.substitute.addValidators(Validators.required);
|
65
|
-
if (!this.model.outOfOffice.from)
|
66
|
-
to.disable({ emitEvent: false });
|
67
|
-
}
|
68
|
-
this.model.outOfOffice.substitueId &&
|
69
|
-
this._accounts.get(this.model.outOfOffice.substitueId).subscribe(u => this.substitute.setValue(u, { emitEvent: false }));
|
70
|
-
active.valueChanges.pipe(takeUntil(this._dialogRef.afterClosed())).
|
71
|
-
subscribe(active => {
|
72
|
-
if (active) {
|
73
|
-
from.enable();
|
74
|
-
from.value && to.enable();
|
75
|
-
this.substitute.enable();
|
76
|
-
this.substitute.addValidators(Validators.required);
|
77
|
-
this.substitueInput.focus();
|
78
|
-
}
|
79
|
-
else {
|
80
|
-
from.disable();
|
81
|
-
to.disable();
|
82
|
-
this.substitute.clearValidators();
|
83
|
-
this.substitute.disable();
|
84
|
-
}
|
85
|
-
});
|
86
|
-
this.ousers$ = this.substitute.valueChanges.pipe(takeUntil(this._dialogRef.afterClosed()), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this.model.userId)));
|
87
|
-
from.valueChanges.pipe(takeUntil(this._dialogRef.afterClosed())).
|
88
|
-
subscribe(v => {
|
89
|
-
if (v)
|
90
|
-
to.enable();
|
91
|
-
else
|
92
|
-
to.disable();
|
93
|
-
});
|
94
|
-
if (!this.model.grantAccess || !this.model.grantAccess.active) {
|
95
|
-
this.grants.disable({ emitEvent: false });
|
96
|
-
}
|
97
|
-
this.grantAccess.controls.active.valueChanges.pipe(takeUntil(this._dialogRef.afterClosed())).
|
98
|
-
subscribe(v => {
|
99
|
-
if (v) {
|
100
|
-
this.grants.enable();
|
101
|
-
this.grants.addValidators(Validators.required);
|
102
|
-
this.grantInput.focus();
|
103
|
-
}
|
104
|
-
else {
|
105
|
-
this.grants.clearValidators();
|
106
|
-
}
|
107
|
-
});
|
108
|
-
this.gusers$ = this.grants.valueChanges.pipe(takeUntil(this._dialogRef.afterClosed()), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this.model.userId)));
|
109
|
-
}
|
110
|
-
setId(event) {
|
111
|
-
const { id } = event.option.value;
|
112
|
-
this.outOfOffice.controls.substitueId.setValue(id);
|
113
|
-
}
|
114
|
-
/**
|
115
|
-
*
|
116
|
-
* @param id
|
117
|
-
*/
|
118
|
-
removeGrant(id) {
|
119
|
-
const users = this.form.value.grantAccess.users;
|
120
|
-
const index = users.indexOf(id);
|
121
|
-
if (index >= 0)
|
122
|
-
users.splice(index, 1);
|
123
|
-
this.form.patchValue({});
|
124
|
-
}
|
125
|
-
/**
|
126
|
-
*
|
127
|
-
* @param inp
|
128
|
-
* @param event
|
129
|
-
*/
|
130
|
-
addGrant(inp, event) {
|
131
|
-
const users = this.form.value.grantAccess?.users;
|
132
|
-
const id = event.option.value;
|
133
|
-
if (!users)
|
134
|
-
this.grantAccess.controls.users.setValue([id]);
|
135
|
-
else
|
136
|
-
users.push(id);
|
137
|
-
inp.value = '';
|
138
|
-
this.form.patchValue({});
|
139
|
-
}
|
140
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ProfileSettingsDialog, deps: [{ token: i1.AccountService }, { token: i2.MatDialogRef }, { token: i3.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ProfileSettingsDialog, selector: "ng-component", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }], ngImport: i0, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column gap\" formGroupName=\"outOfOffice\">\r\n <h4 class=\"\">{{'OutOfOffice'|translate}}</h4>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n @for (u of ousers$ | async; track u) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [formGroup]=\"form\" [rangePicker]=\"dates\" required>\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h4 class=\"\">{{'GrantAccess'|translate}}</h4>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n @for (u of grantAccess.value.users || []; track u) {\r\n <mat-chip-row\r\n [removable]=\"grantAccess.value.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n", dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i5.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i5.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i5.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i5.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.UserNamePipe, name: "userName" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
|
142
|
-
}
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ProfileSettingsDialog, decorators: [{
|
144
|
-
type: Component,
|
145
|
-
args: [{ template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column gap\" formGroupName=\"outOfOffice\">\r\n <h4 class=\"\">{{'OutOfOffice'|translate}}</h4>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n @for (u of ousers$ | async; track u) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [formGroup]=\"form\" [rangePicker]=\"dates\" required>\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h4 class=\"\">{{'GrantAccess'|translate}}</h4>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n @for (u of grantAccess.value.users || []; track u) {\r\n <mat-chip-row\r\n [removable]=\"grantAccess.value.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n" }]
|
146
|
-
}], ctorParameters: () => [{ type: i1.AccountService }, { type: i2.MatDialogRef }, { type: i3.FormBuilder }, { type: undefined, decorators: [{
|
147
|
-
type: Inject,
|
148
|
-
args: [MAT_DIALOG_DATA]
|
149
|
-
}] }], propDecorators: { substitueInput: [{
|
150
|
-
type: ViewChild,
|
151
|
-
args: ['substitueInput', { read: MatInput }]
|
152
|
-
}], grantInput: [{
|
153
|
-
type: ViewChild,
|
154
|
-
args: ['grantInput', { read: MatChipInput }]
|
155
|
-
}] } });
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0b2ZvZmZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL291dG9mb2ZmaWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9vdXRvZm9mZmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVUxRCxNQUFNLE9BQU8scUJBQXFCO0lBeUJoQyxZQUFvQixTQUF5QixFQUNuQyxVQUErQyxFQUMvQyxHQUFnQixFQUVqQixLQUFzQjtRQUpYLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ25DLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBQy9DLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFFakIsVUFBSyxH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T0FJRztJQUNILFFBQVEsQ0FBQyxHQUFxQixFQUFFLEtBQW1DO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7UUFDakQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFlLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFFL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBOUhVLHFCQUFxQix1R0E0QnRCLGVBQWU7a0dBNUJkLHFCQUFxQixpSkFNSyxRQUFRLG1HQUNaLFlBQVksNkJDM0IvQywyL0dBb0VBOzsyRkRoRGEscUJBQXFCO2tCQURqQyxTQUFTOzs7MEJBNkJMLE1BQU07MkJBQUMsZUFBZTt5Q0F0QndCLGNBQWM7c0JBQTlELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNFLFVBQVU7c0JBQTFELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVOVEVSLCBDT01NQSwgU0VNSUNPTE9OIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5pbXBvcnQgeyBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcclxuaW1wb3J0IHsgTWF0Q2hpcElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoaXBzXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwsIGZpbHRlciwgc3dpdGNoTWFwLCBtYXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc01vYmlsZSwgaXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgT3V0T2ZPZmZpY2VTZXR0aW5ncywgR3JhbnRTZXR0aW5ncywgVXNlckluZm8sIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE91dE9mT2ZmaWNlRGF0YSB7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgb3V0T2ZPZmZpY2U6IE91dE9mT2ZmaWNlU2V0dGluZ3M7XHJcbiAgZ3JhbnRBY2Nlc3M6IEdyYW50U2V0dGluZ3M7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ291dG9mb2ZmaWNlLmNvbXBvbmVudC5odG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZVNldHRpbmdzRGlhbG9nIGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQSwgU0VNSUNPTE9OXTtcclxuICByZWFkb25seSB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgcmVhZG9ubHkgaXNNb2JpbGUgPSBpc01vYmlsZSgpO1xyXG4gIHJlYWRvbmx5IHN1YnN0aXR1dGUgPSB0aGlzLl9mYi5jb250cm9sPFVzZXJJbmZvIHwgc3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgcmVhZG9ubHkgZ3JhbnRzID0gdGhpcy5fZmIuY29udHJvbChbXSk7XHJcbiAgQFZpZXdDaGlsZCgnc3Vic3RpdHVlSW5wdXQnLCB7IHJlYWQ6IE1hdElucHV0IH0pIHN1YnN0aXR1ZUlucHV0OiBNYXRJbnB1dDtcclxuICBAVmlld0NoaWxkKCdncmFudElucHV0JywgeyByZWFkOiBNYXRDaGlwSW5wdXQgfSkgZ3JhbnRJbnB1dDogTWF0Q2hpcElucHV0O1xyXG4gIHJlYWRvbmx5IG91dE9mT2ZmaWNlID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgIHN1YnN0aXR1ZUlkOiB0aGlzLl9mYi5jb250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxyXG4gICAgZnJvbTogdGhpcy5fZmIuY29udHJvbDxEYXRlIHwgbnVsbD4obnVsbCksXHJcbiAgICB0bzogdGhpcy5fZmIuY29udHJvbDxEYXRlIHwgbnVsbD4obnVsbClcclxuICB9KTtcclxuICByZWFkb25seSBncmFudEFjY2VzcyA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICB1c2VyczogdGhpcy5fZmIuY29udHJvbDxzdHJpbmdbXT4oW10pXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIG91dE9mT2ZmaWNlOiB0aGlzLm91dE9mT2ZmaWNlLFxyXG4gICAgZ3JhbnRBY2Nlc3M6IHRoaXMuZ3JhbnRBY2Nlc3NcclxuICB9KTtcclxuICBvdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIGd1c2VycyQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFByb2ZpbGVTZXR0aW5nc0RpYWxvZz4sXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcclxuICAgIHB1YmxpYyBtb2RlbDogT3V0T2ZPZmZpY2VEYXRhKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCk7XHJcbiAgICBjb25zdCB7IGFjdGl2ZSwgdG8sIGZyb20gfSA9IHRoaXMub3V0T2ZPZmZpY2UuY29udHJvbHM7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwub3V0T2ZPZmZpY2UgfHwgIXRoaXMubW9kZWwub3V0T2ZPZmZpY2UuYWN0aXZlKSB7XHJcbiAgICAgIHRvLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICBmcm9tLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB0aGlzLnN1YnN0aXR1dGUuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdWJzdGl0dXRlLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIGlmICghdGhpcy5tb2RlbC5vdXRPZk9mZmljZS5mcm9tKVxyXG4gICAgICAgIHRvLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbC5vdXRPZk9mZmljZS5zdWJzdGl0dWVJZCAmJlxyXG4gICAgICB0aGlzLl9hY2NvdW50cy5nZXQodGhpcy5tb2RlbC5vdXRPZk9mZmljZS5zdWJzdGl0dWVJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICB0aGlzLnN1YnN0aXR1dGUuc2V0VmFsdWUodSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgIGFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgICAgZnJvbS5lbmFibGUoKTtcclxuICAgICAgICAgIGZyb20udmFsdWUgJiYgdG8uZW5hYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1dGUuZW5hYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1dGUuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHVlSW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBmcm9tLmRpc2FibGUoKTtcclxuICAgICAgICAgIHRvLmRpc2FibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMub3VzZXJzJCA9IHRoaXMuc3Vic3RpdHV0ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpLFxyXG4gICAgICBmaWx0ZXIodiA9PiBpc1N0cmluZyh2KSksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX2FjY291bnRzLmZpbmRBbGwodiBhcyBhbnkpKSxcclxuICAgICAgbWFwKHIgPT4gci5maWx0ZXIodSA9PiB1LmlkICE9PSB0aGlzLm1vZGVsLnVzZXJJZCkpKTtcclxuICAgIGZyb20udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZCgpKSkuXHJcbiAgICAgIHN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICBpZiAodilcclxuICAgICAgICAgIHRvLmVuYWJsZSgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRvLmRpc2FibGUoKTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwuZ3JhbnRBY2Nlc3MgfHwgIXRoaXMubW9kZWwuZ3JhbnRBY2Nlc3MuYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuZ3JhbnRzLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmFudEFjY2Vzcy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZCgpKSkuXHJcbiAgICAgIHN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgdGhpcy5ncmFudHMuZW5hYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLmdyYW50cy5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgdGhpcy5ncmFudElucHV0LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5ncmFudHMuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZ3VzZXJzJCA9IHRoaXMuZ3JhbnRzLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT4gdGhpcy5fYWNjb3VudHMuZmluZEFsbCh2IGFzIGFueSkpLFxyXG4gICAgICBtYXAociA9PiByLmZpbHRlcih1ID0+IHUuaWQgIT09IHRoaXMubW9kZWwudXNlcklkKSkpO1xyXG4gIH1cclxuICB1c2VyRGlzcGxheSA9IChpdGVtOiBVc2VySW5mbykgPT4ge1xyXG4gICAgcmV0dXJuIGl0ZW0gPyBpdGVtLm5hbWUgOiBudWxsO1xyXG4gIH1cclxuICBzZXRJZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIFVzZXJJbmZvO1xyXG4gICAgdGhpcy5vdXRPZk9mZmljZS5jb250cm9scy5zdWJzdGl0dWVJZC5zZXRWYWx1ZShpZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpZFxyXG4gICAqL1xyXG4gIHJlbW92ZUdyYW50KGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXJzID0gdGhpcy5mb3JtLnZhbHVlLmdyYW50QWNjZXNzIS51c2VycyE7XHJcbiAgICBjb25zdCBpbmRleCA9IHVzZXJzLmluZGV4T2YoaWQpO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgYWRkR3JhbnQoaW5wOiBIVE1MSW5wdXRFbGVtZW50LCBldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3M/LnVzZXJzO1xyXG4gICAgY29uc3QgaWQgPSBldmVudC5vcHRpb24udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgaWYgKCF1c2VycylcclxuICAgICAgdGhpcy5ncmFudEFjY2Vzcy5jb250cm9scy51c2Vycy5zZXRWYWx1ZShbaWRdKTtcclxuICAgIGVsc2VcclxuICAgICAgdXNlcnMucHVzaChpZCk7XHJcbiAgICBpbnAudmFsdWUgPSAnJztcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbn1cclxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3snU2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19PC9oMj5cclxuPG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gZ2FwXCIgZm9ybUdyb3VwTmFtZT1cIm91dE9mT2ZmaWNlXCI+XHJcbiAgICAgIDxoNCBjbGFzcz1cIlwiPnt7J091dE9mT2ZmaWNlJ3x0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImFjdGl2ZVwiPnt7J0FjdGl2ZScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPGJyIC8+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cInN1YnN0aXR1dGVcIiB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJzYXV0b1wiICNzdWJzdGl0dWVJbnB1dFxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBc3NvY2lhdGUnIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cIm91dE9mT2ZmaWNlLnZhbHVlLmFjdGl2ZVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwidXNlckRpc3BsYXlcIlxyXG4gICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwic2V0SWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICBAZm9yICh1IG9mIG91c2VycyQgfCBhc3luYzsgdHJhY2sgdSkge1xyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ1XCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydEYXRlcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbZm9ybUdyb3VwXT1cImZvcm1cIiBbcmFuZ2VQaWNrZXJdPVwiZGF0ZXNcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJmcm9tXCIgW3BsYWNlaG9sZGVyXT1cIidGcm9tJ3x0cmFuc2xhdGVcIiBbbWluXT1cInRvZGF5XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cInRvXCIgW3BsYWNlaG9sZGVyXT1cIidUbyd8dHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkYXRlc1wiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjZGF0ZXMgW3RvdWNoVWldPVwiaXNNb2JpbGVcIj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLTxociAvPi0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgZm9ybUdyb3VwTmFtZT1cImdyYW50QWNjZXNzXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiXCI+e3snR3JhbnRBY2Nlc3MnfHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1jaGlwLWdyaWQgI2dyYW50TGlzdCBbYXR0ci5hcmlhLWxhYmVsXT1cIlwiIFtkaXNhYmxlZF09XCIhZ3JhbnRBY2Nlc3MudmFsdWUuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKHUgb2YgZ3JhbnRBY2Nlc3MudmFsdWUudXNlcnMgfHwgW107IHRyYWNrIHUpIHtcclxuICAgICAgICAgICAgICA8bWF0LWNoaXAtcm93XHJcbiAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cImdyYW50QWNjZXNzLnZhbHVlLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVHcmFudCh1KVwiPlxyXG4gICAgICAgICAgICAgICAge3t1IHwgdXNlck5hbWUgfCBhc3luY319XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cImdyYW50c1wiIHBsYWNlaG9sZGVyPVwie3snVXNlcnMnfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJncmFudEFjY2Vzcy52YWx1ZS5hY3RpdmVcIlxyXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImdyYW50QXV0b1wiXHJcbiAgICAgICAgICAgICNncmFudElucHV0XHJcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiZ3JhbnRMaXN0XCJcclxuICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiPlxyXG4gICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjZ3JhbnRBdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImFkZEdyYW50KGdyYW50SW5wdXQsICRldmVudClcIj5cclxuICAgICAgICAgICAgICBAZm9yICh1IG9mIGd1c2VycyQgfCBhc3luYzsgdHJhY2sgdSkge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInUuaWRcIj5cclxuICAgICAgICAgICAgICAgICAge3t1Lm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICBAaWYgKHUuZW1haWwpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDsgLSB7e3UuZW1haWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwiZm9ybS52YWx1ZVwiIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiPnt7J09LJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
|