@talrace/ngx-noder 0.0.17 → 0.0.19
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/README.md +72 -9
- package/assets/i18n/noder.en.json +93 -0
- package/assets/i18n/noder.es.json +93 -0
- package/assets/i18n/noder.ru.json +93 -0
- package/fesm2022/talrace-ngx-noder.mjs +371 -298
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +1 -10
- package/lib/apart-components/editor-title/editor-title.component.d.ts +5 -3
- package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +1 -1
- package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +3 -1
- package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +23 -23
- package/lib/editor/components/edges/edge.component.d.ts +10 -3
- package/lib/editor/components/edges/edges.d.ts +0 -2
- package/lib/editor/components/external-element/external.component.d.ts +1 -1
- package/lib/editor/components/external-element/models/external-element.model.d.ts +3 -3
- package/lib/editor/components/shared/abstract/base.component.d.ts +1 -1
- package/lib/editor/components/shared/abstract/destroy.component.d.ts +1 -1
- package/lib/editor/components/table/overlay-menu/overlay-menu.component.d.ts +3 -1
- package/lib/editor/editor.module.d.ts +2 -1
- package/lib/editor/gadgets/scrollbar.d.ts +1 -0
- package/lib/translate/noder-translate.loader.d.ts +11 -0
- package/package.json +3 -3
- package/public-api.d.ts +1 -0
- package/src/lib/apart-components/add-link-dialog/_add-link-dialog.theme.scss +3 -6
- package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +4 -7
- package/src/lib/apart-components/confirm-dialog/_theme.scss +6 -9
- package/src/lib/apart-components/editor-title/_editor-title.theme.scss +6 -9
- package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +9 -12
- package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +5 -8
- package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +1 -3
- package/src/lib/apart-components/editor-toolbar/components/buttons/font/_font.theme.scss +1 -3
- package/src/lib/apart-components/editor-toolbar/components/buttons/font-size/_font-size.theme.scss +2 -5
- package/src/lib/apart-components/editor-toolbar/components/buttons/font-style/_font-style.theme.scss +3 -6
- package/src/lib/apart-components/editor-toolbar/components/buttons/format/_format.theme.scss +3 -6
- package/src/lib/apart-components/editor-toolbar/components/buttons/numbering/_numbering.theme.scss +15 -18
- package/src/lib/apart-components/editor-toolbar/components/buttons/undo-redo/_undo-redo.theme.scss +2 -4
- package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns/_menu-dropdowns.theme.scss +5 -8
- package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +6 -9
- package/src/lib/apart-components/editor-toolbar/components/toolbar-actions/_toolbar-actions.theme.scss +3 -6
- package/src/lib/apart-components/insert-table/_insert-table.theme.scss +6 -9
- package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +12 -15
- package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +22 -25
- package/src/lib/editor/components/_editor.theme.scss +25 -28
- package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +0 -73
- package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +0 -7
- package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +0 -47
- package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +0 -32
- package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +0 -64
- package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +0 -92
- package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +0 -22
- package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +0 -117
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +0 -37
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +0 -49
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +0 -90
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +0 -81
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +0 -28
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +0 -22
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +0 -53
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +0 -18
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +0 -27
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +0 -71
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +0 -106
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +0 -24
- package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +0 -65
- package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +0 -84
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +0 -90
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +0 -127
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +0 -8
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.mjs +0 -1148
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +0 -157
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +0 -8
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +0 -11
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-template-type.enum.mjs +0 -16
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +0 -6
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +0 -34
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +0 -26
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +0 -60
- package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +0 -48
- package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +0 -54
- package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +0 -84
- package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +0 -123
- package/esm2022/lib/editor/components/edges/edge-element.model.mjs +0 -38
- package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +0 -6
- package/esm2022/lib/editor/components/edges/edge.component.mjs +0 -99
- package/esm2022/lib/editor/components/edges/edges.mjs +0 -142
- package/esm2022/lib/editor/components/edges/page-type.enum.mjs +0 -7
- package/esm2022/lib/editor/components/editor.component.mjs +0 -112
- package/esm2022/lib/editor/components/external-element/external-element.service.mjs +0 -6
- package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +0 -4
- package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +0 -2
- package/esm2022/lib/editor/components/external-element/external.component.mjs +0 -41
- package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +0 -9
- package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +0 -11
- package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +0 -15
- package/esm2022/lib/editor/components/image/components/image.component.mjs +0 -88
- package/esm2022/lib/editor/components/image/image-api.service.mjs +0 -36
- package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +0 -46
- package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +0 -2
- package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +0 -19
- package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +0 -12
- package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +0 -106
- package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +0 -2
- package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +0 -52
- package/esm2022/lib/editor/components/image/size.mjs +0 -2
- package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +0 -60
- package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +0 -18
- package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +0 -43
- package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +0 -2
- package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +0 -3
- package/esm2022/lib/editor/components/shared/custom-content.mjs +0 -2
- package/esm2022/lib/editor/components/shared/services/component.service.mjs +0 -52
- package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +0 -123
- package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +0 -55
- package/esm2022/lib/editor/components/tab/tab.component.mjs +0 -44
- package/esm2022/lib/editor/components/tab/tab.helper.mjs +0 -6
- package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +0 -118
- package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +0 -99
- package/esm2022/lib/editor/components/table/components/table.component.mjs +0 -412
- package/esm2022/lib/editor/components/table/enums/hrule.enum.mjs +0 -7
- package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +0 -8
- package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +0 -6
- package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +0 -17
- package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +0 -9
- package/esm2022/lib/editor/components/table/models/row-data.model.mjs +0 -8
- package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +0 -7
- package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +0 -74
- package/esm2022/lib/editor/components/table/selection/table-selection.mjs +0 -383
- package/esm2022/lib/editor/content/constants/display-values.const.mjs +0 -8
- package/esm2022/lib/editor/content/constants/document-info.const.mjs +0 -13
- package/esm2022/lib/editor/content/constants/editor.const.mjs +0 -70
- package/esm2022/lib/editor/content/contents.interface.mjs +0 -2
- package/esm2022/lib/editor/content/display-data/display-data.mjs +0 -839
- package/esm2022/lib/editor/content/display-data/display-token.model.mjs +0 -12
- package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +0 -10
- package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +0 -11
- package/esm2022/lib/editor/content/display-data/indent.model.mjs +0 -9
- package/esm2022/lib/editor/content/display-data/line-info.model.mjs +0 -9
- package/esm2022/lib/editor/content/display-data/lines.mjs +0 -96
- package/esm2022/lib/editor/content/display-data/models/paragraph-info.model.mjs +0 -8
- package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +0 -2
- package/esm2022/lib/editor/content/display-data/paragraph.mjs +0 -56
- package/esm2022/lib/editor/content/display-data/text-line-info.mjs +0 -35
- package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +0 -2
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +0 -78
- package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +0 -62
- package/esm2022/lib/editor/content/helpers/format.helper.mjs +0 -23
- package/esm2022/lib/editor/content/helpers/indexed-element.helper.mjs +0 -6
- package/esm2022/lib/editor/content/helpers/link.helper.mjs +0 -42
- package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +0 -9
- package/esm2022/lib/editor/content/margin.model.mjs +0 -16
- package/esm2022/lib/editor/content/page-vertical-data.model.mjs +0 -9
- package/esm2022/lib/editor/content/vertical-alignment.enum.mjs +0 -11
- package/esm2022/lib/editor/core/event-emitting.mjs +0 -56
- package/esm2022/lib/editor/display/cell.interface.mjs +0 -2
- package/esm2022/lib/editor/display/event.helper.mjs +0 -18
- package/esm2022/lib/editor/display/layers/cursor.layer.mjs +0 -102
- package/esm2022/lib/editor/display/layers/layer.config.mjs +0 -2
- package/esm2022/lib/editor/display/layers/pages.layer.mjs +0 -109
- package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +0 -7
- package/esm2022/lib/editor/display/layers/print.text.layer.mjs +0 -7
- package/esm2022/lib/editor/display/layers/selection.layer.mjs +0 -119
- package/esm2022/lib/editor/display/layers/text.layer.mjs +0 -226
- package/esm2022/lib/editor/display/print/print.helper.mjs +0 -40
- package/esm2022/lib/editor/display/print/print.renderer.mjs +0 -67
- package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +0 -7
- package/esm2022/lib/editor/display/render-changes.interface.mjs +0 -2
- package/esm2022/lib/editor/display/render-changes.model.mjs +0 -25
- package/esm2022/lib/editor/display/renderer.mjs +0 -204
- package/esm2022/lib/editor/display/rendering.helper.mjs +0 -185
- package/esm2022/lib/editor/display/renderloop.mjs +0 -26
- package/esm2022/lib/editor/display/virtual.renderer.mjs +0 -284
- package/esm2022/lib/editor/display/visible-range.interface.mjs +0 -2
- package/esm2022/lib/editor/editor.module.mjs +0 -67
- package/esm2022/lib/editor/execution/distance.model.mjs +0 -10
- package/esm2022/lib/editor/execution/edit.session.mjs +0 -602
- package/esm2022/lib/editor/execution/editor.mjs +0 -1367
- package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +0 -42
- package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +0 -73
- package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +0 -12
- package/esm2022/lib/editor/execution/helpers/page.helper.mjs +0 -12
- package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +0 -41
- package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +0 -177
- package/esm2022/lib/editor/execution/regulator.service.mjs +0 -212
- package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +0 -18
- package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +0 -14
- package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +0 -8
- package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +0 -3
- package/esm2022/lib/editor/execution/targeting/session.model.mjs +0 -10
- package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +0 -2
- package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +0 -2
- package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +0 -88
- package/esm2022/lib/editor/gadgets/history/operation-history.mjs +0 -208
- package/esm2022/lib/editor/gadgets/history/operation.type.mjs +0 -2
- package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +0 -7
- package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +0 -9
- package/esm2022/lib/editor/gadgets/numbering/numbering-marker-type.enum.mjs +0 -12
- package/esm2022/lib/editor/gadgets/numbering/numbering-paragraph-style.model.mjs +0 -13
- package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +0 -149
- package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +0 -7
- package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +0 -18
- package/esm2022/lib/editor/gadgets/scrollbar.mjs +0 -81
- package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +0 -2
- package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +0 -2
- package/esm2022/lib/editor/gadgets/search/search.mjs +0 -231
- package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +0 -5
- package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +0 -20
- package/esm2022/lib/editor/interaction/base.handler.mjs +0 -19
- package/esm2022/lib/editor/interaction/document.handler.mjs +0 -27
- package/esm2022/lib/editor/interaction/editor.service.mjs +0 -386
- package/esm2022/lib/editor/interaction/input.handler.mjs +0 -152
- package/esm2022/lib/editor/interaction/mode.enum.mjs +0 -7
- package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +0 -7
- package/esm2022/lib/editor/interaction/mouse.handler.mjs +0 -50
- package/esm2022/lib/editor/interaction/text-input.mjs +0 -53
- package/esm2022/lib/editor/operations/commands.service.mjs +0 -20
- package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +0 -32
- package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +0 -7
- package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +0 -9
- package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +0 -15
- package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +0 -85
- package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +0 -19
- package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +0 -136
- package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
- package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +0 -114
- package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +0 -16
- package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +0 -374
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +0 -438
- package/esm2022/lib/editor/operations/save-commands.helper.mjs +0 -128
- package/esm2022/lib/editor/operations/target-operations.helper.mjs +0 -23
- package/esm2022/lib/editor/positioning/alignments.const.mjs +0 -8
- package/esm2022/lib/editor/positioning/content.helper.mjs +0 -45
- package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +0 -13
- package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +0 -2
- package/esm2022/lib/editor/positioning/insert-index.interface.mjs +0 -2
- package/esm2022/lib/editor/positioning/line-width.helper.mjs +0 -13
- package/esm2022/lib/editor/positioning/position.helper.mjs +0 -210
- package/esm2022/lib/editor/positioning/range.mjs +0 -94
- package/esm2022/lib/editor/positioning/selection.mjs +0 -351
- package/esm2022/lib/editor/revision.helper.mjs +0 -94
- package/esm2022/lib/models/generated/add-numbering.model.mjs +0 -8
- package/esm2022/lib/models/generated/apply-element-style.model.mjs +0 -8
- package/esm2022/lib/models/generated/apply-image-style.model.mjs +0 -8
- package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +0 -12
- package/esm2022/lib/models/generated/apply-text-style.model.mjs +0 -12
- package/esm2022/lib/models/generated/borders-style.model.mjs +0 -8
- package/esm2022/lib/models/generated/break.model.mjs +0 -8
- package/esm2022/lib/models/generated/cell.model.mjs +0 -12
- package/esm2022/lib/models/generated/column-section.model.mjs +0 -8
- package/esm2022/lib/models/generated/column.model.mjs +0 -8
- package/esm2022/lib/models/generated/command.model.mjs +0 -120
- package/esm2022/lib/models/generated/delete.model.mjs +0 -8
- package/esm2022/lib/models/generated/document-name.model.mjs +0 -8
- package/esm2022/lib/models/generated/document.model.mjs +0 -8
- package/esm2022/lib/models/generated/docx.model.mjs +0 -12
- package/esm2022/lib/models/generated/edge-target.model.mjs +0 -8
- package/esm2022/lib/models/generated/edge.model.mjs +0 -8
- package/esm2022/lib/models/generated/element.model.mjs +0 -8
- package/esm2022/lib/models/generated/file-source.model.mjs +0 -8
- package/esm2022/lib/models/generated/format.model.mjs +0 -12
- package/esm2022/lib/models/generated/heading.model.mjs +0 -16
- package/esm2022/lib/models/generated/image-data.model.mjs +0 -8
- package/esm2022/lib/models/generated/image.model.mjs +0 -12
- package/esm2022/lib/models/generated/insert-break.model.mjs +0 -8
- package/esm2022/lib/models/generated/insert-element.model.mjs +0 -12
- package/esm2022/lib/models/generated/insert-image.model.mjs +0 -12
- package/esm2022/lib/models/generated/insert-link.model.mjs +0 -12
- package/esm2022/lib/models/generated/insert-paragraph.model.mjs +0 -20
- package/esm2022/lib/models/generated/insert-styled-text.model.mjs +0 -12
- package/esm2022/lib/models/generated/insert-tab.model.mjs +0 -8
- package/esm2022/lib/models/generated/insert-table-columns.model.mjs +0 -8
- package/esm2022/lib/models/generated/insert-table-rows.model.mjs +0 -8
- package/esm2022/lib/models/generated/insert-table.model.mjs +0 -8
- package/esm2022/lib/models/generated/insert-text.model.mjs +0 -8
- package/esm2022/lib/models/generated/last-document-revision.model.mjs +0 -12
- package/esm2022/lib/models/generated/link-data.model.mjs +0 -8
- package/esm2022/lib/models/generated/link.model.mjs +0 -8
- package/esm2022/lib/models/generated/margins.model.mjs +0 -8
- package/esm2022/lib/models/generated/numbering-level.model.mjs +0 -12
- package/esm2022/lib/models/generated/numbering.model.mjs +0 -8
- package/esm2022/lib/models/generated/operation.model.mjs +0 -12
- package/esm2022/lib/models/generated/page-numbers.model.mjs +0 -8
- package/esm2022/lib/models/generated/paragraph-style.model.mjs +0 -8
- package/esm2022/lib/models/generated/paragraph.model.mjs +0 -12
- package/esm2022/lib/models/generated/remove-numberings.model.mjs +0 -8
- package/esm2022/lib/models/generated/remove-table-columns.model.mjs +0 -8
- package/esm2022/lib/models/generated/remove-table-rows.model.mjs +0 -8
- package/esm2022/lib/models/generated/replace-by-text.model.mjs +0 -8
- package/esm2022/lib/models/generated/replace.model.mjs +0 -44
- package/esm2022/lib/models/generated/resize-table-columns.model.mjs +0 -8
- package/esm2022/lib/models/generated/restore-numberings.model.mjs +0 -8
- package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +0 -8
- package/esm2022/lib/models/generated/restore-table.model.mjs +0 -12
- package/esm2022/lib/models/generated/restore-text-styles.model.mjs +0 -8
- package/esm2022/lib/models/generated/restore.model.mjs +0 -8
- package/esm2022/lib/models/generated/revision.model.mjs +0 -12
- package/esm2022/lib/models/generated/row.model.mjs +0 -8
- package/esm2022/lib/models/generated/tab.model.mjs +0 -8
- package/esm2022/lib/models/generated/table-cell.model.mjs +0 -8
- package/esm2022/lib/models/generated/table.model.mjs +0 -12
- package/esm2022/lib/models/generated/target.model.mjs +0 -16
- package/esm2022/lib/models/generated/text-style.model.mjs +0 -8
- package/esm2022/public-api.mjs +0 -53
- package/esm2022/talrace-ngx-noder.mjs +0 -5
- package/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.d.ts +0 -8
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { AddNumberingModel } from '../../../models/generated/add-numbering.model';
|
|
2
|
-
import { ApplyElementStyleModel } from '../../../models/generated/apply-element-style.model';
|
|
3
|
-
import { ApplyImageStyleModel } from '../../../models/generated/apply-image-style.model';
|
|
4
|
-
import { ApplyParagraphStyleModel } from '../../../models/generated/apply-paragraph-style.model';
|
|
5
|
-
import { ApplyTextStyleModel } from '../../../models/generated/apply-text-style.model';
|
|
6
|
-
import { CUSTOM_ELEMENT_MARKER } from '../../components/shared/custom-content-markers.const';
|
|
7
|
-
import { DeleteModel } from '../../../models/generated/delete.model';
|
|
8
|
-
import { InsertStyledTextModel } from '../../../models/generated/insert-styled-text.model';
|
|
9
|
-
import { InsertTableColumnsModel } from '../../../models/generated/insert-table-columns.model';
|
|
10
|
-
import { InsertTableRowsModel } from '../../../models/generated/insert-table-rows.model';
|
|
11
|
-
import { InsertTextModel } from '../../../models/generated/insert-text.model';
|
|
12
|
-
import { OperationsHistoryInfoModel } from './operations-history-info.model';
|
|
13
|
-
import { RemoveNumberingsModel } from '../../../models/generated/remove-numberings.model';
|
|
14
|
-
import { RemoveTableColumnsModel } from '../../../models/generated/remove-table-columns.model';
|
|
15
|
-
import { RemoveTableRowsModel } from '../../../models/generated/remove-table-rows.model';
|
|
16
|
-
import { ResizeTableColumnsModel } from '../../../models/generated/resize-table-columns.model';
|
|
17
|
-
import { RestoreNumberingsModel } from '../../../models/generated/restore-numberings.model';
|
|
18
|
-
import { RestoreParagraphStylesModel } from '../../../models/generated/restore-paragraph-styles.model';
|
|
19
|
-
import { RestoreTableModel } from '../../../models/generated/restore-table.model';
|
|
20
|
-
import { RestoreTextStylesModel } from '../../../models/generated/restore-text-styles.model';
|
|
21
|
-
export class OperationHistory {
|
|
22
|
-
constructor(editorService, regulatorService) {
|
|
23
|
-
this.editorService = editorService;
|
|
24
|
-
this.regulatorService = regulatorService;
|
|
25
|
-
this.MAX_HISTORY = 100;
|
|
26
|
-
this.storage = [];
|
|
27
|
-
this.step = -1;
|
|
28
|
-
this.editorService.historyInfo = new OperationsHistoryInfoModel(this.step, this.storage.length - 1);
|
|
29
|
-
}
|
|
30
|
-
pushInsertText(insertIndex, text) {
|
|
31
|
-
const redoStep = new InsertTextModel({ insertIndex, text });
|
|
32
|
-
const undoStep = new DeleteModel({ startIndex: insertIndex, count: text.length });
|
|
33
|
-
this.addToHistory(undoStep, redoStep);
|
|
34
|
-
}
|
|
35
|
-
pushInsertParagraph(content, model, paragraphs) {
|
|
36
|
-
const undoStep = this.getDeleteDataForInsertParagraphs(content, model, paragraphs);
|
|
37
|
-
this.addToHistory(new DeleteModel({ ...undoStep }), model);
|
|
38
|
-
}
|
|
39
|
-
pushInsertElement(model) {
|
|
40
|
-
const undoStep = new DeleteModel({ startIndex: model.element.insertIndex, count: CUSTOM_ELEMENT_MARKER.length });
|
|
41
|
-
this.addToHistory(undoStep, model);
|
|
42
|
-
}
|
|
43
|
-
pushInsertBreak(model, count) {
|
|
44
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count });
|
|
45
|
-
this.addToHistory(undoStep, model);
|
|
46
|
-
}
|
|
47
|
-
pushInsertTab(model) {
|
|
48
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: CUSTOM_ELEMENT_MARKER.length });
|
|
49
|
-
this.addToHistory(undoStep, model);
|
|
50
|
-
}
|
|
51
|
-
pushInsertImage(model) {
|
|
52
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: CUSTOM_ELEMENT_MARKER.length });
|
|
53
|
-
this.addToHistory(undoStep, model);
|
|
54
|
-
}
|
|
55
|
-
pushInsertLink(model) {
|
|
56
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: model.linkDataModel.text.length });
|
|
57
|
-
this.addToHistory(undoStep, model);
|
|
58
|
-
}
|
|
59
|
-
pushInsertTable(model) {
|
|
60
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: model.content.length });
|
|
61
|
-
this.addToHistory(undoStep, model);
|
|
62
|
-
}
|
|
63
|
-
pushInsertStyledText(insertIndex, text, style) {
|
|
64
|
-
const redoStep = new InsertStyledTextModel({ insertIndex, text, textStyle: style });
|
|
65
|
-
const undoStep = new DeleteModel({ startIndex: insertIndex, count: text.length });
|
|
66
|
-
this.addToHistory(undoStep, redoStep);
|
|
67
|
-
}
|
|
68
|
-
pushDelete(model) {
|
|
69
|
-
const redoStep = new DeleteModel({ startIndex: model.startIndex, count: model.text.length });
|
|
70
|
-
this.addToHistory(model, redoStep);
|
|
71
|
-
}
|
|
72
|
-
pushApplyTextStyle(startIndex, endIndex, style, formats, linkFormats) {
|
|
73
|
-
const redoStep = new ApplyTextStyleModel({ startIndex, endIndex, textStyle: style });
|
|
74
|
-
const undoStep = new RestoreTextStylesModel({ formats, linkFormats });
|
|
75
|
-
this.addToHistory(undoStep, redoStep);
|
|
76
|
-
}
|
|
77
|
-
pushApplyParagraphStyle(startIndex, endIndex, style, paragraphs) {
|
|
78
|
-
const redoStep = new ApplyParagraphStyleModel({ startIndex, endIndex, paragraphStyle: style });
|
|
79
|
-
const undoStep = new RestoreParagraphStylesModel({ paragraphs });
|
|
80
|
-
this.addToHistory(undoStep, redoStep);
|
|
81
|
-
}
|
|
82
|
-
pushApplyElementStyle(previous, current) {
|
|
83
|
-
const redoStep = new ApplyElementStyleModel({ insertIndex: current.insertIndex, width: current.width, height: current.height });
|
|
84
|
-
const undoStep = new ApplyElementStyleModel({ insertIndex: previous.insertIndex, width: previous.width, height: previous.height });
|
|
85
|
-
this.addToHistory(undoStep, redoStep);
|
|
86
|
-
}
|
|
87
|
-
pushInsertTableRows(insertIndex, rowsCount, targetIndex, inheritIndex, table) {
|
|
88
|
-
const oldTable = JSON.parse(JSON.stringify(table));
|
|
89
|
-
const redoStep = new InsertTableRowsModel({ insertIndex, rowsCount, targetIndex, inheritIndex });
|
|
90
|
-
const undoStep = new RestoreTableModel({ insertIndex, oldTable });
|
|
91
|
-
this.addToHistory(undoStep, redoStep);
|
|
92
|
-
}
|
|
93
|
-
pushInsertTableColumns(insertIndex, columnsCount, targetIndex, inheritIndex, table) {
|
|
94
|
-
const oldTable = JSON.parse(JSON.stringify(table));
|
|
95
|
-
const redoStep = new InsertTableColumnsModel({ insertIndex, columnsCount, targetIndex, inheritIndex });
|
|
96
|
-
const undoStep = new RestoreTableModel({ insertIndex, oldTable });
|
|
97
|
-
this.addToHistory(undoStep, redoStep);
|
|
98
|
-
}
|
|
99
|
-
pushRemoveTableRows(insertIndex, startIndex, endIndex, table) {
|
|
100
|
-
const oldTable = JSON.parse(JSON.stringify(table));
|
|
101
|
-
const redoStep = new RemoveTableRowsModel({ insertIndex, startIndex, endIndex });
|
|
102
|
-
const undoStep = new RestoreTableModel({ insertIndex, oldTable });
|
|
103
|
-
this.addToHistory(undoStep, redoStep);
|
|
104
|
-
}
|
|
105
|
-
pushRemoveTableColumns(insertIndex, startIndex, endIndex, table) {
|
|
106
|
-
const oldTable = JSON.parse(JSON.stringify(table));
|
|
107
|
-
const redoStep = new RemoveTableColumnsModel({ insertIndex, startIndex, endIndex });
|
|
108
|
-
const undoStep = new RestoreTableModel({ insertIndex, oldTable });
|
|
109
|
-
this.addToHistory(undoStep, redoStep);
|
|
110
|
-
}
|
|
111
|
-
pushResizeTableColumns(resizeTableColumns) {
|
|
112
|
-
const redoStep = new ResizeTableColumnsModel({
|
|
113
|
-
cellIndex: resizeTableColumns.cellIndex,
|
|
114
|
-
columnIndex: resizeTableColumns.columnIndex,
|
|
115
|
-
distance: resizeTableColumns.distance,
|
|
116
|
-
insertIndex: resizeTableColumns.insertIndex,
|
|
117
|
-
resizerSide: resizeTableColumns.resizerSide,
|
|
118
|
-
rowIndex: resizeTableColumns.rowIndex
|
|
119
|
-
});
|
|
120
|
-
const undoStep = new ResizeTableColumnsModel({
|
|
121
|
-
cellIndex: resizeTableColumns.cellIndex,
|
|
122
|
-
columnIndex: resizeTableColumns.columnIndex,
|
|
123
|
-
distance: -resizeTableColumns.distance,
|
|
124
|
-
insertIndex: resizeTableColumns.insertIndex,
|
|
125
|
-
resizerSide: resizeTableColumns.resizerSide,
|
|
126
|
-
rowIndex: resizeTableColumns.rowIndex
|
|
127
|
-
});
|
|
128
|
-
this.addToHistory(undoStep, redoStep);
|
|
129
|
-
}
|
|
130
|
-
pushApplyImageStyle(previous, current) {
|
|
131
|
-
const redoStep = new ApplyImageStyleModel({ insertIndex: current.insertIndex, width: current.width, height: current.height });
|
|
132
|
-
const undoStep = new ApplyImageStyleModel({ insertIndex: previous.insertIndex, width: previous.width, height: previous.height });
|
|
133
|
-
this.addToHistory(undoStep, redoStep);
|
|
134
|
-
}
|
|
135
|
-
pushAddNumbering(startIndex, endIndex, levels, paragraphs, numberings) {
|
|
136
|
-
const redoStep = new AddNumberingModel({ startIndex, endIndex, levels });
|
|
137
|
-
const undoStep = new RestoreNumberingsModel({ paragraphs, numberings });
|
|
138
|
-
this.addToHistory(undoStep, redoStep);
|
|
139
|
-
}
|
|
140
|
-
pushRemoveNumberings(startIndex, endIndex, numberings, paragraphs) {
|
|
141
|
-
const redoStep = new RemoveNumberingsModel({ startIndex, endIndex });
|
|
142
|
-
const undoStep = new RestoreNumberingsModel({ numberings, paragraphs });
|
|
143
|
-
this.addToHistory(undoStep, redoStep);
|
|
144
|
-
}
|
|
145
|
-
pushReplace(restore, replace) {
|
|
146
|
-
this.addToHistory(restore, replace);
|
|
147
|
-
}
|
|
148
|
-
popUndoOperation() {
|
|
149
|
-
if (this.step === -1) {
|
|
150
|
-
return null;
|
|
151
|
-
}
|
|
152
|
-
const operation = this.storage[this.step].undo;
|
|
153
|
-
const targets = this.storage[this.step].targets;
|
|
154
|
-
const cursor = this.storage[this.step].cursor;
|
|
155
|
-
const anchor = this.storage[this.step].anchor;
|
|
156
|
-
this.step--;
|
|
157
|
-
this.editorService.historyInfo = new OperationsHistoryInfoModel(this.step, this.storage.length - 1);
|
|
158
|
-
return { operation, targets, cursor, anchor };
|
|
159
|
-
}
|
|
160
|
-
popRedoOperation() {
|
|
161
|
-
if (this.step >= this.storage.length - 1) {
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
this.step++;
|
|
165
|
-
const operation = this.storage[this.step].redo;
|
|
166
|
-
const targets = this.storage[this.step].targets;
|
|
167
|
-
const cursor = this.storage[this.step].cursor;
|
|
168
|
-
const anchor = this.storage[this.step].anchor;
|
|
169
|
-
this.editorService.historyInfo = new OperationsHistoryInfoModel(this.step, this.storage.length - 1);
|
|
170
|
-
return { operation, targets, cursor, anchor };
|
|
171
|
-
}
|
|
172
|
-
addToHistory(undoStep, redoStep) {
|
|
173
|
-
const targets = this.regulatorService.getCurrentSessionTargets();
|
|
174
|
-
const cursor = this.regulatorService.selection.cursor;
|
|
175
|
-
const anchor = this.regulatorService.selection.anchor;
|
|
176
|
-
this.step++;
|
|
177
|
-
this.storage.splice(this.step, this.storage.length);
|
|
178
|
-
this.storage.push({ undo: undoStep, redo: redoStep, targets, cursor, anchor });
|
|
179
|
-
if (this.storage.length > this.MAX_HISTORY) {
|
|
180
|
-
this.storage.splice(0, 1);
|
|
181
|
-
this.step--;
|
|
182
|
-
}
|
|
183
|
-
this.editorService.historyInfo = new OperationsHistoryInfoModel(this.step, this.storage.length - 1);
|
|
184
|
-
}
|
|
185
|
-
getDeleteDataForInsertParagraphs(content, model, paragraphs) {
|
|
186
|
-
const currentParagraph = paragraphs
|
|
187
|
-
.slice()
|
|
188
|
-
.sort((a, b) => a.insertIndex - b.insertIndex)
|
|
189
|
-
.find(x => x.insertIndex >= model.insertIndex);
|
|
190
|
-
const previousParagraph = paragraphs
|
|
191
|
-
.slice()
|
|
192
|
-
.sort((a, b) => b.insertIndex - a.insertIndex)
|
|
193
|
-
.find(x => x.insertIndex < currentParagraph.insertIndex);
|
|
194
|
-
let startIndex = model.insertIndex;
|
|
195
|
-
let count = content.length;
|
|
196
|
-
if (model.insertIndex === 0 || previousParagraph?.insertIndex === model.insertIndex - 1) {
|
|
197
|
-
count++;
|
|
198
|
-
}
|
|
199
|
-
else if (currentParagraph.insertIndex === model.insertIndex) {
|
|
200
|
-
startIndex++;
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
count = count + 2;
|
|
204
|
-
}
|
|
205
|
-
return { startIndex, count };
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbi1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVVyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUUvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFJOUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDMUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENB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LFVBQVU7YUFDL0IsS0FBSyxFQUFFO2FBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO2FBQzdDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxDQUFDLElBQUksaUJBQWlCLEVBQUUsV0FBVyxLQUFLLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFO1lBQ3JGLEtBQUssRUFBRSxDQUFDO1NBQ1g7YUFBTSxJQUFJLGdCQUFnQixDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzNELFVBQVUsRUFBRSxDQUFDO1NBQ2hCO2FBQU07WUFDSCxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNyQjtRQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkTnVtYmVyaW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2FkZC1udW1iZXJpbmcubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlFbGVtZW50U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktZWxlbWVudC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBBcHBseUltYWdlU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktaW1hZ2Utc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlQYXJhZ3JhcGhTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9hcHBseS1wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktdGV4dC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi8uLi9lZGl0b3IvcG9zaXRpb25pbmcvY3Vyc29yLXBhcmFncmFwaCc7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVF9NQVJLRVIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC9jdXN0b20tY29udGVudC1tYXJrZXJzLmNvbnN0JztcbmltcG9ydCB7IERlbGV0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9kZWxldGUubW9kZWwnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWF0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2Zvcm1hdC5tb2RlbCc7XG5pbXBvcnQgeyBJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRCcmVha01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtYnJlYWsubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0RWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtZWxlbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtaW1hZ2UubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0TGlua01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtbGluay5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXBhcmFncmFwaC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRTdHlsZWRUZXh0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1zdHlsZWQtdGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLm1vZGVsJztcbmltcG9ydCB7IEluc2VydFRhYmxlUm93c01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtdGFibGUtcm93cy5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUZXh0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC10ZXh0Lm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ0xldmVsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy1sZXZlbC5tb2RlbCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLm1vZGVsJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwgfSBmcm9tICcuL29wZXJhdGlvbnMtaGlzdG9yeS1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhcmFncmFwaE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFJlZ3VsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vcmVndWxhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVtb3ZlTnVtYmVyaW5nc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZW1vdmUtbnVtYmVyaW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBSZW1vdmVUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVtb3ZlLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgUmVtb3ZlVGFibGVSb3dzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3JlbW92ZS10YWJsZS1yb3dzLm1vZGVsJztcbmltcG9ydCB7IFJlcGxhY2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVwbGFjZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzaXplLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLm1vZGVsJztcbmltcG9ydCB7IFJlc3RvcmVOdW1iZXJpbmdzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc3RvcmUtbnVtYmVyaW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlUGFyYWdyYXBoU3R5bGVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc3RvcmUtcGFyYWdyYXBoLXN0eWxlcy5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS10YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlVGV4dFN0eWxlc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLXRleHQtc3R5bGVzLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYmxlLm1vZGVsJztcbmltcG9ydCB7IFRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwnO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uSGlzdG9yeSB7XG4gICAgcmVhZG9ubHkgTUFYX0hJU1RPUlkgPSAxMDA7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2U6IHtcbiAgICAgICAgdW5kbzogT3BlcmF0aW9uO1xuICAgICAgICByZWRvOiBPcGVyYXRpb247XG4gICAgICAgIHRhcmdldHM6IFRhcmdldE1vZGVsW107XG4gICAgICAgIGN1cnNvcjogQ3Vyc29yUGFyYWdyYXBoO1xuICAgICAgICBhbmNob3I6IEN1cnNvclBhcmFncmFwaCB8IG51bGw7XG4gICAgfVtdID0gW107XG5cbiAgICBwcml2YXRlIHN0ZXAgPSAtMTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSwgcHJpdmF0ZSByZWd1bGF0b3JTZXJ2aWNlOiBSZWd1bGF0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGV4dChpbnNlcnRJbmRleDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgSW5zZXJ0VGV4dE1vZGVsKHsgaW5zZXJ0SW5kZXgsIHRleHQgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleDogaW5zZXJ0SW5kZXgsIGNvdW50OiB0ZXh0Lmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0UGFyYWdyYXBoKGNvbnRlbnQ6IHN0cmluZywgbW9kZWw6IEluc2VydFBhcmFncmFwaE1vZGVsLCBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gdGhpcy5nZXREZWxldGVEYXRhRm9ySW5zZXJ0UGFyYWdyYXBocyhjb250ZW50LCBtb2RlbCwgcGFyYWdyYXBocyk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KG5ldyBEZWxldGVNb2RlbCh7IC4uLnVuZG9TdGVwIH0pLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydEVsZW1lbnQobW9kZWw6IEluc2VydEVsZW1lbnRNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmVsZW1lbnQuaW5zZXJ0SW5kZXgsIGNvdW50OiBDVVNUT01fRUxFTUVOVF9NQVJLRVIubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgbW9kZWwpO1xuICAgIH1cblxuICAgIHB1c2hJbnNlcnRCcmVhayhtb2RlbDogSW5zZXJ0QnJlYWtNb2RlbCwgY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmluc2VydEluZGV4LCBjb3VudCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGFiKG1vZGVsOiBJbnNlcnRUYWJNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmluc2VydEluZGV4LCBjb3VudDogQ1VTVE9NX0VMRU1FTlRfTUFSS0VSLmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0SW1hZ2UobW9kZWw6IEluc2VydEltYWdlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgY291bnQ6IENVU1RPTV9FTEVNRU5UX01BUktFUi5sZW5ndGggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydExpbmsobW9kZWw6IEluc2VydExpbmtNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmluc2VydEluZGV4LCBjb3VudDogbW9kZWwubGlua0RhdGFNb2RlbC50ZXh0Lmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGFibGUobW9kZWw6IEluc2VydFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgY291bnQ6IG1vZGVsLmNvbnRlbnQubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgbW9kZWwpO1xuICAgIH1cblxuICAgIHB1c2hJbnNlcnRTdHlsZWRUZXh0KGluc2VydEluZGV4OiBudW1iZXIsIHRleHQ6IHN0cmluZywgc3R5bGU6IFRleHRTdHlsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEluc2VydFN0eWxlZFRleHRNb2RlbCh7IGluc2VydEluZGV4LCB0ZXh0LCB0ZXh0U3R5bGU6IHN0eWxlIH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IGluc2VydEluZGV4LCBjb3VudDogdGV4dC5sZW5ndGggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaERlbGV0ZShtb2RlbDogUmVzdG9yZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleDogbW9kZWwuc3RhcnRJbmRleCwgY291bnQ6IG1vZGVsLnRleHQubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeShtb2RlbCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBcHBseVRleHRTdHlsZShcbiAgICAgICAgc3RhcnRJbmRleDogbnVtYmVyLFxuICAgICAgICBlbmRJbmRleDogbnVtYmVyLFxuICAgICAgICBzdHlsZTogVGV4dFN0eWxlTW9kZWwsXG4gICAgICAgIGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sXG4gICAgICAgIGxpbmtGb3JtYXRzOiBGb3JtYXRNb2RlbFtdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5VGV4dFN0eWxlTW9kZWwoeyBzdGFydEluZGV4LCBlbmRJbmRleCwgdGV4dFN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZVRleHRTdHlsZXNNb2RlbCh7IGZvcm1hdHMsIGxpbmtGb3JtYXRzIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBcHBseVBhcmFncmFwaFN0eWxlKHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc3R5bGU6IFBhcmFncmFwaFN0eWxlTW9kZWwsIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgQXBwbHlQYXJhZ3JhcGhTdHlsZU1vZGVsKHsgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHBhcmFncmFwaFN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZVBhcmFncmFwaFN0eWxlc01vZGVsKHsgcGFyYWdyYXBocyB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoQXBwbHlFbGVtZW50U3R5bGUocHJldmlvdXM6IEVsZW1lbnRNb2RlbCwgY3VycmVudDogRWxlbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5RWxlbWVudFN0eWxlTW9kZWwoeyBpbnNlcnRJbmRleDogY3VycmVudC5pbnNlcnRJbmRleCwgd2lkdGg6IGN1cnJlbnQud2lkdGgsIGhlaWdodDogY3VycmVudC5oZWlnaHQgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IEFwcGx5RWxlbWVudFN0eWxlTW9kZWwoeyBpbnNlcnRJbmRleDogcHJldmlvdXMuaW5zZXJ0SW5kZXgsIHdpZHRoOiBwcmV2aW91cy53aWR0aCwgaGVpZ2h0OiBwcmV2aW91cy5oZWlnaHQgfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydFRhYmxlUm93cyhpbnNlcnRJbmRleDogbnVtYmVyLCByb3dzQ291bnQ6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlciwgaW5oZXJpdEluZGV4OiBudW1iZXIsIHRhYmxlOiBUYWJsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9sZFRhYmxlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0YWJsZSkpO1xuICAgICAgICBjb25zdCByZWRvU3RlcCA9IG5ldyBJbnNlcnRUYWJsZVJvd3NNb2RlbCh7IGluc2VydEluZGV4LCByb3dzQ291bnQsIHRhcmdldEluZGV4LCBpbmhlcml0SW5kZXggfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc3RvcmVUYWJsZU1vZGVsKHsgaW5zZXJ0SW5kZXgsIG9sZFRhYmxlIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hJbnNlcnRUYWJsZUNvbHVtbnMoaW5zZXJ0SW5kZXg6IG51bWJlciwgY29sdW1uc0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIGluaGVyaXRJbmRleDogbnVtYmVyLCB0YWJsZTogVGFibGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRUYWJsZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGFibGUpKTtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgSW5zZXJ0VGFibGVDb2x1bW5zTW9kZWwoeyBpbnNlcnRJbmRleCwgY29sdW1uc0NvdW50LCB0YXJnZXRJbmRleCwgaW5oZXJpdEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlVGFibGVNb2RlbCh7IGluc2VydEluZGV4LCBvbGRUYWJsZSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVtb3ZlVGFibGVSb3dzKGluc2VydEluZGV4OiBudW1iZXIsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGFibGU6IFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkVGFibGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRhYmxlKSk7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IFJlbW92ZVRhYmxlUm93c01vZGVsKHsgaW5zZXJ0SW5kZXgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlVGFibGVNb2RlbCh7IGluc2VydEluZGV4LCBvbGRUYWJsZSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVtb3ZlVGFibGVDb2x1bW5zKGluc2VydEluZGV4OiBudW1iZXIsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGFibGU6IFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkVGFibGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRhYmxlKSk7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IFJlbW92ZVRhYmxlQ29sdW1uc01vZGVsKHsgaW5zZXJ0SW5kZXgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlVGFibGVNb2RlbCh7IGluc2VydEluZGV4LCBvbGRUYWJsZSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVzaXplVGFibGVDb2x1bW5zKHJlc2l6ZVRhYmxlQ29sdW1uczogUmVzaXplVGFibGVDb2x1bW5zTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgUmVzaXplVGFibGVDb2x1bW5zTW9kZWwoe1xuICAgICAgICAgICAgY2VsbEluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuY2VsbEluZGV4LFxuICAgICAgICAgICAgY29sdW1uSW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5jb2x1bW5JbmRleCxcbiAgICAgICAgICAgIGRpc3RhbmNlOiByZXNpemVUYWJsZUNvbHVtbnMuZGlzdGFuY2UsXG4gICAgICAgICAgICBpbnNlcnRJbmRleDogcmVzaXplVGFibGVDb2x1bW5zLmluc2VydEluZGV4LFxuICAgICAgICAgICAgcmVzaXplclNpZGU6IHJlc2l6ZVRhYmxlQ29sdW1ucy5yZXNpemVyU2lkZSxcbiAgICAgICAgICAgIHJvd0luZGV4OiByZXNpemVUYWJsZUNvbHVtbnMucm93SW5kZXhcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsKHtcbiAgICAgICAgICAgIGNlbGxJbmRleDogcmVzaXplVGFibGVDb2x1bW5zLmNlbGxJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbkluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuY29sdW1uSW5kZXgsXG4gICAgICAgICAgICBkaXN0YW5jZTogLXJlc2l6ZVRhYmxlQ29sdW1ucy5kaXN0YW5jZSxcbiAgICAgICAgICAgIGluc2VydEluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuaW5zZXJ0SW5kZXgsXG4gICAgICAgICAgICByZXNpemVyU2lkZTogcmVzaXplVGFibGVDb2x1bW5zLnJlc2l6ZXJTaWRlLFxuICAgICAgICAgICAgcm93SW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5yb3dJbmRleFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoQXBwbHlJbWFnZVN0eWxlKHByZXZpb3VzOiBJbWFnZU1vZGVsLCBjdXJyZW50OiBJbWFnZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5SW1hZ2VTdHlsZU1vZGVsKHsgaW5zZXJ0SW5kZXg6IGN1cnJlbnQuaW5zZXJ0SW5kZXgsIHdpZHRoOiBjdXJyZW50LndpZHRoLCBoZWlnaHQ6IGN1cnJlbnQuaGVpZ2h0IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBBcHBseUltYWdlU3R5bGVNb2RlbCh7IGluc2VydEluZGV4OiBwcmV2aW91cy5pbnNlcnRJbmRleCwgd2lkdGg6IHByZXZpb3VzLndpZHRoLCBoZWlnaHQ6IHByZXZpb3VzLmhlaWdodCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoQWRkTnVtYmVyaW5nKFxuICAgICAgICBzdGFydEluZGV4OiBudW1iZXIsXG4gICAgICAgIGVuZEluZGV4OiBudW1iZXIsXG4gICAgICAgIGxldmVsczogTnVtYmVyaW5nTGV2ZWxNb2RlbFtdLFxuICAgICAgICBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdLFxuICAgICAgICBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFkZE51bWJlcmluZ01vZGVsKHsgc3RhcnRJbmRleCwgZW5kSW5kZXgsIGxldmVscyB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZU51bWJlcmluZ3NNb2RlbCh7IHBhcmFncmFwaHMsIG51bWJlcmluZ3MgfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaFJlbW92ZU51bWJlcmluZ3Moc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdLCBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IFJlbW92ZU51bWJlcmluZ3NNb2RlbCh7IHN0YXJ0SW5kZXgsIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlTnVtYmVyaW5nc01vZGVsKHsgbnVtYmVyaW5ncywgcGFyYWdyYXBocyB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVwbGFjZShyZXN0b3JlOiBSZXN0b3JlTW9kZWwsIHJlcGxhY2U6IFJlcGxhY2VNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeShyZXN0b3JlLCByZXBsYWNlKTtcbiAgICB9XG5cbiAgICBwb3BVbmRvT3BlcmF0aW9uKCk6IHtcbiAgICAgICAgb3BlcmF0aW9uOiBPcGVyYXRpb24gfCBudWxsO1xuICAgICAgICB0YXJnZXRzOiBUYXJnZXRNb2RlbFtdO1xuICAgICAgICBjdXJzb3I6IEN1cnNvclBhcmFncmFwaDtcbiAgICAgICAgYW5jaG9yOiBDdXJzb3JQYXJhZ3JhcGggfCBudWxsO1xuICAgIH0gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuc3RlcCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLnVuZG87XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnN0b3JhZ2VbdGhpcy5zdGVwXS50YXJnZXRzO1xuICAgICAgICBjb25zdCBjdXJzb3IgPSB0aGlzLnN0b3JhZ2VbdGhpcy5zdGVwXS5jdXJzb3I7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLmFuY2hvcjtcbiAgICAgICAgdGhpcy5zdGVwLS07XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0aW9uLCB0YXJnZXRzLCBjdXJzb3IsIGFuY2hvciB9O1xuICAgIH1cblxuICAgIHBvcFJlZG9PcGVyYXRpb24oKToge1xuICAgICAgICBvcGVyYXRpb246IE9wZXJhdGlvbiB8IG51bGw7XG4gICAgICAgIHRhcmdldHM6IFRhcmdldE1vZGVsW107XG4gICAgICAgIGN1cnNvcjogQ3Vyc29yUGFyYWdyYXBoO1xuICAgICAgICBhbmNob3I6IEN1cnNvclBhcmFncmFwaCB8IG51bGw7XG4gICAgfSB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5zdGVwID49IHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0ZXArKztcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0ucmVkbztcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLnRhcmdldHM7XG4gICAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLmN1cnNvcjtcbiAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0uYW5jaG9yO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuaGlzdG9yeUluZm8gPSBuZXcgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwodGhpcy5zdGVwLCB0aGlzLnN0b3JhZ2UubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiB7IG9wZXJhdGlvbiwgdGFyZ2V0cywgY3Vyc29yLCBhbmNob3IgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRvSGlzdG9yeSh1bmRvU3RlcDogT3BlcmF0aW9uLCByZWRvU3RlcDogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnJlZ3VsYXRvclNlcnZpY2UuZ2V0Q3VycmVudFNlc3Npb25UYXJnZXRzKCk7XG4gICAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMucmVndWxhdG9yU2VydmljZS5zZWxlY3Rpb24uY3Vyc29yO1xuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnJlZ3VsYXRvclNlcnZpY2Uuc2VsZWN0aW9uLmFuY2hvcjtcbiAgICAgICAgdGhpcy5zdGVwKys7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5zcGxpY2UodGhpcy5zdGVwLCB0aGlzLnN0b3JhZ2UubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnB1c2goeyB1bmRvOiB1bmRvU3RlcCwgcmVkbzogcmVkb1N0ZXAsIHRhcmdldHMsIGN1cnNvciwgYW5jaG9yIH0pO1xuICAgICAgICBpZiAodGhpcy5zdG9yYWdlLmxlbmd0aCA+IHRoaXMuTUFYX0hJU1RPUlkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zcGxpY2UoMCwgMSk7XG4gICAgICAgICAgICB0aGlzLnN0ZXAtLTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBnZXREZWxldGVEYXRhRm9ySW5zZXJ0UGFyYWdyYXBocyhcbiAgICAgICAgY29udGVudDogc3RyaW5nLFxuICAgICAgICBtb2RlbDogSW5zZXJ0UGFyYWdyYXBoTW9kZWwsXG4gICAgICAgIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW11cbiAgICApOiB7IHN0YXJ0SW5kZXg6IG51bWJlcjsgY291bnQ6IG51bWJlciB9IHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhcmFncmFwaCA9IHBhcmFncmFwaHNcbiAgICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5pbnNlcnRJbmRleCAtIGIuaW5zZXJ0SW5kZXgpXG4gICAgICAgICAgICAuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPj0gbW9kZWwuaW5zZXJ0SW5kZXgpO1xuICAgICAgICBjb25zdCBwcmV2aW91c1BhcmFncmFwaCA9IHBhcmFncmFwaHNcbiAgICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5pbnNlcnRJbmRleCAtIGEuaW5zZXJ0SW5kZXgpXG4gICAgICAgICAgICAuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPCBjdXJyZW50UGFyYWdyYXBoLmluc2VydEluZGV4KTtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSBtb2RlbC5pbnNlcnRJbmRleDtcbiAgICAgICAgbGV0IGNvdW50ID0gY29udGVudC5sZW5ndGg7XG4gICAgICAgIGlmIChtb2RlbC5pbnNlcnRJbmRleCA9PT0gMCB8fCBwcmV2aW91c1BhcmFncmFwaD8uaW5zZXJ0SW5kZXggPT09IG1vZGVsLmluc2VydEluZGV4IC0gMSkge1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UGFyYWdyYXBoLmluc2VydEluZGV4ID09PSBtb2RlbC5pbnNlcnRJbmRleCkge1xuICAgICAgICAgICAgc3RhcnRJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnQgPSBjb3VudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBzdGFydEluZGV4LCBjb3VudCB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbi50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZGROdW1iZXJpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYWRkLW51bWJlcmluZy5tb2RlbCc7XG5pbXBvcnQgeyBBcHBseUltYWdlU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktaW1hZ2Utc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktdGV4dC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBEZWxldGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZGVsZXRlLm1vZGVsJztcbmltcG9ydCB7IEluc2VydEJyZWFrTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1icmVhay5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1lbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IEluc2VydEltYWdlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1pbWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXBhcmFncmFwaC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRTdHlsZWRUZXh0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1zdHlsZWQtdGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLm1vZGVsJztcbmltcG9ydCB7IEluc2VydFRhYmxlUm93c01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtdGFibGUtcm93cy5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUZXh0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC10ZXh0Lm1vZGVsJztcbmltcG9ydCB7IFJlbW92ZU51bWJlcmluZ3NNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVtb3ZlLW51bWJlcmluZ3MubW9kZWwnO1xuaW1wb3J0IHsgUmVtb3ZlVGFibGVDb2x1bW5zTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3JlbW92ZS10YWJsZS1jb2x1bW5zLm1vZGVsJztcbmltcG9ydCB7IFJlbW92ZVRhYmxlUm93c01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZW1vdmUtdGFibGUtcm93cy5tb2RlbCc7XG5pbXBvcnQgeyBSZXBsYWNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3JlcGxhY2UubW9kZWwnO1xuaW1wb3J0IHsgUmVzaXplVGFibGVDb2x1bW5zTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc2l6ZS10YWJsZS1jb2x1bW5zLm1vZGVsJztcbmltcG9ydCB7IFJlc3RvcmVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlTnVtYmVyaW5nc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLW51bWJlcmluZ3MubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZVBhcmFncmFwaFN0eWxlc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLXBhcmFncmFwaC1zdHlsZXMubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZVRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc3RvcmUtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZVRleHRTdHlsZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS10ZXh0LXN0eWxlcy5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIE9wZXJhdGlvbiA9XG4gICAgfCBJbnNlcnRUZXh0TW9kZWxcbiAgICB8IERlbGV0ZU1vZGVsXG4gICAgfCBJbnNlcnRTdHlsZWRUZXh0TW9kZWxcbiAgICB8IFJlc3RvcmVNb2RlbFxuICAgIHwgQXBwbHlUZXh0U3R5bGVNb2RlbFxuICAgIHwgUmVzdG9yZVRleHRTdHlsZXNNb2RlbFxuICAgIHwgUmVzdG9yZVBhcmFncmFwaFN0eWxlc01vZGVsXG4gICAgfCBJbnNlcnRFbGVtZW50TW9kZWxcbiAgICB8IEluc2VydEJyZWFrTW9kZWxcbiAgICB8IEFwcGx5SW1hZ2VTdHlsZU1vZGVsXG4gICAgfCBBZGROdW1iZXJpbmdNb2RlbFxuICAgIHwgUmVzdG9yZU51bWJlcmluZ3NNb2RlbFxuICAgIHwgSW5zZXJ0UGFyYWdyYXBoTW9kZWxcbiAgICB8IEluc2VydFRhYk1vZGVsXG4gICAgfCBJbnNlcnRUYWJsZUNvbHVtbnNNb2RlbFxuICAgIHwgSW5zZXJ0VGFibGVSb3dzTW9kZWxcbiAgICB8IFJlbW92ZVRhYmxlQ29sdW1uc01vZGVsXG4gICAgfCBSZW1vdmVUYWJsZVJvd3NNb2RlbFxuICAgIHwgUmVzaXplVGFibGVDb2x1bW5zTW9kZWxcbiAgICB8IFJlc3RvcmVUYWJsZU1vZGVsXG4gICAgfCBJbnNlcnRUYWJsZU1vZGVsXG4gICAgfCBJbnNlcnRJbWFnZU1vZGVsXG4gICAgfCBSZW1vdmVOdW1iZXJpbmdzTW9kZWxcbiAgICB8IFJlcGxhY2VNb2RlbDtcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export class OperationsHistoryInfoModel {
|
|
2
|
-
constructor(step, storageLength) {
|
|
3
|
-
this.step = step;
|
|
4
|
-
this.lastStep = storageLength;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy1oaXN0b3J5LWluZm8ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbnMtaGlzdG9yeS1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTywwQkFBMEI7SUFJbkMsWUFBWSxJQUFZLEVBQUUsYUFBcUI7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsIHtcbiAgICBzdGVwOiBudW1iZXI7XG4gICAgbGFzdFN0ZXA6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHN0ZXA6IG51bWJlciwgc3RvcmFnZUxlbmd0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc3RlcCA9IHN0ZXA7XG4gICAgICAgIHRoaXMubGFzdFN0ZXAgPSBzdG9yYWdlTGVuZ3RoO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export class NumberingDataModel {
|
|
2
|
-
constructor(fields) {
|
|
3
|
-
if (!fields) {
|
|
4
|
-
return;
|
|
5
|
-
}
|
|
6
|
-
Object.assign(this, fields);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9udW1iZXJpbmcvbnVtYmVyaW5nLWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGtCQUFrQjtJQVMzQixZQUFZLE1BQW9DO1FBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGV4dC1zdHlsZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJpbmdEYXRhTW9kZWwge1xuICAgIG51bWJlcmluZ0lkOiBudW1iZXI7XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICBtYXJrZXI6IHN0cmluZztcbiAgICBtYXJrZXJUZXh0U3R5bGU6IFRleHRTdHlsZU1vZGVsO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgcGFkZGluZ0xlZnQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8TnVtYmVyaW5nRGF0YU1vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export var NumberingMarkerType;
|
|
2
|
-
(function (NumberingMarkerType) {
|
|
3
|
-
NumberingMarkerType[NumberingMarkerType["Bullet"] = 0] = "Bullet";
|
|
4
|
-
NumberingMarkerType[NumberingMarkerType["LowerLetter"] = 1] = "LowerLetter";
|
|
5
|
-
NumberingMarkerType[NumberingMarkerType["UpperLetter"] = 2] = "UpperLetter";
|
|
6
|
-
NumberingMarkerType[NumberingMarkerType["LowerRoman"] = 3] = "LowerRoman";
|
|
7
|
-
NumberingMarkerType[NumberingMarkerType["UpperRoman"] = 4] = "UpperRoman";
|
|
8
|
-
NumberingMarkerType[NumberingMarkerType["Decimal"] = 5] = "Decimal";
|
|
9
|
-
NumberingMarkerType[NumberingMarkerType["DecimalZero"] = 6] = "DecimalZero";
|
|
10
|
-
NumberingMarkerType[NumberingMarkerType["IdeographDigital"] = 7] = "IdeographDigital";
|
|
11
|
-
})(NumberingMarkerType || (NumberingMarkerType = {}));
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLW1hcmtlci10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9udW1iZXJpbmcvbnVtYmVyaW5nLW1hcmtlci10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBU1g7QUFURCxXQUFZLG1CQUFtQjtJQUMzQixpRUFBTSxDQUFBO0lBQ04sMkVBQVcsQ0FBQTtJQUNYLDJFQUFXLENBQUE7SUFDWCx5RUFBVSxDQUFBO0lBQ1YseUVBQVUsQ0FBQTtJQUNWLG1FQUFPLENBQUE7SUFDUCwyRUFBVyxDQUFBO0lBQ1gscUZBQWdCLENBQUE7QUFDcEIsQ0FBQyxFQVRXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFTOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBOdW1iZXJpbmdNYXJrZXJUeXBlIHtcbiAgICBCdWxsZXQsXG4gICAgTG93ZXJMZXR0ZXIsXG4gICAgVXBwZXJMZXR0ZXIsXG4gICAgTG93ZXJSb21hbixcbiAgICBVcHBlclJvbWFuLFxuICAgIERlY2ltYWwsXG4gICAgRGVjaW1hbFplcm8sXG4gICAgSWRlb2dyYXBoRGlnaXRhbFxufVxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
|
|
2
|
-
export class NumberingParagraphStyleModel extends ParagraphStyleModel {
|
|
3
|
-
constructor(fields) {
|
|
4
|
-
super();
|
|
5
|
-
this.numberingType = null;
|
|
6
|
-
this.numberingLevelsStyles = null;
|
|
7
|
-
if (!fields) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
Object.assign(this, fields);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLXBhcmFncmFwaC1zdHlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9nYWRnZXRzL251bWJlcmluZy9udW1iZXJpbmctcGFyYWdyYXBoLXN0eWxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXRGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFJakUsWUFBWSxNQUE4QztRQUN0RCxLQUFLLEVBQUUsQ0FBQztRQUpaLGtCQUFhLEdBQVEsSUFBSSxDQUFDO1FBQzFCLDBCQUFxQixHQUFXLElBQUksQ0FBQztRQUlqQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE51bWJlcmluZ1BhcmFncmFwaFN0eWxlTW9kZWwgZXh0ZW5kcyBQYXJhZ3JhcGhTdHlsZU1vZGVsIHtcbiAgICBudW1iZXJpbmdUeXBlOiBhbnkgPSBudWxsO1xuICAgIG51bWJlcmluZ0xldmVsc1N0eWxlczogc3RyaW5nID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8TnVtYmVyaW5nUGFyYWdyYXBoU3R5bGVNb2RlbD4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { ContentStyleHelper } from '../../content/helpers/content-style.helper';
|
|
2
|
-
import { FontMetrics } from '../font-metrics/font-metrics.helper';
|
|
3
|
-
import { NumberingDataModel } from './numbering-data.model';
|
|
4
|
-
import { NumberingMarkerType } from './numbering-marker-type.enum';
|
|
5
|
-
import { NumberingParagraphStyleModel } from './numbering-paragraph-style.model';
|
|
6
|
-
import { TabHelper } from '../../components/tab/tab.helper';
|
|
7
|
-
export class NumberingHelper {
|
|
8
|
-
static getStyles(paragraphStyle, numberings) {
|
|
9
|
-
const numberingLevels = numberings.find(x => x.numberingId === paragraphStyle.numberingId).levels;
|
|
10
|
-
const numberingLevelsStyles = numberingLevels.reduce((prev, next) => `${prev}${next.marker}${next.markerType}`, '');
|
|
11
|
-
const level = numberingLevels.find(x => x.level === paragraphStyle.numberingLevel);
|
|
12
|
-
return new NumberingParagraphStyleModel({ ...paragraphStyle, numberingType: level.markerType, numberingLevelsStyles });
|
|
13
|
-
}
|
|
14
|
-
static find(numberings, id, level) {
|
|
15
|
-
const numbering = numberings.find(x => x.numberingId === id);
|
|
16
|
-
return numbering?.levels.find(x => x.level === level);
|
|
17
|
-
}
|
|
18
|
-
static calculateNumberingInfo(numberingId, level, marker, numberingInfo, numberings) {
|
|
19
|
-
const numberingModel = this.find(numberings, numberingId, level);
|
|
20
|
-
if (numberingModel?.markerType === NumberingMarkerType.Bullet) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
this.calculateMarkerIndexes(numberingId, level, marker, numberingInfo);
|
|
24
|
-
}
|
|
25
|
-
static calculateMarkerIndexes(numberingId, level, marker, numberingInfo) {
|
|
26
|
-
if (!numberingId) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (!numberingInfo[numberingId]?.length || !numberingInfo[numberingId][level]) {
|
|
30
|
-
numberingInfo[numberingId] ??= [];
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (!numberingInfo[numberingId][level]?.visited) {
|
|
34
|
-
if (!marker) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this.updateNumberingInfo(numberingInfo, marker, numberingId);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
numberingInfo[numberingId][level].markerIndex++;
|
|
41
|
-
numberingInfo[numberingId].splice(level + 1);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
static getMarker(levelModel, numberingId, paragraphs, paragraphIndex, numberingInfo) {
|
|
45
|
-
let resultMarker = levelModel.marker;
|
|
46
|
-
let index = resultMarker.indexOf('%');
|
|
47
|
-
if (index === -1) {
|
|
48
|
-
return resultMarker;
|
|
49
|
-
}
|
|
50
|
-
if (numberingInfo[numberingId]?.length && numberingInfo[numberingId][levelModel.level]) {
|
|
51
|
-
return this.createMarkerString(numberingInfo, numberingId, levelModel.level);
|
|
52
|
-
}
|
|
53
|
-
while (index !== -1) {
|
|
54
|
-
const symbolLevelNumber = Number(resultMarker[index + 1]) - 1;
|
|
55
|
-
const levelIndex = this.getLevelIndex(paragraphs, paragraphIndex, numberingId, symbolLevelNumber);
|
|
56
|
-
const count = levelModel.startValue + levelIndex;
|
|
57
|
-
resultMarker = resultMarker.slice(0, index) + count.toString() + resultMarker.slice(index + 2);
|
|
58
|
-
index = resultMarker.indexOf('%');
|
|
59
|
-
}
|
|
60
|
-
numberingInfo[numberingId] ??= [];
|
|
61
|
-
this.updateNumberingInfo(numberingInfo, resultMarker, numberingId);
|
|
62
|
-
return resultMarker;
|
|
63
|
-
}
|
|
64
|
-
static createDataModel(numberings, paragraphs, paragraphIndex, numberingInfo) {
|
|
65
|
-
const paragraph = paragraphs[paragraphIndex];
|
|
66
|
-
const numberingId = paragraph?.paragraphStyle.numberingId;
|
|
67
|
-
if (!numberingId) {
|
|
68
|
-
return new NumberingDataModel({ numberingId: null });
|
|
69
|
-
}
|
|
70
|
-
const level = paragraph.paragraphStyle.numberingLevel;
|
|
71
|
-
const numberingLevelModel = this.find(numberings, numberingId, level);
|
|
72
|
-
const marker = this.getMarker(numberingLevelModel, numberingId, paragraphs, paragraphIndex, numberingInfo);
|
|
73
|
-
return new NumberingDataModel({ numberingId, level, marker });
|
|
74
|
-
}
|
|
75
|
-
static updateMarkerData(properties, paragraph, paragraphTextStyle, paragraphStyle) {
|
|
76
|
-
const numberingLevel = NumberingHelper.find(properties.numberings, paragraph.numberingData.numberingId, paragraph.numberingData.level);
|
|
77
|
-
const markerTextStyle = ContentStyleHelper.combineTextStyles(numberingLevel.markerStyle, paragraphTextStyle);
|
|
78
|
-
const markerSizes = NumberingHelper.getMarkerSizes(paragraph.numberingData.marker, markerTextStyle);
|
|
79
|
-
paragraph.numberingData.markerTextStyle = markerTextStyle;
|
|
80
|
-
paragraph.numberingData.width = markerSizes.width;
|
|
81
|
-
paragraph.numberingData.height = markerSizes.height;
|
|
82
|
-
const indentHanging = paragraphStyle.indentHanging ? paragraphStyle.indentHanging : numberingLevel.indentHanging;
|
|
83
|
-
paragraph.numberingData.paddingLeft = paragraph.textLinesInfo[0].paddingLeft - indentHanging;
|
|
84
|
-
if (markerSizes.width >= indentHanging) {
|
|
85
|
-
const markerOverflow = paragraph.numberingData.width - indentHanging;
|
|
86
|
-
const additionalMarkerIndent = TabHelper.calculateTabWidth(numberingLevel.indentLeft + markerOverflow, properties.defaultTabWidth);
|
|
87
|
-
paragraph.numberingData.paddingLeft = paragraph.numberingData.paddingLeft - markerOverflow - additionalMarkerIndent;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
static getMarkerSizes(marker, markerStyle) {
|
|
91
|
-
let width = 0;
|
|
92
|
-
let height = 0;
|
|
93
|
-
const markerStylesString = ContentStyleHelper.getFontStylesString(markerStyle);
|
|
94
|
-
for (let char of marker) {
|
|
95
|
-
const markerCharSizes = FontMetrics.measureCharSize(char, markerStylesString);
|
|
96
|
-
width += markerCharSizes.width;
|
|
97
|
-
if (height < markerCharSizes.height) {
|
|
98
|
-
height = markerCharSizes.height;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return { height, width };
|
|
102
|
-
}
|
|
103
|
-
static updateNumberingInfo(numberingInfo, marker, numberingId) {
|
|
104
|
-
if (!numberingInfo[numberingId]) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
const levels = this.getLevelInfo(marker);
|
|
108
|
-
for (let i = 0; i < levels.length; i++) {
|
|
109
|
-
numberingInfo[numberingId][i] = { markerIndex: levels[i], visited: true };
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
static getLevelIndex(paragraphs, paragraphIndex, numberingId, numberingLevel) {
|
|
113
|
-
let index = 0;
|
|
114
|
-
let isOnlySubLevelsBefore = false;
|
|
115
|
-
for (let i = paragraphIndex; i >= 0; i--) {
|
|
116
|
-
if (paragraphs[i].paragraphStyle.numberingId !== numberingId) {
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
if (paragraphs[i].paragraphStyle.numberingLevel < numberingLevel) {
|
|
120
|
-
break;
|
|
121
|
-
}
|
|
122
|
-
if (paragraphs[i].paragraphStyle.numberingLevel > numberingLevel) {
|
|
123
|
-
isOnlySubLevelsBefore = true;
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
index++;
|
|
127
|
-
isOnlySubLevelsBefore = false;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
index = isOnlySubLevelsBefore ? index + 1 : index;
|
|
131
|
-
return index <= 0 ? 0 : index - 1;
|
|
132
|
-
}
|
|
133
|
-
static getLevelInfo(input) {
|
|
134
|
-
return input
|
|
135
|
-
.split('.')
|
|
136
|
-
.filter(x => !!x)
|
|
137
|
-
.map(x => parseInt(x));
|
|
138
|
-
}
|
|
139
|
-
static createMarkerString(numberingInfo, numberingId, level) {
|
|
140
|
-
if (level === 0) {
|
|
141
|
-
return numberingInfo[numberingId][level].markerIndex + '.';
|
|
142
|
-
}
|
|
143
|
-
return numberingInfo[numberingId]
|
|
144
|
-
.slice(0, level + 1)
|
|
145
|
-
.map(marker => marker.markerIndex)
|
|
146
|
-
.join('.');
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9nYWRnZXRzL251bWJlcmluZy9udW1iZXJpbmcuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUlqRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHNUQsTUFBTSxPQUFPLGVBQWU7SUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFtQyxFQUFFLFVBQTRCO1FBQzlFLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEcsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEgsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25GLE9B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QUNQLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsYUFBNEIsRUFBRSxXQUFtQixFQUFFLEtBQWE7UUFDdEYsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ2IsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztTQUM5RDtRQUVELE9BQU8sYUFBYSxDQUFDLFdBQVcsQ0FBQzthQUM1QixLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7YUFDbkIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFN0eWxlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29udGVudC9oZWxwZXJzL2NvbnRlbnQtc3R5bGUuaGVscGVyJztcbmltcG9ydCB7IEZvbnRNZXRyaWNzIH0gZnJvbSAnLi4vZm9udC1tZXRyaWNzL2ZvbnQtbWV0cmljcy5oZWxwZXInO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCwgTnVtYmVyaW5nSW5mbyB9IGZyb20gJy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdEYXRhTW9kZWwgfSBmcm9tICcuL251bWJlcmluZy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ0xldmVsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy1sZXZlbC5tb2RlbCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdNYXJrZXJUeXBlIH0gZnJvbSAnLi9udW1iZXJpbmctbWFya2VyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBOdW1iZXJpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ1BhcmFncmFwaFN0eWxlTW9kZWwgfSBmcm9tICcuL251bWJlcmluZy1wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoIH0gZnJvbSAnLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvcGFyYWdyYXBoJztcbmltcG9ydCB7IFBhcmFncmFwaE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRhYkhlbHBlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGFiL3RhYi5oZWxwZXInO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTnVtYmVyaW5nSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0U3R5bGVzKHBhcmFncmFwaFN0eWxlOiBQYXJhZ3JhcGhTdHlsZU1vZGVsLCBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdKTogTnVtYmVyaW5nUGFyYWdyYXBoU3R5bGVNb2RlbCB7XG4gICAgICAgIGNvbnN0IG51bWJlcmluZ0xldmVscyA9IG51bWJlcmluZ3MuZmluZCh4ID0+IHgubnVtYmVyaW5nSWQgPT09IHBhcmFncmFwaFN0eWxlLm51bWJlcmluZ0lkKS5sZXZlbHM7XG4gICAgICAgIGNvbnN0IG51bWJlcmluZ0xldmVsc1N0eWxlcyA9IG51bWJlcmluZ0xldmVscy5yZWR1Y2UoKHByZXYsIG5leHQpID0+IGAke3ByZXZ9JHtuZXh0Lm1hcmtlcn0ke25leHQubWFya2VyVHlwZX1gLCAnJyk7XG4gICAgICAgIGNvbnN0IGxldmVsID0gbnVtYmVyaW5nTGV2ZWxzLmZpbmQoeCA9PiB4LmxldmVsID09PSBwYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdMZXZlbCk7XG4gICAgICAgIHJldHVybiBuZXcgTnVtYmVyaW5nUGFyYWdyYXBoU3R5bGVNb2RlbCh7IC4uLnBhcmFncmFwaFN0eWxlLCBudW1iZXJpbmdUeXBlOiBsZXZlbC5tYXJrZXJUeXBlLCBudW1iZXJpbmdMZXZlbHNTdHlsZXMgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbmQobnVtYmVyaW5nczogTnVtYmVyaW5nTW9kZWxbXSwgaWQ6IG51bWJlciwgbGV2ZWw6IG51bWJlcik6IE51bWJlcmluZ0xldmVsTW9kZWwge1xuICAgICAgICBjb25zdCBudW1iZXJpbmcgPSBudW1iZXJpbmdzLmZpbmQoeCA9PiB4Lm51bWJlcmluZ0lkID09PSBpZCk7XG4gICAgICAgIHJldHVybiBudW1iZXJpbmc/LmxldmVscy5maW5kKHggPT4geC5sZXZlbCA9PT0gbGV2ZWwpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjYWxjdWxhdGVOdW1iZXJpbmdJbmZvKFxuICAgICAgICBudW1iZXJpbmdJZDogbnVtYmVyLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICBtYXJrZXI6IHN0cmluZyxcbiAgICAgICAgbnVtYmVyaW5nSW5mbzogTnVtYmVyaW5nSW5mbyxcbiAgICAgICAgbnVtYmVyaW5nczogTnVtYmVyaW5nTW9kZWxbXVxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBudW1iZXJpbmdNb2RlbCA9IHRoaXMuZmluZChudW1iZXJpbmdzLCBudW1iZXJpbmdJZCwgbGV2ZWwpO1xuICAgICAgICBpZiAobnVtYmVyaW5nTW9kZWw/Lm1hcmtlclR5cGUgPT09IE51bWJlcmluZ01hcmtlclR5cGUuQnVsbGV0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU1hcmtlckluZGV4ZXMobnVtYmVyaW5nSWQsIGxldmVsLCBtYXJrZXIsIG51bWJlcmluZ0luZm8pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNhbGN1bGF0ZU1hcmtlckluZGV4ZXMobnVtYmVyaW5nSWQ6IG51bWJlciwgbGV2ZWw6IG51bWJlciwgbWFya2VyOiBzdHJpbmcsIG51bWJlcmluZ0luZm86IE51bWJlcmluZ0luZm8pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFudW1iZXJpbmdJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFudW1iZXJpbmdJbmZvW251bWJlcmluZ0lkXT8ubGVuZ3RoIHx8ICFudW1iZXJpbmdJbmZvW251bWJlcmluZ0lkXVtsZXZlbF0pIHtcbiAgICAgICAgICAgIG51bWJlcmluZ0luZm9bbnVtYmVyaW5nSWRdID8/PSBbXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbnVtYmVyaW5nSW5mb1tudW1iZXJpbmdJZF1bbGV2ZWxdPy52aXNpdGVkKSB7XG4gICAgICAgICAgICBpZiAoIW1hcmtlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51cGRhdGVOdW1iZXJpbmdJbmZvKG51bWJlcmluZ0luZm8sIG1hcmtlciwgbnVtYmVyaW5nSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbnVtYmVyaW5nSW5mb1tudW1iZXJpbmdJZF1bbGV2ZWxdLm1hcmtlckluZGV4Kys7XG4gICAgICAgICAgICBudW1iZXJpbmdJbmZvW251bWJlcmluZ0lkXS5zcGxpY2UobGV2ZWwgKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRNYXJrZXIoXG4gICAgICAgIGxldmVsTW9kZWw6IE51bWJlcmluZ0xldmVsTW9kZWwsXG4gICAgICAgIG51bWJlcmluZ0lkOiBudW1iZXIsXG4gICAgICAgIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sXG4gICAgICAgIHBhcmFncmFwaEluZGV4OiBudW1iZXIsXG4gICAgICAgIG51bWJlcmluZ0luZm86IE51bWJlcmluZ0luZm9cbiAgICApOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVzdWx0TWFya2VyID0gbGV2ZWxNb2RlbC5tYXJrZXI7XG4gICAgICAgIGxldCBpbmRleCA9IHJlc3VsdE1hcmtlci5pbmRleE9mKCclJyk7XG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRNYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobnVtYmVyaW5nSW5mb1tudW1iZXJpbmdJZF0/Lmxlbmd0aCAmJiBudW1iZXJpbmdJbmZvW251bWJlcmluZ0lkXVtsZXZlbE1vZGVsLmxldmVsXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTWFya2VyU3RyaW5nKG51bWJlcmluZ0luZm8sIG51bWJlcmluZ0lkLCBsZXZlbE1vZGVsLmxldmVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IHN5bWJvbExldmVsTnVtYmVyID0gTnVtYmVyKHJlc3VsdE1hcmtlcltpbmRleCArIDFdKSAtIDE7XG4gICAgICAgICAgICBjb25zdCBsZXZlbEluZGV4ID0gdGhpcy5nZXRMZXZlbEluZGV4KHBhcmFncmFwaHMsIHBhcmFncmFwaEluZGV4LCBudW1iZXJpbmdJZCwgc3ltYm9sTGV2ZWxOdW1iZXIpO1xuICAgICAgICAgICAgY29uc3QgY291bnQgPSBsZXZlbE1vZGVsLnN0YXJ0VmFsdWUgKyBsZXZlbEluZGV4O1xuICAgICAgICAgICAgcmVzdWx0TWFya2VyID0gcmVzdWx0TWFya2VyLnNsaWNlKDAsIGluZGV4KSArIGNvdW50LnRvU3RyaW5nKCkgKyByZXN1bHRNYXJrZXIuc2xpY2UoaW5kZXggKyAyKTtcbiAgICAgICAgICAgIGluZGV4ID0gcmVzdWx0TWFya2VyLmluZGV4T2YoJyUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG51bWJlcmluZ0luZm9bbnVtYmVyaW5nSWRdID8/PSBbXTtcbiAgICAgICAgdGhpcy51cGRhdGVOdW1iZXJpbmdJbmZvKG51bWJlcmluZ0luZm8sIHJlc3VsdE1hcmtlciwgbnVtYmVyaW5nSWQpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHRNYXJrZXI7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZURhdGFNb2RlbChcbiAgICAgICAgbnVtYmVyaW5nczogTnVtYmVyaW5nTW9kZWxbXSxcbiAgICAgICAgcGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSxcbiAgICAgICAgcGFyYWdyYXBoSW5kZXg6IG51bWJlcixcbiAgICAgICAgbnVtYmVyaW5nSW5mbzogTnVtYmVyaW5nSW5mb1xuICAgICk6IE51bWJlcmluZ0RhdGFNb2RlbCB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaCA9IHBhcmFncmFwaHNbcGFyYWdyYXBoSW5kZXhdO1xuICAgICAgICBjb25zdCBudW1iZXJpbmdJZCA9IHBhcmFncmFwaD8ucGFyYWdyYXBoU3R5bGUubnVtYmVyaW5nSWQ7XG5cbiAgICAgICAgaWYgKCFudW1iZXJpbmdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJpbmdEYXRhTW9kZWwoeyBudW1iZXJpbmdJZDogbnVsbCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxldmVsID0gcGFyYWdyYXBoLnBhcmFncmFwaFN0eWxlLm51bWJlcmluZ0xldmVsO1xuICAgICAgICBjb25zdCBudW1iZXJpbmdMZXZlbE1vZGVsID0gdGhpcy5maW5kKG51bWJlcmluZ3MsIG51bWJlcmluZ0lkLCBsZXZlbCk7XG4gICAgICAgIGNvbnN0IG1hcmtlciA9IHRoaXMuZ2V0TWFya2VyKG51bWJlcmluZ0xldmVsTW9kZWwsIG51bWJlcmluZ0lkLCBwYXJhZ3JhcGhzLCBwYXJhZ3JhcGhJbmRleCwgbnVtYmVyaW5nSW5mbyk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJpbmdEYXRhTW9kZWwoeyBudW1iZXJpbmdJZCwgbGV2ZWwsIG1hcmtlciB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgdXBkYXRlTWFya2VyRGF0YShcbiAgICAgICAgcHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgcGFyYWdyYXBoOiBQYXJhZ3JhcGgsXG4gICAgICAgIHBhcmFncmFwaFRleHRTdHlsZTogVGV4dFN0eWxlTW9kZWwsXG4gICAgICAgIHBhcmFncmFwaFN0eWxlOiBQYXJhZ3JhcGhTdHlsZU1vZGVsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG51bWJlcmluZ0xldmVsID0gTnVtYmVyaW5nSGVscGVyLmZpbmQoXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLm51bWJlcmluZ3MsXG4gICAgICAgICAgICBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5udW1iZXJpbmdJZCxcbiAgICAgICAgICAgIHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLmxldmVsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG1hcmtlclRleHRTdHlsZSA9IENvbnRlbnRTdHlsZUhlbHBlci5jb21iaW5lVGV4dFN0eWxlcyhudW1iZXJpbmdMZXZlbC5tYXJrZXJTdHlsZSwgcGFyYWdyYXBoVGV4dFN0eWxlKTtcbiAgICAgICAgY29uc3QgbWFya2VyU2l6ZXMgPSBOdW1iZXJpbmdIZWxwZXIuZ2V0TWFya2VyU2l6ZXMocGFyYWdyYXBoLm51bWJlcmluZ0RhdGEubWFya2VyLCBtYXJrZXJUZXh0U3R5bGUpO1xuICAgICAgICBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5tYXJrZXJUZXh0U3R5bGUgPSBtYXJrZXJUZXh0U3R5bGU7XG4gICAgICAgIHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLndpZHRoID0gbWFya2VyU2l6ZXMud2lkdGg7XG4gICAgICAgIHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLmhlaWdodCA9IG1hcmtlclNpemVzLmhlaWdodDtcbiAgICAgICAgY29uc3QgaW5kZW50SGFuZ2luZyA9IHBhcmFncmFwaFN0eWxlLmluZGVudEhhbmdpbmcgPyBwYXJhZ3JhcGhTdHlsZS5pbmRlbnRIYW5naW5nIDogbnVtYmVyaW5nTGV2ZWwuaW5kZW50SGFuZ2luZztcbiAgICAgICAgcGFyYWdyYXBoLm51bWJlcmluZ0RhdGEucGFkZGluZ0xlZnQgPSBwYXJhZ3JhcGgudGV4dExpbmVzSW5mb1swXS5wYWRkaW5nTGVmdCAtIGluZGVudEhhbmdpbmc7XG4gICAgICAgIGlmIChtYXJrZXJTaXplcy53aWR0aCA+PSBpbmRlbnRIYW5naW5nKSB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJPdmVyZmxvdyA9IHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLndpZHRoIC0gaW5kZW50SGFuZ2luZztcbiAgICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxNYXJrZXJJbmRlbnQgPSBUYWJIZWxwZXIuY2FsY3VsYXRlVGFiV2lkdGgoXG4gICAgICAgICAgICAgICAgbnVtYmVyaW5nTGV2ZWwuaW5kZW50TGVmdCArIG1hcmtlck92ZXJmbG93LFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXMuZGVmYXVsdFRhYldpZHRoXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcGFyYWdyYXBoLm51bWJlcmluZ0RhdGEucGFkZGluZ0xlZnQgPSBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5wYWRkaW5nTGVmdCAtIG1hcmtlck92ZXJmbG93IC0gYWRkaXRpb25hbE1hcmtlckluZGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRNYXJrZXJTaXplcyhtYXJrZXI6IHN0cmluZywgbWFya2VyU3R5bGU6IFRleHRTdHlsZU1vZGVsKTogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9IHtcbiAgICAgICAgbGV0IHdpZHRoID0gMDtcbiAgICAgICAgbGV0IGhlaWdodCA9IDA7XG4gICAgICAgIGNvbnN0IG1hcmtlclN0eWxlc1N0cmluZyA9IENvbnRlbnRTdHlsZUhlbHBlci5nZXRGb250U3R5bGVzU3RyaW5nKG1hcmtlclN0eWxlKTtcbiAgICAgICAgZm9yIChsZXQgY2hhciBvZiBtYXJrZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlckNoYXJTaXplcyA9IEZvbnRNZXRyaWNzLm1lYXN1cmVDaGFyU2l6ZShjaGFyLCBtYXJrZXJTdHlsZXNTdHJpbmcpO1xuICAgICAgICAgICAgd2lkdGggKz0gbWFya2VyQ2hhclNpemVzLndpZHRoO1xuICAgICAgICAgICAgaWYgKGhlaWdodCA8IG1hcmtlckNoYXJTaXplcy5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBtYXJrZXJDaGFyU2l6ZXMuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgaGVpZ2h0LCB3aWR0aCB9O1xuICAgIH1cblxuICAgIHN0YXRpYyB1cGRhdGVOdW1iZXJpbmdJbmZvKG51bWJlcmluZ0luZm86IE51bWJlcmluZ0luZm8sIG1hcmtlcjogc3RyaW5nLCBudW1iZXJpbmdJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghbnVtYmVyaW5nSW5mb1tudW1iZXJpbmdJZF0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxldmVscyA9IHRoaXMuZ2V0TGV2ZWxJbmZvKG1hcmtlcik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGV2ZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBudW1iZXJpbmdJbmZvW251bWJlcmluZ0lkXVtpXSA9IHsgbWFya2VySW5kZXg6IGxldmVsc1tpXSwgdmlzaXRlZDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TGV2ZWxJbmRleChcbiAgICAgICAgcGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSxcbiAgICAgICAgcGFyYWdyYXBoSW5kZXg6IG51bWJlcixcbiAgICAgICAgbnVtYmVyaW5nSWQ6IG51bWJlcixcbiAgICAgICAgbnVtYmVyaW5nTGV2ZWw6IG51bWJlclxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCBpc09ubHlTdWJMZXZlbHNCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHBhcmFncmFwaEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHBhcmFncmFwaHNbaV0ucGFyYWdyYXBoU3R5bGUubnVtYmVyaW5nSWQgIT09IG51bWJlcmluZ0lkKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXJhZ3JhcGhzW2ldLnBhcmFncmFwaFN0eWxlLm51bWJlcmluZ0xldmVsIDwgbnVtYmVyaW5nTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmFncmFwaHNbaV0ucGFyYWdyYXBoU3R5bGUubnVtYmVyaW5nTGV2ZWwgPiBudW1iZXJpbmdMZXZlbCkge1xuICAgICAgICAgICAgICAgIGlzT25seVN1YkxldmVsc0JlZm9yZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgaXNPbmx5U3ViTGV2ZWxzQmVmb3JlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSBpc09ubHlTdWJMZXZlbHNCZWZvcmUgPyBpbmRleCArIDEgOiBpbmRleDtcblxuICAgICAgICByZXR1cm4gaW5kZXggPD0gMCA/IDAgOiBpbmRleCAtIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TGV2ZWxJbmZvKGlucHV0OiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBpbnB1dFxuICAgICAgICAgICAgLnNwbGl0KCcuJylcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiAhIXgpXG4gICAgICAgICAgICAubWFwKHggPT4gcGFyc2VJbnQoeCkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjcmVhdGVNYXJrZXJTdHJpbmcobnVtYmVyaW5nSW5mbzogTnVtYmVyaW5nSW5mbywgbnVtYmVyaW5nSWQ6IG51bWJlciwgbGV2ZWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGlmIChsZXZlbCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlcmluZ0luZm9bbnVtYmVyaW5nSWRdW2xldmVsXS5tYXJrZXJJbmRleCArICcuJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudW1iZXJpbmdJbmZvW251bWJlcmluZ0lkXVxuICAgICAgICAgICAgLnNsaWNlKDAsIGxldmVsICsgMSlcbiAgICAgICAgICAgIC5tYXAobWFya2VyID0+IG1hcmtlci5tYXJrZXJJbmRleClcbiAgICAgICAgICAgIC5qb2luKCcuJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export var BreakTypes;
|
|
2
|
-
(function (BreakTypes) {
|
|
3
|
-
BreakTypes[BreakTypes["Page"] = 0] = "Page";
|
|
4
|
-
BreakTypes[BreakTypes["Column"] = 1] = "Column";
|
|
5
|
-
BreakTypes[BreakTypes["TextWrapping"] = 2] = "TextWrapping";
|
|
6
|
-
})(BreakTypes || (BreakTypes = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWstdHlwZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9nYWRnZXRzL3BhZ2UtYnJlYWsvYnJlYWstdHlwZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ2xCLDJDQUFJLENBQUE7SUFDSiwrQ0FBTSxDQUFBO0lBQ04sMkRBQVksQ0FBQTtBQUNoQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBCcmVha1R5cGVzIHtcbiAgICBQYWdlLFxuICAgIENvbHVtbixcbiAgICBUZXh0V3JhcHBpbmdcbn1cbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENT_MARKER } from '../../components/shared/custom-content-markers.const';
|
|
2
|
-
import { NEW_LINE_MARKUP } from '../../content/constants/editor.const';
|
|
3
|
-
export class BreakHelper {
|
|
4
|
-
static getBreakType(model, char, insertIndex) {
|
|
5
|
-
if (char !== CUSTOM_ELEMENT_MARKER) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
return model.breaks.find(x => x.insertIndex === insertIndex)?.breakType ?? null;
|
|
9
|
-
}
|
|
10
|
-
static removeBreakMarker(breaks, text, fragmentStartIndex) {
|
|
11
|
-
const index = text.at(-1) === NEW_LINE_MARKUP ? -2 : -1;
|
|
12
|
-
if (text.at(index) === CUSTOM_ELEMENT_MARKER && breaks.some(x => x.insertIndex === fragmentStartIndex + text.length + index)) {
|
|
13
|
-
return index === -1 ? text.substring(0, text.length + index) : text.substring(0, text.length + index).concat(text.at(-1));
|
|
14
|
-
}
|
|
15
|
-
return text;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWsuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2dhZGdldHMvcGFnZS1icmVhay9icmVhay5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBd0IsRUFBRSxJQUFZLEVBQUUsV0FBbUI7UUFDM0UsSUFBSSxJQUFJLEtBQUsscUJBQXFCLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUM7SUFDcEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFvQixFQUFFLElBQVksRUFBRSxrQkFBMEI7UUFDbkYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhELElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxxQkFBcUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxFQUFFO1lBQzFILE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3SDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2JyZWFrLm1vZGVsJztcbmltcG9ydCB7IEJyZWFrVHlwZXMgfSBmcm9tICcuL2JyZWFrLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgQ29udGVudHNJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9jb250ZW50L2NvbnRlbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVF9NQVJLRVIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC9jdXN0b20tY29udGVudC1tYXJrZXJzLmNvbnN0JztcbmltcG9ydCB7IE5FV19MSU5FX01BUktVUCB9IGZyb20gJy4uLy4uL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5cbmV4cG9ydCBjbGFzcyBCcmVha0hlbHBlciB7XG4gICAgc3RhdGljIGdldEJyZWFrVHlwZShtb2RlbDogQ29udGVudHNJbnRlcmZhY2UsIGNoYXI6IHN0cmluZywgaW5zZXJ0SW5kZXg6IG51bWJlcik6IEJyZWFrVHlwZXMgfCBudWxsIHtcbiAgICAgICAgaWYgKGNoYXIgIT09IENVU1RPTV9FTEVNRU5UX01BUktFUikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9kZWwuYnJlYWtzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBpbnNlcnRJbmRleCk/LmJyZWFrVHlwZSA/PyBudWxsO1xuICAgIH1cblxuICAgIHN0YXRpYyByZW1vdmVCcmVha01hcmtlcihicmVha3M6IEJyZWFrTW9kZWxbXSwgdGV4dDogc3RyaW5nLCBmcmFnbWVudFN0YXJ0SW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGV4dC5hdCgtMSkgPT09IE5FV19MSU5FX01BUktVUCA/IC0yIDogLTE7XG5cbiAgICAgICAgaWYgKHRleHQuYXQoaW5kZXgpID09PSBDVVNUT01fRUxFTUVOVF9NQVJLRVIgJiYgYnJlYWtzLnNvbWUoeCA9PiB4Lmluc2VydEluZGV4ID09PSBmcmFnbWVudFN0YXJ0SW5kZXggKyB0ZXh0Lmxlbmd0aCArIGluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4ID09PSAtMSA/IHRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoICsgaW5kZXgpIDogdGV4dC5zdWJzdHJpbmcoMCwgdGV4dC5sZW5ndGggKyBpbmRleCkuY29uY2F0KHRleHQuYXQoLTEpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbn1cbiJdfQ==
|