@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,68 +0,0 @@
|
|
1
|
-
import { Component, EventEmitter, ViewChild } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
4
|
-
import { LayoutComponent } from '../../core/layout.component';
|
5
|
-
import { ActionBase } from './action.base';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../core/slots/pane-ref";
|
8
|
-
import * as i2 from "../../core/mailbox.service";
|
9
|
-
import * as i3 from "../../core/component-factory-resolver";
|
10
|
-
import * as i4 from "../../core/account.service";
|
11
|
-
import * as i5 from "../../core/prompt.service";
|
12
|
-
import * as i6 from "../../core/translate.service";
|
13
|
-
import * as i7 from "../../core/session.service";
|
14
|
-
import * as i8 from "@angular/material/dialog";
|
15
|
-
import * as i9 from "@angular/material/button";
|
16
|
-
import * as i10 from "../../core/pipes/translate.pipe";
|
17
|
-
/** action-dialog component*/
|
18
|
-
export class ActionPaneComponent extends ActionBase {
|
19
|
-
/** action-dialog ctor */
|
20
|
-
constructor(_pane, mailbox, _fr, accounts, sb, translate, session) {
|
21
|
-
super(mailbox, accounts, sb, translate);
|
22
|
-
this._pane = _pane;
|
23
|
-
this._fr = _fr;
|
24
|
-
this.arguments = {};
|
25
|
-
this.okChange = new EventEmitter();
|
26
|
-
this._destroy = new Subject();
|
27
|
-
this.model = _pane.data['item'];
|
28
|
-
this.action = session.profile.actions.find(a => a.name === _pane.params['action']);
|
29
|
-
}
|
30
|
-
close() { this._pane.close(); }
|
31
|
-
ok() {
|
32
|
-
super._ok(this.action, this.arguments).subscribe(() => this.close());
|
33
|
-
}
|
34
|
-
ngOnInit() {
|
35
|
-
if (this.action.template) {
|
36
|
-
const comp = this._fr.component(this.action.template);
|
37
|
-
const cRef = this.container.createComponent(comp);
|
38
|
-
cRef.instance.form.valueChanges.pipe(takeUntil(this._destroy)).subscribe(v => this.arguments = v);
|
39
|
-
cRef.instance.form.statusChanges.pipe(takeUntil(this._destroy)).
|
40
|
-
subscribe(() => this.valid = cRef.instance.form.valid);
|
41
|
-
}
|
42
|
-
else {
|
43
|
-
if (this.action.arguments.length === 0)
|
44
|
-
this.valid = true;
|
45
|
-
else {
|
46
|
-
const cRef = this.container.createComponent(LayoutComponent);
|
47
|
-
cRef.instance.fields = this.action.arguments;
|
48
|
-
cRef.instance.model = {};
|
49
|
-
cRef.instance.modelChange.pipe(takeUntil(this._destroy)).subscribe(v => this.arguments = v);
|
50
|
-
cRef.instance.validChange.pipe(takeUntil(this._destroy)).subscribe(v => this.valid = v);
|
51
|
-
}
|
52
|
-
}
|
53
|
-
}
|
54
|
-
ngOnDestroy() {
|
55
|
-
this._destroy.next();
|
56
|
-
this._destroy.complete();
|
57
|
-
}
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ActionPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.MailboxService }, { token: i3.BizDocComponentFactoryResolver }, { token: i4.AccountService }, { token: i5.PromptService }, { token: i6.TranslateService }, { token: i7.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ActionPaneComponent, selector: "bizdoc-action-dialog-pane", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<h2 mat-dialog-title>{{action.title}}</h2>\r\n<mat-dialog-content>\r\n @if (!action.arguments?.length) {\r\n <p>\r\n {{ 'ActionAsk' | translate : (action.verb || action.title).toLowerCase() }}\r\n </p>\r\n }\r\n <ng-container #container>\r\n </ng-container>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button type=\"submit\" [disabled]=\"!valid\" (click)=\"ok()\" color=\"primary\">{{'Yes'|translate}}</button>\r\n <button mat-button (click)='close()'>{{'No' | translate}}</button>\r\n</mat-dialog-actions>\r\n", styles: [":host ::ng-deep form{display:flex}\n"], dependencies: [{ kind: "directive", type: i8.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i8.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i8.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
|
60
|
-
}
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ActionPaneComponent, decorators: [{
|
62
|
-
type: Component,
|
63
|
-
args: [{ selector: 'bizdoc-action-dialog-pane', template: "<h2 mat-dialog-title>{{action.title}}</h2>\r\n<mat-dialog-content>\r\n @if (!action.arguments?.length) {\r\n <p>\r\n {{ 'ActionAsk' | translate : (action.verb || action.title).toLowerCase() }}\r\n </p>\r\n }\r\n <ng-container #container>\r\n </ng-container>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button type=\"submit\" [disabled]=\"!valid\" (click)=\"ok()\" color=\"primary\">{{'Yes'|translate}}</button>\r\n <button mat-button (click)='close()'>{{'No' | translate}}</button>\r\n</mat-dialog-actions>\r\n", styles: [":host ::ng-deep form{display:flex}\n"] }]
|
64
|
-
}], ctorParameters: () => [{ type: i1.PaneRef }, { type: i2.MailboxService }, { type: i3.BizDocComponentFactoryResolver }, { type: i4.AccountService }, { type: i5.PromptService }, { type: i6.TranslateService }, { type: i7.SessionService }], propDecorators: { container: [{
|
65
|
-
type: ViewChild,
|
66
|
-
args: ['container']
|
67
|
-
}] } });
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnBhbmUuZGlhbG9nLmV4cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2FjdGlvbi9hY3Rpb24ucGFuZS5kaWFsb2cuZXhwLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvc2UvYWN0aW9uL2FjdGlvbi5wYW5lLmRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUs5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFTM0MsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxVQUFVO0lBT2pELHlCQUF5QjtJQUN6QixZQUNVLEtBQW1DLEVBQzNDLE9BQXVCLEVBQ2YsR0FBbUMsRUFDM0MsUUFBd0IsRUFDeEIsRUFBaUIsRUFDakIsU0FBMkIsRUFDM0IsT0FBdUI7UUFDdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBUGhDLFVBQUssR0FBTCxLQUFLLENBQThCO1FBRW5DLFFBQUcsR0FBSCxHQUFHLENBQWdDO1FBVDdDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFHTixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUNoQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVc5QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJ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QUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEFyZ3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gJy4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXInO1xyXG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2xheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhcmFtTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgQWN0aW9uQmFzZSB9IGZyb20gJy4vYWN0aW9uLmJhc2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWN0aW9uLWRpYWxvZy1wYW5lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLnBhbmUuZGlhbG9nLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi5kaWFsb2cuc2NzcyddXHJcbn0pXHJcbi8qKiBhY3Rpb24tZGlhbG9nIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25QYW5lQ29tcG9uZW50IGV4dGVuZHMgQWN0aW9uQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgYXJndW1lbnRzID0ge307XHJcbiAgcmVhZG9ubHkgYWN0aW9uOiBBY3Rpb247XHJcbiAgdmFsaWQ6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgb2tDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcmFtTWFwPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBhY3Rpb24tZGlhbG9nIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8QWN0aW9uUGFuZUNvbXBvbmVudD4sXHJcbiAgICBtYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZyOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBhY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBzYjogUHJvbXB0U2VydmljZSxcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihtYWlsYm94LCBhY2NvdW50cywgc2IsIHRyYW5zbGF0ZSk7XHJcbiAgICB0aGlzLm1vZGVsID0gX3BhbmUuZGF0YVsnaXRlbSddO1xyXG4gICAgdGhpcy5hY3Rpb24gPSBzZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maW5kKGEgPT4gYS5uYW1lID09PSBfcGFuZS5wYXJhbXNbJ2FjdGlvbiddKSE7XHJcbiAgfVxyXG4gIGNsb3NlKCkgeyB0aGlzLl9wYW5lLmNsb3NlKCk7IH1cclxuICBvaygpIHtcclxuICAgIHN1cGVyLl9vayh0aGlzLmFjdGlvbiwgdGhpcy5hcmd1bWVudHMpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLmNsb3NlKClcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWN0aW9uLnRlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnN0IGNvbXAgPSB0aGlzLl9mci5jb21wb25lbnQodGhpcy5hY3Rpb24udGVtcGxhdGUpO1xyXG4gICAgICBjb25zdCBjUmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXApO1xyXG4gICAgICAoY1JlZi5pbnN0YW5jZSBhcyBBcmd1bWVudHNDb21wb25lbnQpLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB0aGlzLmFyZ3VtZW50cyA9IHYpO1xyXG4gICAgICAoY1JlZi5pbnN0YW5jZSBhcyBBcmd1bWVudHNDb21wb25lbnQpLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKCgpID0+IHRoaXMudmFsaWQgPSAoY1JlZi5pbnN0YW5jZSBhcyBBcmd1bWVudHNDb21wb25lbnQpLmZvcm0udmFsaWQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGlvbi5hcmd1bWVudHMhLmxlbmd0aCA9PT0gMClcclxuICAgICAgICB0aGlzLnZhbGlkID0gdHJ1ZTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY1JlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgICAgIGNSZWYuaW5zdGFuY2UuZmllbGRzID0gdGhpcy5hY3Rpb24uYXJndW1lbnRzITtcclxuICAgICAgICBjUmVmLmluc3RhbmNlLm1vZGVsID0ge307XHJcbiAgICAgICAgY1JlZi5pbnN0YW5jZS5tb2RlbENoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4gdGhpcy5hcmd1bWVudHMgPSB2KTtcclxuICAgICAgICBjUmVmLmluc3RhbmNlLnZhbGlkQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB0aGlzLnZhbGlkID0gdik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3thY3Rpb24udGl0bGV9fTwvaDI+XHJcbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgQGlmICghYWN0aW9uLmFyZ3VtZW50cz8ubGVuZ3RoKSB7XHJcbiAgICA8cD5cclxuICAgICAge3sgJ0FjdGlvbkFzaycgfCB0cmFuc2xhdGUgOiAoYWN0aW9uLnZlcmIgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpIH19XHJcbiAgICA8L3A+XHJcbiAgfVxyXG4gIDxuZy1jb250YWluZXIgI2NvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiIXZhbGlkXCIgKGNsaWNrKT1cIm9rKClcIiBjb2xvcj1cInByaW1hcnlcIj57eydZZXMnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9J2Nsb3NlKCknPnt7J05vJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4iXX0=
|
@@ -1,77 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { Component, ElementRef, ViewChild } from '@angular/core';
|
3
|
-
import { Validators } from '@angular/forms';
|
4
|
-
import { Subject } from 'rxjs';
|
5
|
-
import { debounceTime, takeUntil, map, switchMap } from 'rxjs/operators';
|
6
|
-
import { BizDoc } from '../../core/decorators';
|
7
|
-
import { isString } from '../../core/functions';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@angular/forms";
|
10
|
-
import * as i2 from "../../core/session.service";
|
11
|
-
import * as i3 from "../../core/account.service";
|
12
|
-
import * as i4 from "@angular/material/autocomplete";
|
13
|
-
import * as i5 from "@angular/material/core";
|
14
|
-
import * as i6 from "@angular/material/form-field";
|
15
|
-
import * as i7 from "@angular/material/checkbox";
|
16
|
-
import * as i8 from "@angular/material/input";
|
17
|
-
import * as i9 from "@angular/cdk/text-field";
|
18
|
-
import * as i10 from "@angular/common";
|
19
|
-
import * as i11 from "../../core/pipes/translate.pipe";
|
20
|
-
let AssignActionComponent = class AssignActionComponent {
|
21
|
-
constructor(_fb, _session, _accounts) {
|
22
|
-
this._fb = _fb;
|
23
|
-
this._session = _session;
|
24
|
-
this._accounts = _accounts;
|
25
|
-
this.form = this._fb.group({
|
26
|
-
userIds: this._fb.control(null, Validators.required),
|
27
|
-
fyi: this._fb.control(false),
|
28
|
-
roundtrip: this._fb.control(false),
|
29
|
-
note: this._fb.control(null, Validators.maxLength(200))
|
30
|
-
});
|
31
|
-
this.userId = this._fb.control([]);
|
32
|
-
this._destroy = new Subject();
|
33
|
-
this.displayWith = (e) => isString(e) ? e : e.name;
|
34
|
-
}
|
35
|
-
ngOnInit() {
|
36
|
-
const me = this._session.userId;
|
37
|
-
this.form.controls.fyi.valueChanges.pipe(takeUntil(this._destroy)).
|
38
|
-
subscribe(v => {
|
39
|
-
const roundtrip = this.form.controls.roundtrip;
|
40
|
-
if (v)
|
41
|
-
roundtrip.disable();
|
42
|
-
else
|
43
|
-
roundtrip.enable();
|
44
|
-
});
|
45
|
-
this.users$ = this.userId.valueChanges.
|
46
|
-
pipe(debounceTime(200), takeUntil(this._destroy), switchMap(v => this._accounts.findAll(v, { take: 20 }).
|
47
|
-
pipe(map(r => r.filter(u => u.id !== me)))));
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
*
|
51
|
-
* @param event
|
52
|
-
*/
|
53
|
-
userSelected(event) {
|
54
|
-
const { id } = event.option.value;
|
55
|
-
this.form.controls.userIds.setValue([id]);
|
56
|
-
}
|
57
|
-
ngOnDestroy() {
|
58
|
-
this._destroy.next();
|
59
|
-
this._destroy.complete();
|
60
|
-
}
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AssignActionComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }, { token: i3.AccountService }], target: i0.ɵɵFactoryTarget.Component }); }
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AssignActionComponent, selector: "ng-component", viewQueries: [{ propertyName: "nameInput", first: true, predicate: ["nameInput"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input required [placeholder]=\"'AssignTo'|translate\"\r\n [formControl]=userId\r\n cdkFocusInitial matInput\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"userSelected($event)\" [displayWith]=\"displayWith\">\r\n @for (u of users$ | async; track u) {\r\n <mat-option [value]=\"u\">\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 @if (form.controls.userIds.hasError('required')) {\r\n <mat-error>{{'RequiredErr'|translate:('AssignTo'|translate)}}</mat-error>\r\n }\r\n </mat-form-field>\r\n <div>\r\n <mat-checkbox formControlName=fyi> {{ 'AssignFYI' | translate }}</mat-checkbox>\r\n \r\n <!-- <mat-checkbox formControlName=roundtrip> {{ 'AssignRoundtrip' | translate }}</mat-checkbox>-->\r\n </div>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n <mat-hint>{{'AssignNoteHint'| translate}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.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: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i8.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: "directive", type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
|
63
|
-
};
|
64
|
-
AssignActionComponent = __decorate([
|
65
|
-
BizDoc({
|
66
|
-
selector: 'bizdoc-action-assign'
|
67
|
-
})
|
68
|
-
], AssignActionComponent);
|
69
|
-
export { AssignActionComponent };
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AssignActionComponent, decorators: [{
|
71
|
-
type: Component,
|
72
|
-
args: [{ template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input required [placeholder]=\"'AssignTo'|translate\"\r\n [formControl]=userId\r\n cdkFocusInitial matInput\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"userSelected($event)\" [displayWith]=\"displayWith\">\r\n @for (u of users$ | async; track u) {\r\n <mat-option [value]=\"u\">\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 @if (form.controls.userIds.hasError('required')) {\r\n <mat-error>{{'RequiredErr'|translate:('AssignTo'|translate)}}</mat-error>\r\n }\r\n </mat-form-field>\r\n <div>\r\n <mat-checkbox formControlName=fyi> {{ 'AssignFYI' | translate }}</mat-checkbox>\r\n \r\n <!-- <mat-checkbox formControlName=roundtrip> {{ 'AssignRoundtrip' | translate }}</mat-checkbox>-->\r\n </div>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n <mat-hint>{{'AssignNoteHint'| translate}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n" }]
|
73
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SessionService }, { type: i3.AccountService }], propDecorators: { nameInput: [{
|
74
|
-
type: ViewChild,
|
75
|
-
args: ['nameInput', { static: true, read: ElementRef }]
|
76
|
-
}] } });
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9hY3Rpb24vYXNzaWduLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9hY3Rpb24vYXNzaWduLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVF6QyxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQVdoQyxZQUFvQixHQUFnQixFQUFVLFFBQXdCLEVBQVUsU0FBeUI7UUFBckYsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFUaEcsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBa0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDckUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2xDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkUsQ0FBQyxDQUFDO1FBQ00sV0FBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3ZDLGdCQUFXLEdBQUcsQ0FBQyxDQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRHhELENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDL0MsSUFBSSxDQUFDO2dCQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs7Z0JBQ3RCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ3BDLElBQUksQ0FDRixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDZixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQW1DO1FBQzlDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWlCLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0EzQ1UscUJBQXFCO2tHQUFyQixxQkFBcUIsdUlBQ2MsVUFBVSwyQ0NuQjFELGs3Q0FnQ0E7O0FEZGEscUJBQXFCO0lBSGpDLE1BQU0sQ0FBQztRQUNOLFFBQVEsRUFBRSxzQkFBc0I7S0FDakMsQ0FBQztHQUNXLHFCQUFxQixDQTRDakM7OzJGQTVDWSxxQkFBcUI7a0JBTmpDLFNBQVM7OzBJQU9vRCxTQUFTO3NCQUFwRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQXJndW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NpZ24tYWN0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5AQml6RG9jKHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1hY3Rpb24tYXNzaWduJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzaWduQWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQXJndW1lbnRzQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnbmFtZUlucHV0JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgbmFtZUlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICB1c2VySWRzOiB0aGlzLl9mYi5jb250cm9sPHN0cmluZ1tdIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBmeWk6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgcm91bmR0cmlwOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgIG5vdGU6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKSlcclxuICB9KTtcclxuICByZWFkb25seSB1c2VySWQgPSB0aGlzLl9mYi5jb250cm9sKFtdKTtcclxuICB1c2VycyQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIGRpc3BsYXlXaXRoID0gKGU6IFVzZXJJbmZvKSA9PiBpc1N0cmluZyhlKSA/IGUgOiBlLm5hbWU7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtZSA9IHRoaXMuX3Nlc3Npb24udXNlcklkO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLmZ5aS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgY29uc3Qgcm91bmR0cmlwID0gdGhpcy5mb3JtLmNvbnRyb2xzLnJvdW5kdHJpcDtcclxuICAgICAgICBpZiAodikgcm91bmR0cmlwLmRpc2FibGUoKTtcclxuICAgICAgICBlbHNlIHJvdW5kdHJpcC5lbmFibGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMudXNlcklkLnZhbHVlQ2hhbmdlcy5cclxuICAgICAgcGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgICAgc3dpdGNoTWFwKHYgPT5cclxuICAgICAgICAgIHRoaXMuX2FjY291bnRzLmZpbmRBbGwodiBhcyBhbnksIHsgdGFrZTogMjAgfSkuXHJcbiAgICAgICAgICAgIHBpcGUobWFwKHIgPT5cclxuICAgICAgICAgICAgICByLmZpbHRlcih1ID0+IHUuaWQgIT09IG1lKVxyXG4gICAgICAgICAgICApKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIHVzZXJTZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIFVzZXJJbmZvO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVzZXJJZHMuc2V0VmFsdWUoW2lkXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwiY29sdW1uXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGlucHV0IHJlcXVpcmVkIFtwbGFjZWhvbGRlcl09XCInQXNzaWduVG8nfHRyYW5zbGF0ZVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09dXNlcklkXHJcbiAgICAgIGNka0ZvY3VzSW5pdGlhbCBtYXRJbnB1dFxyXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIj5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwidXNlclNlbGVjdGVkKCRldmVudClcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVdpdGhcIj5cclxuICAgICAgICBAZm9yICh1IG9mIHVzZXJzJCB8IGFzeW5jOyB0cmFjayB1KSB7XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidVwiPlxyXG4gICAgICAgICAgICB7e3UubmFtZX19XHJcbiAgICAgICAgICAgIEBpZiAodS5lbWFpbCkge1xyXG4gICAgICAgICAgICAgIDxzcGFuPiZuYnNwOyAtIHt7dS5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIEBpZiAoZm9ybS5jb250cm9scy51c2VySWRzLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgICAgPG1hdC1lcnJvcj57eydSZXF1aXJlZEVycid8dHJhbnNsYXRlOignQXNzaWduVG8nfHRyYW5zbGF0ZSl9fTwvbWF0LWVycm9yPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGRpdj5cclxuICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9ZnlpPiB7eyAnQXNzaWduRllJJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAmbmJzcDtcclxuICAgICAgPCEtLSAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1yb3VuZHRyaXA+IHt7ICdBc3NpZ25Sb3VuZHRyaXAnIHwgdHJhbnNsYXRlIH19PC9tYXQtY2hlY2tib3g+LS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IGNka1RleHRhcmVhQXV0b3NpemUgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XHJcbiAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiPnt7Zm9ybS5jb250cm9scy5ub3RlLnZhbHVlPy5sZW5ndGggfHwgMH19IC8ge3syMDB9fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDxtYXQtaGludD57eydBc3NpZ25Ob3RlSGludCd8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG4iXX0=
|
@@ -1,90 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { Component, ElementRef, ViewChild } from '@angular/core';
|
3
|
-
import { Validators } from '@angular/forms';
|
4
|
-
import { COMMA, ENTER, SEMICOLON } from '@angular/cdk/keycodes';
|
5
|
-
import { Subject } from 'rxjs';
|
6
|
-
import { takeUntil, debounceTime, map, switchMap } from 'rxjs/operators';
|
7
|
-
import { BizDoc } from '../../core/decorators';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@angular/forms";
|
10
|
-
import * as i2 from "../../core/session.service";
|
11
|
-
import * as i3 from "../../core/account.service";
|
12
|
-
import * as i4 from "@angular/material/chips";
|
13
|
-
import * as i5 from "@angular/material/autocomplete";
|
14
|
-
import * as i6 from "@angular/material/core";
|
15
|
-
import * as i7 from "@angular/material/form-field";
|
16
|
-
import * as i8 from "@angular/material/input";
|
17
|
-
import * as i9 from "@angular/cdk/text-field";
|
18
|
-
import * as i10 from "@angular/material/icon";
|
19
|
-
import * as i11 from "@angular/common";
|
20
|
-
import * as i12 from "../../core/pipes/translate.pipe";
|
21
|
-
import * as i13 from "../../core/pipes/user-name.pipe";
|
22
|
-
let MoveToActionComponent = class MoveToActionComponent {
|
23
|
-
constructor(_fb, _session, _accounts) {
|
24
|
-
this._fb = _fb;
|
25
|
-
this._session = _session;
|
26
|
-
this._accounts = _accounts;
|
27
|
-
this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
|
28
|
-
this.form = this._fb.group({
|
29
|
-
userIds: this._fb.control([], Validators.required),
|
30
|
-
note: this._fb.control(null, Validators.maxLength(200))
|
31
|
-
});
|
32
|
-
this.userIds = this._fb.control([]);
|
33
|
-
this._destroy = new Subject();
|
34
|
-
}
|
35
|
-
ngOnInit() {
|
36
|
-
const me = this._session.userId;
|
37
|
-
this.users$ = this.userIds.valueChanges.
|
38
|
-
pipe(debounceTime(200), takeUntil(this._destroy), switchMap(v => this._accounts.findAll(v, { take: 20 }).
|
39
|
-
pipe(map(r => {
|
40
|
-
const userIds = this.form.controls.userIds.value || [];
|
41
|
-
return r.filter(u => u.id !== me && userIds.indexOf(u.id) < 0);
|
42
|
-
}))));
|
43
|
-
}
|
44
|
-
/**
|
45
|
-
*
|
46
|
-
* @param inp
|
47
|
-
* @param event
|
48
|
-
*/
|
49
|
-
userSelected(inp, event) {
|
50
|
-
const userIds = this.form.controls.userIds.value || [];
|
51
|
-
userIds.push(event.option.value);
|
52
|
-
this.form.controls.userIds.setValue(userIds);
|
53
|
-
inp.value = '';
|
54
|
-
}
|
55
|
-
/**
|
56
|
-
*
|
57
|
-
* @param id
|
58
|
-
*/
|
59
|
-
removed(id) {
|
60
|
-
const userIds = this.form.controls.userIds.value;
|
61
|
-
const index = userIds.indexOf(id);
|
62
|
-
if (userIds.length > 1) {
|
63
|
-
index >= 0 &&
|
64
|
-
userIds.splice(index, 1);
|
65
|
-
this.form.updateValueAndValidity();
|
66
|
-
}
|
67
|
-
else
|
68
|
-
this.form.controls.userIds.setValue(null);
|
69
|
-
}
|
70
|
-
ngOnDestroy() {
|
71
|
-
this._destroy.next();
|
72
|
-
this._destroy.complete();
|
73
|
-
}
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MoveToActionComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }, { token: i3.AccountService }], target: i0.ɵɵFactoryTarget.Component }); }
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: MoveToActionComponent, selector: "ng-component", viewQueries: [{ propertyName: "nameInput", first: true, predicate: ["nameInput"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'AssignTo'|translate\">\r\n @for (u of form.value.userIds; track u) {\r\n <mat-chip-row\r\n [removable]=\"true\"\r\n (removed)=\"removed(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 required [placeholder]=\"'AssignTo'|translate\"\r\n [formControl]=userIds\r\n cdkFocusInitial\r\n #nameInput\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"userSelected(nameInput, $event)\">\r\n @for (u of users$ | 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 @if (form.controls.userIds.hasError('required')) {\r\n <mat-error>{{'RequiredErr'|translate:('AssignTo'|translate)}}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n <mat-hint>{{'AssignNoteHint'| translate}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { 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.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: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.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: "directive", type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.UserNamePipe, name: "userName" }] }); }
|
76
|
-
};
|
77
|
-
MoveToActionComponent = __decorate([
|
78
|
-
BizDoc({
|
79
|
-
selector: 'bizdoc-action-moveto'
|
80
|
-
})
|
81
|
-
], MoveToActionComponent);
|
82
|
-
export { MoveToActionComponent };
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MoveToActionComponent, decorators: [{
|
84
|
-
type: Component,
|
85
|
-
args: [{ template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'AssignTo'|translate\">\r\n @for (u of form.value.userIds; track u) {\r\n <mat-chip-row\r\n [removable]=\"true\"\r\n (removed)=\"removed(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 required [placeholder]=\"'AssignTo'|translate\"\r\n [formControl]=userIds\r\n cdkFocusInitial\r\n #nameInput\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"userSelected(nameInput, $event)\">\r\n @for (u of users$ | 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 @if (form.controls.userIds.hasError('required')) {\r\n <mat-error>{{'RequiredErr'|translate:('AssignTo'|translate)}}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n <mat-hint>{{'AssignNoteHint'| translate}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n" }]
|
86
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SessionService }, { type: i3.AccountService }], propDecorators: { nameInput: [{
|
87
|
-
type: ViewChild,
|
88
|
-
args: ['nameInput', { static: true, read: ElementRef }]
|
89
|
-
}] } });
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZXRvLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9hY3Rpb24vbW92ZXRvLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9hY3Rpb24vbW92ZXRvLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFZeEMsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUFVaEMsWUFBb0IsR0FBZ0IsRUFBVSxRQUF3QixFQUFVLFNBQXlCO1FBQXJGLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBVGhHLHVCQUFrQixHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV6RCxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENB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LHFCQUFxQixDQTBEakM7OzJGQTFEWSxxQkFBcUI7a0JBTmpDLFNBQVM7OzBJQVFvRCxTQUFTO3NCQUFwRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiwgU0VNSUNPTE9OIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcmd1bWVudHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vbW92ZXRvLWFjdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWN0aW9uLW1vdmV0bydcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vdmVUb0FjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFyZ3VtZW50c0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT05dO1xyXG4gIEBWaWV3Q2hpbGQoJ25hbWVJbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIG5hbWVJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgdXNlcklkczogdGhpcy5fZmIuY29udHJvbDxzdHJpbmdbXT4oW10sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgbm90ZTogdGhpcy5fZmIuY29udHJvbDxzdHJpbmd8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCkpXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgdXNlcklkcyA9IHRoaXMuX2ZiLmNvbnRyb2woW10pO1xyXG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBwcml2YXRlIF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtZSA9IHRoaXMuX3Nlc3Npb24udXNlcklkO1xyXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLnVzZXJJZHMudmFsdWVDaGFuZ2VzLlxyXG4gICAgICBwaXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZmluZEFsbCh2IGFzIGFueSwgeyB0YWtlOiAyMCB9KS5cclxuICAgICAgICAgICAgcGlwZShtYXAociA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdXNlcklkcyA9IHRoaXMuZm9ybS5jb250cm9scy51c2VySWRzLnZhbHVlIGFzIHN0cmluZ1tdIHx8IFtdO1xyXG4gICAgICAgICAgICAgIHJldHVybiByLmZpbHRlcih1ID0+IHUuaWQgIT09IG1lICYmIHVzZXJJZHMuaW5kZXhPZih1LmlkKSA8IDApXHJcbiAgICAgICAgICAgIH0pKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpbnBcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICB1c2VyU2VsZWN0ZWQoaW5wOiBIVE1MSW5wdXRFbGVtZW50LCBldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcklkcyA9IHRoaXMuZm9ybS5jb250cm9scy51c2VySWRzLnZhbHVlIGFzIHN0cmluZ1tdIHx8IFtdO1xyXG4gICAgdXNlcklkcy5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbHMudXNlcklkcy5zZXRWYWx1ZSh1c2VySWRzKTtcclxuICAgIGlucC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFxyXG4gICAqL1xyXG4gIHJlbW92ZWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcklkcyA9IHRoaXMuZm9ybS5jb250cm9scy51c2VySWRzLnZhbHVlIGFzIHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0IGluZGV4ID0gdXNlcklkcy5pbmRleE9mKGlkKTtcclxuXHJcbiAgICBpZiAodXNlcklkcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGluZGV4ID49IDAgJiZcclxuICAgICAgICB1c2VySWRzLnNwbGljZShpbmRleCwgMSk7XHJcblxyXG4gICAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVzZXJJZHMuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwiY29sdW1uXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBMaXN0IFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Fzc2lnblRvJ3x0cmFuc2xhdGVcIj5cclxuICAgICAgQGZvciAodSBvZiBmb3JtLnZhbHVlLnVzZXJJZHM7IHRyYWNrIHUpIHtcclxuICAgICAgICA8bWF0LWNoaXAtcm93XHJcbiAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlZCh1KVwiPlxyXG4gICAgICAgICAge3t1IHwgdXNlck5hbWUgfCBhc3luYyB9fVxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgPGlucHV0IHJlcXVpcmVkIFtwbGFjZWhvbGRlcl09XCInQXNzaWduVG8nfHRyYW5zbGF0ZVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09dXNlcklkc1xyXG4gICAgICBjZGtGb2N1c0luaXRpYWxcclxuICAgICAgI25hbWVJbnB1dFxyXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCJcclxuICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJ1c2VyU2VsZWN0ZWQobmFtZUlucHV0LCAkZXZlbnQpXCI+XHJcbiAgICAgICAgQGZvciAodSBvZiB1c2VycyQgfCBhc3luYzsgdHJhY2sgdSkge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInUuaWRcIj5cclxuICAgICAgICAgICAge3t1Lm5hbWV9fVxyXG4gICAgICAgICAgICBAaWYgKHUuZW1haWwpIHtcclxuICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDsgLSB7e3UuZW1haWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICBAaWYgKGZvcm0uY29udHJvbHMudXNlcklkcy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgIDxtYXQtZXJyb3I+e3snUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ0Fzc2lnblRvJ3x0cmFuc2xhdGUpfX08L21hdC1lcnJvcj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IGNka1RleHRhcmVhQXV0b3NpemUgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XHJcbiAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiPnt7Zm9ybS5jb250cm9scy5ub3RlLnZhbHVlPy5sZW5ndGggfHwgMH19IC8ge3syMDB9fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDxtYXQtaGludD57eydBc3NpZ25Ob3RlSGludCd8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG4iXX0=
|
@@ -1,51 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { Component } from '@angular/core';
|
3
|
-
import { Validators } from '@angular/forms';
|
4
|
-
import { BizDoc } from '../../core/decorators';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/forms";
|
7
|
-
import * as i2 from "./action-ref";
|
8
|
-
import * as i3 from "../../core/session.service";
|
9
|
-
import * as i4 from "@angular/material/core";
|
10
|
-
import * as i5 from "@angular/material/form-field";
|
11
|
-
import * as i6 from "@angular/material/select";
|
12
|
-
import * as i7 from "@angular/material/input";
|
13
|
-
import * as i8 from "@angular/cdk/text-field";
|
14
|
-
import * as i9 from "@angular/common";
|
15
|
-
import * as i10 from "../../core/pipes/translate.pipe";
|
16
|
-
import * as i11 from "../../core/pipes/user-name.pipe";
|
17
|
-
let ReturnActionComponent = class ReturnActionComponent {
|
18
|
-
constructor(_fb, actionRef, session) {
|
19
|
-
this._fb = _fb;
|
20
|
-
this.recipients = [];
|
21
|
-
this.form = this._fb.group({
|
22
|
-
recipientId: this._fb.control(null, Validators.required),
|
23
|
-
note: this._fb.control(null, Validators.maxLength(200))
|
24
|
-
});
|
25
|
-
const recipient = actionRef.item.recipients.find(r => r.id === actionRef.item.id);
|
26
|
-
actionRef.item.recipients.slice(1).
|
27
|
-
filter(r => r.userId !== session.profile.userId && !r.estimate && !r.pending
|
28
|
-
&& r.received >= actionRef.item.issued && r.received < recipient.received).
|
29
|
-
reverse().forEach(r => this.recipients.findIndex(i => i.userId === r.userId) < 0 &&
|
30
|
-
this.recipients.push(r));
|
31
|
-
}
|
32
|
-
ngOnInit() {
|
33
|
-
if (this.recipients.length === 1) {
|
34
|
-
this.form.patchValue({ recipientId: this.recipients[0].id });
|
35
|
-
this.form.updateValueAndValidity();
|
36
|
-
}
|
37
|
-
}
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ReturnActionComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ActionRef }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ReturnActionComponent, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-select formControlName=\"recipientId\" cdkFocusInitial [placeholder]=\"'User'|translate\" required>\r\n @for (r of recipients; track r) {\r\n <mat-option [value]=\"r.id\">{{r.userId | userName | async }}</mat-option>\r\n }\r\n </mat-select>\r\n @if (form.controls.recipientId.hasError('required')) {\r\n <mat-error>{{'RequiredErr'|translate:('User'|translate)}}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.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: "directive", type: i8.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.UserNamePipe, name: "userName" }] }); }
|
40
|
-
};
|
41
|
-
ReturnActionComponent = __decorate([
|
42
|
-
BizDoc({
|
43
|
-
selector: 'bizdoc-action-return'
|
44
|
-
})
|
45
|
-
], ReturnActionComponent);
|
46
|
-
export { ReturnActionComponent };
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ReturnActionComponent, decorators: [{
|
48
|
-
type: Component,
|
49
|
-
args: [{ template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-select formControlName=\"recipientId\" cdkFocusInitial [placeholder]=\"'User'|translate\" required>\r\n @for (r of recipients; track r) {\r\n <mat-option [value]=\"r.id\">{{r.userId | userName | async }}</mat-option>\r\n }\r\n </mat-select>\r\n @if (form.controls.recipientId.hasError('required')) {\r\n <mat-error>{{'RequiredErr'|translate:('User'|translate)}}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n" }]
|
50
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ActionRef }, { type: i3.SessionService }] });
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJuLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9hY3Rpb24vcmV0dXJuLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9hY3Rpb24vcmV0dXJuLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBWXhDLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBTWhDLFlBQW9CLEdBQWdCLEVBQUUsU0FBNkIsRUFBRSxPQUF1QjtRQUF4RSxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBTDNCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBQzdCLFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3ZFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkUsQ0FBQyxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQ25GLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTztlQUN2RSxDQUFDLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUM3RSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN4QixDQUFDO0lBQ04sQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7OEdBckJVLHFCQUFxQjtrR0FBckIscUJBQXFCLG9EQ2RsQyxpMEJBaUJBOztBREhhLHFCQUFxQjtJQUhqQyxNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDLENBQUM7R0FDVyxxQkFBcUIsQ0FzQmpDOzsyRkF0QlkscUJBQXFCO2tCQU5qQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFyZ3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFJlY2lwaWVudCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQWN0aW9uUmVmIH0gZnJvbSAnLi9hY3Rpb24tcmVmJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vcmV0dXJuLWFjdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWN0aW9uLXJldHVybidcclxufSlcclxuZXhwb3J0IGNsYXNzIFJldHVybkFjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFyZ3VtZW50c0NvbXBvbmVudCwgT25Jbml0IHtcclxuICByZWFkb25seSByZWNpcGllbnRzOiBSZWNpcGllbnRbXSA9IFtdO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICByZWNpcGllbnRJZDogdGhpcy5fZmIuY29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIG5vdGU6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKSlcclxuICB9KTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsIGFjdGlvblJlZjogQWN0aW9uUmVmPE9wdGlvbnM+LCBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgY29uc3QgcmVjaXBpZW50ID0gYWN0aW9uUmVmLml0ZW0ucmVjaXBpZW50cy5maW5kKHIgPT4gci5pZCA9PT0gYWN0aW9uUmVmLml0ZW0uaWQpITtcclxuICAgIGFjdGlvblJlZi5pdGVtLnJlY2lwaWVudHMuc2xpY2UoMSkuXHJcbiAgICAgIGZpbHRlcihyID0+IHIudXNlcklkICE9PSBzZXNzaW9uLnByb2ZpbGUudXNlcklkICYmICFyLmVzdGltYXRlICYmICFyLnBlbmRpbmdcclxuICAgICAgICAmJiByLnJlY2VpdmVkID49IGFjdGlvblJlZi5pdGVtLmlzc3VlZCEgJiYgci5yZWNlaXZlZCA8IHJlY2lwaWVudC5yZWNlaXZlZCkuXHJcbiAgICAgIHJldmVyc2UoKS5mb3JFYWNoKHIgPT5cclxuICAgICAgICB0aGlzLnJlY2lwaWVudHMuZmluZEluZGV4KGkgPT4gaS51c2VySWQgPT09IHIudXNlcklkKSA8IDAgJiZcclxuICAgICAgICB0aGlzLnJlY2lwaWVudHMucHVzaChyKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlY2lwaWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgcmVjaXBpZW50SWQ6IHRoaXMucmVjaXBpZW50c1swXS5pZCB9KTtcclxuICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE9wdGlvbnMge1xyXG59XHJcbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwiY29sdW1uXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwicmVjaXBpZW50SWRcIiBjZGtGb2N1c0luaXRpYWwgW3BsYWNlaG9sZGVyXT1cIidVc2VyJ3x0cmFuc2xhdGVcIiByZXF1aXJlZD5cclxuICAgICAgQGZvciAociBvZiByZWNpcGllbnRzOyB0cmFjayByKSB7XHJcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInIuaWRcIj57e3IudXNlcklkIHwgdXNlck5hbWUgfCBhc3luYyB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgQGlmIChmb3JtLmNvbnRyb2xzLnJlY2lwaWVudElkLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgIDxtYXQtZXJyb3I+e3snUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1VzZXInfHRyYW5zbGF0ZSl9fTwvbWF0LWVycm9yPlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPHRleHRhcmVhIG1hdElucHV0IGNka1RleHRhcmVhQXV0b3NpemUgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XHJcbiAgICA8L3RleHRhcmVhPlxyXG4gICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCI+e3tmb3JtLmNvbnRyb2xzLm5vdGUudmFsdWU/Lmxlbmd0aCB8fCAwfX0gLyB7ezIwMH19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
@@ -1,130 +0,0 @@
|
|
1
|
-
import { Component, Input, Injector } from '@angular/core';
|
2
|
-
import { OverlayRef } from '@angular/cdk/overlay';
|
3
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
4
|
-
import { AttachmentPreview, FILE_PREVIEW_DIALOG_DATA } from './preview/attachment-preview.component';
|
5
|
-
import { AttachmentInfo } from '../../core/info/attachment-info.service';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../core/mailbox.service";
|
8
|
-
import * as i2 from "../../core/session.service";
|
9
|
-
import * as i3 from "../../core/prompt.service";
|
10
|
-
import * as i4 from "@angular/cdk/overlay";
|
11
|
-
import * as i5 from "@angular/cdk/bidi";
|
12
|
-
import * as i6 from "@angular/material/divider";
|
13
|
-
import * as i7 from "@angular/material/button";
|
14
|
-
import * as i8 from "@angular/material/icon";
|
15
|
-
import * as i9 from "@angular/material/menu";
|
16
|
-
import * as i10 from "./progress-button.directive";
|
17
|
-
import * as i11 from "../../core/popup/tooltip.directive";
|
18
|
-
import * as i12 from "../../core/pipes/calendar.pipe";
|
19
|
-
import * as i13 from "../../core/pipes/translate.pipe";
|
20
|
-
/** mail-attachments component*/
|
21
|
-
export class AttachmentsComponent {
|
22
|
-
/** mail-attachments ctor */
|
23
|
-
constructor(_mailbox, _session, _vc, _sb, _overlay, _injector, _dir) {
|
24
|
-
this._mailbox = _mailbox;
|
25
|
-
this._session = _session;
|
26
|
-
this._vc = _vc;
|
27
|
-
this._sb = _sb;
|
28
|
-
this._overlay = _overlay;
|
29
|
-
this._injector = _injector;
|
30
|
-
this._dir = _dir;
|
31
|
-
this.viewedIndicator = true;
|
32
|
-
this.includeDeleted = false;
|
33
|
-
}
|
34
|
-
ngOnChanges() {
|
35
|
-
const distinct = [];
|
36
|
-
const attachments = this.model.attachments.sort((a1, a0) => a1.time > a0.time ? 1 : -1);
|
37
|
-
for (const attachment of attachments) {
|
38
|
-
if ((!attachment.deleted || this.includeDeleted) &&
|
39
|
-
!attachment.private &&
|
40
|
-
!distinct.find(a => a.fileName === attachment.fileName)) {
|
41
|
-
let log = this.model.log.filter(l => l.fileId == attachment.id && l.userId == this._session.userId), download = log.find(l => l.type === 'Download'), checkedOut = log.find(l => l.type === 'CheckOut');
|
42
|
-
if (download)
|
43
|
-
attachment.viewed = download.time;
|
44
|
-
if (checkedOut)
|
45
|
-
attachment.checkedOut = true;
|
46
|
-
distinct.push(attachment);
|
47
|
-
}
|
48
|
-
}
|
49
|
-
this.attachments = distinct;
|
50
|
-
}
|
51
|
-
hasVersion(item) {
|
52
|
-
return this.model.attachments.find(a => a.fileName === item.fileName && a != item) != null;
|
53
|
-
}
|
54
|
-
getVersions(item) {
|
55
|
-
return this.model.attachments.filter(a => a.fileName === item.fileName && a != item);
|
56
|
-
}
|
57
|
-
async download(item) {
|
58
|
-
//this._mailbox.download(this.model.documentId, item.id).subscribe(data => {
|
59
|
-
//const blob = new Blob([data], { type: item.contentType });
|
60
|
-
//if (typeof window.navigator.msSaveBlob !== 'undefined') { // IE
|
61
|
-
// window.navigator.msSaveBlob(blob, item.fileName);
|
62
|
-
//} else {
|
63
|
-
//const url = window.URL.createObjectURL(blob);
|
64
|
-
//const pwa = window.open(url);
|
65
|
-
//if (!pwa || pwa.closed || typeof pwa.closed === 'undefined')
|
66
|
-
//}
|
67
|
-
//});
|
68
|
-
location.href = await this._mailbox.formatDownloadUrl(this.model, item);
|
69
|
-
item.viewed = new Date();
|
70
|
-
}
|
71
|
-
previewOrDownload(item) {
|
72
|
-
if (this.canPreview(item))
|
73
|
-
this.preview(item);
|
74
|
-
else
|
75
|
-
this.download(item);
|
76
|
-
}
|
77
|
-
canPreview(item) {
|
78
|
-
return AttachmentInfo.exists(item.contentType);
|
79
|
-
}
|
80
|
-
canDelete(item) {
|
81
|
-
return !this.model.completed && item.userId === this._session.profile.userId && !item.deleted;
|
82
|
-
}
|
83
|
-
preview(item) {
|
84
|
-
const oRef = this._overlay.create({
|
85
|
-
positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
|
86
|
-
backdropClass: 'dark-backdrop',
|
87
|
-
hasBackdrop: true,
|
88
|
-
direction: this._dir.value
|
89
|
-
});
|
90
|
-
const injector = Injector.create({
|
91
|
-
providers: [
|
92
|
-
{ provide: FILE_PREVIEW_DIALOG_DATA, useValue: { file: item, document: this.model } },
|
93
|
-
{ provide: OverlayRef, useValue: oRef }
|
94
|
-
], parent: this._injector
|
95
|
-
});
|
96
|
-
const portal = new ComponentPortal(AttachmentPreview, this._vc, injector);
|
97
|
-
oRef.attach(portal);
|
98
|
-
item.viewed = new Date();
|
99
|
-
}
|
100
|
-
cancel(item) {
|
101
|
-
this.model.attachments.remove(item);
|
102
|
-
this.ngOnChanges();
|
103
|
-
}
|
104
|
-
discard(item) {
|
105
|
-
const task = () => this._mailbox.removeattachment(this.model.id, item.id).subscribe({
|
106
|
-
next: () => {
|
107
|
-
//item.deleted = true;
|
108
|
-
this.model.attachments.remove(item);
|
109
|
-
this.ngOnChanges();
|
110
|
-
}, error: () => this._sb.error()
|
111
|
-
});
|
112
|
-
if (this.model.draft)
|
113
|
-
task();
|
114
|
-
else
|
115
|
-
this._sb.ask('DeleteFileAsk', 'DeleteFile', { color: 'warn' }).subscribe(ok => ok && task());
|
116
|
-
}
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AttachmentsComponent, deps: [{ token: i1.MailboxService }, { token: i2.SessionService }, { token: i0.ViewContainerRef }, { token: i3.PromptService }, { token: i4.Overlay }, { token: i0.Injector }, { token: i5.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AttachmentsComponent, selector: "bizdoc-attachments", inputs: { model: "model", viewedIndicator: "viewedIndicator", includeDeleted: "includeDeleted" }, usesOnChanges: true, ngImport: i0, template: "@for (a of attachments; track a) {\r\n <div>\r\n <button mat-button class=\"attachment-link\" [matMenuTriggerFor]=\"attachment\" [bizdocTooltip]=\"a.time | amCalendar\"\r\n [progressIndicator]=\"a.progress\">\r\n @if (viewedIndicator && a.viewed) {\r\n <mat-icon>done_all</mat-icon>\r\n }\r\n <!--[bizdocTooltip]=\"a.viewed | amCalendar\"-->\r\n <mat-icon>attachment</mat-icon> \r\n <span [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\">{{a.fileName}}</span>\r\n </button>\r\n <mat-menu #attachment>\r\n @if (!a.failed) {\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n @if (canPreview(a)) {\r\n <button mat-menu-item (click)=\"preview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n }\r\n @if (hasVersion(a)) {\r\n <mat-divider></mat-divider>\r\n @for (v of getVersions(a); track v) {\r\n <button mat-menu-item (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n }\r\n }\r\n @if (canDelete(a)) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n }\r\n }\r\n @if (a.failed) {\r\n <button mat-menu-item (click)=\"cancel(a)\">{{\"Cancel\" | translate}}</button>\r\n }\r\n </mat-menu>\r\n </div>\r\n}\r\n", styles: [":host{display:flex;flex-flow:wrap;position:relative;z-index:0}.attachment-link.failed{color:red}.attachment-link .deleted{text-decoration:line-through}::ng-deep button .progress{background-color:#696969;position:absolute;height:100%}\n"], dependencies: [{ kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.ProgressDirective, selector: "[progressIndicator]", inputs: ["progressIndicator"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i12.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
|
119
|
-
}
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AttachmentsComponent, decorators: [{
|
121
|
-
type: Component,
|
122
|
-
args: [{ selector: 'bizdoc-attachments', template: "@for (a of attachments; track a) {\r\n <div>\r\n <button mat-button class=\"attachment-link\" [matMenuTriggerFor]=\"attachment\" [bizdocTooltip]=\"a.time | amCalendar\"\r\n [progressIndicator]=\"a.progress\">\r\n @if (viewedIndicator && a.viewed) {\r\n <mat-icon>done_all</mat-icon>\r\n }\r\n <!--[bizdocTooltip]=\"a.viewed | amCalendar\"-->\r\n <mat-icon>attachment</mat-icon> \r\n <span [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\">{{a.fileName}}</span>\r\n </button>\r\n <mat-menu #attachment>\r\n @if (!a.failed) {\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n @if (canPreview(a)) {\r\n <button mat-menu-item (click)=\"preview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n }\r\n @if (hasVersion(a)) {\r\n <mat-divider></mat-divider>\r\n @for (v of getVersions(a); track v) {\r\n <button mat-menu-item (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n }\r\n }\r\n @if (canDelete(a)) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n }\r\n }\r\n @if (a.failed) {\r\n <button mat-menu-item (click)=\"cancel(a)\">{{\"Cancel\" | translate}}</button>\r\n }\r\n </mat-menu>\r\n </div>\r\n}\r\n", styles: [":host{display:flex;flex-flow:wrap;position:relative;z-index:0}.attachment-link.failed{color:red}.attachment-link .deleted{text-decoration:line-through}::ng-deep button .progress{background-color:#696969;position:absolute;height:100%}\n"] }]
|
123
|
-
}], ctorParameters: () => [{ type: i1.MailboxService }, { type: i2.SessionService }, { type: i0.ViewContainerRef }, { type: i3.PromptService }, { type: i4.Overlay }, { type: i0.Injector }, { type: i5.Directionality }], propDecorators: { model: [{
|
124
|
-
type: Input
|
125
|
-
}], viewedIndicator: [{
|
126
|
-
type: Input
|
127
|
-
}], includeDeleted: [{
|
128
|
-
type: Input
|
129
|
-
}] } });
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvc2UvYXR0YWNobWVudHMvYXR0YWNobWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvc2UvYXR0YWNobWVudHMvYXR0YWNobWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQVcsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBZSxNQUFNLHdDQUF3QyxDQUFDO0FBSWxILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBT3pFLGdDQUFnQztBQUNoQyxNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLDRCQUE0QjtJQUM1QixZQUFvQixRQUF3QixFQUNsQyxRQUF3QixFQUN4QixHQUFxQixFQUNyQixHQUFrQixFQUNsQixRQUFpQixFQUNqQixTQUFtQixFQUNuQixJQUFvQjtRQU5WLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQWdCO1FBVnJCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLG1CQUFjLEdB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RkRqQmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLG9CQUFvQjtxUEFNckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBEb2N1bWVudE1vZGVsLCBBdHRhY2htZW50LCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXcsIEZJTEVfUFJFVklFV19ESUFMT0dfREFUQSwgUHJldmlld0RhdGEgfSBmcm9tICcuL3ByZXZpZXcvYXR0YWNobWVudC1wcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXR0YWNobWVudEV4dHJhLCBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9pbmZvL2F0dGFjaG1lbnQtaW5mby5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWF0dGFjaG1lbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXR0YWNobWVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnRzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIG1haWwtYXR0YWNobWVudHMgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEF0dGFjaG1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtb2RlbCE6IFJlY2lwaWVudE1vZGVsPGFueT4gfCBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQElucHV0KCkgdmlld2VkSW5kaWNhdG9yID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpbmNsdWRlRGVsZXRlZCA9IGZhbHNlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RXh0cmFbXTtcclxuICAvKiogbWFpbC1hdHRhY2htZW50cyBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3ZjOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfZGlyOiBEaXJlY3Rpb25hbGl0eSkge1xyXG4gIH1cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaXN0aW5jdDogQXR0YWNobWVudFtdID0gW107XHJcbiAgICBjb25zdCBhdHRhY2htZW50cyA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuc29ydCgoYTEsIGEwKSA9PiBhMS50aW1lID4gYTAudGltZSA/IDEgOiAtMSk7XHJcbiAgICBmb3IgKGNvbnN0IGF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHMpIHtcclxuICAgICAgaWYgKCghYXR0YWNobWVudC5kZWxldGVkIHx8IHRoaXMuaW5jbHVkZURlbGV0ZWQpICYmXHJcbiAgICAgICAgIWF0dGFjaG1lbnQucHJpdmF0ZSAmJlxyXG4gICAgICAgICFkaXN0aW5jdC5maW5kKGEgPT4gYS5maWxlTmFtZSA9PT0gYXR0YWNobWVudC5maWxlTmFtZSkpIHtcclxuICAgICAgICBsZXQgbG9nID0gdGhpcy5tb2RlbC5sb2cuZmlsdGVyKGwgPT4gbC5maWxlSWQgPT0gYXR0YWNobWVudC5pZCAmJiBsLnVzZXJJZCA9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCksXHJcbiAgICAgICAgICBkb3dubG9hZCA9IGxvZy5maW5kKGwgPT4gbC50eXBlID09PSAnRG93bmxvYWQnKSxcclxuICAgICAgICAgIGNoZWNrZWRPdXQgPSBsb2cuZmluZChsPT4gbC50eXBlID09PSAnQ2hlY2tPdXQnKTtcclxuICAgICAgICBpZiAoZG93bmxvYWQpIChhdHRhY2htZW50IGFzIEF0dGFjaG1lbnRFeHRyYSkudmlld2VkID0gZG93bmxvYWQudGltZTtcclxuICAgICAgICBpZiAoY2hlY2tlZE91dCkgKGF0dGFjaG1lbnQgYXMgQXR0YWNobWVudEV4dHJhKS5jaGVja2VkT3V0ID0gdHJ1ZTtcclxuICAgICAgICBkaXN0aW5jdC5wdXNoKGF0dGFjaG1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmF0dGFjaG1lbnRzID0gZGlzdGluY3Q7XHJcbiAgfVxyXG4gIGhhc1ZlcnNpb24oaXRlbTogQXR0YWNobWVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWwuYXR0YWNobWVudHMuZmluZChhID0+IGEuZmlsZU5hbWUgPT09IGl0ZW0uZmlsZU5hbWUgJiYgYSAhPSBpdGVtKSAhPSBudWxsO1xyXG4gIH1cclxuICBnZXRWZXJzaW9ucyhpdGVtOiBBdHRhY2htZW50KTogQXR0YWNobWVudFtdIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLmZpbHRlcihhID0+IGEuZmlsZU5hbWUgPT09IGl0ZW0uZmlsZU5hbWUgJiYgYSAhPSBpdGVtKTtcclxuICB9XHJcbiAgYXN5bmMgZG93bmxvYWQoaXRlbTogQXR0YWNobWVudCkge1xyXG4gICAgLy90aGlzLl9tYWlsYm94LmRvd25sb2FkKHRoaXMubW9kZWwuZG9jdW1lbnRJZCwgaXRlbS5pZCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgLy9jb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6IGl0ZW0uY29udGVudFR5cGUgfSk7XHJcbiAgICAvL2lmICh0eXBlb2Ygd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iICE9PSAndW5kZWZpbmVkJykgeyAvLyBJRVxyXG4gICAgLy8gIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLCBpdGVtLmZpbGVOYW1lKTtcclxuICAgIC8vfSBlbHNlIHtcclxuICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAvL2NvbnN0IHB3YSA9IHdpbmRvdy5vcGVuKHVybCk7XHJcbiAgICAvL2lmICghcHdhIHx8IHB3YS5jbG9zZWQgfHwgdHlwZW9mIHB3YS5jbG9zZWQgPT09ICd1bmRlZmluZWQnKVxyXG4gICAgLy99XHJcbiAgICAvL30pO1xyXG4gICAgbG9jYXRpb24uaHJlZiA9IGF3YWl0IHRoaXMuX21haWxib3guZm9ybWF0RG93bmxvYWRVcmwodGhpcy5tb2RlbCwgaXRlbSk7XHJcbiAgICAoaXRlbSBhcyBBdHRhY2htZW50RXh0cmEpLnZpZXdlZCA9IG5ldyBEYXRlKCk7XHJcbiAgfVxyXG4gIHByZXZpZXdPckRvd25sb2FkKGl0ZW06IEF0dGFjaG1lbnQpIHtcclxuICAgIGlmICh0aGlzLmNhblByZXZpZXcoaXRlbSkpXHJcbiAgICAgIHRoaXMucHJldmlldyhpdGVtKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5kb3dubG9hZChpdGVtKTtcclxuICB9XHJcbiAgY2FuUHJldmlldyhpdGVtOiBBdHRhY2htZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQXR0YWNobWVudEluZm8uZXhpc3RzKGl0ZW0uY29udGVudFR5cGUpO1xyXG4gIH1cclxuICBjYW5EZWxldGUoaXRlbTogQXR0YWNobWVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLm1vZGVsLmNvbXBsZXRlZCAmJiBpdGVtLnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCAmJiAhaXRlbS5kZWxldGVkO1xyXG4gIH1cclxuICBwcmV2aWV3KGl0ZW06IEF0dGFjaG1lbnQpIHtcclxuICAgIGNvbnN0IG9SZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCksXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdkYXJrLWJhY2tkcm9wJyxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLnZhbHVlXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBGSUxFX1BSRVZJRVdfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiB7IGZpbGU6IGl0ZW0sIGRvY3VtZW50OiB0aGlzLm1vZGVsIH0gYXMgUHJldmlld0RhdGEgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiBvUmVmIH1cclxuICAgICAgXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKEF0dGFjaG1lbnRQcmV2aWV3LCB0aGlzLl92YywgaW5qZWN0b3IpO1xyXG4gICAgb1JlZi5hdHRhY2gocG9ydGFsKTtcclxuICAgIChpdGVtIGFzIEF0dGFjaG1lbnRFeHRyYSkudmlld2VkID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgY2FuY2VsKGl0ZW06IEF0dGFjaG1lbnQpIHtcclxuICAgIHRoaXMubW9kZWwuYXR0YWNobWVudHMucmVtb3ZlKGl0ZW0pO1xyXG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xyXG4gIH1cclxuICBkaXNjYXJkKGl0ZW06IEF0dGFjaG1lbnQpIHtcclxuICAgIGNvbnN0IHRhc2sgPSAoKSA9PlxyXG4gICAgICB0aGlzLl9tYWlsYm94LnJlbW92ZWF0dGFjaG1lbnQoKHRoaXMubW9kZWwgYXMgUmVjaXBpZW50TW9kZWw8YW55PikuaWQsIGl0ZW0uaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgLy9pdGVtLmRlbGV0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC5hdHRhY2htZW50cy5yZW1vdmUoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLm5nT25DaGFuZ2VzKCk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHRoaXMubW9kZWwuZHJhZnQpXHJcbiAgICAgIHRhc2soKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fc2IuYXNrKCdEZWxldGVGaWxlQXNrJywgJ0RlbGV0ZUZpbGUnLCB7IGNvbG9yOiAnd2FybicgfSkuc3Vic2NyaWJlKG9rID0+XHJcbiAgICAgICAgb2sgJiYgdGFzaygpKTtcclxuICB9XHJcbn1cclxuIiwiQGZvciAoYSBvZiBhdHRhY2htZW50czsgdHJhY2sgYSkge1xyXG4gIDxkaXY+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJhdHRhY2htZW50LWxpbmtcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYXR0YWNobWVudFwiIFtiaXpkb2NUb29sdGlwXT1cImEudGltZSB8IGFtQ2FsZW5kYXJcIlxyXG4gICAgICAgICAgICBbcHJvZ3Jlc3NJbmRpY2F0b3JdPVwiYS5wcm9ncmVzc1wiPlxyXG4gICAgICBAaWYgKHZpZXdlZEluZGljYXRvciAmJiBhLnZpZXdlZCkge1xyXG4gICAgICAgIDxtYXQtaWNvbj5kb25lX2FsbDwvbWF0LWljb24+XHJcbiAgICAgIH1cclxuICAgICAgPCEtLVtiaXpkb2NUb29sdGlwXT1cImEudmlld2VkIHwgYW1DYWxlbmRhclwiLS0+XHJcbiAgICAgIDxtYXQtaWNvbj5hdHRhY2htZW50PC9tYXQtaWNvbj4mbmJzcDtcclxuICAgICAgPHNwYW4gW2NsYXNzLmRlbGV0ZWRdPVwiYS5kZWxldGVkXCIgW2NsYXNzLmZhaWxlZF09XCJhLmZhaWxlZFwiPnt7YS5maWxlTmFtZX19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgI2F0dGFjaG1lbnQ+XHJcbiAgICAgIEBpZiAoIWEuZmFpbGVkKSB7XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZG93bmxvYWQoYSlcIj57e1wiRG93bmxvYWRcIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgIEBpZiAoY2FuUHJldmlldyhhKSkge1xyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInByZXZpZXcoYSlcIj48bWF0LWljb24+bGFuZHNjYXBlPC9tYXQtaWNvbj4ge3tcIlByZXZpZXdcIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChoYXNWZXJzaW9uKGEpKSB7XHJcbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICBAZm9yICh2IG9mIGdldFZlcnNpb25zKGEpOyB0cmFjayB2KSB7XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicHJldmlld09yRG93bmxvYWQodilcIj57e3YudGltZSB8ICBhbUNhbGVuZGFyfX08L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoY2FuRGVsZXRlKGEpKSB7XHJcbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRpc2NhcmQoYSlcIj57e1wiRGlzY2FyZFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoYS5mYWlsZWQpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjYW5jZWwoYSlcIj57e1wiQ2FuY2VsXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1tZW51PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|