@talrace/ngx-noder 0.0.6 → 0.0.8
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 +5 -4
- package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +61 -0
- package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +7 -0
- package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +47 -0
- package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +32 -0
- package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +64 -0
- package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +89 -0
- package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +22 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +111 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +37 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +49 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +90 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +81 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +28 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +22 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +53 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +18 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +27 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +71 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +94 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +24 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +65 -0
- package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +84 -0
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +90 -0
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +117 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +8 -0
- package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/numbering-templates.const.mjs +6 -6
- package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +157 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +8 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +11 -0
- package/esm2022/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.mjs +1 -1
- package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +6 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +34 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +26 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +60 -0
- package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +55 -0
- package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +54 -0
- package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +84 -0
- package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +123 -0
- package/esm2022/lib/editor/components/edges/edge-element.model.mjs +9 -0
- package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +6 -0
- package/esm2022/lib/editor/components/edges/edge.component.mjs +99 -0
- package/esm2022/lib/editor/components/edges/edges.mjs +108 -0
- package/esm2022/lib/editor/components/edges/page-type.enum.mjs +7 -0
- package/esm2022/lib/editor/components/editor.component.mjs +112 -0
- package/esm2022/lib/editor/components/external-element/external-element.service.mjs +6 -0
- package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +4 -0
- package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +2 -0
- package/esm2022/lib/editor/components/external-element/external.component.mjs +41 -0
- package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +9 -0
- package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +11 -0
- package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +15 -0
- package/esm2022/lib/editor/components/image/components/image.component.mjs +88 -0
- package/esm2022/lib/editor/components/image/image-api.service.mjs +36 -0
- package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +38 -0
- package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +2 -0
- package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +19 -0
- package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +12 -0
- package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +106 -0
- package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +2 -0
- package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +52 -0
- package/esm2022/lib/editor/components/image/size.mjs +2 -0
- package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +59 -0
- package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +18 -0
- package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +43 -0
- package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +2 -0
- package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +3 -0
- package/esm2022/lib/editor/components/shared/custom-content.mjs +2 -0
- package/esm2022/lib/editor/components/shared/services/component.service.mjs +64 -0
- package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +163 -0
- package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +55 -0
- package/esm2022/lib/editor/components/tab/tab.component.mjs +44 -0
- package/esm2022/lib/editor/components/tab/tab.helper.mjs +6 -0
- package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +118 -0
- package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +97 -0
- package/esm2022/lib/editor/components/table/components/table.component.mjs +401 -0
- package/esm2022/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.mjs +1 -1
- package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +8 -0
- package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +6 -0
- package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +18 -0
- package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +9 -0
- package/esm2022/lib/editor/components/table/models/row-data.model.mjs +8 -0
- package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +7 -0
- package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +74 -0
- package/esm2022/lib/editor/components/table/selection/table-selection.mjs +366 -0
- package/esm2022/lib/editor/content/constants/display-values.const.mjs +8 -0
- package/esm2022/lib/editor/content/constants/document-info.const.mjs +13 -0
- package/esm2022/lib/editor/content/constants/editor.const.mjs +62 -0
- package/esm2022/lib/editor/content/contents.interface.mjs +2 -0
- package/esm2022/lib/editor/content/display-data/display-token.model.mjs +12 -0
- package/esm2022/lib/editor/content/display-data/document.mjs +134 -0
- package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +10 -0
- package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +11 -0
- package/esm2022/lib/editor/content/display-data/indent.model.mjs +9 -0
- package/esm2022/lib/editor/content/display-data/line-info.model.mjs +9 -0
- package/esm2022/lib/editor/content/display-data/lines.mjs +96 -0
- package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +226 -0
- package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +2 -0
- package/esm2022/lib/editor/content/display-data/paragraph.mjs +52 -0
- package/esm2022/lib/editor/content/display-data/text-line-info.mjs +34 -0
- package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +2 -0
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +96 -0
- package/esm2022/lib/{+shared/editor → editor/content}/helpers/format.helper.mjs +1 -1
- package/esm2022/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.mjs +1 -1
- package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +9 -0
- package/esm2022/lib/editor/content/margin.model.mjs +16 -0
- package/esm2022/lib/editor/content/page-vertical-data.model.mjs +9 -0
- package/esm2022/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.mjs +1 -1
- package/esm2022/lib/editor/core/event-emitting.mjs +56 -0
- package/esm2022/lib/editor/display/cell.interface.mjs +2 -0
- package/esm2022/lib/editor/display/event.helper.mjs +18 -0
- package/esm2022/lib/editor/display/layers/cursor.layer.mjs +101 -0
- package/esm2022/lib/editor/display/layers/layer.config.mjs +2 -0
- package/esm2022/lib/editor/display/layers/pages.layer.mjs +97 -0
- package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +7 -0
- package/esm2022/lib/editor/display/layers/print.text.layer.mjs +7 -0
- package/esm2022/lib/editor/display/layers/selection.layer.mjs +113 -0
- package/esm2022/lib/editor/display/layers/text.layer.mjs +203 -0
- package/esm2022/lib/editor/display/print/print.helper.mjs +40 -0
- package/esm2022/lib/editor/display/print/print.renderer.mjs +67 -0
- package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +7 -0
- package/esm2022/lib/editor/display/render-changes.interface.mjs +2 -0
- package/esm2022/lib/editor/display/render-changes.model.mjs +25 -0
- package/esm2022/lib/editor/display/renderer.mjs +206 -0
- package/esm2022/lib/editor/display/rendering.helper.mjs +187 -0
- package/esm2022/lib/editor/display/renderloop.mjs +26 -0
- package/esm2022/lib/editor/display/virtual.renderer.mjs +317 -0
- package/esm2022/lib/editor/display/visible-range.interface.mjs +2 -0
- package/esm2022/lib/editor/editor.module.mjs +67 -0
- package/esm2022/lib/editor/execution/distance.model.mjs +10 -0
- package/esm2022/lib/editor/execution/edit.session.mjs +1117 -0
- package/esm2022/lib/editor/execution/editor.mjs +1346 -0
- package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +18 -0
- package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +42 -0
- package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +64 -0
- package/esm2022/lib/editor/execution/helpers/page.helper.mjs +12 -0
- package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +41 -0
- package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +169 -0
- package/esm2022/lib/editor/execution/regulator.service.mjs +198 -0
- package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +19 -0
- package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +15 -0
- package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +8 -0
- package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +3 -0
- package/esm2022/lib/editor/execution/targeting/session.model.mjs +10 -0
- package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +2 -0
- package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +2 -0
- package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +88 -0
- package/esm2022/lib/editor/gadgets/history/operation-history.mjs +206 -0
- package/esm2022/lib/editor/gadgets/history/operation.type.mjs +2 -0
- package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +7 -0
- package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +9 -0
- package/esm2022/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.mjs +1 -1
- package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +82 -0
- package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +7 -0
- package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +18 -0
- package/esm2022/lib/editor/gadgets/scrollbar.mjs +81 -0
- package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +2 -0
- package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +2 -0
- package/esm2022/lib/editor/gadgets/search/search.mjs +231 -0
- package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +5 -0
- package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +20 -0
- package/esm2022/lib/editor/interaction/base.handler.mjs +19 -0
- package/esm2022/lib/editor/interaction/document.handler.mjs +27 -0
- package/esm2022/lib/editor/interaction/editor.service.mjs +325 -0
- package/esm2022/lib/editor/interaction/input.handler.mjs +149 -0
- package/esm2022/lib/{+shared/enums → editor/interaction}/mode.enum.mjs +1 -1
- package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +7 -0
- package/esm2022/lib/editor/interaction/mouse.handler.mjs +49 -0
- package/esm2022/lib/editor/interaction/text-input.mjs +53 -0
- package/esm2022/lib/editor/operations/commands.service.mjs +20 -0
- package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +32 -0
- package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +7 -0
- package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +9 -0
- package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +15 -0
- package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +55 -0
- package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +19 -0
- package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +28 -0
- package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
- package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +114 -0
- package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +16 -0
- package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +374 -0
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +432 -0
- package/esm2022/lib/editor/operations/save-commands.helper.mjs +127 -0
- package/esm2022/lib/editor/operations/target-operations.helper.mjs +23 -0
- package/esm2022/lib/editor/positioning/alignments.const.mjs +8 -0
- package/esm2022/lib/editor/positioning/content.helper.mjs +36 -0
- package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +13 -0
- package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +2 -0
- package/esm2022/lib/editor/positioning/insert-index.interface.mjs +2 -0
- package/esm2022/lib/editor/positioning/line-width.helper.mjs +13 -0
- package/esm2022/lib/editor/positioning/position.helper.mjs +194 -0
- package/esm2022/lib/editor/positioning/range.mjs +94 -0
- package/esm2022/lib/editor/positioning/selection.mjs +307 -0
- package/esm2022/lib/editor/revision.helper.mjs +91 -0
- package/esm2022/lib/models/generated/command.model.mjs +5 -1
- package/esm2022/lib/models/generated/insert-paragraph.model.mjs +20 -0
- package/esm2022/lib/models/generated/replace.model.mjs +5 -1
- package/esm2022/public-api.mjs +36 -33
- package/fesm2022/talrace-ngx-noder.mjs +3583 -3278
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/{+shared → apart-components}/add-link-dialog/add-link-dialog.component.d.ts +1 -1
- package/lib/apart-components/add-link-mobile/add-link-mobile.component.d.ts +19 -0
- package/lib/{+shared → apart-components}/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/lib/{+shared → apart-components}/editor-search/editor-search-dialog.component.d.ts +6 -7
- package/lib/{+shared → apart-components}/editor-title/editor-title.component.d.ts +4 -3
- package/lib/apart-components/editor-title-mobile/editor-title-mobile.component.d.ts +6 -0
- package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +49 -0
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/color-picker/color-picker.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/font.component.d.ts +2 -2
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/font-size.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/font-style.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/format.component.d.ts +2 -2
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/heading/heading.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/numbering.component.d.ts +3 -3
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/print/print.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/undo-redo.component.d.ts +1 -1
- package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/zoom/zoom.component.d.ts +1 -1
- package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +36 -0
- package/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.d.ts +14 -0
- package/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.d.ts +23 -0
- package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +26 -0
- package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +40 -0
- package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +32 -0
- package/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.d.ts +2 -0
- package/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.d.ts +6 -0
- package/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.d.ts +9 -0
- package/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.d.ts +14 -0
- package/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.d.ts +38 -0
- package/lib/{+shared/editor-toolbar/helpers → apart-components/editor-toolbar/shared}/toolbar-styles.helper.d.ts +2 -2
- package/lib/{+shared → apart-components}/insert-table/insert-table.component.d.ts +1 -1
- package/lib/apart-components/insert-table-mobile/insert-table-mobile.component.d.ts +30 -0
- package/lib/apart-components/text-format-mobile/text-format-mobile.component.d.ts +35 -0
- package/lib/{+shared/editor/core/models → editor/components/edges}/edge-element.model.d.ts +1 -1
- package/lib/editor/components/edges/edge.component.d.ts +44 -0
- package/lib/{+shared/editor/core → editor}/components/edges/edges.d.ts +7 -7
- package/lib/{+shared/editor → editor/components}/editor.component.d.ts +10 -7
- package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-sidenav.interface.d.ts +1 -1
- package/lib/{+shared/editor/custom-components → editor/components}/external-element/external.component.d.ts +4 -4
- package/lib/{+shared/editor/custom-components → editor/components}/image/components/image.component.d.ts +4 -4
- package/lib/editor/components/image/image-api.service.d.ts +17 -0
- package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/resizer.component.d.ts +2 -2
- package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-wrapper.d.ts +1 -1
- package/lib/{+shared/editor/custom-components → editor/components}/shared/abstract/base.component.d.ts +4 -4
- package/lib/editor/components/shared/abstract/destroy.component.d.ts +9 -0
- package/lib/{+shared/editor/custom-components/shared/helpers → editor/components/shared}/custom-component.hepler.d.ts +3 -3
- package/lib/editor/components/shared/custom-components.interface.d.ts +13 -0
- package/lib/editor/components/shared/custom-content.d.ts +5 -0
- package/lib/{+shared/editor/custom-components/shared/services/component → editor/components/shared/services}/component.service.d.ts +1 -1
- package/lib/{+shared/editor/custom-components/shared/services/custom-content → editor/components/shared/services}/custom-content.service.d.ts +14 -12
- package/lib/{+shared/editor/custom-components → editor/components}/tab/tab.component.d.ts +2 -2
- package/lib/{+shared/editor/custom-components → editor/components}/table/cell-resizer/cell-resizer.d.ts +1 -1
- package/lib/{+shared/editor/custom-components → editor/components}/table/components/table-cell.component.d.ts +10 -10
- package/lib/{+shared/editor/custom-components → editor/components}/table/components/table.component.d.ts +8 -8
- package/lib/{+shared/editor/custom-components → editor/components}/table/overlay-menu/overlay-menu.component.d.ts +2 -2
- package/lib/{+shared/editor/custom-components → editor/components}/table/selection/table-selection.d.ts +3 -3
- package/lib/{+shared/editor/core → editor/content}/constants/editor.const.d.ts +3 -3
- package/lib/editor/content/contents.interface.d.ts +22 -0
- package/lib/{+shared/editor/core/models → editor/content/display-data}/display-token.model.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/content/display-data}/document.d.ts +9 -9
- package/lib/{+shared/editor/core/models → editor/content/display-data}/format-ext.model.d.ts +1 -1
- package/lib/{+shared/editor/execution/models → editor/content/display-data}/general-properties.model.d.ts +1 -1
- package/lib/{+shared/editor/core/layers → editor/content/display-data}/lines.d.ts +1 -1
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/pages.wrap.d.ts +13 -13
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/paragraph.d.ts +4 -4
- package/lib/{+shared/editor/core/paging → editor/content/display-data}/text-line-info.d.ts +2 -2
- package/lib/editor/content/helpers/content-style.helper.d.ts +11 -0
- package/lib/{+shared/editor → editor/content}/helpers/indexed-element.helper.d.ts +1 -1
- package/lib/{+shared/editor/core/paging → editor/content}/page-vertical-data.model.d.ts +1 -1
- package/lib/{+shared/editor/core/base → editor/core}/event-emitting.d.ts +0 -5
- package/lib/{+shared/editor/core → editor/display}/layers/cursor.layer.d.ts +7 -8
- package/lib/{+shared/editor/core/interfaces → editor/display/layers}/layer.config.d.ts +2 -2
- package/lib/{+shared/editor/core → editor/display}/layers/pages.layer.d.ts +5 -6
- package/lib/editor/display/layers/print.text.layer.d.ts +4 -0
- package/lib/{+shared/editor/core → editor/display}/layers/selection.layer.d.ts +5 -6
- package/lib/editor/display/layers/text.layer.d.ts +34 -0
- package/lib/{+shared/helpers → editor/display/print}/print.helper.d.ts +3 -3
- package/lib/editor/display/print/print.renderer.d.ts +23 -0
- package/lib/{+shared/editor/core/helpers → editor/display/print}/print.rendering.helper.d.ts +2 -2
- package/lib/{+shared/editor/core/models → editor/display}/render-changes.model.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/display}/renderer.d.ts +10 -13
- package/lib/{+shared/editor/core/helpers → editor/display}/rendering.helper.d.ts +7 -7
- package/lib/{+shared/editor/core/layers → editor/display}/renderloop.d.ts +2 -2
- package/lib/{+shared/editor/core → editor/display}/virtual.renderer.d.ts +14 -29
- package/lib/{+shared/editor → editor}/editor.module.d.ts +12 -10
- package/lib/{+shared/editor/core → editor/execution}/edit.session.d.ts +65 -63
- package/lib/{+shared/editor/core → editor/execution}/editor.d.ts +48 -43
- package/lib/editor/execution/helpers/delta.helper.d.ts +6 -0
- package/lib/{+shared/editor/core → editor/execution}/helpers/format-style.helper.d.ts +3 -5
- package/lib/{+shared/editor/core → editor/execution}/helpers/page.helper.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph-style.helper.d.ts +1 -1
- package/lib/{+shared/editor/core → editor/execution}/helpers/paragraph.helper.d.ts +11 -8
- package/lib/{+shared/editor → editor}/execution/regulator.service.d.ts +15 -14
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/cell-session-source.model.d.ts +3 -3
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/edge-session-source.model.d.ts +3 -3
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/main-session-source.model.d.ts +1 -1
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session-source.model.d.ts +1 -1
- package/lib/{+shared/editor/execution/models → editor/execution/targeting}/session.model.d.ts +3 -3
- package/lib/{+shared/editor/core/helpers → editor/gadgets/font-metrics}/font-metrics.helper.d.ts +1 -1
- package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation-history.d.ts +9 -7
- package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operation.type.d.ts +2 -1
- package/lib/{+shared/editor/core/models → editor/gadgets/numbering}/numbering-data.model.d.ts +1 -1
- package/lib/{+shared/editor/core/helpers → editor/gadgets/numbering}/numbering.helper.d.ts +8 -8
- package/lib/{+shared/editor/helpers → editor/gadgets/page-break}/break.helper.d.ts +2 -2
- package/lib/{+shared/editor/core/layers → editor/gadgets}/scrollbar.d.ts +9 -18
- package/lib/{+shared/editor/core → editor/gadgets/search}/search.d.ts +4 -4
- package/lib/editor/interaction/base.handler.d.ts +9 -0
- package/lib/editor/interaction/document.handler.d.ts +10 -0
- package/lib/{+shared/editor → editor}/interaction/editor.service.d.ts +24 -18
- package/lib/{+shared/editor → editor}/interaction/input.handler.d.ts +4 -5
- package/lib/{+shared/editor → editor}/interaction/mouse.handler.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/enums/command-type.enum.d.ts +11 -10
- package/lib/{+shared/editor → editor}/operations/helpers/break-operations.helper.d.ts +2 -2
- package/lib/{+shared/editor → editor}/operations/helpers/format-operations.helper.d.ts +2 -2
- package/lib/editor/operations/helpers/image-operations.helper.d.ts +7 -0
- package/lib/{+shared/editor → editor}/operations/helpers/indexed-element-operations.helper.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/helpers/link-operations.helper.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/helpers/numbering-operations.helper.d.ts +3 -3
- package/lib/{+shared/editor → editor}/operations/helpers/paragraph-operations.helper.d.ts +3 -2
- package/lib/{+shared/editor → editor}/operations/helpers/tab-operations.helper.d.ts +1 -1
- package/lib/{+shared/editor → editor}/operations/helpers/table-operations.helper.d.ts +6 -6
- package/lib/{+shared/editor/operations/helpers → editor/operations}/operations-helper.helper.d.ts +21 -19
- package/lib/{+shared/editor/operations/helpers → editor/operations}/save-commands.helper.d.ts +28 -22
- package/lib/editor/operations/target-operations.helper.d.ts +6 -0
- package/lib/{+shared/editor/helpers → editor/positioning}/content.helper.d.ts +10 -5
- package/lib/editor/positioning/cursor-paragraph.d.ts +7 -0
- package/lib/{+shared/editor/core/interfaces → editor/positioning}/cursor-position.interface.d.ts +1 -1
- package/lib/{+shared/editor/core/helpers → editor/positioning}/line-width.helper.d.ts +2 -2
- package/lib/{+shared/editor/core/helpers → editor/positioning}/position.helper.d.ts +9 -9
- package/lib/{+shared/editor/core → editor/positioning}/range.d.ts +12 -12
- package/lib/{+shared/editor → editor}/positioning/selection.d.ts +10 -10
- package/lib/editor/revision.helper.d.ts +15 -0
- package/lib/models/generated/command.model.d.ts +2 -0
- package/lib/models/generated/insert-paragraph.model.d.ts +10 -0
- package/lib/models/generated/replace.model.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +35 -32
- package/src/_ngx-noder.theme.scss +14 -9
- package/src/assets/fonts/nc-iconfont.css +112 -106
- package/src/assets/fonts/nc-iconfont.eot +0 -0
- package/src/assets/fonts/nc-iconfont.svg +4 -1
- package/src/assets/fonts/nc-iconfont.ttf +0 -0
- package/src/assets/fonts/nc-iconfont.woff +0 -0
- package/src/lib/{+shared → apart-components}/add-link-dialog/_add-link-dialog.theme.scss +1 -1
- package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +25 -0
- package/src/lib/{+shared → apart-components}/confirm-dialog/_theme.scss +1 -1
- package/src/lib/{+shared → apart-components}/editor-title/_editor-title.theme.scss +1 -1
- package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +42 -0
- package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +27 -0
- package/src/lib/apart-components/editor-toolbar/_theme.scss +25 -0
- package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +12 -0
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font/_font.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-size/_font-size.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/font-style/_font-style.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/format/_format.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/numbering/_numbering.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components/buttons}/undo-redo/_undo-redo.theme.scss +1 -1
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components}/menu-dropdowns/_menu-dropdowns.theme.scss +1 -1
- package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +33 -0
- package/src/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/components}/toolbar-actions/_toolbar-actions.theme.scss +2 -1
- package/src/lib/{+shared → apart-components}/insert-table/_insert-table.theme.scss +1 -1
- package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +54 -0
- package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +86 -0
- package/src/lib/{+shared/editor → editor}/_theme.scss +1 -1
- package/src/lib/{+shared/editor → editor/components}/_editor.theme.scss +10 -2
- package/src/scss/base-editor.scss +329 -0
- package/src/styles.scss +3 -58
- package/esm2022/lib/+shared/abstract/base-api.service.mjs +0 -99
- package/esm2022/lib/+shared/abstract/observer.component.mjs +0 -24
- package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +0 -71
- package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +0 -32
- package/esm2022/lib/+shared/constants/default-file-name.const.mjs +0 -2
- package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +0 -3
- package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +0 -71
- package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +0 -6
- package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +0 -100
- package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +0 -104
- package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +0 -8
- package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +0 -6
- package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +0 -15
- package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +0 -8
- package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +0 -13
- package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +0 -62
- package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +0 -5
- package/esm2022/lib/+shared/editor/core/document.mjs +0 -134
- package/esm2022/lib/+shared/editor/core/edit.session.mjs +0 -1099
- package/esm2022/lib/+shared/editor/core/editor.mjs +0 -1274
- package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +0 -156
- package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +0 -18
- package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +0 -42
- package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +0 -18
- package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +0 -88
- package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +0 -72
- package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +0 -13
- package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +0 -83
- package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +0 -12
- package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +0 -41
- package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +0 -169
- package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +0 -194
- package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +0 -187
- package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +0 -20
- package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +0 -53
- package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +0 -103
- package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +0 -99
- package/esm2022/lib/+shared/editor/core/layers/lines.mjs +0 -96
- package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +0 -106
- package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +0 -7
- package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +0 -26
- package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +0 -100
- package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +0 -115
- package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +0 -124
- package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +0 -12
- package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +0 -10
- package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +0 -10
- package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +0 -16
- package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +0 -25
- package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +0 -226
- package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +0 -52
- package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +0 -34
- package/esm2022/lib/+shared/editor/core/point.mjs +0 -13
- package/esm2022/lib/+shared/editor/core/print.renderer.mjs +0 -72
- package/esm2022/lib/+shared/editor/core/range.mjs +0 -94
- package/esm2022/lib/+shared/editor/core/renderer.mjs +0 -217
- package/esm2022/lib/+shared/editor/core/search.mjs +0 -231
- package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +0 -356
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +0 -6
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +0 -4
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +0 -41
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +0 -11
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +0 -15
- package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +0 -88
- package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +0 -38
- package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +0 -19
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +0 -12
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +0 -106
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +0 -52
- package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +0 -14
- package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +0 -59
- package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +0 -3
- package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +0 -43
- package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +0 -64
- package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +0 -115
- package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +0 -55
- package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +0 -2
- package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +0 -44
- package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +0 -118
- package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +0 -97
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +0 -401
- package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +0 -8
- package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +0 -6
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +0 -18
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +0 -9
- package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +0 -8
- package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +0 -7
- package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +0 -74
- package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +0 -364
- package/esm2022/lib/+shared/editor/editor.component.mjs +0 -98
- package/esm2022/lib/+shared/editor/editor.module.mjs +0 -82
- package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +0 -19
- package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +0 -15
- package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +0 -11
- package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +0 -8
- package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +0 -3
- package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +0 -10
- package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +0 -203
- package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +0 -18
- package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +0 -30
- package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +0 -6
- package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +0 -309
- package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +0 -160
- package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +0 -49
- package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +0 -2
- package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +0 -184
- package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +0 -2
- package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +0 -7
- package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +0 -31
- package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +0 -7
- package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +0 -9
- package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +0 -15
- package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +0 -56
- package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +0 -19
- package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
- package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +0 -28
- package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
- package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +0 -394
- package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +0 -83
- package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +0 -118
- package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +0 -16
- package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +0 -374
- package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +0 -23
- package/esm2022/lib/+shared/editor/positioning/selection.mjs +0 -307
- package/esm2022/lib/+shared/editor/store/editor.actions.mjs +0 -13
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +0 -71
- package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +0 -83
- package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +0 -32
- package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +0 -157
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +0 -101
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +0 -117
- package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +0 -8
- package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +0 -6
- package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +0 -45
- package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +0 -85
- package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +0 -80
- package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +0 -28
- package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +0 -23
- package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +0 -55
- package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +0 -194
- package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +0 -53
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +0 -18
- package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +0 -126
- package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +0 -27
- package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +0 -74
- package/esm2022/lib/+shared/helpers/print.helper.mjs +0 -40
- package/esm2022/lib/+shared/helpers/revision.helper.mjs +0 -91
- package/esm2022/lib/+shared/helpers/scaling.helper.mjs +0 -9
- package/esm2022/lib/+shared/helpers/validation.helper.mjs +0 -7
- package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +0 -54
- package/esm2022/lib/+shared/services/commands.service.mjs +0 -20
- package/esm2022/lib/+shared/services/custom-icon.service.mjs +0 -34
- package/lib/+shared/abstract/base-api.service.d.ts +0 -23
- package/lib/+shared/abstract/observer.component.d.ts +0 -10
- package/lib/+shared/constants/default-file-name.const.d.ts +0 -1
- package/lib/+shared/constants/paginator-sizes.const.d.ts +0 -2
- package/lib/+shared/editor/core/components/edges/edge.component.d.ts +0 -45
- package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +0 -5
- package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +0 -14
- package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +0 -16
- package/lib/+shared/editor/core/helpers/delta.helper.d.ts +0 -6
- package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +0 -5
- package/lib/+shared/editor/core/layers/edges.layer.d.ts +0 -24
- package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +0 -4
- package/lib/+shared/editor/core/layers/print.text.layer.d.ts +0 -5
- package/lib/+shared/editor/core/layers/text.layer.d.ts +0 -22
- package/lib/+shared/editor/core/point.d.ts +0 -7
- package/lib/+shared/editor/core/print.renderer.d.ts +0 -25
- package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +0 -8
- package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +0 -13
- package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +0 -5
- package/lib/+shared/editor/interfaces/contents.interface.d.ts +0 -22
- package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +0 -7
- package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +0 -6
- package/lib/+shared/editor/store/editor.actions.d.ts +0 -11
- package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +0 -6
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +0 -45
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +0 -31
- package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +0 -73
- package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +0 -49
- package/lib/+shared/helpers/revision.helper.d.ts +0 -15
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +0 -10
- package/src/lib/+shared/editor-toolbar/_theme.scss +0 -21
- package/src/scss/_mixins.scss +0 -14
- package/src/scss/_variables.scss +0 -1
- /package/lib/{+shared/helpers → apart-components/add-link-dialog}/validation.helper.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/constants/svg-icons.const.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/alignment.enum.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-template-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor-toolbar → apart-components/editor-toolbar/shared}/enums/numbering-type.enum.d.ts +0 -0
- /package/lib/{+shared → apart-components/editor-toolbar/shared}/services/custom-icon.service.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor}/components/edges/edge-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/components/edges}/page-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-element.service.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/external-elements.const.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/element-data.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-element.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/external-element/models/external-sidenav.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/input-handler/image-input.handler.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/coordinate.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction-wrapper.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/direction.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/image/resizer/size-delta.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components/image/interfaces → editor/components/image}/size.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components/shared/constants → editor/components/shared}/custom-content-markers.const.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components/shared/services/overlay → editor/components/shared/services}/overlay.service.d.ts +0 -0
- /package/lib/{+shared/editor/helpers → editor/components/tab}/tab.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/components/table}/enums/hrule.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/reisizer-side.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/enums/vertical-merge.enum.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-data.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/cell-resizer-parameters.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/row-data.model.d.ts +0 -0
- /package/lib/{+shared/editor/custom-components → editor/components}/table/models/selection-range.model.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/content}/constants/display-values.const.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/content}/constants/document-info.const.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/content/display-data}/indent.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/content/display-data}/line-info.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/paragraph-info.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/content/display-data}/toolbar-styles.interface.d.ts +0 -0
- /package/lib/{+shared/editor → editor/content}/helpers/format.helper.d.ts +0 -0
- /package/lib/{+shared → editor/content}/helpers/scaling.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/content}/margin.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/content}/vertical-alignment.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/display}/cell.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/helpers → editor/display}/event.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/display}/layers/print.pages.layer.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/display}/render-changes.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/display}/visible-range.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/models → editor/execution}/distance.model.d.ts +0 -0
- /package/lib/{+shared/editor/core → editor/execution}/helpers/dom.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core/constants → editor/gadgets/font-metrics}/editor-version.const.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/gadgets/font-metrics}/font-metric-size.interface.d.ts +0 -0
- /package/lib/{+shared/editor/operation-history → editor/gadgets/history}/operations-history-info.model.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/gadgets/numbering}/numbering-marker-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/gadgets/page-break}/break-types.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/replace.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/interfaces → editor/gadgets/search}/search-iteration.interface.d.ts +0 -0
- /package/lib/{+shared/editor/core/constants → editor/gadgets/unicode}/unicode-chars.const.d.ts +0 -0
- /package/lib/{+shared/editor/core/helpers → editor/gadgets/unicode}/unicode.helper.d.ts +0 -0
- /package/lib/{+shared/enums → editor/interaction}/mode.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/enums → editor/interaction}/mouse-button.enum.d.ts +0 -0
- /package/lib/{+shared/editor/core/keyboard → editor/interaction}/text-input.d.ts +0 -0
- /package/lib/{+shared/services → editor/operations}/commands.service.d.ts +0 -0
- /package/lib/{+shared/editor → editor}/operations/enums/target-type.enum.d.ts +0 -0
- /package/lib/{+shared/editor → editor}/operations/helpers/content-operations.helper.d.ts +0 -0
- /package/lib/{+shared/editor/core/constants → editor/positioning}/alignments.const.d.ts +0 -0
- /package/lib/{+shared/editor/interfaces → editor/positioning}/insert-index.interface.d.ts +0 -0
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "@angular/material/button";
|
|
5
|
-
import * as i3 from "@angular/material/icon";
|
|
6
|
-
import * as i4 from "@angular/material/menu";
|
|
7
|
-
export class HeadingComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.headings = ['Normal Text', 'Not Normal Text', 'Test Text'];
|
|
10
|
-
this.selectedHeading = this.headings[0];
|
|
11
|
-
}
|
|
12
|
-
onSelectHeading(heading) {
|
|
13
|
-
this.selectedHeading = heading;
|
|
14
|
-
console.log('select heading', heading);
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HeadingComponent, selector: "app-heading", ngImport: i0, template: "<button\n mat-button\n [matMenuTriggerFor]=\"headingMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"heading-menu\">\n <span>{{ selectedHeading }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu #headingMenu=\"matMenu\">\n <ng-container *ngFor=\"let heading of headings\">\n <button\n mat-menu-item\n (click)=\"onSelectHeading(heading)\">\n {{ heading }}\n </button>\n </ng-container>\n</mat-menu>\n", styles: [":host{display:flex;align-items:center}.heading-menu{display:flex;justify-content:space-between;align-items:center;min-width:150px}span{padding-left:10%}mat-icon{margin-right:5%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeadingComponent, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-heading', template: "<button\n mat-button\n [matMenuTriggerFor]=\"headingMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"heading-menu\">\n <span>{{ selectedHeading }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu #headingMenu=\"matMenu\">\n <ng-container *ngFor=\"let heading of headings\">\n <button\n mat-menu-item\n (click)=\"onSelectHeading(heading)\">\n {{ heading }}\n </button>\n </ng-container>\n</mat-menu>\n", styles: [":host{display:flex;align-items:center}.heading-menu{display:flex;justify-content:space-between;align-items:center;min-width:150px}span{padding-left:10%}mat-icon{margin-right:5%}\n"] }]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10b29sYmFyL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10b29sYmFyL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRbkUsTUFBTSxPQUFPLGdCQUFnQjtJQU43QjtRQU9JLGFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUzRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FNdEM7SUFKRyxlQUFlLENBQUMsT0FBZTtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBUlEsZ0JBQWdCO21HQUFoQixnQkFBZ0IsbURDUjdCLCtrQkFvQkE7OzRGRFphLGdCQUFnQjtrQkFONUIsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXBwLWhlYWRpbmcnLFxuICAgIHRlbXBsYXRlVXJsOiAnaGVhZGluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2hlYWRpbmcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkaW5nQ29tcG9uZW50IHtcbiAgICBoZWFkaW5ncyA9IFsnTm9ybWFsIFRleHQnLCAnTm90IE5vcm1hbCBUZXh0JywgJ1Rlc3QgVGV4dCddO1xuXG4gICAgc2VsZWN0ZWRIZWFkaW5nID0gdGhpcy5oZWFkaW5nc1swXTtcblxuICAgIG9uU2VsZWN0SGVhZGluZyhoZWFkaW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEhlYWRpbmcgPSBoZWFkaW5nO1xuICAgICAgICBjb25zb2xlLmxvZygnc2VsZWN0IGhlYWRpbmcnLCBoZWFkaW5nKTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJoZWFkaW5nTWVudVwiXG4gICAgW21hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzXT1cImZhbHNlXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZEhlYWRpbmcgfX08L3NwYW4+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCI+PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbjwvYnV0dG9uPlxuPG1hdC1tZW51ICNoZWFkaW5nTWVudT1cIm1hdE1lbnVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoZWFkaW5nIG9mIGhlYWRpbmdzXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEhlYWRpbmcoaGVhZGluZylcIj5cbiAgICAgICAgICAgIHt7IGhlYWRpbmcgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L21hdC1tZW51PlxuIl19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { NumberingMarkerType } from '../../editor/core/enums/numbering-marker-type.enum';
|
|
2
|
-
import { NumberingTemplateType } from '../enums/numbering-template-type.enum';
|
|
3
|
-
import { NumberingType } from '../enums/numbering-type.enum';
|
|
4
|
-
export class ToolbarStylesHelper {
|
|
5
|
-
static getNumberingType(isBulletMarker) {
|
|
6
|
-
if (isBulletMarker === null) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
return isBulletMarker ? NumberingType.Bullet : NumberingType.Number;
|
|
10
|
-
}
|
|
11
|
-
static getNumberingTemplateType(levelsMarkersStyles) {
|
|
12
|
-
const type = NumberingMarkerType;
|
|
13
|
-
const bulletMarkerStyles1 = `●${type.Bullet}○${type.Bullet}■${type.Bullet}●${type.Bullet}○${type.Bullet}■${type.Bullet}●${type.Bullet}○${type.Bullet}■${type.Bullet}`;
|
|
14
|
-
const bulletMarkerStyles2 = `■${type.Bullet}□${type.Bullet}○${type.Bullet}■${type.Bullet}□${type.Bullet}○${type.Bullet}■${type.Bullet}□${type.Bullet}○${type.Bullet}`;
|
|
15
|
-
const bulletMarkerStyles3 = `◆${type.Bullet}◇${type.Bullet}○${type.Bullet}◆${type.Bullet}◇${type.Bullet}○${type.Bullet}◆${type.Bullet}◇${type.Bullet}○${type.Bullet}`;
|
|
16
|
-
const bulletMarkerStyles4 = `➢${type.Bullet}◆${type.Bullet}●${type.Bullet}➢${type.Bullet}◆${type.Bullet}●${type.Bullet}➢${type.Bullet}◆${type.Bullet}●${type.Bullet}`;
|
|
17
|
-
const bulletMarkerStyles5 = `★${type.Bullet}○${type.Bullet}□${type.Bullet}★${type.Bullet}○${type.Bullet}□${type.Bullet}★${type.Bullet}○${type.Bullet}□${type.Bullet}`;
|
|
18
|
-
const bulletMarkerStyles6 = `➢${type.Bullet}●${type.Bullet}○${type.Bullet}➢${type.Bullet}●${type.Bullet}○${type.Bullet}➢${type.Bullet}●${type.Bullet}○${type.Bullet}`;
|
|
19
|
-
const numberedMarkerStyles1 = `%1.${type.Decimal}%2.${type.LowerLetter}%3.${type.LowerRoman}%4.${type.Decimal}%5.${type.LowerLetter}%6.${type.LowerRoman}%7.${type.Decimal}%8.${type.LowerLetter}%9.${type.LowerRoman}`;
|
|
20
|
-
const numberedMarkerStyles2 = `%1)${type.Decimal}%2)${type.LowerLetter}%3)${type.LowerRoman}(%4)${type.Decimal}(%5)${type.LowerLetter}(%6)${type.LowerRoman}%7.${type.Decimal}%8.${type.LowerLetter}%9.${type.LowerRoman}`;
|
|
21
|
-
const numberedMarkerStyles3 = `%1.${type.Decimal}%1.%2.${type.Decimal}%1.%2.%3.${type.Decimal}%1.%2.%3.%4.${type.Decimal}%1.%2.%3.%4.%5.${type.Decimal}%1.%2.%3.%4.%5.%6.${type.Decimal}%1.%2.%3.%4.%5.%6.%7.${type.Decimal}%1.%2.%3.%4.%5.%6.%7.%8.${type.Decimal}%1.%2.%3.%4.%5.%6.%7.%8.%9.${type.Decimal}`;
|
|
22
|
-
const numberedMarkerStyles4 = `%1.${type.UpperLetter}%2.${type.LowerLetter}%3.${type.LowerRoman}%4.${type.Decimal}%5.${type.LowerLetter}%6.${type.LowerRoman}%7.${type.Decimal}%8.${type.LowerLetter}%9.${type.LowerRoman}`;
|
|
23
|
-
const numberedMarkerStyles5 = `%1.${type.UpperRoman}%2.${type.UpperLetter}%3.${type.Decimal}%4)${type.LowerLetter}(%5)${type.Decimal}(%6)${type.LowerLetter}(%7)${type.LowerRoman}(%8)${type.LowerLetter}(%9)${type.LowerRoman}`;
|
|
24
|
-
const numberedMarkerStyles6 = `%1.${type.DecimalZero}%2.${type.LowerLetter}%3.${type.LowerRoman}%4.${type.Decimal}%5.${type.LowerLetter}%6.${type.LowerRoman}%7.${type.Decimal}%8.${type.LowerLetter}%9.${type.LowerRoman}`;
|
|
25
|
-
switch (levelsMarkersStyles) {
|
|
26
|
-
case numberedMarkerStyles1:
|
|
27
|
-
return NumberingTemplateType.NumberList1;
|
|
28
|
-
case numberedMarkerStyles2:
|
|
29
|
-
return NumberingTemplateType.NumberList2;
|
|
30
|
-
case numberedMarkerStyles3:
|
|
31
|
-
return NumberingTemplateType.NumberList3;
|
|
32
|
-
case numberedMarkerStyles4:
|
|
33
|
-
return NumberingTemplateType.NumberList4;
|
|
34
|
-
case numberedMarkerStyles5:
|
|
35
|
-
return NumberingTemplateType.NumberList5;
|
|
36
|
-
case numberedMarkerStyles6:
|
|
37
|
-
return NumberingTemplateType.NumberList6;
|
|
38
|
-
case bulletMarkerStyles1:
|
|
39
|
-
return NumberingTemplateType.BulletList1;
|
|
40
|
-
case bulletMarkerStyles2:
|
|
41
|
-
return NumberingTemplateType.BulletList2;
|
|
42
|
-
case bulletMarkerStyles3:
|
|
43
|
-
return NumberingTemplateType.BulletList3;
|
|
44
|
-
case bulletMarkerStyles4:
|
|
45
|
-
return NumberingTemplateType.BulletList4;
|
|
46
|
-
case bulletMarkerStyles5:
|
|
47
|
-
return NumberingTemplateType.BulletList5;
|
|
48
|
-
case bulletMarkerStyles6:
|
|
49
|
-
return NumberingTemplateType.BulletList6;
|
|
50
|
-
default:
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1zdHlsZXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3ItdG9vbGJhci9oZWxwZXJzL3Rvb2xiYXItc3R5bGVzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFN0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBOEI7UUFDbEQsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLG1CQUEyQjtRQUN2RCxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUNqQyxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0SyxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0SyxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0SyxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0SyxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0SyxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJ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QUMsV0FBVyxDQUFDO1lBQzdDLEtBQUssbUJBQW1CO2dCQUNwQixPQUFPLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztZQUM3QyxLQUFLLG1CQUFtQjtnQkFDcEIsT0FBTyxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7WUFDN0MsS0FBSyxtQkFBbUI7Z0JBQ3BCLE9BQU8scUJBQXFCLENBQUMsV0FBVyxDQUFDO1lBQzdDLEtBQUssbUJBQW1CO2dCQUNwQixPQUFPLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztZQUM3QztnQkFDSSxPQUFPLElBQUksQ0FBQztTQUNuQjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE51bWJlcmluZ01hcmtlclR5cGUgfSBmcm9tICcuLi8uLi9lZGl0b3IvY29yZS9lbnVtcy9udW1iZXJpbmctbWFya2VyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9udW1iZXJpbmctdGVtcGxhdGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IE51bWJlcmluZ1R5cGUgfSBmcm9tICcuLi9lbnVtcy9udW1iZXJpbmctdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFRvb2xiYXJTdHlsZXNIZWxwZXIge1xuICAgIHN0YXRpYyBnZXROdW1iZXJpbmdUeXBlKGlzQnVsbGV0TWFya2VyOiBib29sZWFuIHwgbnVsbCk6IE51bWJlcmluZ1R5cGUgfCBudWxsIHtcbiAgICAgICAgaWYgKGlzQnVsbGV0TWFya2VyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc0J1bGxldE1hcmtlciA/IE51bWJlcmluZ1R5cGUuQnVsbGV0IDogTnVtYmVyaW5nVHlwZS5OdW1iZXI7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldE51bWJlcmluZ1RlbXBsYXRlVHlwZShsZXZlbHNNYXJrZXJzU3R5bGVzOiBzdHJpbmcpOiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IE51bWJlcmluZ01hcmtlclR5cGU7XG4gICAgICAgIGNvbnN0IGJ1bGxldE1hcmtlclN0eWxlczEgPSBg4pePJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKWoCR7dHlwZS5CdWxsZXR94pePJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKWoCR7dHlwZS5CdWxsZXR94pePJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKWoCR7dHlwZS5CdWxsZXR9YDtcbiAgICAgICAgY29uc3QgYnVsbGV0TWFya2VyU3R5bGVzMiA9IGDilqAke3R5cGUuQnVsbGV0feKWoSR7dHlwZS5CdWxsZXR94peLJHt0eXBlLkJ1bGxldH3ilqAke3R5cGUuQnVsbGV0feKWoSR7dHlwZS5CdWxsZXR94peLJHt0eXBlLkJ1bGxldH3ilqAke3R5cGUuQnVsbGV0feKWoSR7dHlwZS5CdWxsZXR94peLJHt0eXBlLkJ1bGxldH1gO1xuICAgICAgICBjb25zdCBidWxsZXRNYXJrZXJTdHlsZXMzID0gYOKXhiR7dHlwZS5CdWxsZXR94peHJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKXhiR7dHlwZS5CdWxsZXR94peHJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKXhiR7dHlwZS5CdWxsZXR94peHJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0fWA7XG4gICAgICAgIGNvbnN0IGJ1bGxldE1hcmtlclN0eWxlczQgPSBg4p6iJHt0eXBlLkJ1bGxldH3il4Yke3R5cGUuQnVsbGV0feKXjyR7dHlwZS5CdWxsZXR94p6iJHt0eXBlLkJ1bGxldH3il4Yke3R5cGUuQnVsbGV0feKXjyR7dHlwZS5CdWxsZXR94p6iJHt0eXBlLkJ1bGxldH3il4Yke3R5cGUuQnVsbGV0feKXjyR7dHlwZS5CdWxsZXR9YDtcbiAgICAgICAgY29uc3QgYnVsbGV0TWFya2VyU3R5bGVzNSA9IGDimIUke3R5cGUuQnVsbGV0feKXiyR7dHlwZS5CdWxsZXR94pahJHt0eXBlLkJ1bGxldH3imIUke3R5cGUuQnVsbGV0feKXiyR7dHlwZS5CdWxsZXR94pahJHt0eXBlLkJ1bGxldH3imIUke3R5cGUuQnVsbGV0feKXiyR7dHlwZS5CdWxsZXR94pahJHt0eXBlLkJ1bGxldH1gO1xuICAgICAgICBjb25zdCBidWxsZXRNYXJrZXJTdHlsZXM2ID0gYOKeoiR7dHlwZS5CdWxsZXR94pePJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKeoiR7dHlwZS5CdWxsZXR94pePJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0feKeoiR7dHlwZS5CdWxsZXR94pePJHt0eXBlLkJ1bGxldH3il4ske3R5cGUuQnVsbGV0fWA7XG4gICAgICAgIGNvbnN0IG51bWJlcmVkTWFya2VyU3R5bGVzMSA9IGAlMS4ke3R5cGUuRGVjaW1hbH0lMi4ke3R5cGUuTG93ZXJMZXR0ZXJ9JTMuJHt0eXBlLkxvd2VyUm9tYW59JTQuJHt0eXBlLkRlY2ltYWx9JTUuJHt0eXBlLkxvd2VyTGV0dGVyfSU2LiR7dHlwZS5Mb3dlclJvbWFufSU3LiR7dHlwZS5EZWNpbWFsfSU4LiR7dHlwZS5Mb3dlckxldHRlcn0lOS4ke3R5cGUuTG93ZXJSb21hbn1gO1xuICAgICAgICBjb25zdCBudW1iZXJlZE1hcmtlclN0eWxlczIgPSBgJTEpJHt0eXBlLkRlY2ltYWx9JTIpJHt0eXBlLkxvd2VyTGV0dGVyfSUzKSR7dHlwZS5Mb3dlclJvbWFufSglNCkke3R5cGUuRGVjaW1hbH0oJTUpJHt0eXBlLkxvd2VyTGV0dGVyfSglNikke3R5cGUuTG93ZXJSb21hbn0lNy4ke3R5cGUuRGVjaW1hbH0lOC4ke3R5cGUuTG93ZXJMZXR0ZXJ9JTkuJHt0eXBlLkxvd2VyUm9tYW59YDtcbiAgICAgICAgY29uc3QgbnVtYmVyZWRNYXJrZXJTdHlsZXMzID0gYCUxLiR7dHlwZS5EZWNpbWFsfSUxLiUyLiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiU0LiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiU0LiU1LiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiU0LiU1LiU2LiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiU0LiU1LiU2LiU3LiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiU0LiU1LiU2LiU3LiU4LiR7dHlwZS5EZWNpbWFsfSUxLiUyLiUzLiU0LiU1LiU2LiU3LiU4LiU5LiR7dHlwZS5EZWNpbWFsfWA7XG4gICAgICAgIGNvbnN0IG51bWJlcmVkTWFya2VyU3R5bGVzNCA9IGAlMS4ke3R5cGUuVXBwZXJMZXR0ZXJ9JTIuJHt0eXBlLkxvd2VyTGV0dGVyfSUzLiR7dHlwZS5Mb3dlclJvbWFufSU0LiR7dHlwZS5EZWNpbWFsfSU1LiR7dHlwZS5Mb3dlckxldHRlcn0lNi4ke3R5cGUuTG93ZXJSb21hbn0lNy4ke3R5cGUuRGVjaW1hbH0lOC4ke3R5cGUuTG93ZXJMZXR0ZXJ9JTkuJHt0eXBlLkxvd2VyUm9tYW59YDtcbiAgICAgICAgY29uc3QgbnVtYmVyZWRNYXJrZXJTdHlsZXM1ID0gYCUxLiR7dHlwZS5VcHBlclJvbWFufSUyLiR7dHlwZS5VcHBlckxldHRlcn0lMy4ke3R5cGUuRGVjaW1hbH0lNCkke3R5cGUuTG93ZXJMZXR0ZXJ9KCU1KSR7dHlwZS5EZWNpbWFsfSglNikke3R5cGUuTG93ZXJMZXR0ZXJ9KCU3KSR7dHlwZS5Mb3dlclJvbWFufSglOCkke3R5cGUuTG93ZXJMZXR0ZXJ9KCU5KSR7dHlwZS5Mb3dlclJvbWFufWA7XG4gICAgICAgIGNvbnN0IG51bWJlcmVkTWFya2VyU3R5bGVzNiA9IGAlMS4ke3R5cGUuRGVjaW1hbFplcm99JTIuJHt0eXBlLkxvd2VyTGV0dGVyfSUzLiR7dHlwZS5Mb3dlclJvbWFufSU0LiR7dHlwZS5EZWNpbWFsfSU1LiR7dHlwZS5Mb3dlckxldHRlcn0lNi4ke3R5cGUuTG93ZXJSb21hbn0lNy4ke3R5cGUuRGVjaW1hbH0lOC4ke3R5cGUuTG93ZXJMZXR0ZXJ9JTkuJHt0eXBlLkxvd2VyUm9tYW59YDtcblxuICAgICAgICBzd2l0Y2ggKGxldmVsc01hcmtlcnNTdHlsZXMpIHtcbiAgICAgICAgICAgIGNhc2UgbnVtYmVyZWRNYXJrZXJTdHlsZXMxOlxuICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDE7XG4gICAgICAgICAgICBjYXNlIG51bWJlcmVkTWFya2VyU3R5bGVzMjpcbiAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3QyO1xuICAgICAgICAgICAgY2FzZSBudW1iZXJlZE1hcmtlclN0eWxlczM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0MztcbiAgICAgICAgICAgIGNhc2UgbnVtYmVyZWRNYXJrZXJTdHlsZXM0OlxuICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDQ7XG4gICAgICAgICAgICBjYXNlIG51bWJlcmVkTWFya2VyU3R5bGVzNTpcbiAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3Q1O1xuICAgICAgICAgICAgY2FzZSBudW1iZXJlZE1hcmtlclN0eWxlczY6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0NjtcbiAgICAgICAgICAgIGNhc2UgYnVsbGV0TWFya2VyU3R5bGVzMTpcbiAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3QxO1xuICAgICAgICAgICAgY2FzZSBidWxsZXRNYXJrZXJTdHlsZXMyOlxuICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDI7XG4gICAgICAgICAgICBjYXNlIGJ1bGxldE1hcmtlclN0eWxlczM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0MztcbiAgICAgICAgICAgIGNhc2UgYnVsbGV0TWFya2VyU3R5bGVzNDpcbiAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3Q0O1xuICAgICAgICAgICAgY2FzZSBidWxsZXRNYXJrZXJTdHlsZXM1OlxuICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDU7XG4gICAgICAgICAgICBjYXNlIGJ1bGxldE1hcmtlclN0eWxlczY6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0NjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { filter, take } from 'rxjs';
|
|
3
|
-
import { Alignment } from '../enums/alignment.enum';
|
|
4
|
-
import { DEFAULT_FONT_SIZE } from '../../editor/core/constants/editor.const';
|
|
5
|
-
import { ElementDataModel } from '../../editor/custom-components/external-element/models/element-data.model';
|
|
6
|
-
import { EXTERNAL_ELEMENT_SERVICE } from '../../editor/custom-components/external-element/external-elements.const';
|
|
7
|
-
import { NumberingTemplates } from '../constants/numbering-templates.const';
|
|
8
|
-
import { NumberingTemplateType } from '../enums/numbering-template-type.enum';
|
|
9
|
-
import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
|
|
10
|
-
import { TextStyleModel } from '../../../models/generated/text-style.model';
|
|
11
|
-
import { ToolbarStylesHelper } from '../helpers/toolbar-styles.helper';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../../services/custom-icon.service";
|
|
14
|
-
import * as i2 from "@angular/common";
|
|
15
|
-
import * as i3 from "../../insert-table/insert-table.component";
|
|
16
|
-
import * as i4 from "@angular/material/button";
|
|
17
|
-
import * as i5 from "@angular/material/icon";
|
|
18
|
-
import * as i6 from "@angular/material/menu";
|
|
19
|
-
export class MenuDropdownsComponent {
|
|
20
|
-
set historyInfo(value) {
|
|
21
|
-
this.canUndo = value.step !== -1;
|
|
22
|
-
this.canRedo = value.step < value.lastStep;
|
|
23
|
-
}
|
|
24
|
-
set styles(value) {
|
|
25
|
-
this._styles = value;
|
|
26
|
-
this.numberingTemplateType = ToolbarStylesHelper.getNumberingTemplateType(value.numberingLevelsStyles);
|
|
27
|
-
}
|
|
28
|
-
get styles() {
|
|
29
|
-
return this._styles;
|
|
30
|
-
}
|
|
31
|
-
constructor(cdr, injector, customIconService) {
|
|
32
|
-
this.cdr = cdr;
|
|
33
|
-
this.injector = injector;
|
|
34
|
-
this.customIconService = customIconService;
|
|
35
|
-
this.openFileFromDisk = new EventEmitter();
|
|
36
|
-
this.addCustomElement = new EventEmitter();
|
|
37
|
-
this.saveAs = new EventEmitter();
|
|
38
|
-
this.print = new EventEmitter();
|
|
39
|
-
this.insertPageBreak = new EventEmitter();
|
|
40
|
-
this.createDocument = new EventEmitter();
|
|
41
|
-
this.insertImage = new EventEmitter();
|
|
42
|
-
this.rename = new EventEmitter();
|
|
43
|
-
this.delete = new EventEmitter();
|
|
44
|
-
this.openEditMenu = new EventEmitter();
|
|
45
|
-
this.redo = new EventEmitter();
|
|
46
|
-
this.undo = new EventEmitter();
|
|
47
|
-
this.cutSelected = new EventEmitter();
|
|
48
|
-
this.copySelected = new EventEmitter();
|
|
49
|
-
this.pasteClipboardData = new EventEmitter();
|
|
50
|
-
this.selectAll = new EventEmitter();
|
|
51
|
-
this.removeSelected = new EventEmitter();
|
|
52
|
-
this.insertLink = new EventEmitter();
|
|
53
|
-
this.createElement = new EventEmitter();
|
|
54
|
-
this.changeParagraphStyle = new EventEmitter();
|
|
55
|
-
this.changeTextStyle = new EventEmitter();
|
|
56
|
-
this.setNumberingTemplateType = new EventEmitter();
|
|
57
|
-
this.removeNumberings = new EventEmitter();
|
|
58
|
-
this.insertTable = new EventEmitter();
|
|
59
|
-
this.numberingTemplateTypes = NumberingTemplateType;
|
|
60
|
-
this.showInsertTableMenu = false;
|
|
61
|
-
this.alignments = Alignment;
|
|
62
|
-
this.customIconService.register();
|
|
63
|
-
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
64
|
-
}
|
|
65
|
-
onOpenFileFromDisk(event) {
|
|
66
|
-
this.openFileFromDisk.emit(event);
|
|
67
|
-
event.target.value = null;
|
|
68
|
-
}
|
|
69
|
-
onInsertImage(event) {
|
|
70
|
-
this.insertImage.emit(event);
|
|
71
|
-
event.target.value = null;
|
|
72
|
-
}
|
|
73
|
-
onSelectFormat(alignment) {
|
|
74
|
-
this.changeParagraphStyle.emit(new ParagraphStyleModel({ alignment }));
|
|
75
|
-
}
|
|
76
|
-
onApplyBold() {
|
|
77
|
-
const bold = !this.styles.bold;
|
|
78
|
-
this.checkFontLoadedAndApplyStyle(new TextStyleModel({ bold }));
|
|
79
|
-
}
|
|
80
|
-
onApplyUnderline() {
|
|
81
|
-
const underline = !this.styles.underline;
|
|
82
|
-
this.changeTextStyle.emit(new TextStyleModel({ underline }));
|
|
83
|
-
}
|
|
84
|
-
onApplyItalic() {
|
|
85
|
-
const italic = !this.styles.italic;
|
|
86
|
-
this.checkFontLoadedAndApplyStyle(new TextStyleModel({ italic }));
|
|
87
|
-
}
|
|
88
|
-
onSelectNumberingTemplate(numberingTemplateType) {
|
|
89
|
-
if (this.numberingTemplateType === numberingTemplateType) {
|
|
90
|
-
this.removeNumberings.emit();
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
const templateLevels = NumberingTemplates.find(x => x.templateType === numberingTemplateType).levels;
|
|
94
|
-
this.setNumberingTemplateType.emit(templateLevels);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
onTableInsertMenuClosed() {
|
|
98
|
-
this.tableInsertMenu._animationDone
|
|
99
|
-
.pipe(filter(e => e.toState === 'void'), take(1))
|
|
100
|
-
.subscribe(() => {
|
|
101
|
-
this.showInsertTableMenu = false;
|
|
102
|
-
this.cdr.markForCheck();
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
async onCreate(model) {
|
|
106
|
-
const data = await model.factoryMethod();
|
|
107
|
-
const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
|
|
108
|
-
this.createElement.emit(element);
|
|
109
|
-
}
|
|
110
|
-
checkFontLoadedAndApplyStyle(style) {
|
|
111
|
-
const newStyles = { ...this.styles, ...style };
|
|
112
|
-
const italic = newStyles.italic ? 'italic ' : '';
|
|
113
|
-
const bold = newStyles.bold ? 'bold ' : '';
|
|
114
|
-
const fontStyles = `${italic}${bold}${newStyles.fontSize ?? DEFAULT_FONT_SIZE}pt ${newStyles.fontFamily}`;
|
|
115
|
-
if (document.fonts.check(fontStyles)) {
|
|
116
|
-
this.changeTextStyle.emit(style);
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
document.fonts
|
|
120
|
-
.load(fontStyles)
|
|
121
|
-
.then(() => this.changeTextStyle.emit(style))
|
|
122
|
-
.catch(() => {
|
|
123
|
-
// continue regardless of error
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuDropdownsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i1.CustomIconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuDropdownsComponent, selector: "app-menu-dropdowns", inputs: { isViewOnly: "isViewOnly", hasSelection: "hasSelection", clipboardData: "clipboardData", historyInfo: "historyInfo", styles: "styles" }, outputs: { openFileFromDisk: "openFileFromDisk", addCustomElement: "addCustomElement", saveAs: "saveAs", print: "print", insertPageBreak: "insertPageBreak", createDocument: "createDocument", insertImage: "insertImage", rename: "rename", delete: "delete", openEditMenu: "openEditMenu", redo: "redo", undo: "undo", cutSelected: "cutSelected", copySelected: "copySelected", pasteClipboardData: "pasteClipboardData", selectAll: "selectAll", removeSelected: "removeSelected", insertLink: "insertLink", createElement: "createElement", changeParagraphStyle: "changeParagraphStyle", changeTextStyle: "changeTextStyle", setNumberingTemplateType: "setNumberingTemplateType", removeNumberings: "removeNumberings", insertTable: "insertTable" }, viewQueries: [{ propertyName: "tableInsertMenu", first: true, predicate: ["tableInsert"], descendants: true }], ngImport: i0, template: "<button\n id=\"menu-dropdowns-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n</button>\n<mat-menu\n #fileMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-save-as\"\n mat-menu-item\n (click)=\"saveAs.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-rename\"\n mat-menu-item\n (click)=\"rename.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-print\"\n mat-menu-item\n (click)=\"print.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete\"\n mat-menu-item\n (click)=\"delete.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n id=\"menu-dropdowns-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"openEditMenu.emit()\">\n Edit\n</button>\n<mat-menu\n #editMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"cutSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"copySelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"pasteClipboardData.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-select-all\"\n mat-menu-item\n (click)=\"selectAll.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"removeSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"menu-dropdowns-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n</button>\n<mat-menu\n #insertMenu=\"matMenu\"\n class=\"noder-modal\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"menu-dropdowns-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-link\"\n mat-menu-item\n (click)=\"insertLink.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu\n #listHeadersFootersMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n</button>\n<mat-menu\n #layoutMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n</button>\n<mat-menu\n #formatMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu\n #listAlignMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu\n #listBulletsNumberingMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu\n #listTextMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n</mat-menu>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;height:100%}.upload-input{display:none}.menu-buttons mat-icon{width:24px;height:24px;font-size:24px}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-icon .selected:hover,.list-number .selected,.list-number .selected:hover{border-width:2px;border-style:solid}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.InsertTableComponent, selector: "app-insert-table", outputs: ["selectSizes"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
128
|
-
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuDropdownsComponent, decorators: [{
|
|
130
|
-
type: Component,
|
|
131
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-menu-dropdowns', template: "<button\n id=\"menu-dropdowns-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n</button>\n<mat-menu\n #fileMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-save-as\"\n mat-menu-item\n (click)=\"saveAs.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-rename\"\n mat-menu-item\n (click)=\"rename.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-print\"\n mat-menu-item\n (click)=\"print.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete\"\n mat-menu-item\n (click)=\"delete.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n id=\"menu-dropdowns-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"openEditMenu.emit()\">\n Edit\n</button>\n<mat-menu\n #editMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"cutSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"copySelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"pasteClipboardData.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-select-all\"\n mat-menu-item\n (click)=\"selectAll.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"removeSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"menu-dropdowns-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n</button>\n<mat-menu\n #insertMenu=\"matMenu\"\n class=\"noder-modal\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"menu-dropdowns-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-link\"\n mat-menu-item\n (click)=\"insertLink.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu\n #listHeadersFootersMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n</button>\n<mat-menu\n #layoutMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n</button>\n<mat-menu\n #formatMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu\n #listAlignMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu\n #listBulletsNumberingMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu\n #listTextMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n</mat-menu>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;height:100%}.upload-input{display:none}.menu-buttons mat-icon{width:24px;height:24px;font-size:24px}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-icon .selected:hover,.list-number .selected,.list-number .selected:hover{border-width:2px;border-style:solid}\n"] }]
|
|
132
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i1.CustomIconService }], propDecorators: { isViewOnly: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], hasSelection: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}], clipboardData: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], historyInfo: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], styles: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], openFileFromDisk: [{
|
|
143
|
-
type: Output
|
|
144
|
-
}], addCustomElement: [{
|
|
145
|
-
type: Output
|
|
146
|
-
}], saveAs: [{
|
|
147
|
-
type: Output
|
|
148
|
-
}], print: [{
|
|
149
|
-
type: Output
|
|
150
|
-
}], insertPageBreak: [{
|
|
151
|
-
type: Output
|
|
152
|
-
}], createDocument: [{
|
|
153
|
-
type: Output
|
|
154
|
-
}], insertImage: [{
|
|
155
|
-
type: Output
|
|
156
|
-
}], rename: [{
|
|
157
|
-
type: Output
|
|
158
|
-
}], delete: [{
|
|
159
|
-
type: Output
|
|
160
|
-
}], openEditMenu: [{
|
|
161
|
-
type: Output
|
|
162
|
-
}], redo: [{
|
|
163
|
-
type: Output
|
|
164
|
-
}], undo: [{
|
|
165
|
-
type: Output
|
|
166
|
-
}], cutSelected: [{
|
|
167
|
-
type: Output
|
|
168
|
-
}], copySelected: [{
|
|
169
|
-
type: Output
|
|
170
|
-
}], pasteClipboardData: [{
|
|
171
|
-
type: Output
|
|
172
|
-
}], selectAll: [{
|
|
173
|
-
type: Output
|
|
174
|
-
}], removeSelected: [{
|
|
175
|
-
type: Output
|
|
176
|
-
}], insertLink: [{
|
|
177
|
-
type: Output
|
|
178
|
-
}], createElement: [{
|
|
179
|
-
type: Output
|
|
180
|
-
}], changeParagraphStyle: [{
|
|
181
|
-
type: Output
|
|
182
|
-
}], changeTextStyle: [{
|
|
183
|
-
type: Output
|
|
184
|
-
}], setNumberingTemplateType: [{
|
|
185
|
-
type: Output
|
|
186
|
-
}], removeNumberings: [{
|
|
187
|
-
type: Output
|
|
188
|
-
}], insertTable: [{
|
|
189
|
-
type: Output
|
|
190
|
-
}], tableInsertMenu: [{
|
|
191
|
-
type: ViewChild,
|
|
192
|
-
args: ['tableInsert']
|
|
193
|
-
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3ItdG9vbGJhci9tZW51LWRyb3Bkb3ducy9tZW51LWRyb3Bkb3ducy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10b29sYmFyL21lbnUtZHJvcGRvd25zL21lbnUtZHJvcGRvd25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDN0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFJbkgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVF2RSxNQUFNLE9B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O2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVtQixlQUFlO3NCQUF4QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdE1lbnUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuaW1wb3J0IHsgQWxpZ25tZW50IH0gZnJvbSAnLi4vZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ3VzdG9tSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXN0b20taWNvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfRk9OVF9TSVpFIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2NvcmUvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBFbGVtZW50RGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2VsZW1lbnQtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBFWFRFUk5BTF9FTEVNRU5UX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50cy5jb25zdCc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9leHRlcm5hbC1lbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IElUb29sYmFyU3R5bGVzIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2NvcmUvaW50ZXJmYWNlcy90b29sYmFyLXN0eWxlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTnVtYmVyaW5nTGV2ZWxNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLWxldmVsLm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ1RlbXBsYXRlcyB9IGZyb20gJy4uL2NvbnN0YW50cy9udW1iZXJpbmctdGVtcGxhdGVzLmNvbnN0JztcbmltcG9ydCB7IE51bWJlcmluZ1RlbXBsYXRlVHlwZSB9IGZyb20gJy4uL2VudW1zL251bWJlcmluZy10ZW1wbGF0ZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwgfSBmcm9tICcuLi8uLi9lZGl0b3Ivb3BlcmF0aW9uLWhpc3Rvcnkvb3BlcmF0aW9ucy1oaXN0b3J5LWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJTdHlsZXNIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3Rvb2xiYXItc3R5bGVzLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXBwLW1lbnUtZHJvcGRvd25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJ21lbnUtZHJvcGRvd25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnbWVudS1kcm9wZG93bnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51RHJvcGRvd25zQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpc1ZpZXdPbmx5OiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgaGFzU2VsZWN0aW9uOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgY2xpcGJvYXJkRGF0YTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaGlzdG9yeUluZm8odmFsdWU6IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKSB7XG4gICAgICAgIHRoaXMuY2FuVW5kbyA9IHZhbHVlLnN0ZXAgIT09IC0xO1xuICAgICAgICB0aGlzLmNhblJlZG8gPSB2YWx1ZS5zdGVwIDwgdmFsdWUubGFzdFN0ZXA7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgc3R5bGVzKHZhbHVlOiBJVG9vbGJhclN0eWxlcykge1xuICAgICAgICB0aGlzLl9zdHlsZXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5udW1iZXJpbmdUZW1wbGF0ZVR5cGUgPSBUb29sYmFyU3R5bGVzSGVscGVyLmdldE51bWJlcmluZ1RlbXBsYXRlVHlwZSh2YWx1ZS5udW1iZXJpbmdMZXZlbHNTdHlsZXMpO1xuICAgIH1cbiAgICBnZXQgc3R5bGVzKCk6IElUb29sYmFyU3R5bGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlcztcbiAgICB9XG4gICAgcHJpdmF0ZSBfc3R5bGVzOiBJVG9vbGJhclN0eWxlcztcblxuICAgIEBPdXRwdXQoKSBvcGVuRmlsZUZyb21EaXNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgYWRkQ3VzdG9tRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudERhdGFNb2RlbD4oKTtcblxuICAgIEBPdXRwdXQoKSBzYXZlQXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcHJpbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgaW5zZXJ0UGFnZUJyZWFrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGNyZWF0ZURvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGluc2VydEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVuYW1lID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBvcGVuRWRpdE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVkbyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSB1bmRvID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGN1dFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGNvcHlTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBwYXN0ZUNsaXBib2FyZERhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIHJlbW92ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGluc2VydExpbmsgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgY3JlYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudERhdGFNb2RlbD4oKTtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2VQYXJhZ3JhcGhTdHlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFyYWdyYXBoU3R5bGVNb2RlbD4oKTtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2VUZXh0U3R5bGUgPSBuZXcgRXZlbnRFbWl0dGVyPFRleHRTdHlsZU1vZGVsPigpO1xuXG4gICAgQE91dHB1dCgpIHNldE51bWJlcmluZ1RlbXBsYXRlVHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnVtYmVyaW5nTGV2ZWxNb2RlbFtdPigpO1xuXG4gICAgQE91dHB1dCgpIHJlbW92ZU51bWJlcmluZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgaW5zZXJ0VGFibGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYmxlSW5zZXJ0JykgdGFibGVJbnNlcnRNZW51OiBNYXRNZW51O1xuXG4gICAgY2FuVW5kbzogYm9vbGVhbjtcblxuICAgIGNhblJlZG86IGJvb2xlYW47XG5cbiAgICBudW1iZXJpbmdUZW1wbGF0ZVR5cGU6IE51bWJlcmluZ1RlbXBsYXRlVHlwZSB8IG51bGw7XG5cbiAgICBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzID0gTnVtYmVyaW5nVGVtcGxhdGVUeXBlO1xuXG4gICAgc2hvd0luc2VydFRhYmxlTWVudSA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICByZWFkb25seSBhbGlnbm1lbnRzID0gQWxpZ25tZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBjdXN0b21JY29uU2VydmljZTogQ3VzdG9tSWNvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5jdXN0b21JY29uU2VydmljZS5yZWdpc3RlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gdGhpcy5pbmplY3Rvci5nZXQoRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFKS5lbGVtZW50cztcbiAgICB9XG5cbiAgICBvbk9wZW5GaWxlRnJvbURpc2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5GaWxlRnJvbURpc2suZW1pdChldmVudCk7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgb25JbnNlcnRJbWFnZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zZXJ0SW1hZ2UuZW1pdChldmVudCk7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgb25TZWxlY3RGb3JtYXQoYWxpZ25tZW50OiBBbGlnbm1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJhZ3JhcGhTdHlsZS5lbWl0KG5ldyBQYXJhZ3JhcGhTdHlsZU1vZGVsKHsgYWxpZ25tZW50IH0pKTtcbiAgICB9XG5cbiAgICBvbkFwcGx5Qm9sZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYm9sZCA9ICF0aGlzLnN0eWxlcy5ib2xkO1xuICAgICAgICB0aGlzLmNoZWNrRm9udExvYWRlZEFuZEFwcGx5U3R5bGUobmV3IFRleHRTdHlsZU1vZGVsKHsgYm9sZCB9KSk7XG4gICAgfVxuXG4gICAgb25BcHBseVVuZGVybGluZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gIXRoaXMuc3R5bGVzLnVuZGVybGluZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VUZXh0U3R5bGUuZW1pdChuZXcgVGV4dFN0eWxlTW9kZWwoeyB1bmRlcmxpbmUgfSkpO1xuICAgIH1cblxuICAgIG9uQXBwbHlJdGFsaWMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0YWxpYyA9ICF0aGlzLnN0eWxlcy5pdGFsaWM7XG4gICAgICAgIHRoaXMuY2hlY2tGb250TG9hZGVkQW5kQXBwbHlTdHlsZShuZXcgVGV4dFN0eWxlTW9kZWwoeyBpdGFsaWMgfSkpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlOiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlTnVtYmVyaW5ncy5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZUxldmVscyA9IE51bWJlcmluZ1RlbXBsYXRlcy5maW5kKHggPT4geC50ZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZSkubGV2ZWxzO1xuICAgICAgICAgICAgdGhpcy5zZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUuZW1pdCh0ZW1wbGF0ZUxldmVscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRhYmxlSW5zZXJ0TWVudUNsb3NlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUluc2VydE1lbnUuX2FuaW1hdGlvbkRvbmVcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihlID0+IGUudG9TdGF0ZSA9PT0gJ3ZvaWQnKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dJbnNlcnRUYWJsZU1lbnUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIG9uQ3JlYXRlKG1vZGVsOiBFeHRlcm5hbEVsZW1lbnRNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgbW9kZWwuZmFjdG9yeU1ldGhvZCgpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbmV3IEVsZW1lbnREYXRhTW9kZWwobW9kZWwudHlwZSwgZGF0YS53aWR0aCwgZGF0YS5oZWlnaHQsIGRhdGEuZ3VpZCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudC5lbWl0KGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGb250TG9hZGVkQW5kQXBwbHlTdHlsZShzdHlsZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3U3R5bGVzID0geyAuLi50aGlzLnN0eWxlcywgLi4uc3R5bGUgfTtcbiAgICAgICAgY29uc3QgaXRhbGljID0gbmV3U3R5bGVzLml0YWxpYyA/ICdpdGFsaWMgJyA6ICcnO1xuICAgICAgICBjb25zdCBib2xkID0gbmV3U3R5bGVzLmJvbGQgPyAnYm9sZCAnIDogJyc7XG4gICAgICAgIGNvbnN0IGZvbnRTdHlsZXMgPSBgJHtpdGFsaWN9JHtib2xkfSR7bmV3U3R5bGVzLmZvbnRTaXplID8/IERFRkFVTFRfRk9OVF9TSVpFfXB0ICR7bmV3U3R5bGVzLmZvbnRGYW1pbHl9YDtcblxuICAgICAgICBpZiAoZG9jdW1lbnQuZm9udHMuY2hlY2soZm9udFN0eWxlcykpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVGV4dFN0eWxlLmVtaXQoc3R5bGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuZm9udHNcbiAgICAgICAgICAgIC5sb2FkKGZvbnRTdHlsZXMpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLmNoYW5nZVRleHRTdHlsZS5lbWl0KHN0eWxlKSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29udGludWUgcmVnYXJkbGVzcyBvZiBlcnJvclxuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1maWxlXCJcbiAgICBtYXQtYnV0dG9uXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZpbGVNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cbiAgICBGaWxlXG48L2J1dHRvbj5cbjxtYXQtbWVudVxuICAgICNmaWxlTWVudT1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwibm9kZXItbW9kYWxcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWlzVmlld09ubHlcIlxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1uZXdcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJjcmVhdGVEb2N1bWVudC5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hZGQtbmV3XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5OZXc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxpbnB1dFxuICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgIGNsYXNzPVwidXBsb2FkLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLmRvY3hcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGlkPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIChjaGFuZ2UpPVwib25PcGVuRmlsZUZyb21EaXNrKCRldmVudClcIiAvPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCIhaXNWaWV3T25seVwiXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLW9wZW4tZnJvbVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tb3Blbi1mcm9tXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5PcGVuIEZyb208L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtPPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLXNhdmUtYXNcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJzYXZlQXMuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tc2F2ZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+U2F2ZSBBczwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1yZW5hbWVcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJyZW5hbWUuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tcmVuYW1lXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5SZW5hbWU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tcHJpbnRcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJwcmludC5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1wcmludFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+UHJpbnQ8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtQPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWRlbGV0ZVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZS5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1kZWxldGVcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkRlbGV0ZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPGJ1dHRvblxuICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1lZGl0XCJcbiAgICBtYXQtYnV0dG9uXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImVkaXRNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxuICAgIChtZW51T3BlbmVkKT1cIm9wZW5FZGl0TWVudS5lbWl0KClcIj5cbiAgICBFZGl0XG48L2J1dHRvbj5cbjxtYXQtbWVudVxuICAgICNlZGl0TWVudT1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwibm9kZXItbW9kYWxcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLXVuZG9cIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuVW5kb1wiXG4gICAgICAgIChjbGljayk9XCJ1bmRvLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXVuZG9cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlVuZG88L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtaPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLXJlZG9cIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuUmVkb1wiXG4gICAgICAgIChjbGljayk9XCJyZWRvLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXJlZG9cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlJlZG88L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtZPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8aHIgY2xhc3M9XCJub2Rlci1kaXZpZGVyXCIgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWN1dFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwiY3V0U2VsZWN0ZWQuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tY29udGVudC1jdXRcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkN1dDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK1g8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tY29weVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwiY29weVNlbGVjdGVkLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZpbGUtY29weVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+Q29weTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK0M8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tcGFzdGVcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2xpcGJvYXJkRGF0YT8ubGVuZ3RoXCJcbiAgICAgICAgKGNsaWNrKT1cInBhc3RlQ2xpcGJvYXJkRGF0YS5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1jb250ZW50LXBhc3RlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5QYXN0ZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK1Y8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxociBjbGFzcz1cIm5vZGVyLWRpdmlkZXJcIiAvPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tc2VsZWN0LWFsbFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbC5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1zZWxlY3QtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5TZWxlY3QgQWxsPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Qta2V5c1wiPkN0cmwrQTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1kZWxldGUtdGV4dFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlU2VsZWN0ZWQuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5EZWxldGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbjxidXR0b25cbiAgICAqbmdJZj1cIiFpc1ZpZXdPbmx5XCJcbiAgICAjaW5zZXJ0TWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWluc2VydFwiXG4gICAgbWF0LWJ1dHRvblxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJpbnNlcnRNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cbiAgICBJbnNlcnRcbjwvYnV0dG9uPlxuPG1hdC1tZW51XG4gICAgI2luc2VydE1lbnU9XCJtYXRNZW51XCJcbiAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgPGlucHV0XG4gICAgICAgICNpbWFnZUZpbGVJbnB1dFxuICAgICAgICBjbGFzcz1cInVwbG9hZC1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cImltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCBpbWFnZS9ibXAsIGltYWdlL3dlYnBcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGlkPVwiaW1hZ2UtZmlsZS1pbnB1dFwiXG4gICAgICAgIChjaGFuZ2UpPVwib25JbnNlcnRJbWFnZSgkZXZlbnQpXCIgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWltYWdlXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAoY2xpY2spPVwiaW1hZ2VGaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWltYWdlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5JbWFnZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS10YWJsZVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRhYmxlSW5zZXJ0XCJcbiAgICAgICAgKG1lbnVPcGVuZWQpPVwic2hvd0luc2VydFRhYmxlTWVudSA9IHRydWVcIlxuICAgICAgICAobWVudUNsb3NlZCk9XCJvblRhYmxlSW5zZXJ0TWVudUNsb3NlZCgpXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgZm9udEljb249XCJpY29uLXRhYmxlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgVGFibGVcbiAgICA8L2J1dHRvbj5cbiAgICA8aHIgY2xhc3M9XCJub2Rlci1kaXZpZGVyXCIgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWxpbmtcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJpbnNlcnRMaW5rLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWxpbmstb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkxpbms8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtLPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0te3sgZWxlbWVudC50aXRsZSB9fVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cIm9uQ3JlYXRlKGVsZW1lbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cInt7IGVsZW1lbnQuaWNvbiB9fVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgZWxlbWVudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWhlYWRlcnMtZm9vdGVyc1wiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGlzdEhlYWRlcnNGb290ZXJzTWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWhlYWRlcnMtZm9vdGVyc1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+SGVhZGVycyAmIEZvb3RlcnM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdEhlYWRlcnNGb290ZXJzTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWhlYWRlclwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1oZWFkZXJcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5IZWFkZXI8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWZvb3RlclwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1ib3R0b21cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5Gb290ZXI8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LW1lbnU+XG48YnV0dG9uXG4gICAgKm5nSWY9XCIhaXNWaWV3T25seVwiXG4gICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWxheW91dFwiXG4gICAgbWF0LWJ1dHRvblxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYXlvdXRNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cbiAgICBMYXlvdXRcbjwvYnV0dG9uPlxuPG1hdC1tZW51XG4gICAgI2xheW91dE1lbnU9XCJtYXRNZW51XCJcbiAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1wYWdlLWJyZWFrXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAoY2xpY2spPVwiaW5zZXJ0UGFnZUJyZWFrLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXBhZ2UtYnJlYWtcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlBhZ2UgQnJlYWs8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtFbnRlcjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPGJ1dHRvblxuICAgICpuZ0lmPVwiIWlzVmlld09ubHlcIlxuICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1mb3JtYXRcIlxuICAgIG1hdC1idXR0b25cbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZm9ybWF0TWVudVwiXG4gICAgW21hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzXT1cImZhbHNlXCI+XG4gICAgRm9ybWF0XG48L2J1dHRvbj5cbjxtYXQtbWVudVxuICAgICNmb3JtYXRNZW51PVwibWF0TWVudVwiXG4gICAgY2xhc3M9XCJub2Rlci1tb2RhbFwiPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tYWxpZ25cIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0QWxpZ25NZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWdubGVmdFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+QWxpZ248L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdEFsaWduTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWFsaWduLWxlZnRcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Rm9ybWF0KGFsaWdubWVudHMuTGVmdClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWdubGVmdFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkxlZnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Qta2V5c1wiPkN0cmwrTDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEZvcm1hdChhbGlnbm1lbnRzLkNlbnRlcilcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWduY2VudGVyXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+Q2VudGVyPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK0U8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWFsaWduLXJpZ2h0XCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEZvcm1hdChhbGlnbm1lbnRzLlJpZ2h0KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1mb3JtYXQtYWxpZ25yaWdodFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlJpZ2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK1I8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWJ1bGxldHMtbnVtYmVyaW5nXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGlzdEJ1bGxldHNOdW1iZXJpbmdNZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWJ1bGxldGVkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5CdWxsZXRzICYgTnVtYmVyaW5nPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnVcbiAgICAgICAgI2xpc3RCdWxsZXRzTnVtYmVyaW5nTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWJ1bGxldHNcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpc3RCdWxsZXRlZE1lbnVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWJ1bGxldGVkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+QnVsbGV0IExpc3QgTWVudTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51XG4gICAgICAgICAgICAjbGlzdEJ1bGxldGVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1udW1iZXJpbmctb3ZlcmxheSBub2Rlci1tb2RhbFwiXG4gICAgICAgICAgICB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW1hcmtlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3QxXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5CdWxsZXRMaXN0MSlcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3QyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5CdWxsZXRMaXN0MilcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3QzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5CdWxsZXRMaXN0MylcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pY29uIGxpc3QtbWFya2VyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuQnVsbGV0TGlzdDRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3Q0KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuQnVsbGV0TGlzdDVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3Q1KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuQnVsbGV0TGlzdDZcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3Q2KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tbnVtYmVyaW5nXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0TnVtYmVyZWRNZW51XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1udW1iZXJlZFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPk51bWJlcmVkIExpc3QgTWVudTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51XG4gICAgICAgICAgICAjbGlzdE51bWJlcmVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1udW1iZXJpbmctb3ZlcmxheSBub2Rlci1tb2RhbFwiXG4gICAgICAgICAgICB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW51bWJlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3QxXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5OdW1iZXJMaXN0MSlcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3QyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5OdW1iZXJMaXN0MilcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3QzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5OdW1iZXJMaXN0MylcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pY29uIGxpc3QtbnVtYmVyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuTnVtYmVyTGlzdDRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3Q0KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuTnVtYmVyTGlzdDVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3Q1KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuTnVtYmVyTGlzdDZcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3Q2KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICA8L21hdC1tZW51PlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tdGV4dFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpc3RUZXh0TWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1ib2xkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5UZXh0PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnVcbiAgICAgICAgI2xpc3RUZXh0TWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWJvbGRcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlCb2xkKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWJvbGRcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5Cb2xkPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK0I8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWl0YWxpY1wiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAoY2xpY2spPVwib25BcHBseUl0YWxpYygpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1pdGFsaWNcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5JdGFsaWM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Qta2V5c1wiPkN0cmwrSTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tdW5kZXJsaW5lZFwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAoY2xpY2spPVwib25BcHBseVVuZGVybGluZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC11bmRlcmxpbmVkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+VW5kZXJsaW5lZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtVPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LW1lbnU+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1oZWFkZXItZm9vdGVyXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICBjbGFzcz1cImhpZGRlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWhlYWRlcnMtZm9vdGVyc1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+SGVhZGVycyAmIEZvb3RlcnM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbjxtYXQtbWVudVxuICAgICN0YWJsZUluc2VydD1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwiaW5zZXJ0LXRhYmxlIG5vZGVyLW1vZGFsXCI+XG4gICAgPGFwcC1pbnNlcnQtdGFibGVcbiAgICAgICAgKm5nSWY9XCJzaG93SW5zZXJ0VGFibGVNZW51XCJcbiAgICAgICAgKHNlbGVjdFNpemVzKT1cImluc2VydFRhYmxlLmVtaXQoJGV2ZW50KVwiIC8+XG48L21hdC1tZW51PlxuIl19
|