@talrace/ngx-noder 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +274 -0
- package/esm2022/lib/+shared/abstract/base-api.service.mjs +99 -0
- package/esm2022/lib/+shared/abstract/observer.component.mjs +24 -0
- package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +28 -0
- package/esm2022/lib/+shared/constants/default-file-name.const.mjs +2 -0
- package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +3 -0
- package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +71 -0
- package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +6 -0
- package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +100 -0
- package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +104 -0
- package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +8 -0
- package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +6 -0
- package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +15 -0
- package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +8 -0
- package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +13 -0
- package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +62 -0
- package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +5 -0
- package/esm2022/lib/+shared/editor/core/document.mjs +134 -0
- package/esm2022/lib/+shared/editor/core/edit.session.mjs +1102 -0
- package/esm2022/lib/+shared/editor/core/editor.mjs +1279 -0
- package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/hrule.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/numbering-marker-type.enum.mjs +12 -0
- package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/enums/vertical-alignment.enum.mjs +11 -0
- package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +156 -0
- package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +18 -0
- package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +42 -0
- package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +18 -0
- package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +88 -0
- package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +72 -0
- package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +13 -0
- package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +83 -0
- package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +12 -0
- package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +41 -0
- package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +132 -0
- package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +191 -0
- package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +186 -0
- package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +20 -0
- package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +53 -0
- package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +103 -0
- package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +99 -0
- package/esm2022/lib/+shared/editor/core/layers/lines.mjs +96 -0
- package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +106 -0
- package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +7 -0
- package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +26 -0
- package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +100 -0
- package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +115 -0
- package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +124 -0
- package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +12 -0
- package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +16 -0
- package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +25 -0
- package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +219 -0
- package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +52 -0
- package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +34 -0
- package/esm2022/lib/+shared/editor/core/point.mjs +13 -0
- package/esm2022/lib/+shared/editor/core/print.renderer.mjs +72 -0
- package/esm2022/lib/+shared/editor/core/range.mjs +94 -0
- package/esm2022/lib/+shared/editor/core/renderer.mjs +217 -0
- package/esm2022/lib/+shared/editor/core/search.mjs +231 -0
- package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +356 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +35 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +6 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +4 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +41 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +15 -0
- package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +87 -0
- package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +38 -0
- package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +19 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +12 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +106 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +52 -0
- package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +14 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +57 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +3 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +43 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +64 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +120 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +55 -0
- package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +2 -0
- package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +43 -0
- package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +118 -0
- package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +95 -0
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +293 -0
- package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +8 -0
- package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +6 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +18 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +9 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +8 -0
- package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +7 -0
- package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +74 -0
- package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +358 -0
- package/esm2022/lib/+shared/editor/editor.component.mjs +103 -0
- package/esm2022/lib/+shared/editor/editor.module.mjs +85 -0
- package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +19 -0
- package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +15 -0
- package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +11 -0
- package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +8 -0
- package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +3 -0
- package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +10 -0
- package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +193 -0
- package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +18 -0
- package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +30 -0
- package/esm2022/lib/+shared/editor/helpers/format.helper.mjs +23 -0
- package/esm2022/lib/+shared/editor/helpers/indexed-element.helper.mjs +6 -0
- package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +6 -0
- package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +309 -0
- package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +160 -0
- package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +49 -0
- package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +2 -0
- package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +184 -0
- package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +2 -0
- package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +7 -0
- package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +31 -0
- package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +7 -0
- package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +9 -0
- package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +15 -0
- package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +56 -0
- package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +19 -0
- package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
- package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +28 -0
- package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
- package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +394 -0
- package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +83 -0
- package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +118 -0
- package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +16 -0
- package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +371 -0
- package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +23 -0
- package/esm2022/lib/+shared/editor/positioning/selection.mjs +307 -0
- package/esm2022/lib/+shared/editor/store/editor.actions.mjs +13 -0
- package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +314 -0
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +71 -0
- package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +32 -0
- package/esm2022/lib/+shared/editor-toolbar/constants/numbering-templates.const.mjs +1148 -0
- package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +157 -0
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +115 -0
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +107 -0
- package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +8 -0
- package/esm2022/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.mjs +16 -0
- package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +6 -0
- package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +45 -0
- package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +85 -0
- package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +80 -0
- package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +28 -0
- package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +23 -0
- package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +55 -0
- package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +53 -0
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +18 -0
- package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +27 -0
- package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +74 -0
- package/esm2022/lib/+shared/enums/mode.enum.mjs +7 -0
- package/esm2022/lib/+shared/helpers/print.helper.mjs +40 -0
- package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +54 -0
- package/esm2022/lib/+shared/services/commands.service.mjs +20 -0
- package/esm2022/lib/+shared/services/custom-icon.service.mjs +34 -0
- package/esm2022/lib/models/generated/add-numbering.model.mjs +8 -0
- package/esm2022/lib/models/generated/apply-element-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/apply-image-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +12 -0
- package/esm2022/lib/models/generated/apply-text-style.model.mjs +12 -0
- package/esm2022/lib/models/generated/borders-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/break.model.mjs +8 -0
- package/esm2022/lib/models/generated/cell.model.mjs +12 -0
- package/esm2022/lib/models/generated/column-section.model.mjs +8 -0
- package/esm2022/lib/models/generated/column.model.mjs +8 -0
- package/esm2022/lib/models/generated/command.model.mjs +116 -0
- package/esm2022/lib/models/generated/delete.model.mjs +8 -0
- package/esm2022/lib/models/generated/document-name.model.mjs +8 -0
- package/esm2022/lib/models/generated/document.model.mjs +8 -0
- package/esm2022/lib/models/generated/docx.model.mjs +12 -0
- package/esm2022/lib/models/generated/edge-target.model.mjs +8 -0
- package/esm2022/lib/models/generated/edge.model.mjs +8 -0
- package/esm2022/lib/models/generated/element.model.mjs +8 -0
- package/esm2022/lib/models/generated/file-source.model.mjs +8 -0
- package/esm2022/lib/models/generated/format.model.mjs +12 -0
- package/esm2022/lib/models/generated/heading.model.mjs +16 -0
- package/esm2022/lib/models/generated/image-data.model.mjs +8 -0
- package/esm2022/lib/models/generated/image.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-break.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-element.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-image.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-link.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-styled-text.model.mjs +12 -0
- package/esm2022/lib/models/generated/insert-tab.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-table-columns.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-table-rows.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-table.model.mjs +8 -0
- package/esm2022/lib/models/generated/insert-text.model.mjs +8 -0
- package/esm2022/lib/models/generated/last-document-revision.model.mjs +12 -0
- package/esm2022/lib/models/generated/link-data.model.mjs +8 -0
- package/esm2022/lib/models/generated/link.model.mjs +8 -0
- package/esm2022/lib/models/generated/margins.model.mjs +8 -0
- package/esm2022/lib/models/generated/numbering-level.model.mjs +12 -0
- package/esm2022/lib/models/generated/numbering.model.mjs +8 -0
- package/esm2022/lib/models/generated/operation.model.mjs +12 -0
- package/esm2022/lib/models/generated/page-numbers.model.mjs +8 -0
- package/esm2022/lib/models/generated/paragraph-style.model.mjs +8 -0
- package/esm2022/lib/models/generated/paragraph.model.mjs +12 -0
- package/esm2022/lib/models/generated/remove-numberings.model.mjs +8 -0
- package/esm2022/lib/models/generated/remove-table-columns.model.mjs +8 -0
- package/esm2022/lib/models/generated/remove-table-rows.model.mjs +8 -0
- package/esm2022/lib/models/generated/replace-by-text.model.mjs +8 -0
- package/esm2022/lib/models/generated/replace.model.mjs +40 -0
- package/esm2022/lib/models/generated/resize-table-columns.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore-numberings.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore-table.model.mjs +12 -0
- package/esm2022/lib/models/generated/restore-text-styles.model.mjs +8 -0
- package/esm2022/lib/models/generated/restore.model.mjs +8 -0
- package/esm2022/lib/models/generated/revision.model.mjs +12 -0
- package/esm2022/lib/models/generated/row.model.mjs +8 -0
- package/esm2022/lib/models/generated/tab.model.mjs +8 -0
- package/esm2022/lib/models/generated/table-cell.model.mjs +8 -0
- package/esm2022/lib/models/generated/table.model.mjs +12 -0
- package/esm2022/lib/models/generated/target.model.mjs +16 -0
- package/esm2022/lib/models/generated/text-style.model.mjs +8 -0
- package/esm2022/public-api.mjs +43 -0
- package/esm2022/talrace-ngx-noder.mjs +5 -0
- package/fesm2022/talrace-ngx-noder.mjs +13736 -0
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/+shared/abstract/base-api.service.d.ts +23 -0
- package/lib/+shared/abstract/observer.component.d.ts +10 -0
- package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +16 -0
- package/lib/+shared/constants/default-file-name.const.d.ts +1 -0
- package/lib/+shared/constants/paginator-sizes.const.d.ts +2 -0
- package/lib/+shared/editor/core/base/event-emitting.d.ts +17 -0
- package/lib/+shared/editor/core/components/edges/edge-type.enum.d.ts +4 -0
- package/lib/+shared/editor/core/components/edges/edge.component.d.ts +45 -0
- package/lib/+shared/editor/core/components/edges/edges.d.ts +26 -0
- package/lib/+shared/editor/core/constants/alignments.const.d.ts +7 -0
- package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +5 -0
- package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +14 -0
- package/lib/+shared/editor/core/constants/display-values.const.d.ts +7 -0
- package/lib/+shared/editor/core/constants/document-info.const.d.ts +12 -0
- package/lib/+shared/editor/core/constants/editor-version.const.d.ts +1 -0
- package/lib/+shared/editor/core/constants/editor.const.d.ts +16 -0
- package/lib/+shared/editor/core/constants/unicode-chars.const.d.ts +1 -0
- package/lib/+shared/editor/core/document.d.ts +56 -0
- package/lib/+shared/editor/core/edit.session.d.ts +159 -0
- package/lib/+shared/editor/core/editor.d.ts +206 -0
- package/lib/+shared/editor/core/enums/break-types.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/hrule.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/mouse-button.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/numbering-marker-type.enum.d.ts +10 -0
- package/lib/+shared/editor/core/enums/page-type.enum.d.ts +5 -0
- package/lib/+shared/editor/core/enums/vertical-alignment.enum.d.ts +9 -0
- package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +16 -0
- package/lib/+shared/editor/core/helpers/delta.helper.d.ts +6 -0
- package/lib/+shared/editor/core/helpers/dom.helper.d.ts +10 -0
- package/lib/+shared/editor/core/helpers/event.helper.d.ts +4 -0
- package/lib/+shared/editor/core/helpers/font-metrics.helper.d.ts +32 -0
- package/lib/+shared/editor/core/helpers/format-style.helper.d.ts +11 -0
- package/lib/+shared/editor/core/helpers/line-width.helper.d.ts +5 -0
- package/lib/+shared/editor/core/helpers/numbering.helper.d.ts +19 -0
- package/lib/+shared/editor/core/helpers/page.helper.d.ts +4 -0
- package/lib/+shared/editor/core/helpers/paragraph-style.helper.d.ts +6 -0
- package/lib/+shared/editor/core/helpers/paragraph.helper.d.ts +27 -0
- package/lib/+shared/editor/core/helpers/position.helper.d.ts +34 -0
- package/lib/+shared/editor/core/helpers/print.rendering.helper.d.ts +6 -0
- package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +26 -0
- package/lib/+shared/editor/core/helpers/unicode.helper.d.ts +4 -0
- package/lib/+shared/editor/core/interfaces/cell.interface.d.ts +5 -0
- package/lib/+shared/editor/core/interfaces/cursor-position.interface.d.ts +11 -0
- package/lib/+shared/editor/core/interfaces/font-metric-size.interface.d.ts +11 -0
- package/lib/+shared/editor/core/interfaces/layer.config.d.ts +13 -0
- package/lib/+shared/editor/core/interfaces/paragraph-info.interface.d.ts +7 -0
- package/lib/+shared/editor/core/interfaces/render-changes.interface.d.ts +10 -0
- package/lib/+shared/editor/core/interfaces/replace.interface.d.ts +4 -0
- package/lib/+shared/editor/core/interfaces/search-iteration.interface.d.ts +4 -0
- package/lib/+shared/editor/core/interfaces/toolbar-styles.interface.d.ts +18 -0
- package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +5 -0
- package/lib/+shared/editor/core/interfaces/visible-range.interface.d.ts +11 -0
- package/lib/+shared/editor/core/keyboard/text-input.d.ts +10 -0
- package/lib/+shared/editor/core/layers/cursor.layer.d.ts +24 -0
- package/lib/+shared/editor/core/layers/edges.layer.d.ts +24 -0
- package/lib/+shared/editor/core/layers/lines.d.ts +21 -0
- package/lib/+shared/editor/core/layers/pages.layer.d.ts +27 -0
- package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +4 -0
- package/lib/+shared/editor/core/layers/print.pages.layer.d.ts +4 -0
- package/lib/+shared/editor/core/layers/print.text.layer.d.ts +5 -0
- package/lib/+shared/editor/core/layers/renderloop.d.ts +8 -0
- package/lib/+shared/editor/core/layers/scrollbar.d.ts +41 -0
- package/lib/+shared/editor/core/layers/selection.layer.d.ts +19 -0
- package/lib/+shared/editor/core/layers/text.layer.d.ts +22 -0
- package/lib/+shared/editor/core/models/display-token.model.d.ts +27 -0
- package/lib/+shared/editor/core/models/distance.model.d.ts +6 -0
- package/lib/+shared/editor/core/models/edge-element.model.d.ts +7 -0
- package/lib/+shared/editor/core/models/format-ext.model.d.ts +5 -0
- package/lib/+shared/editor/core/models/indent.model.d.ts +7 -0
- package/lib/+shared/editor/core/models/line-info.model.d.ts +14 -0
- package/lib/+shared/editor/core/models/margin.model.d.ts +9 -0
- package/lib/+shared/editor/core/models/numbering-data.model.d.ts +11 -0
- package/lib/+shared/editor/core/models/render-changes.model.d.ts +14 -0
- package/lib/+shared/editor/core/paging/page-vertical-data.model.d.ts +8 -0
- package/lib/+shared/editor/core/paging/pages.wrap.d.ts +41 -0
- package/lib/+shared/editor/core/paging/paragraph.d.ts +44 -0
- package/lib/+shared/editor/core/paging/text-line-info.d.ts +17 -0
- package/lib/+shared/editor/core/point.d.ts +7 -0
- package/lib/+shared/editor/core/print.renderer.d.ts +25 -0
- package/lib/+shared/editor/core/range.d.ts +32 -0
- package/lib/+shared/editor/core/renderer.d.ts +60 -0
- package/lib/+shared/editor/core/search.d.ts +32 -0
- package/lib/+shared/editor/core/virtual.renderer.d.ts +93 -0
- package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +14 -0
- package/lib/+shared/editor/custom-components/external-element/external-element.service.d.ts +7 -0
- package/lib/+shared/editor/custom-components/external-element/external-elements.const.d.ts +5 -0
- package/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.d.ts +5 -0
- package/lib/+shared/editor/custom-components/external-element/external.component.d.ts +17 -0
- package/lib/+shared/editor/custom-components/external-element/models/element-data.model.d.ts +7 -0
- package/lib/+shared/editor/custom-components/external-element/models/external-element.model.d.ts +20 -0
- package/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.d.ts +7 -0
- package/lib/+shared/editor/custom-components/image/components/image.component.d.ts +31 -0
- package/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.d.ts +13 -0
- package/lib/+shared/editor/custom-components/image/interfaces/size.d.ts +4 -0
- package/lib/+shared/editor/custom-components/image/resizer/coordinate.d.ts +4 -0
- package/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.d.ts +9 -0
- package/lib/+shared/editor/custom-components/image/resizer/direction.enum.d.ts +10 -0
- package/lib/+shared/editor/custom-components/image/resizer/resizer.component.d.ts +26 -0
- package/lib/+shared/editor/custom-components/image/resizer/size-delta.d.ts +4 -0
- package/lib/+shared/editor/custom-components/image/resizer/size-wrapper.d.ts +19 -0
- package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +8 -0
- package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +24 -0
- package/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.d.ts +2 -0
- package/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.d.ts +8 -0
- package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +13 -0
- package/lib/+shared/editor/custom-components/shared/services/component/component.service.d.ts +21 -0
- package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +30 -0
- package/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.d.ts +18 -0
- package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +5 -0
- package/lib/+shared/editor/custom-components/tab/tab.component.d.ts +15 -0
- package/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.d.ts +31 -0
- package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +45 -0
- package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +55 -0
- package/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.d.ts +6 -0
- package/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.d.ts +4 -0
- package/lib/+shared/editor/custom-components/table/models/cell-data.model.d.ts +11 -0
- package/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.d.ts +9 -0
- package/lib/+shared/editor/custom-components/table/models/row-data.model.d.ts +7 -0
- package/lib/+shared/editor/custom-components/table/models/selection-range.model.d.ts +17 -0
- package/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.d.ts +37 -0
- package/lib/+shared/editor/custom-components/table/selection/table-selection.d.ts +74 -0
- package/lib/+shared/editor/editor.component.d.ts +43 -0
- package/lib/+shared/editor/editor.module.d.ts +30 -0
- package/lib/+shared/editor/execution/models/cell-session-source.model.d.ts +11 -0
- package/lib/+shared/editor/execution/models/edge-session-source.model.d.ts +11 -0
- package/lib/+shared/editor/execution/models/general-properties.model.d.ts +7 -0
- package/lib/+shared/editor/execution/models/main-session-source.model.d.ts +5 -0
- package/lib/+shared/editor/execution/models/session-source.model.d.ts +5 -0
- package/lib/+shared/editor/execution/models/session.model.d.ts +12 -0
- package/lib/+shared/editor/execution/regulator.service.d.ts +45 -0
- package/lib/+shared/editor/helpers/break.helper.d.ts +7 -0
- package/lib/+shared/editor/helpers/content.helper.d.ts +9 -0
- package/lib/+shared/editor/helpers/format.helper.d.ts +4 -0
- package/lib/+shared/editor/helpers/indexed-element.helper.d.ts +4 -0
- package/lib/+shared/editor/helpers/tab.helper.d.ts +3 -0
- package/lib/+shared/editor/interaction/editor.service.d.ts +194 -0
- package/lib/+shared/editor/interaction/input.handler.d.ts +25 -0
- package/lib/+shared/editor/interaction/mouse.handler.d.ts +14 -0
- package/lib/+shared/editor/interfaces/contents.interface.d.ts +22 -0
- package/lib/+shared/editor/interfaces/insert-index.interface.d.ts +3 -0
- package/lib/+shared/editor/operation-history/operation-history.d.ts +65 -0
- package/lib/+shared/editor/operation-history/operation.type.d.ts +24 -0
- package/lib/+shared/editor/operation-history/operations-history-info.model.d.ts +5 -0
- package/lib/+shared/editor/operations/enums/command-type.enum.d.ts +29 -0
- package/lib/+shared/editor/operations/enums/target-type.enum.d.ts +5 -0
- package/lib/+shared/editor/operations/helpers/break-operations.helper.d.ts +5 -0
- package/lib/+shared/editor/operations/helpers/content-operations.helper.d.ts +5 -0
- package/lib/+shared/editor/operations/helpers/format-operations.helper.d.ts +11 -0
- package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +7 -0
- package/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.d.ts +8 -0
- package/lib/+shared/editor/operations/helpers/link-operations.helper.d.ts +6 -0
- package/lib/+shared/editor/operations/helpers/numbering-operations.helper.d.ts +11 -0
- package/lib/+shared/editor/operations/helpers/operations-helper.helper.d.ts +52 -0
- package/lib/+shared/editor/operations/helpers/paragraph-operations.helper.d.ts +13 -0
- package/lib/+shared/editor/operations/helpers/save-commands.helper.d.ts +43 -0
- package/lib/+shared/editor/operations/helpers/tab-operations.helper.d.ts +4 -0
- package/lib/+shared/editor/operations/helpers/table-operations.helper.d.ts +30 -0
- package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +6 -0
- package/lib/+shared/editor/positioning/selection.d.ts +50 -0
- package/lib/+shared/editor/store/editor.actions.d.ts +11 -0
- package/lib/+shared/editor-header/editor-header.component.d.ts +101 -0
- package/lib/+shared/editor-search/editor-search-dialog.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/color-picker/color-picker.component.d.ts +12 -0
- package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +6 -0
- package/lib/+shared/editor-toolbar/constants/svg-icons.const.d.ts +12 -0
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +44 -0
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +28 -0
- package/lib/+shared/editor-toolbar/enums/alignment.enum.d.ts +6 -0
- package/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.d.ts +14 -0
- package/lib/+shared/editor-toolbar/enums/numbering-type.enum.d.ts +4 -0
- package/lib/+shared/editor-toolbar/font/font.component.d.ts +13 -0
- package/lib/+shared/editor-toolbar/font-size/font-size.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/font-style/font-style.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/format/format.component.d.ts +12 -0
- package/lib/+shared/editor-toolbar/heading/heading.component.d.ts +8 -0
- package/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.d.ts +6 -0
- package/lib/+shared/editor-toolbar/numbering/numbering.component.d.ts +18 -0
- package/lib/+shared/editor-toolbar/print/print.component.d.ts +7 -0
- package/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.d.ts +10 -0
- package/lib/+shared/editor-toolbar/zoom/zoom.component.d.ts +22 -0
- package/lib/+shared/enums/mode.enum.d.ts +5 -0
- package/lib/+shared/helpers/print.helper.d.ts +9 -0
- package/lib/+shared/insert-table/insert-table.component.d.ts +21 -0
- package/lib/+shared/services/commands.service.d.ts +10 -0
- package/lib/+shared/services/custom-icon.service.d.ts +11 -0
- package/lib/models/generated/add-numbering.model.d.ts +7 -0
- package/lib/models/generated/apply-element-style.model.d.ts +6 -0
- package/lib/models/generated/apply-image-style.model.d.ts +6 -0
- package/lib/models/generated/apply-paragraph-style.model.d.ts +7 -0
- package/lib/models/generated/apply-text-style.model.d.ts +7 -0
- package/lib/models/generated/borders-style.model.d.ts +8 -0
- package/lib/models/generated/break.model.d.ts +5 -0
- package/lib/models/generated/cell.model.d.ts +32 -0
- package/lib/models/generated/column-section.model.d.ts +7 -0
- package/lib/models/generated/column.model.d.ts +5 -0
- package/lib/models/generated/command.model.d.ts +60 -0
- package/lib/models/generated/delete.model.d.ts +5 -0
- package/lib/models/generated/document-name.model.d.ts +5 -0
- package/lib/models/generated/document.model.d.ts +7 -0
- package/lib/models/generated/docx.model.d.ts +43 -0
- package/lib/models/generated/edge-target.model.d.ts +5 -0
- package/lib/models/generated/edge.model.d.ts +24 -0
- package/lib/models/generated/element.model.d.ts +9 -0
- package/lib/models/generated/file-source.model.d.ts +4 -0
- package/lib/models/generated/format.model.d.ts +7 -0
- package/lib/models/generated/heading.model.d.ts +12 -0
- package/lib/models/generated/image-data.model.d.ts +6 -0
- package/lib/models/generated/image.model.d.ts +31 -0
- package/lib/models/generated/insert-break.model.d.ts +6 -0
- package/lib/models/generated/insert-element.model.d.ts +5 -0
- package/lib/models/generated/insert-image.model.d.ts +6 -0
- package/lib/models/generated/insert-link.model.d.ts +7 -0
- package/lib/models/generated/insert-styled-text.model.d.ts +7 -0
- package/lib/models/generated/insert-tab.model.d.ts +4 -0
- package/lib/models/generated/insert-table-columns.model.d.ts +7 -0
- package/lib/models/generated/insert-table-rows.model.d.ts +7 -0
- package/lib/models/generated/insert-table.model.d.ts +8 -0
- package/lib/models/generated/insert-text.model.d.ts +5 -0
- package/lib/models/generated/last-document-revision.model.d.ts +9 -0
- package/lib/models/generated/link-data.model.d.ts +5 -0
- package/lib/models/generated/link.model.d.ts +7 -0
- package/lib/models/generated/margins.model.d.ts +7 -0
- package/lib/models/generated/numbering-level.model.d.ts +14 -0
- package/lib/models/generated/numbering.model.d.ts +7 -0
- package/lib/models/generated/operation.model.d.ts +8 -0
- package/lib/models/generated/page-numbers.model.d.ts +8 -0
- package/lib/models/generated/paragraph-style.model.d.ts +18 -0
- package/lib/models/generated/paragraph.model.d.ts +6 -0
- package/lib/models/generated/remove-numberings.model.d.ts +5 -0
- package/lib/models/generated/remove-table-columns.model.d.ts +6 -0
- package/lib/models/generated/remove-table-rows.model.d.ts +6 -0
- package/lib/models/generated/replace-by-text.model.d.ts +6 -0
- package/lib/models/generated/replace.model.d.ts +19 -0
- package/lib/models/generated/resize-table-columns.model.d.ts +9 -0
- package/lib/models/generated/restore-numberings.model.d.ts +7 -0
- package/lib/models/generated/restore-paragraph-styles.model.d.ts +5 -0
- package/lib/models/generated/restore-table.model.d.ts +6 -0
- package/lib/models/generated/restore-text-styles.model.d.ts +5 -0
- package/lib/models/generated/restore.model.d.ts +22 -0
- package/lib/models/generated/revision.model.d.ts +9 -0
- package/lib/models/generated/row.model.d.ts +9 -0
- package/lib/models/generated/tab.model.d.ts +6 -0
- package/lib/models/generated/table-cell.model.d.ts +6 -0
- package/lib/models/generated/table.model.d.ts +18 -0
- package/lib/models/generated/target.model.d.ts +9 -0
- package/lib/models/generated/text-style.model.d.ts +14 -0
- package/package.json +35 -0
- package/public-api.d.ts +42 -0
- package/src/_ngx-noder.theme.scss +22 -0
- package/src/assets/fonts/nc-iconfont.css +333 -0
- package/src/assets/fonts/nc-iconfont.eot +0 -0
- package/src/assets/fonts/nc-iconfont.svg +110 -0
- package/src/assets/fonts/nc-iconfont.ttf +0 -0
- package/src/assets/fonts/nc-iconfont.woff +0 -0
- package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +21 -0
- package/src/lib/+shared/editor/_editor.theme.scss +35 -0
- package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +10 -0
- package/src/lib/+shared/editor-header/_editor-header.theme.scss +106 -0
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +33 -0
- package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +29 -0
- package/src/lib/+shared/insert-table/_insert-table.theme.scss +22 -0
- package/src/styles.scss +58 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import { DistanceModel } from './models/distance.model';
|
|
2
|
+
import { DomHelper } from './helpers/dom.helper';
|
|
3
|
+
import { EdgesLayer } from './layers/edges.layer';
|
|
4
|
+
import { EventEmitting } from './base/event-emitting';
|
|
5
|
+
import { PagesLayer } from './layers/pages.layer';
|
|
6
|
+
import { RenderChangesModel } from './models/render-changes.model';
|
|
7
|
+
import { Renderer } from './renderer';
|
|
8
|
+
import { RenderLoop } from './layers/renderloop';
|
|
9
|
+
import { ScrollBar } from './layers/scrollbar';
|
|
10
|
+
export class VirtualRenderer extends EventEmitting {
|
|
11
|
+
get isMousePressed() {
|
|
12
|
+
return this.renderer.isMousePressed;
|
|
13
|
+
}
|
|
14
|
+
set isMousePressed(val) {
|
|
15
|
+
this.renderer.isMousePressed = val;
|
|
16
|
+
}
|
|
17
|
+
get cursorLayer() {
|
|
18
|
+
return this.renderer.cursorLayer;
|
|
19
|
+
}
|
|
20
|
+
get loop() {
|
|
21
|
+
return this.renderer.loop;
|
|
22
|
+
}
|
|
23
|
+
set loop(val) {
|
|
24
|
+
this.renderer.loop = val;
|
|
25
|
+
}
|
|
26
|
+
get textarea() {
|
|
27
|
+
return this.renderer.textarea;
|
|
28
|
+
}
|
|
29
|
+
set textarea(val) {
|
|
30
|
+
this.renderer.textarea = val;
|
|
31
|
+
}
|
|
32
|
+
get layerConfig() {
|
|
33
|
+
return this.renderer.layerConfig;
|
|
34
|
+
}
|
|
35
|
+
set layerConfig(val) {
|
|
36
|
+
this.renderer.layerConfig = val;
|
|
37
|
+
}
|
|
38
|
+
constructor(parentContainer, editorService) {
|
|
39
|
+
super();
|
|
40
|
+
this.editorService = editorService;
|
|
41
|
+
this.scrollTop = 0;
|
|
42
|
+
this.changes = new RenderChangesModel();
|
|
43
|
+
this.size = {
|
|
44
|
+
width: 0,
|
|
45
|
+
height: 0,
|
|
46
|
+
scrollerHeight: 0,
|
|
47
|
+
scrollerWidth: 0,
|
|
48
|
+
dirty: true
|
|
49
|
+
};
|
|
50
|
+
this.container = parentContainer;
|
|
51
|
+
this.createScroller();
|
|
52
|
+
this.renderer = new Renderer(parentContainer, editorService);
|
|
53
|
+
this.renderer.layerConfig = this.getDefaultLayerConfig();
|
|
54
|
+
this.createLayers();
|
|
55
|
+
this.createScroll();
|
|
56
|
+
this.createRenderLoop();
|
|
57
|
+
}
|
|
58
|
+
renderChanges(changes, force) {
|
|
59
|
+
changes.apply(this.changes);
|
|
60
|
+
this.changes = new RenderChangesModel();
|
|
61
|
+
if (!this.renderer.session || !this.container.offsetWidth || (!changes.any && !force)) {
|
|
62
|
+
this.changes.apply(changes);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (this.size.dirty) {
|
|
66
|
+
this.changes.apply(changes);
|
|
67
|
+
this.onResize(true);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// text, scrolling and resize changes can cause the view port size to change
|
|
71
|
+
if (changes.full || changes.size || changes.text || changes.lines || changes.scroll) {
|
|
72
|
+
changes.apply(this.computeLayerConfig());
|
|
73
|
+
this.updateScrollBar();
|
|
74
|
+
DomHelper.translate(this.renderer.content, 0, -this.layerConfig.offset);
|
|
75
|
+
DomHelper.setStyle(this.renderer.content.style, 'width', `${this.layerConfig.width}px`);
|
|
76
|
+
DomHelper.setStyle(this.renderer.content.style, 'height', `${this.layerConfig.height}px`);
|
|
77
|
+
}
|
|
78
|
+
// full
|
|
79
|
+
if (changes.full) {
|
|
80
|
+
this.renderFull();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// scrolling
|
|
84
|
+
if (changes.scroll) {
|
|
85
|
+
this.renderScroll(changes);
|
|
86
|
+
}
|
|
87
|
+
if (changes.text) {
|
|
88
|
+
this.renderText();
|
|
89
|
+
}
|
|
90
|
+
if (changes.cursor) {
|
|
91
|
+
this.renderCursor();
|
|
92
|
+
}
|
|
93
|
+
if (changes.marker || changes.selection) {
|
|
94
|
+
this.renderSelection();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Triggers a resize of the editor
|
|
99
|
+
**/
|
|
100
|
+
onResize(force) {
|
|
101
|
+
const height = this.container.clientHeight || this.container.scrollHeight;
|
|
102
|
+
const width = this.container.clientWidth || this.container.scrollWidth;
|
|
103
|
+
const changes = this.updateCachedSize(force, width, height);
|
|
104
|
+
changes.apply(this.changes);
|
|
105
|
+
if (force) {
|
|
106
|
+
this.renderChanges(changes, true);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.loop.schedule(changes);
|
|
110
|
+
}
|
|
111
|
+
this.scrollBar.scrollTop = null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Triggers a partial update of the text, from the range given by the two parameters.
|
|
115
|
+
**/
|
|
116
|
+
updateLines(firstRow, lastRow) {
|
|
117
|
+
this.renderer.updateLines(firstRow, lastRow);
|
|
118
|
+
}
|
|
119
|
+
updateCachedSize(force, width, height) {
|
|
120
|
+
if (width && (force || this.size.width !== width)) {
|
|
121
|
+
DomHelper.setStyle(this.scroller.style, 'left', 0);
|
|
122
|
+
this.size.scrollerWidth = Math.max(0, this.container.parentElement.clientWidth - this.scrollBar.width);
|
|
123
|
+
DomHelper.setStyle(this.scroller.style, 'right', 0);
|
|
124
|
+
}
|
|
125
|
+
let changes = new RenderChangesModel();
|
|
126
|
+
if (height && (force || this.size.height !== height)) {
|
|
127
|
+
this.size.height = height;
|
|
128
|
+
changes.size = true;
|
|
129
|
+
this.size.scrollerHeight = this.size.height;
|
|
130
|
+
changes.scroll = true;
|
|
131
|
+
}
|
|
132
|
+
if (width && (force || this.size.width !== width)) {
|
|
133
|
+
this.size.width = width;
|
|
134
|
+
changes.size = true;
|
|
135
|
+
}
|
|
136
|
+
this.size.dirty = !width || !height;
|
|
137
|
+
return changes;
|
|
138
|
+
}
|
|
139
|
+
moveTextAreaToCursor() {
|
|
140
|
+
if (this.isMousePressed || !this.textarea) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
let cursorPosition = this.cursorLayer.cursorPosition;
|
|
144
|
+
if (!cursorPosition) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const posTop = cursorPosition.pageY - this.layerConfig.offset;
|
|
148
|
+
if (posTop < 0 || posTop > this.layerConfig.height - this.renderer.textareaSize.height) {
|
|
149
|
+
DomHelper.translate(this.textarea, 0, 0);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
DomHelper.setStyle(this.textarea.style, 'height', `${this.renderer.textareaSize.height}px`);
|
|
153
|
+
DomHelper.setStyle(this.textarea.style, 'width', `${this.renderer.textareaSize.width}px`);
|
|
154
|
+
DomHelper.translate(this.textarea, Math.min(cursorPosition.pageX, this.size.scrollerWidth - this.renderer.textareaSize.width), Math.min(posTop, this.size.height - this.renderer.textareaSize.height));
|
|
155
|
+
}
|
|
156
|
+
setSession(session) {
|
|
157
|
+
this.pagesLayer.setSession(session);
|
|
158
|
+
this.edgesLayer.setSession(session);
|
|
159
|
+
this.renderer.setSession(session);
|
|
160
|
+
this.scrollBar.scrollTop = null;
|
|
161
|
+
}
|
|
162
|
+
updateSelection(range) {
|
|
163
|
+
this.renderer.updateSelection(range);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Triggers a full update of the text, for all the rows.
|
|
167
|
+
**/
|
|
168
|
+
updateText() {
|
|
169
|
+
this.renderer.updateText();
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Triggers a full update of all the layers, for all the rows.
|
|
173
|
+
**/
|
|
174
|
+
updateFull(force) {
|
|
175
|
+
this.renderer.updateFull(force);
|
|
176
|
+
}
|
|
177
|
+
updateCursor() {
|
|
178
|
+
this.renderer.updateCursor();
|
|
179
|
+
}
|
|
180
|
+
scrollSelectionIntoView(anchor, lead, offset) {
|
|
181
|
+
// first scroll anchor into view then scroll lead into view
|
|
182
|
+
this.scrollCursorIntoView(anchor, offset);
|
|
183
|
+
this.scrollCursorIntoView(lead, offset);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Scrolls the cursor into the first visibile area of the editor
|
|
187
|
+
**/
|
|
188
|
+
scrollCursorIntoView(cursor, offset) {
|
|
189
|
+
if (!this.size.scrollerHeight) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const position = this.cursorLayer.getPixelPosition(cursor);
|
|
193
|
+
let top = position.pageY + this.scrollTop;
|
|
194
|
+
if (this.scrollTop > top) {
|
|
195
|
+
if (offset) {
|
|
196
|
+
top -= offset * this.container.scrollHeight;
|
|
197
|
+
}
|
|
198
|
+
this.renderer.session.setScrollTop(top);
|
|
199
|
+
this.loop.schedule({ scroll: true });
|
|
200
|
+
}
|
|
201
|
+
else if (this.scrollTop + this.container.scrollHeight < top + position.lineHeight) {
|
|
202
|
+
if (offset) {
|
|
203
|
+
top += offset * this.container.scrollHeight;
|
|
204
|
+
}
|
|
205
|
+
this.renderer.session.setScrollTop(top + position.lineHeight - this.container.scrollHeight);
|
|
206
|
+
this.loop.schedule({ scroll: true });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Scrolls the editor to the y pixel indicated.
|
|
211
|
+
**/
|
|
212
|
+
scrollTo(scrollTop) {
|
|
213
|
+
// after calling scrollBar.setScrollTop
|
|
214
|
+
// scrollbar sends us event with same scrollTop. ignore it
|
|
215
|
+
if (this.scrollTop === scrollTop) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
this.loop.schedule({ scroll: true });
|
|
219
|
+
this.scrollTop = scrollTop;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Scrolls the editor across y-axe.
|
|
223
|
+
**/
|
|
224
|
+
scrollBy(deltaY) {
|
|
225
|
+
if (!deltaY || !this.scrollBar.isVisible) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
this.renderer.session.setScrollTop(this.renderer.session.scrollTop + deltaY);
|
|
229
|
+
}
|
|
230
|
+
screenToTextCoordinates(x, y) {
|
|
231
|
+
return this.renderer.screenToTextCoordinates(x, y);
|
|
232
|
+
}
|
|
233
|
+
showCursor() {
|
|
234
|
+
this.renderer.showCursor();
|
|
235
|
+
}
|
|
236
|
+
hideCursor() {
|
|
237
|
+
this.renderer.hideCursor();
|
|
238
|
+
}
|
|
239
|
+
destroy() {
|
|
240
|
+
this.scrollBar.removeAllListeners('scroll');
|
|
241
|
+
DomHelper.removeElement(this.scrollBar.element);
|
|
242
|
+
this.pagesLayer.destroy();
|
|
243
|
+
this.edgesLayer.destroy();
|
|
244
|
+
this.renderer.destroy();
|
|
245
|
+
}
|
|
246
|
+
computeLayerConfig() {
|
|
247
|
+
const pagesWrap = this.renderer.session.pagesWrap;
|
|
248
|
+
const maxHeight = pagesWrap.allPagesHeight;
|
|
249
|
+
const minHeight = pagesWrap.minHeight;
|
|
250
|
+
const scrollHidden = maxHeight < this.size.scrollerHeight;
|
|
251
|
+
const newScrollTop = Math.max(Math.min(this.scrollTop, maxHeight - this.size.scrollerHeight), 0);
|
|
252
|
+
this.renderer.session.scrollTop = newScrollTop;
|
|
253
|
+
this.scrollTop = newScrollTop;
|
|
254
|
+
const canScroll = !scrollHidden && this.size.scrollerHeight - maxHeight < 0;
|
|
255
|
+
const scrollChanged = this.canScroll !== canScroll;
|
|
256
|
+
if (scrollChanged) {
|
|
257
|
+
this.canScroll = canScroll;
|
|
258
|
+
this.scrollBar.setVisible(canScroll);
|
|
259
|
+
}
|
|
260
|
+
const changes = scrollChanged
|
|
261
|
+
? this.updateCachedSize(true, this.size.width, this.size.height)
|
|
262
|
+
: new RenderChangesModel({ scroll: true });
|
|
263
|
+
const visibleRange = pagesWrap.getVisibleRange(this.scrollTop, this.size.scrollerHeight);
|
|
264
|
+
this.layerConfig = {
|
|
265
|
+
width: this.renderer.textLayer.element.clientWidth + pagesWrap.documentMargin.left + pagesWrap.documentMargin.right,
|
|
266
|
+
height: this.size.scrollerHeight,
|
|
267
|
+
contentRange: new DistanceModel({ start: visibleRange.startParagraph, end: visibleRange.endParagraph }),
|
|
268
|
+
minHeight,
|
|
269
|
+
maxHeight,
|
|
270
|
+
offset: 0,
|
|
271
|
+
visibleRange,
|
|
272
|
+
scrollTop: this.renderer.session.scrollTop,
|
|
273
|
+
pages: visibleRange.pages
|
|
274
|
+
};
|
|
275
|
+
return changes;
|
|
276
|
+
}
|
|
277
|
+
updateScrollBar() {
|
|
278
|
+
this.scrollBar.scrollHeight = this.layerConfig.maxHeight;
|
|
279
|
+
this.scrollBar.setScrollTop(this.scrollTop);
|
|
280
|
+
}
|
|
281
|
+
createScroller() {
|
|
282
|
+
this.scroller = document.createElement('div');
|
|
283
|
+
this.scroller.className = 'ace-scroller';
|
|
284
|
+
this.container.appendChild(this.scroller);
|
|
285
|
+
}
|
|
286
|
+
createLayers() {
|
|
287
|
+
this.edgesLayer = new EdgesLayer(this.renderer.content, this.editorService);
|
|
288
|
+
this.pagesLayer = new PagesLayer(this.renderer.content);
|
|
289
|
+
}
|
|
290
|
+
createScroll() {
|
|
291
|
+
this.scrollBar = new ScrollBar(this.container.parentElement);
|
|
292
|
+
this.scrollBar.addEventListener('scroll', (event) => {
|
|
293
|
+
this.renderer.session.setScrollTop(event.data);
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
createRenderLoop() {
|
|
297
|
+
this.loop = new RenderLoop(changes => this.renderChanges(changes));
|
|
298
|
+
this.renderer.loop = this.loop;
|
|
299
|
+
this.loop.schedule({ full: true });
|
|
300
|
+
}
|
|
301
|
+
renderScroll(changes) {
|
|
302
|
+
this.pagesLayer.update(this.layerConfig);
|
|
303
|
+
if (changes.text || changes.lines) {
|
|
304
|
+
this.edgesLayer.update(this.layerConfig);
|
|
305
|
+
this.renderer.textLayer.update(this.layerConfig);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
this.edgesLayer.scrollPages(this.layerConfig);
|
|
309
|
+
this.renderer.textLayer.scrollLines(this.layerConfig);
|
|
310
|
+
}
|
|
311
|
+
this.renderer.selectionLayer.update(this.layerConfig);
|
|
312
|
+
if (!this.renderer.cursorLayer.isVisible) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
this.cursorLayer.update(this.layerConfig);
|
|
316
|
+
this.moveTextAreaToCursor();
|
|
317
|
+
}
|
|
318
|
+
renderFull() {
|
|
319
|
+
this.pagesLayer.update(this.layerConfig);
|
|
320
|
+
this.edgesLayer.update(this.layerConfig);
|
|
321
|
+
this.renderer.renderFull();
|
|
322
|
+
}
|
|
323
|
+
renderText() {
|
|
324
|
+
this.pagesLayer.update(this.layerConfig);
|
|
325
|
+
this.renderer.renderText();
|
|
326
|
+
}
|
|
327
|
+
renderCursor() {
|
|
328
|
+
this.renderer.renderCursor();
|
|
329
|
+
}
|
|
330
|
+
renderSelection() {
|
|
331
|
+
this.renderer.renderSelection();
|
|
332
|
+
}
|
|
333
|
+
getDefaultLayerConfig() {
|
|
334
|
+
return {
|
|
335
|
+
width: 1,
|
|
336
|
+
contentRange: new DistanceModel({ start: 0, end: 0 }),
|
|
337
|
+
minHeight: 1,
|
|
338
|
+
maxHeight: 1,
|
|
339
|
+
offset: 0,
|
|
340
|
+
height: 1,
|
|
341
|
+
scrollTop: 0,
|
|
342
|
+
pages: [],
|
|
343
|
+
visibleRange: {
|
|
344
|
+
startParagraph: 0,
|
|
345
|
+
startLine: 0,
|
|
346
|
+
startScreenLine: 0,
|
|
347
|
+
startScreenFullLine: 0,
|
|
348
|
+
endParagraph: 0,
|
|
349
|
+
endLine: 0,
|
|
350
|
+
endScreenLine: 0,
|
|
351
|
+
endScreenFullLine: 0
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC5yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvdmlydHVhbC5yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBQzlDLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEdBQVk7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FB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LFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLE9BQU87WUFDSCxLQUFLLEVBQUUsQ0FBQztZQUNSLFlBQVksRUFBRSxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JELFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLENBQUM7WUFDWixNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsU0FBUyxFQUFFLENBQUM7WUFDWixLQUFLLEVBQUUsRUFBRTtZQUNULFlBQVksRUFBRTtnQkFDVixjQUFjLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3RCLFlBQVksRUFBRSxDQUFDO2dCQUNmLE9BQU8sRUFBRSxDQUFDO2dCQUNWLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixpQkFBaUIsRUFBRSxDQUFDO2FBQ3ZCO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnNvckxheWVyIH0gZnJvbSAnLi9sYXllcnMvY3Vyc29yLmxheWVyJztcbmltcG9ydCB7IERpc3RhbmNlTW9kZWwgfSBmcm9tICcuL21vZGVscy9kaXN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGdlc0xheWVyIH0gZnJvbSAnLi9sYXllcnMvZWRnZXMubGF5ZXInO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGluZyB9IGZyb20gJy4vYmFzZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBhZ2VzTGF5ZXIgfSBmcm9tICcuL2xheWVycy9wYWdlcy5sYXllcic7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4vcG9pbnQnO1xuaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICcuL3JhbmdlJztcbmltcG9ydCB7IFJlbmRlckNoYW5nZXNNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3JlbmRlci1jaGFuZ2VzLm1vZGVsJztcbmltcG9ydCB7IFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XG5pbXBvcnQgeyBSZW5kZXJMb29wIH0gZnJvbSAnLi9sYXllcnMvcmVuZGVybG9vcCc7XG5pbXBvcnQgeyBTY3JvbGxCYXIgfSBmcm9tICcuL2xheWVycy9zY3JvbGxiYXInO1xuXG5leHBvcnQgY2xhc3MgVmlydHVhbFJlbmRlcmVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZ2V0IGlzTW91c2VQcmVzc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5pc01vdXNlUHJlc3NlZDtcbiAgICB9XG4gICAgc2V0IGlzTW91c2VQcmVzc2VkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmlzTW91c2VQcmVzc2VkID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBjdXJzb3JMYXllcigpOiBDdXJzb3JMYXllciB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLmN1cnNvckxheWVyO1xuICAgIH1cblxuICAgIGdldCBsb29wKCk6IFJlbmRlckxvb3Age1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5sb29wO1xuICAgIH1cbiAgICBzZXQgbG9vcCh2YWw6IFJlbmRlckxvb3ApIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5sb29wID0gdmFsO1xuICAgIH1cblxuICAgIGdldCB0ZXh0YXJlYSgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLnRleHRhcmVhO1xuICAgIH1cbiAgICBzZXQgdGV4dGFyZWEodmFsOiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnRleHRhcmVhID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBsYXllckNvbmZpZygpOiBJTGF5ZXJDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5sYXllckNvbmZpZztcbiAgICB9XG4gICAgc2V0IGxheWVyQ29uZmlnKHZhbDogSUxheWVyQ29uZmlnKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGF5ZXJDb25maWcgPSB2YWw7XG4gICAgfVxuXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHNjcm9sbGVyOiBIVE1MRWxlbWVudDtcblxuICAgIGVkZ2VzTGF5ZXI6IEVkZ2VzTGF5ZXI7XG5cbiAgICBwYWdlc0xheWVyOiBQYWdlc0xheWVyO1xuXG4gICAgc2Nyb2xsQmFyOiBTY3JvbGxCYXI7XG5cbiAgICBjYW5TY3JvbGw6IGJvb2xlYW47XG5cbiAgICBzY3JvbGxUb3AgPSAwO1xuXG4gICAgcmVuZGVyZXIhOiBSZW5kZXJlcjtcblxuICAgIGNoYW5nZXMgPSBuZXcgUmVuZGVyQ2hhbmdlc01vZGVsKCk7XG5cbiAgICBzaXplID0ge1xuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICBzY3JvbGxlckhlaWdodDogMCxcbiAgICAgICAgc2Nyb2xsZXJXaWR0aDogMCxcbiAgICAgICAgZGlydHk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50Q29udGFpbmVyOiBIVE1MRWxlbWVudCwgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gcGFyZW50Q29udGFpbmVyO1xuICAgICAgICB0aGlzLmNyZWF0ZVNjcm9sbGVyKCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSBuZXcgUmVuZGVyZXIocGFyZW50Q29udGFpbmVyLCBlZGl0b3JTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5sYXllckNvbmZpZyA9IHRoaXMuZ2V0RGVmYXVsdExheWVyQ29uZmlnKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlTGF5ZXJzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlU2Nyb2xsKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyTG9vcCgpO1xuICAgIH1cblxuICAgIHJlbmRlckNoYW5nZXMoY2hhbmdlczogUmVuZGVyQ2hhbmdlc01vZGVsLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY2hhbmdlcy5hcHBseSh0aGlzLmNoYW5nZXMpO1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSBuZXcgUmVuZGVyQ2hhbmdlc01vZGVsKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnJlbmRlcmVyLnNlc3Npb24gfHwgIXRoaXMuY29udGFpbmVyLm9mZnNldFdpZHRoIHx8ICghY2hhbmdlcy5hbnkgJiYgIWZvcmNlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmFwcGx5KGNoYW5nZXMpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaXplLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMuYXBwbHkoY2hhbmdlcyk7XG4gICAgICAgICAgICB0aGlzLm9uUmVzaXplKHRydWUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0ZXh0LCBzY3JvbGxpbmcgYW5kIHJlc2l6ZSBjaGFuZ2VzIGNhbiBjYXVzZSB0aGUgdmlldyBwb3J0IHNpemUgdG8gY2hhbmdlXG4gICAgICAgIGlmIChjaGFuZ2VzLmZ1bGwgfHwgY2hhbmdlcy5zaXplIHx8IGNoYW5nZXMudGV4dCB8fCBjaGFuZ2VzLmxpbmVzIHx8IGNoYW5nZXMuc2Nyb2xsKSB7XG4gICAgICAgICAgICBjaGFuZ2VzLmFwcGx5KHRoaXMuY29tcHV0ZUxheWVyQ29uZmlnKCkpO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJhcigpO1xuXG4gICAgICAgICAgICBEb21IZWxwZXIudHJhbnNsYXRlKHRoaXMucmVuZGVyZXIuY29udGVudCwgMCwgLXRoaXMubGF5ZXJDb25maWcub2Zmc2V0KTtcblxuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucmVuZGVyZXIuY29udGVudC5zdHlsZSwgJ3dpZHRoJywgYCR7dGhpcy5sYXllckNvbmZpZy53aWR0aH1weGApO1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucmVuZGVyZXIuY29udGVudC5zdHlsZSwgJ2hlaWdodCcsIGAke3RoaXMubGF5ZXJDb25maWcuaGVpZ2h0fXB4YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmdWxsXG4gICAgICAgIGlmIChjaGFuZ2VzLmZ1bGwpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRnVsbCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzY3JvbGxpbmdcbiAgICAgICAgaWYgKGNoYW5nZXMuc2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclNjcm9sbChjaGFuZ2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyVGV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuY3Vyc29yKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckN1cnNvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubWFya2VyIHx8IGNoYW5nZXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYSByZXNpemUgb2YgdGhlIGVkaXRvclxuICAgICAqKi9cbiAgICBvblJlc2l6ZShmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5jb250YWluZXIuY2xpZW50SGVpZ2h0IHx8IHRoaXMuY29udGFpbmVyLnNjcm9sbEhlaWdodDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbnRhaW5lci5jbGllbnRXaWR0aCB8fCB0aGlzLmNvbnRhaW5lci5zY3JvbGxXaWR0aDtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMudXBkYXRlQ2FjaGVkU2l6ZShmb3JjZSwgd2lkdGgsIGhlaWdodCk7XG4gICAgICAgIGNoYW5nZXMuYXBwbHkodGhpcy5jaGFuZ2VzKTtcblxuICAgICAgICBpZiAoZm9yY2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2hhbmdlcyhjaGFuZ2VzLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9vcC5zY2hlZHVsZShjaGFuZ2VzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbEJhci5zY3JvbGxUb3AgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJzIGEgcGFydGlhbCB1cGRhdGUgb2YgdGhlIHRleHQsIGZyb20gdGhlIHJhbmdlIGdpdmVuIGJ5IHRoZSB0d28gcGFyYW1ldGVycy5cbiAgICAgKiovXG4gICAgdXBkYXRlTGluZXMoZmlyc3RSb3c6IG51bWJlciwgbGFzdFJvdzogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlTGluZXMoZmlyc3RSb3csIGxhc3RSb3cpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNhY2hlZFNpemUoZm9yY2U6IGJvb2xlYW4sIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogUmVuZGVyQ2hhbmdlc01vZGVsIHtcbiAgICAgICAgaWYgKHdpZHRoICYmIChmb3JjZSB8fCB0aGlzLnNpemUud2lkdGggIT09IHdpZHRoKSkge1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuc2Nyb2xsZXIuc3R5bGUsICdsZWZ0JywgMCk7XG4gICAgICAgICAgICB0aGlzLnNpemUuc2Nyb2xsZXJXaWR0aCA9IE1hdGgubWF4KDAsIHRoaXMuY29udGFpbmVyLnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGggLSB0aGlzLnNjcm9sbEJhci53aWR0aCk7XG4gICAgICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5zY3JvbGxlci5zdHlsZSwgJ3JpZ2h0JywgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2hhbmdlcyA9IG5ldyBSZW5kZXJDaGFuZ2VzTW9kZWwoKTtcbiAgICAgICAgaWYgKGhlaWdodCAmJiAoZm9yY2UgfHwgdGhpcy5zaXplLmhlaWdodCAhPT0gaGVpZ2h0KSkge1xuICAgICAgICAgICAgdGhpcy5zaXplLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgICAgIGNoYW5nZXMuc2l6ZSA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCA9IHRoaXMuc2l6ZS5oZWlnaHQ7XG4gICAgICAgICAgICBjaGFuZ2VzLnNjcm9sbCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2lkdGggJiYgKGZvcmNlIHx8IHRoaXMuc2l6ZS53aWR0aCAhPT0gd2lkdGgpKSB7XG4gICAgICAgICAgICB0aGlzLnNpemUud2lkdGggPSB3aWR0aDtcbiAgICAgICAgICAgIGNoYW5nZXMuc2l6ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNpemUuZGlydHkgPSAhd2lkdGggfHwgIWhlaWdodDtcblxuICAgICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBtb3ZlVGV4dEFyZWFUb0N1cnNvcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb3VzZVByZXNzZWQgfHwgIXRoaXMudGV4dGFyZWEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJzb3JQb3NpdGlvbiA9IHRoaXMuY3Vyc29yTGF5ZXIuY3Vyc29yUG9zaXRpb247XG4gICAgICAgIGlmICghY3Vyc29yUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvc1RvcCA9IGN1cnNvclBvc2l0aW9uLnBhZ2VZIC0gdGhpcy5sYXllckNvbmZpZy5vZmZzZXQ7XG4gICAgICAgIGlmIChwb3NUb3AgPCAwIHx8IHBvc1RvcCA+IHRoaXMubGF5ZXJDb25maWcuaGVpZ2h0IC0gdGhpcy5yZW5kZXJlci50ZXh0YXJlYVNpemUuaGVpZ2h0KSB7XG4gICAgICAgICAgICBEb21IZWxwZXIudHJhbnNsYXRlKHRoaXMudGV4dGFyZWEsIDAsIDApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudGV4dGFyZWEuc3R5bGUsICdoZWlnaHQnLCBgJHt0aGlzLnJlbmRlcmVyLnRleHRhcmVhU2l6ZS5oZWlnaHR9cHhgKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudGV4dGFyZWEuc3R5bGUsICd3aWR0aCcsIGAke3RoaXMucmVuZGVyZXIudGV4dGFyZWFTaXplLndpZHRofXB4YCk7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUoXG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhLFxuICAgICAgICAgICAgTWF0aC5taW4oY3Vyc29yUG9zaXRpb24ucGFnZVgsIHRoaXMuc2l6ZS5zY3JvbGxlcldpZHRoIC0gdGhpcy5yZW5kZXJlci50ZXh0YXJlYVNpemUud2lkdGgpLFxuICAgICAgICAgICAgTWF0aC5taW4ocG9zVG9wLCB0aGlzLnNpemUuaGVpZ2h0IC0gdGhpcy5yZW5kZXJlci50ZXh0YXJlYVNpemUuaGVpZ2h0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldFNlc3Npb24oc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnNldFNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgIHRoaXMuZWRnZXNMYXllci5zZXRTZXNzaW9uKHNlc3Npb24pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgIHRoaXMuc2Nyb2xsQmFyLnNjcm9sbFRvcCA9IG51bGw7XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0aW9uKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnVwZGF0ZVNlbGVjdGlvbihyYW5nZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYSBmdWxsIHVwZGF0ZSBvZiB0aGUgdGV4dCwgZm9yIGFsbCB0aGUgcm93cy5cbiAgICAgKiovXG4gICAgdXBkYXRlVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci51cGRhdGVUZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYSBmdWxsIHVwZGF0ZSBvZiBhbGwgdGhlIGxheWVycywgZm9yIGFsbCB0aGUgcm93cy5cbiAgICAgKiovXG4gICAgdXBkYXRlRnVsbChmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci51cGRhdGVGdWxsKGZvcmNlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlQ3Vyc29yKCk7XG4gICAgfVxuXG4gICAgc2Nyb2xsU2VsZWN0aW9uSW50b1ZpZXcoYW5jaG9yOiBQb2ludCwgbGVhZDogUG9pbnQsIG9mZnNldD86IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBmaXJzdCBzY3JvbGwgYW5jaG9yIGludG8gdmlldyB0aGVuIHNjcm9sbCBsZWFkIGludG8gdmlld1xuICAgICAgICB0aGlzLnNjcm9sbEN1cnNvckludG9WaWV3KGFuY2hvciwgb2Zmc2V0KTtcbiAgICAgICAgdGhpcy5zY3JvbGxDdXJzb3JJbnRvVmlldyhsZWFkLCBvZmZzZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNjcm9sbHMgdGhlIGN1cnNvciBpbnRvIHRoZSBmaXJzdCB2aXNpYmlsZSBhcmVhIG9mIHRoZSBlZGl0b3JcbiAgICAgKiovXG4gICAgc2Nyb2xsQ3Vyc29ySW50b1ZpZXcoY3Vyc29yPzogUG9pbnQsIG9mZnNldD86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmN1cnNvckxheWVyLmdldFBpeGVsUG9zaXRpb24oY3Vyc29yKTtcbiAgICAgICAgbGV0IHRvcCA9IHBvc2l0aW9uLnBhZ2VZICsgdGhpcy5zY3JvbGxUb3A7XG5cbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsVG9wID4gdG9wKSB7XG4gICAgICAgICAgICBpZiAob2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgdG9wIC09IG9mZnNldCAqIHRoaXMuY29udGFpbmVyLnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXNzaW9uLnNldFNjcm9sbFRvcCh0b3ApO1xuICAgICAgICAgICAgdGhpcy5sb29wLnNjaGVkdWxlKHsgc2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2Nyb2xsVG9wICsgdGhpcy5jb250YWluZXIuc2Nyb2xsSGVpZ2h0IDwgdG9wICsgcG9zaXRpb24ubGluZUhlaWdodCkge1xuICAgICAgICAgICAgaWYgKG9mZnNldCkge1xuICAgICAgICAgICAgICAgIHRvcCArPSBvZmZzZXQgKiB0aGlzLmNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2Vzc2lvbi5zZXRTY3JvbGxUb3AodG9wICsgcG9zaXRpb24ubGluZUhlaWdodCAtIHRoaXMuY29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gICAgICAgICAgICB0aGlzLmxvb3Auc2NoZWR1bGUoeyBzY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGxzIHRoZSBlZGl0b3IgdG8gdGhlIHkgcGl4ZWwgaW5kaWNhdGVkLlxuICAgICAqKi9cbiAgICBzY3JvbGxUbyhzY3JvbGxUb3A6IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBhZnRlciBjYWxsaW5nIHNjcm9sbEJhci5zZXRTY3JvbGxUb3BcbiAgICAgICAgLy8gc2Nyb2xsYmFyIHNlbmRzIHVzIGV2ZW50IHdpdGggc2FtZSBzY3JvbGxUb3AuIGlnbm9yZSBpdFxuICAgICAgICBpZiAodGhpcy5zY3JvbGxUb3AgPT09IHNjcm9sbFRvcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb29wLnNjaGVkdWxlKHsgc2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGxzIHRoZSBlZGl0b3IgYWNyb3NzIHktYXhlLlxuICAgICAqKi9cbiAgICBzY3JvbGxCeShkZWx0YVk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIWRlbHRhWSB8fCAhdGhpcy5zY3JvbGxCYXIuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNlc3Npb24uc2V0U2Nyb2xsVG9wKHRoaXMucmVuZGVyZXIuc2Vzc2lvbi5zY3JvbGxUb3AgKyBkZWx0YVkpO1xuICAgIH1cblxuICAgIHNjcmVlblRvVGV4dENvb3JkaW5hdGVzKHg6IG51bWJlciwgeTogbnVtYmVyKTogUG9pbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5zY3JlZW5Ub1RleHRDb29yZGluYXRlcyh4LCB5KTtcbiAgICB9XG5cbiAgICBzaG93Q3Vyc29yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3dDdXJzb3IoKTtcbiAgICB9XG5cbiAgICBoaWRlQ3Vyc29yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmhpZGVDdXJzb3IoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbEJhci5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3Njcm9sbCcpO1xuICAgICAgICBEb21IZWxwZXIucmVtb3ZlRWxlbWVudCh0aGlzLnNjcm9sbEJhci5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5lZGdlc0xheWVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlTGF5ZXJDb25maWcoKTogUmVuZGVyQ2hhbmdlc01vZGVsIHtcbiAgICAgICAgY29uc3QgcGFnZXNXcmFwID0gdGhpcy5yZW5kZXJlci5zZXNzaW9uLnBhZ2VzV3JhcDtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gcGFnZXNXcmFwLmFsbFBhZ2VzSGVpZ2h0O1xuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBwYWdlc1dyYXAubWluSGVpZ2h0O1xuICAgICAgICBjb25zdCBzY3JvbGxIaWRkZW4gPSBtYXhIZWlnaHQgPCB0aGlzLnNpemUuc2Nyb2xsZXJIZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgbmV3U2Nyb2xsVG9wID0gTWF0aC5tYXgoTWF0aC5taW4odGhpcy5zY3JvbGxUb3AsIG1heEhlaWdodCAtIHRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCksIDApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNlc3Npb24uc2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IG5ld1Njcm9sbFRvcDtcblxuICAgICAgICBjb25zdCBjYW5TY3JvbGwgPSAhc2Nyb2xsSGlkZGVuICYmIHRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCAtIG1heEhlaWdodCA8IDA7XG4gICAgICAgIGNvbnN0IHNjcm9sbENoYW5nZWQgPSB0aGlzLmNhblNjcm9sbCAhPT0gY2FuU2Nyb2xsO1xuICAgICAgICBpZiAoc2Nyb2xsQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5jYW5TY3JvbGwgPSBjYW5TY3JvbGw7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhci5zZXRWaXNpYmxlKGNhblNjcm9sbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGFuZ2VzID0gc2Nyb2xsQ2hhbmdlZFxuICAgICAgICAgICAgPyB0aGlzLnVwZGF0ZUNhY2hlZFNpemUodHJ1ZSwgdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0KVxuICAgICAgICAgICAgOiBuZXcgUmVuZGVyQ2hhbmdlc01vZGVsKHsgc2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICBjb25zdCB2aXNpYmxlUmFuZ2UgPSBwYWdlc1dyYXAuZ2V0VmlzaWJsZVJhbmdlKHRoaXMuc2Nyb2xsVG9wLCB0aGlzLnNpemUuc2Nyb2xsZXJIZWlnaHQpO1xuICAgICAgICB0aGlzLmxheWVyQ29uZmlnID0ge1xuICAgICAgICAgICAgd2lkdGg6IHRoaXMucmVuZGVyZXIudGV4dExheWVyLmVsZW1lbnQuY2xpZW50V2lkdGggKyBwYWdlc1dyYXAuZG9jdW1lbnRNYXJnaW4ubGVmdCArIHBhZ2VzV3JhcC5kb2N1bWVudE1hcmdpbi5yaWdodCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5zaXplLnNjcm9sbGVySGVpZ2h0LFxuICAgICAgICAgICAgY29udGVudFJhbmdlOiBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiB2aXNpYmxlUmFuZ2Uuc3RhcnRQYXJhZ3JhcGgsIGVuZDogdmlzaWJsZVJhbmdlLmVuZFBhcmFncmFwaCB9KSxcbiAgICAgICAgICAgIG1pbkhlaWdodCxcbiAgICAgICAgICAgIG1heEhlaWdodCxcbiAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgIHZpc2libGVSYW5nZSxcbiAgICAgICAgICAgIHNjcm9sbFRvcDogdGhpcy5yZW5kZXJlci5zZXNzaW9uLnNjcm9sbFRvcCxcbiAgICAgICAgICAgIHBhZ2VzOiB2aXNpYmxlUmFuZ2UucGFnZXNcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNjcm9sbEJhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JvbGxCYXIuc2Nyb2xsSGVpZ2h0ID0gdGhpcy5sYXllckNvbmZpZy5tYXhIZWlnaHQ7XG4gICAgICAgIHRoaXMuc2Nyb2xsQmFyLnNldFNjcm9sbFRvcCh0aGlzLnNjcm9sbFRvcCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTY3JvbGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JvbGxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnNjcm9sbGVyLmNsYXNzTmFtZSA9ICdhY2Utc2Nyb2xsZXInO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNjcm9sbGVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxheWVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGdlc0xheWVyID0gbmV3IEVkZ2VzTGF5ZXIodGhpcy5yZW5kZXJlci5jb250ZW50LCB0aGlzLmVkaXRvclNlcnZpY2UpO1xuICAgICAgICB0aGlzLnBhZ2VzTGF5ZXIgPSBuZXcgUGFnZXNMYXllcih0aGlzLnJlbmRlcmVyLmNvbnRlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbEJhciA9IG5ldyBTY3JvbGxCYXIodGhpcy5jb250YWluZXIucGFyZW50RWxlbWVudCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsQmFyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIChldmVudDogeyBkYXRhOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXNzaW9uLnNldFNjcm9sbFRvcChldmVudC5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSZW5kZXJMb29wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvb3AgPSBuZXcgUmVuZGVyTG9vcChjaGFuZ2VzID0+IHRoaXMucmVuZGVyQ2hhbmdlcyhjaGFuZ2VzKSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubG9vcCA9IHRoaXMubG9vcDtcbiAgICAgICAgdGhpcy5sb29wLnNjaGVkdWxlKHsgZnVsbDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlclNjcm9sbChjaGFuZ2VzOiBSZW5kZXJDaGFuZ2VzTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnVwZGF0ZSh0aGlzLmxheWVyQ29uZmlnKTtcbiAgICAgICAgaWYgKGNoYW5nZXMudGV4dCB8fCBjaGFuZ2VzLmxpbmVzKSB7XG4gICAgICAgICAgICB0aGlzLmVkZ2VzTGF5ZXIudXBkYXRlKHRoaXMubGF5ZXJDb25maWcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci50ZXh0TGF5ZXIudXBkYXRlKHRoaXMubGF5ZXJDb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZGdlc0xheWVyLnNjcm9sbFBhZ2VzKHRoaXMubGF5ZXJDb25maWcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci50ZXh0TGF5ZXIuc2Nyb2xsTGluZXModGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNlbGVjdGlvbkxheWVyLnVwZGF0ZSh0aGlzLmxheWVyQ29uZmlnKTtcbiAgICAgICAgaWYgKCF0aGlzLnJlbmRlcmVyLmN1cnNvckxheWVyLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJzb3JMYXllci51cGRhdGUodGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIHRoaXMubW92ZVRleHRBcmVhVG9DdXJzb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckZ1bGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZXNMYXllci51cGRhdGUodGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIHRoaXMuZWRnZXNMYXllci51cGRhdGUodGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyRnVsbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnVwZGF0ZSh0aGlzLmxheWVyQ29uZmlnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXJUZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyQ3Vyc29yKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0TGF5ZXJDb25maWcoKTogSUxheWVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLFxuICAgICAgICAgICAgY29udGVudFJhbmdlOiBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiAwLCBlbmQ6IDAgfSksXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IDEsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IDEsXG4gICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDEsXG4gICAgICAgICAgICBzY3JvbGxUb3A6IDAsXG4gICAgICAgICAgICBwYWdlczogW10sXG4gICAgICAgICAgICB2aXNpYmxlUmFuZ2U6IHtcbiAgICAgICAgICAgICAgICBzdGFydFBhcmFncmFwaDogMCxcbiAgICAgICAgICAgICAgICBzdGFydExpbmU6IDAsXG4gICAgICAgICAgICAgICAgc3RhcnRTY3JlZW5MaW5lOiAwLFxuICAgICAgICAgICAgICAgIHN0YXJ0U2NyZWVuRnVsbExpbmU6IDAsXG4gICAgICAgICAgICAgICAgZW5kUGFyYWdyYXBoOiAwLFxuICAgICAgICAgICAgICAgIGVuZExpbmU6IDAsXG4gICAgICAgICAgICAgICAgZW5kU2NyZWVuTGluZTogMCxcbiAgICAgICAgICAgICAgICBlbmRTY3JlZW5GdWxsTGluZTogMFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ElementDataModel } from '../models/element-data.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/button";
|
|
6
|
+
import * as i3 from "@angular/material/icon";
|
|
7
|
+
import * as i4 from "@angular/material/tooltip";
|
|
8
|
+
export class ElementToolbarComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.isDisabled = false;
|
|
11
|
+
this.createElement = new EventEmitter();
|
|
12
|
+
this.isHide = false;
|
|
13
|
+
}
|
|
14
|
+
changeVisibility() {
|
|
15
|
+
this.isHide = !this.isHide;
|
|
16
|
+
}
|
|
17
|
+
async create(model) {
|
|
18
|
+
const data = await model.factoryMethod();
|
|
19
|
+
const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
|
|
20
|
+
this.createElement.emit(element);
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ElementToolbarComponent, selector: "app-element-toolbar", inputs: { isDisabled: "isDisabled", elements: "elements" }, outputs: { createElement: "createElement" }, ngImport: i0, template: "<button\n class=\"menu\"\n mat-raised-button\n (click)=\"changeVisibility()\">\n <div class=\"icon\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-menu-circle\"></mat-icon>\n </div>\n</button>\n<div\n class=\"menu-items\"\n *ngIf=\"!isHide\">\n <div class=\"empty-place\"></div>\n <button\n *ngFor=\"let element of elements\"\n mat-icon-button\n matTooltip=\"{{ element.name }}\"\n matTooltipPosition=\"left\"\n (click)=\"create(element)\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{position:absolute}.mat-mdc-button.mat-mdc-button-base,.mat-mdc-raised-button.mat-mdc-button-base,.mat-mdc-unelevated-button.mat-mdc-button-base,.mat-mdc-outlined-button.mat-mdc-button-base{padding-right:21px}.menu-items{z-index:1;top:24px;position:absolute;max-width:50px;display:flex;flex-direction:column;border-radius:0 0 20px 20px;box-shadow:1px 2px 5px #0000001a}.menu-items .empty-place{height:24px}.menu{border-radius:30px 0 0 30px;min-width:56px;width:56px;height:48px;z-index:2}.menu .icon mat-icon{height:22px;width:24px;font-size:24px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementToolbarComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'app-element-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"menu\"\n mat-raised-button\n (click)=\"changeVisibility()\">\n <div class=\"icon\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-menu-circle\"></mat-icon>\n </div>\n</button>\n<div\n class=\"menu-items\"\n *ngIf=\"!isHide\">\n <div class=\"empty-place\"></div>\n <button\n *ngFor=\"let element of elements\"\n mat-icon-button\n matTooltip=\"{{ element.name }}\"\n matTooltipPosition=\"left\"\n (click)=\"create(element)\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{position:absolute}.mat-mdc-button.mat-mdc-button-base,.mat-mdc-raised-button.mat-mdc-button-base,.mat-mdc-unelevated-button.mat-mdc-button-base,.mat-mdc-outlined-button.mat-mdc-button-base{padding-right:21px}.menu-items{z-index:1;top:24px;position:absolute;max-width:50px;display:flex;flex-direction:column;border-radius:0 0 20px 20px;box-shadow:1px 2px 5px #0000001a}.menu-items .empty-place{height:24px}.menu{border-radius:30px 0 0 30px;min-width:56px;width:56px;height:48px;z-index:2}.menu .icon mat-icon{height:22px;width:24px;font-size:24px}\n"] }]
|
|
28
|
+
}], propDecorators: { isDisabled: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], elements: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], createElement: [{
|
|
33
|
+
type: Output
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZWxlbWVudC10b29sYmFyL2VsZW1lbnQtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2VsZW1lbnQtdG9vbGJhci9lbGVtZW50LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBU2hFLE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFPYSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSWxCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFL0QsV0FBTSxHQUFHLEtBQUssQ0FBQztLQVdsQjtJQVRHLGdCQUFnQjtRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQTJCO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OEdBakJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG9LQ1hwQyxxc0JBMEJBOzsyRkRmYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVsZW1lbnREYXRhTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZWxlbWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1lbGVtZW50LXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGVtZW50LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZW1lbnQtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRUb29sYmFyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBlbGVtZW50czogRXh0ZXJuYWxFbGVtZW50TW9kZWxbXTtcblxuICAgIEBPdXRwdXQoKSBjcmVhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50RGF0YU1vZGVsPigpO1xuXG4gICAgaXNIaWRlID0gZmFsc2U7XG5cbiAgICBjaGFuZ2VWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSGlkZSA9ICF0aGlzLmlzSGlkZTtcbiAgICB9XG5cbiAgICBhc3luYyBjcmVhdGUobW9kZWw6IEV4dGVybmFsRWxlbWVudE1vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBtb2RlbC5mYWN0b3J5TWV0aG9kKCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBuZXcgRWxlbWVudERhdGFNb2RlbChtb2RlbC50eXBlLCBkYXRhLndpZHRoLCBkYXRhLmhlaWdodCwgZGF0YS5ndWlkKTtcbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50LmVtaXQoZWxlbWVudCk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIGNsYXNzPVwibWVudVwiXG4gICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAoY2xpY2spPVwiY2hhbmdlVmlzaWJpbGl0eSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tbWVudS1jaXJjbGVcIj48L21hdC1pY29uPlxuICAgIDwvZGl2PlxuPC9idXR0b24+XG48ZGl2XG4gICAgY2xhc3M9XCJtZW51LWl0ZW1zXCJcbiAgICAqbmdJZj1cIiFpc0hpZGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHktcGxhY2VcIj48L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIG1hdFRvb2x0aXA9XCJ7eyBlbGVtZW50Lm5hbWUgfX1cIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0ZShlbGVtZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgZm9udEljb249XCJ7eyBlbGVtZW50Lmljb24gfX1cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class ExternalElementService {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.elements = [];
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLHNCQUFzQjtJQUFuQztRQUNJLGFBQVEsR0FBMkIsRUFBRSxDQUFDO0lBQzFDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZXh0ZXJuYWwtZWxlbWVudC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxFbGVtZW50SW50ZXJmYWNlIHtcbiAgICBlbGVtZW50czogRXh0ZXJuYWxFbGVtZW50TW9kZWxbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEV4dGVybmFsRWxlbWVudFNlcnZpY2UgaW1wbGVtZW50cyBFeHRlcm5hbEVsZW1lbnRJbnRlcmZhY2Uge1xuICAgIGVsZW1lbnRzOiBFeHRlcm5hbEVsZW1lbnRNb2RlbFtdID0gW107XG59XG4iXX0=
|
package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const EXTERNAL_ELEMENT_SIDENAV = new InjectionToken('EXTERNAL_ELEMENT_SIDENAV');
|
|
3
|
+
export const EXTERNAL_ELEMENT_SERVICE = new InjectionToken('EXTERNAL_ELEMENT_SERVICE');
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudHMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLWVsZW1lbnRzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLL0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXVCLDBCQUEwQixDQUFDLENBQUM7QUFFN0csTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQTJCLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2V4dGVybmFsLWVsZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlcm5hbFNpZGVuYXZNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2V4dGVybmFsLXNpZGVuYXYubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgRVhURVJOQUxfRUxFTUVOVF9TSURFTkFWID0gbmV3IEluamVjdGlvblRva2VuPEV4dGVybmFsU2lkZW5hdk1vZGVsPignRVhURVJOQUxfRUxFTUVOVF9TSURFTkFWJyk7XG5cbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9FTEVNRU5UX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXh0ZXJuYWxFbGVtZW50SW50ZXJmYWNlPignRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFJyk7XG4iXX0=
|
package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtc2lkZW5hdi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLXNpZGVuYXYuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsU2lkZW5hdkludGVyZmFjZSB7XG4gICAgbW9kZWw6IEVsZW1lbnRNb2RlbDtcblxuICAgIGNvbnRlbnRXaWR0aDogbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { BaseNoderComponent } from '../shared/abstract/base.component';
|
|
3
|
+
import { EditorService } from '../../interaction/editor.service';
|
|
4
|
+
import { ElementModel } from '../../../../models/generated/element.model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class NoderExternalComponent extends BaseNoderComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.editorService = inject(EditorService);
|
|
10
|
+
}
|
|
11
|
+
focus() {
|
|
12
|
+
super.focus();
|
|
13
|
+
if (this.editorService.isViewOnly) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this.editorService.toggleSidenav(true, this.sidenavComponent, this.content, this.contentWidth);
|
|
17
|
+
}
|
|
18
|
+
blur() {
|
|
19
|
+
super.blur();
|
|
20
|
+
if (this.editorService.isViewOnly) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.editorService.toggleSidenav(false, this.sidenavComponent, this.content, this.contentWidth);
|
|
24
|
+
}
|
|
25
|
+
changeElementHeight(height) {
|
|
26
|
+
if (this._height !== height) {
|
|
27
|
+
this.editorService.changeElementStyle(new ElementModel({ ...this.content, height }));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
changeElementWidth(width) {
|
|
31
|
+
if (this._width !== width) {
|
|
32
|
+
this.editorService.changeElementStyle(new ElementModel({ ...this.content, width }));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderExternalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: NoderExternalComponent, usesInheritance: true, ngImport: i0 }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderExternalComponent, decorators: [{
|
|
39
|
+
type: Directive
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFJMUUsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxrQkFBa0I7SUFEdkU7O1FBTXVCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBNkI1RDtJQTNCWSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEY7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO0lBQ0wsQ0FBQzs4R0FqQ2lCLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZU5vZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2SW50ZXJmYWNlIH0gZnJvbSAnLi9leHRlcm5hbC1zaWRlbmF2LmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5vZGVyRXh0ZXJuYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQge1xuICAgIG92ZXJyaWRlIGNvbnRlbnQ6IEVsZW1lbnRNb2RlbDtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzaWRlbmF2Q29tcG9uZW50OiBUeXBlPEV4dGVybmFsU2lkZW5hdkludGVyZmFjZT47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yU2VydmljZSA9IGluamVjdChFZGl0b3JTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UudG9nZ2xlU2lkZW5hdih0cnVlLCB0aGlzLnNpZGVuYXZDb21wb25lbnQsIHRoaXMuY29udGVudCwgdGhpcy5jb250ZW50V2lkdGgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmJsdXIoKTtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoZmFsc2UsIHRoaXMuc2lkZW5hdkNvbXBvbmVudCwgdGhpcy5jb250ZW50LCB0aGlzLmNvbnRlbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgY2hhbmdlRWxlbWVudEhlaWdodChoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faGVpZ2h0ICE9PSBoZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgaGVpZ2h0IH0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl93aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgd2lkdGggfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class ElementDataModel {
|
|
2
|
+
constructor(type, width, height, guid) {
|
|
3
|
+
this.type = type;
|
|
4
|
+
this.width = width;
|
|
5
|
+
this.height = height;
|
|
6
|
+
this.guid = guid;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZWxlbWVudC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBbUIsSUFBWSxFQUFTLEtBQWEsRUFBUyxNQUFjLEVBQVMsSUFBWTtRQUE5RSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUcsQ0FBQztDQUN4RyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbGVtZW50RGF0YU1vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZTogbnVtYmVyLCBwdWJsaWMgd2lkdGg6IG51bWJlciwgcHVibGljIGhlaWdodDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class ExternalElementModel {
|
|
2
|
+
constructor(name, icon, type, componentType, factoryMethod) {
|
|
3
|
+
this.name = name;
|
|
4
|
+
this.icon = icon;
|
|
5
|
+
this.type = type;
|
|
6
|
+
this.componentType = componentType;
|
|
7
|
+
this.factoryMethod = factoryMethod;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNXLElBQVksRUFDWixJQUFZLEVBQ1osSUFBWSxFQUNaLGFBQXVDLEVBQ3ZDLGFBQTJGO1FBSjNGLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBOEU7SUFDbkcsQ0FBQztDQUNQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxFbGVtZW50TW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgaWNvbjogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgdHlwZTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgY29tcG9uZW50VHlwZTogVHlwZTxCYXNlTm9kZXJDb21wb25lbnQ+LFxuICAgICAgICBwdWJsaWMgZmFjdG9yeU1ldGhvZDogKCkgPT4gUHJvbWlzZTx7IGd1aWQ6IHN0cmluZzsgdHlwZTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9PlxuICAgICkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class ExternalSidenavModel {
|
|
2
|
+
constructor(fields) {
|
|
3
|
+
this.autoFocus = false;
|
|
4
|
+
this.hasBackdrop = false;
|
|
5
|
+
this.position = 'end';
|
|
6
|
+
this.mode = 'over';
|
|
7
|
+
if (fields) {
|
|
8
|
+
this.autoFocus = fields.autoFocus ?? this.autoFocus;
|
|
9
|
+
this.hasBackdrop = fields.hasBackdrop ?? this.hasBackdrop;
|
|
10
|
+
this.position = fields.position ?? this.position;
|
|
11
|
+
this.mode = fields.mode ?? this.mode;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtc2lkZW5hdi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLXNpZGVuYXYubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLG9CQUFvQjtJQVM3QixZQUFtQixNQUFzQztRQVJ6RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGFBQVEsR0FBb0IsS0FBSyxDQUFDO1FBRWxDLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBRzNCLElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDeEM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXh0ZXJuYWxTaWRlbmF2TW9kZWwge1xuICAgIGF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gICAgaGFzQmFja2Ryb3AgPSBmYWxzZTtcblxuICAgIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnZW5kJztcblxuICAgIG1vZGU6ICdvdmVyJyB8ICdzaWRlJyA9ICdvdmVyJztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmaWVsZHM/OiBQYXJ0aWFsPEV4dGVybmFsU2lkZW5hdk1vZGVsPikge1xuICAgICAgICBpZiAoZmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Gb2N1cyA9IGZpZWxkcy5hdXRvRm9jdXMgPz8gdGhpcy5hdXRvRm9jdXM7XG4gICAgICAgICAgICB0aGlzLmhhc0JhY2tkcm9wID0gZmllbGRzLmhhc0JhY2tkcm9wID8/IHRoaXMuaGFzQmFja2Ryb3A7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gZmllbGRzLnBvc2l0aW9uID8/IHRoaXMucG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBmaWVsZHMubW9kZSA/PyB0aGlzLm1vZGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|