@worktile/theia 17.4.2 → 17.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/components/action/prevent-default.mjs +3 -3
- package/esm2022/components/column-resize/column-resize-notifier.mjs +3 -3
- package/esm2022/components/column-resize/column-resize.directive.mjs +3 -3
- package/esm2022/components/column-resize/event-dispatcher.mjs +3 -3
- package/esm2022/components/column-resize/overlay-handle.component.mjs +3 -3
- package/esm2022/components/column-resize/resizing.store.mjs +3 -3
- package/esm2022/components/contextmenu/contextmenu.component.mjs +3 -3
- package/esm2022/components/conversion-hint/conversion-hint.component.mjs +3 -3
- package/esm2022/components/element/element.component.mjs +3 -3
- package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +3 -3
- package/esm2022/components/listbox/listbox.mjs +9 -9
- package/esm2022/components/plugin-menu/plugin-menu.component.mjs +3 -3
- package/esm2022/components/table-select/table-select.component.mjs +3 -3
- package/esm2022/components/template/template.component.mjs +3 -3
- package/esm2022/components/text/text.component.mjs +3 -3
- package/esm2022/components/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +3 -3
- package/esm2022/components/toolbar-group/toolbar-group.component.mjs +3 -3
- package/esm2022/components/toolbar-item/toolbar-item.component.mjs +3 -3
- package/esm2022/core/toolbar-item/base-toolbar-item.mjs +6 -6
- package/esm2022/editor.component.mjs +3 -3
- package/esm2022/editor.module.mjs +4 -4
- package/esm2022/interfaces/view-base.mjs +3 -3
- package/esm2022/pipes.mjs +9 -9
- package/esm2022/plugins/blockquote/blockquote.component.mjs +3 -3
- package/esm2022/plugins/code/code.component.mjs +3 -3
- package/esm2022/plugins/color/toolbar-item.component.mjs +3 -3
- package/esm2022/plugins/hr/hr.component.mjs +3 -3
- package/esm2022/plugins/image/image.component.mjs +3 -3
- package/esm2022/plugins/inline-code/inline-code.component.mjs +3 -3
- package/esm2022/plugins/link/edit/link-edit.component.mjs +3 -3
- package/esm2022/plugins/link/hover/link-hover.component.mjs +3 -3
- package/esm2022/plugins/link/link.component.mjs +6 -6
- package/esm2022/plugins/list/components/bulleted-list.component.mjs +3 -3
- package/esm2022/plugins/list/components/list-item.component.mjs +3 -3
- package/esm2022/plugins/list/components/numbered-list.component.mjs +3 -3
- package/esm2022/plugins/list/list.plugin.mjs +2 -2
- package/esm2022/plugins/mention/suggestion.component.mjs +3 -3
- package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +3 -3
- package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +3 -3
- package/esm2022/plugins/table/components/row/row.component.mjs +3 -3
- package/esm2022/plugins/table/components/table.component.mjs +3 -3
- package/esm2022/plugins/table/components/td/td.component.mjs +3 -3
- package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +3 -3
- package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +3 -3
- package/esm2022/plugins/table/table.pipe.mjs +9 -9
- package/esm2022/plugins/table/table.plugin.mjs +3 -4
- package/esm2022/plugins/table/table.service.mjs +3 -3
- package/esm2022/plugins/table/table.store.mjs +3 -3
- package/esm2022/plugins/table/toolbar-item.component.mjs +3 -3
- package/esm2022/plugins/todo-item/todo-item.component.mjs +3 -3
- package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +3 -3
- package/esm2022/services/context.service.mjs +3 -3
- package/esm2022/services/table-contextmenu.service.mjs +3 -3
- package/esm2022/services/toolbar.service.mjs +3 -3
- package/esm2022/test/basic/basic.component.mjs +3 -3
- package/esm2022/test/faker/tethys-icon-faker.mjs +3 -3
- package/fesm2022/worktile-theia.mjs +193 -194
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/interfaces/editor.d.ts +2 -2
- package/package.json +1 -1
- package/queries/is-range-across-blocks.d.ts +1 -1
|
@@ -28,7 +28,7 @@ import { moveListItemUp } from './transforms/move-list-item-up';
|
|
|
28
28
|
import { unwrapList } from './transforms/unwrap-list';
|
|
29
29
|
import { setClipboardDataByDom } from '../../utils';
|
|
30
30
|
export const withList = (editor) => {
|
|
31
|
-
const { insertBreak, deleteBackward, onKeydown,
|
|
31
|
+
const { insertBreak, deleteBackward, onKeydown, insertFragmentData, setFragmentData, renderElement } = editor;
|
|
32
32
|
const validLiChildrenTypes = getPluginOptions(editor, PluginKeys.list)?.validLiChildrenTypes ?? [];
|
|
33
33
|
const resetBlockTypesListRule = {
|
|
34
34
|
types: [ElementKinds.listItem],
|
|
@@ -299,4 +299,4 @@ export const createListPlugin = createPluginFactory({
|
|
|
299
299
|
],
|
|
300
300
|
options: listOptions
|
|
301
301
|
});
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L2xpc3QucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFD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QUFFLGFBQWE7WUFDbkIsUUFBUSxFQUFFLGVBQWUsQ0FBQyxZQUFZO1NBQ3pDO0tBQ0o7SUFDRCxPQUFPLEVBQUUsV0FBVztDQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRWRpdG9yLCBFbGVtZW50LCBOb2RlLCBQYXRoLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgT3JpZ2luRXZlbnQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcywgUGx1Z2luTWVudUljb25zLCBUaGVQbHVnaW5NZW51SXRlbVR5cGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBleHRyYWN0RnJhZ21lbnQgfSBmcm9tICcuLi8uLi91dGlscy9mcmFnbWVudCc7XG5pbXBvcnQgeyBUaGVCdWxsZXRlZExpc3QgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVsbGV0ZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTGlzdEl0ZW0gfSBmcm9tICcuL2NvbXBvbmVudHMvbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVOdW1iZXJlZExpc3QgfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVyZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdEVkaXRvciB9IGZyb20gJy4vbGlzdC5lZGl0b3InO1xuaW1wb3J0IHsgZ2V0TGlzdE5vcm1hbGl6ZXIgfSBmcm9tICcuL25vcm1hbGl6ZXJzL2dldC1saXN0LW5vcm1hbGl6ZXInO1xuaW1wb3J0IHsgb25LZXlEb3duTGlzdCB9IGZyb20gJy4vb24ta2V5LWRvd24tbGlzdCc7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbUVudHJ5IH0gZnJvbSAnLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xuaW1wb3J0IHsgZ2V0TGlzdFR5cGVzIH0gZnJvbSAnLi9xdWVyaWVzL2dldC1saXN0LXR5cGVzJztcbmltcG9ydCB7IGdldFN0YXJ0TGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LXN0YXJ0LWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBoYXNMaXN0SW5MaXN0SXRlbSwgaGFzU3RhYmxlTGlzdEluTGlzdEl0ZW0sIGhhc1N0YWJsZUxpc3RJdGVtIH0gZnJvbSAnLi9xdWVyaWVzL2hhcy1saXN0LWluLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBpc0luTGlzdCB9IGZyb20gJy4vcXVlcmllcy9pcy1pbi1saXN0JztcbmltcG9ydCB7IGlzTGlzdCB9IGZyb20gJy4vcXVlcmllcy9pcy1saXN0JztcbmltcG9ydCB7IGlzTGlzdE5lc3RlZCB9IGZyb20gJy4vcXVlcmllcy9pcy1saXN0LW5lc3RlZCc7XG5pbXBvcnQgeyBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydCB9IGZyb20gJy4vcXVlcmllcy9pcy1zZWxlY3Rpb24tYXQtbGlzdC1pdGVtLXN0YXJ0JztcbmltcG9ydCB7IGlzU2VsZWN0aW9uSW5TYW1lTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2VsZWN0aW9uLWluLXNhbWUtbGlzdC1pdGVtJztcbmltcG9ydCB7IGlzU2luZ2xlTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2luZ2xlLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBpbnNlcnRMaXN0RGF0YSB9IGZyb20gJy4vdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1kYXRhJztcbmltcG9ydCB7IGluc2VydExpc3RJdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2luc2VydC1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3QgfSBmcm9tICcuL3RyYW5zZm9ybXMvbW92ZS1saXN0LWl0ZW0tc3VibGlzdC1pdGVtcy10by1saXN0LWl0ZW0tc3VibGlzdCc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1VcCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS11cCc7XG5pbXBvcnQgeyB1bndyYXBMaXN0IH0gZnJvbSAnLi90cmFuc2Zvcm1zL3Vud3JhcC1saXN0JztcbmltcG9ydCB7IFdpdGhMaXN0T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgc2V0Q2xpcGJvYXJkRGF0YUJ5RG9tIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aExpc3QgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBpbnNlcnRCcmVhaywgZGVsZXRlQmFja3dhcmQsIG9uS2V5ZG93biwgaW5zZXJ0RGF0YSwgaW5zZXJ0RnJhZ21lbnREYXRhLCBzZXRGcmFnbWVudERhdGEsIHJlbmRlckVsZW1lbnQgfSA9IGVkaXRvcjtcblxuICAgIGNvbnN0IHZhbGlkTGlDaGlsZHJlblR5cGVzID0gZ2V0UGx1Z2luT3B0aW9uczxXaXRoTGlzdE9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5saXN0KT8udmFsaWRMaUNoaWxkcmVuVHlwZXMgPz8gW107XG5cbiAgICBjb25zdCByZXNldEJsb2NrVHlwZXNMaXN0UnVsZSA9IHtcbiAgICAgICAgdHlwZXM6IFtFbGVtZW50S2luZHMubGlzdEl0ZW1dLFxuICAgICAgICBkZWZhdWx0VHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCxcbiAgICAgICAgb25SZXNldDogKF9lZGl0b3I6IEVkaXRvcikgPT4gdW53cmFwTGlzdChfZWRpdG9yKVxuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0QnJlYWsgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG5cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNWb2lkID0gRWRpdG9yLmlzVm9pZChlZGl0b3IsIG5vZGUpO1xuICAgICAgICBpZiAoaXNWb2lkKSB7XG4gICAgICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpc3RFbnRyeSA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG4gICAgICAgIGlmIChsaXN0RW50cnkpIHtcbiAgICAgICAgICAgIGxldCBtb3ZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHsgbGlzdCwgbGlzdEl0ZW0gfSA9IGxpc3RFbnRyeTtcbiAgICAgICAgICAgIGNvbnN0IFtsaXN0SXRlbU5vZGUsIGxpc3RJdGVtUGF0aF0gPSBsaXN0SXRlbTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnNvciA9IGVkaXRvci5zZWxlY3Rpb24uZm9jdXM7XG4gICAgICAgICAgICBjb25zdCBpc1N0YXJ0ID0gRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBjdXJzb3IsIGxpc3RJdGVtUGF0aCk7XG5cbiAgICAgICAgICAgIC8vIGRlcHJlY2F0ZWRcbiAgICAgICAgICAgIC8vIOWmguaenOacieWtkOe6p1xuICAgICAgICAgICAgaWYgKGhhc0xpc3RJbkxpc3RJdGVtKGxpc3RJdGVtTm9kZSkpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBzZWxlY3Rpb24gaXMgYXQgdGhlIGVuZCBvZiBsaSxcbiAgICAgICAgICAgICAgICAgKiBpbnNlcnQgYmVsb3cgbGkgd2hlcmUgY2hpbGRyZW4gd2lsbCBiZSBtb3ZlZC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzRW5kKGVkaXRvciwgY3Vyc29yLCBsaXN0SXRlbVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5saXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCwgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhdDogUGF0aC5uZXh0KGxpc3RJdGVtUGF0aCksIHNlbGVjdDogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICog5aaC5p6c6YCJ5Yy65piv5ZyobGlzdEl0ZW3nmoTlvIDlpLTvvIzliJnlnKhsaXN0SXRlbeS4iuaWueaPkuWFpVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5saXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCwgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhdDogbGlzdEl0ZW1QYXRoIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIOWmguaenOmAieaLqeeahGxpc3RJdGVt5Li656m65YiZ5bCG5YW25ZCR5LiK56e75YqoXG4gICAgICAgICAgICBpZiAoaXNTdGFydCAmJiBUaGVRdWVyaWVzLmlzQmxvY2tBYm92ZUVtcHR5KGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICBtb3ZlZCA9IG1vdmVMaXN0SXRlbVVwKGVkaXRvciwgeyBsaXN0LCBsaXN0SXRlbSB9KTtcbiAgICAgICAgICAgICAgICBpZiAobW92ZWQpIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGlkUmVzZXQgPSBUaGVUcmFuc2Zvcm1zLm9uS2V5RG93blJlc2V0QmxvY2tUeXBlKHtcbiAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNldEJsb2NrVHlwZXNMaXN0UnVsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWRpY2F0ZTogKCkgPT4gIW1vdmVkICYmIGlzU3RhcnQgJiYgVGhlUXVlcmllcy5pc0Jsb2NrQWJvdmVFbXB0eShlZGl0b3IpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KShudWxsLCBlZGl0b3IpO1xuICAgICAgICAgICAgaWYgKGRpZFJlc2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFkZCBhIG5ldyBsaXN0IGl0ZW0gaWYgc2VsZWN0aW9uIGlzIGluIGEgTElTVF9JVEVNID4gcC50eXBlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIW1vdmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0ZWQgPSBpbnNlcnRMaXN0SXRlbShlZGl0b3IpO1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5zZXJ0QnJlYWsoKTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLnNldEZyYWdtZW50RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIsIG9yaWdpbkV2ZW50PzogT3JpZ2luRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgY29uc3QgW3N0YXJ0XSA9IEVkaXRvci5lZGdlcyhlZGl0b3IsIHNlbGVjdGlvbik7XG4gICAgICAgIGlmIChpc0luTGlzdChlZGl0b3IsIHN0YXJ0KSkge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREYXRhID0gZWRpdG9yLmdldEZyYWdtZW50KCk7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudEVsZW1lbnQgPSBmcmFnbWVudERhdGFbMF0gYXMgRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChnZXRMaXN0VHlwZXMoKS5pbmNsdWRlcyhmcmFnbWVudEVsZW1lbnQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydE5vZGVzID0gZ2V0U3RhcnRMaXN0SXRlbShbZnJhZ21lbnRFbGVtZW50LmNoaWxkcmVuWzBdXSBhcyBFbGVtZW50W10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gc3RhcnROb2Rlcy5jb25jYXQoKGZyYWdtZW50RWxlbWVudC5jaGlsZHJlbiBhcyBFbGVtZW50W10pLnNsaWNlKDEpKTtcbiAgICAgICAgICAgICAgICBsZXQgZnJhZ21lbnROb2RlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZnJhZ21lbnRFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0gYXMgTm9kZVtdO1xuICAgICAgICAgICAgICAgIGlmIChpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8g5LuF5LuF5aSN5Yi25YiX6KGo5Lit55qE5YaF5a65XG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50Tm9kZXMgPSBjaGlsZHJlblswXS5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGZyYWdtZW50Tm9kZXMuY29uY2F0KGZyYWdtZW50RGF0YS5zbGljZSgxKSk7XG4gICAgICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldENsaXBib2FyZERhdGFCeURvbShlZGl0b3IsIGZyYWdtZW50IGFzIEVsZW1lbnRbXSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0RnJhZ21lbnREYXRhKGRhdGEsIG9yaWdpbkV2ZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG5cbiAgICAgICAgaWYgKHJlcyAmJiBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydChlZGl0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxpc3QsIGxpc3RJdGVtIH0gPSByZXM7XG4gICAgICAgICAgICBjb25zdCBbLCBsaXN0UGF0aF0gPSBsaXN0O1xuICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuXG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0xpc3RJdGVtUGF0aCA9IFRoZVF1ZXJpZXMuZ2V0UHJldmlvdXNQYXRoKGxpc3RJdGVtUGF0aCk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c0xpc3RJdGVtUGF0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IFBhdGgucGFyZW50KGJlZm9yZVBvaW50LnBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBOb2RlLmdldChlZGl0b3IsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChFbGVtZW50LmlzRWxlbWVudChwYXJlbnROb2RlKSAmJiBFZGl0b3IuaXNWb2lkKGVkaXRvciwgcGFyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMudW53cmFwTm9kZXNCeVR5cGUoZWRpdG9yLCBbRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdF0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnVud3JhcE5vZGVzQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpc3RJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c0xpc3RJdGVtUGF0aCAmJiBoYXNTdGFibGVMaXN0SW5MaXN0SXRlbShsaXN0SXRlbU5vZGUpKSB7XG4gICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtwcmV2aW91c0xpc3RJdGVtTm9kZV0gPSBFZGl0b3Iubm9kZShlZGl0b3IsIHByZXZpb3VzTGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUxpc3RJdGVtOiBsaXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0xpc3RJdGVtOiBbcHJldmlvdXNMaXN0SXRlbU5vZGUgYXMgQW5jZXN0b3IsIHByZXZpb3VzTGlzdEl0ZW1QYXRoXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbW92ZSBsaXN0SXRlbSBjaGlsZHJlbiB0byBiZWZvcmUgbGlzdEl0ZW1cbiAgICAgICAgICAgIGlmIChsaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBhdGhSZWYgPSBFZGl0b3IucGF0aFJlZihlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0UG9pbnQgPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IEVkaXRvci5lbmQoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0luRmlyc3RDaGlsZCA9ICFpc0xpc3ROZXN0ZWQoZWRpdG9yLCBsaXN0UGF0aCkgJiYgVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG8gPSBpc0luRmlyc3RDaGlsZCA/IGxpc3RQYXRoIDogUGF0aC5uZXh0KFBhdGgucGFyZW50KGJlZm9yZVBvaW50LnBhdGgpKTtcblxuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0OiBFZGl0b3IucmFuZ2UoZWRpdG9yLCBzdGFydFBvaW50LCBlbmRQb2ludCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0byxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBub2RlID0+IGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5pbmNsdWRlcyhub2RlIGFzIGFueSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogYmVmb3JlUGF0aFJlZi51bnJlZigpIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNJbkZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBkZXByZWNhdGVkXG4gICAgICAgICAgICBpZiAoIWlzTGlzdE5lc3RlZChlZGl0b3IsIGxpc3RQYXRoKSAmJiBUaGVRdWVyaWVzLmlzRmlyc3RDaGlsZChsaXN0SXRlbVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgdW53cmFwTGlzdChlZGl0b3IpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0RnJhZ21lbnREYXRhID0gYXN5bmMgKGRhdGE6IERhdGFUcmFuc2ZlcikgPT4ge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGF3YWl0IGV4dHJhY3RGcmFnbWVudChkYXRhKTtcblxuICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFib3ZlRW50cnkgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGZyYWdtZW50Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIGlzTGlzdChmcmFnbWVudFswXSBhcyBFbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgIGFib3ZlRW50cnkgJiZcbiAgICAgICAgICAgICAgICAhaXNTaW5nbGVMaXN0SXRlbShmcmFnbWVudFswXSkgJiZcbiAgICAgICAgICAgICAgICBoYXNTdGFibGVMaXN0SXRlbShyZXMubGlzdEl0ZW1bMF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBpbnNlcnRMaXN0RGF0YShlZGl0b3IsIHsgZnJvbUxpc3Q6IGZyYWdtZW50WzBdIGFzIEVsZW1lbnQsIHRvTGlzdEl0ZW1FbnRyeTogYWJvdmVFbnRyeSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5zZXJ0RnJhZ21lbnREYXRhKGRhdGEpO1xuICAgIH07XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQ29udGludWUgPSAhb25LZXlEb3duTGlzdChldmVudCwgZWRpdG9yKTtcbiAgICAgICAgaWYgKGlzQ29udGludWUpIHtcbiAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSBnZXRMaXN0Tm9ybWFsaXplcihlZGl0b3IsIHsgdmFsaWRMaUNoaWxkcmVuVHlwZXM6IHZhbGlkTGlDaGlsZHJlblR5cGVzIH0pO1xuXG4gICAgZWRpdG9yLnJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlTnVtYmVyZWRMaXN0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVCdWxsZXRlZExpc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmxpc3RJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlTGlzdEl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlckVsZW1lbnQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5jb25zdCBsaXN0T3B0aW9ucyA9IHtcbiAgICB2YWxpZExpQ2hpbGRyZW5UeXBlczogW0VsZW1lbnRLaW5kcy5pbWFnZV0sXG4gICAgYWxsb3dQYXJlbnRUeXBlczogW0VsZW1lbnRLaW5kcy5saXN0SXRlbSwgRWxlbWVudEtpbmRzLnRhYmxlQ2VsbCwgRWxlbWVudEtpbmRzLmJsb2NrcXVvdGVdXG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTGlzdFBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8V2l0aExpc3RPcHRpb25zPih7XG4gICAga2V5OiBQbHVnaW5LZXlzLmxpc3QsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aExpc3QsXG4gICAgcGx1Z2luczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFBsdWdpbktleXMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgb3B0aW9uczogbGlzdE9wdGlvbnNcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBQbHVnaW5LZXlzLmJ1bGxldGVkTGlzdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IGxpc3RPcHRpb25zXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG5lc3RlZFN0cnVjdHVyZUJ5S2V5OiB7XG4gICAgICAgIFtFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0XTogRWxlbWVudEtpbmRzLmxpc3RJdGVtLFxuICAgICAgICBbRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdF06IEVsZW1lbnRLaW5kcy5saXN0SXRlbVxuICAgIH0sXG4gICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICAgICAgICAgIGljb246ICdsaXN0LW9yZGVyZWQnLFxuICAgICAgICAgICAgbmFtZTogJ+acieW6j+WIl+ihqCcsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gTGlzdEVkaXRvci50b2dnbGVMaXN0KGVkaXRvciwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLmlzQWN0aXZlKGVkaXRvciwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdClcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LFxuICAgICAgICAgICAgaWNvbjogJ2xpc3QtYnVsbGV0JyxcbiAgICAgICAgICAgIG5hbWU6ICfml6Dluo/liJfooagnLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IExpc3RFZGl0b3IudG9nZ2xlTGlzdChlZGl0b3IsIEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gTGlzdEVkaXRvci5pc0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG1lbnVJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsXG4gICAgICAgICAgICBrZXl3b3JkczogJ3l4bGIseW91eHVsaWViaWFvLG51bWJlcmVkIGxpc3QsbnVtYmVyZWRsaXN0LOacieW6j+WIl+ihqCcsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gTGlzdEVkaXRvci50b2dnbGVMaXN0KGVkaXRvciwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLmlzQWN0aXZlKGVkaXRvciwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCksXG4gICAgICAgICAgICB0eXBlOiBUaGVQbHVnaW5NZW51SXRlbVR5cGUuaWNvbixcbiAgICAgICAgICAgIG5hbWU6ICfmnInluo/liJfooagnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICfmj5LlhaXmnInluo/liJfooagnLFxuICAgICAgICAgICAgZGlzcGxheUtleTogJy95eGxiJyxcbiAgICAgICAgICAgIGljb246ICdsaXN0LW9yZGVyZWQnLFxuICAgICAgICAgICAgbWVudUljb246IFBsdWdpbk1lbnVJY29ucy5udW1iZXJlZExpc3RcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LFxuICAgICAgICAgICAga2V5d29yZHM6ICd3eGxiLHd1eHVsaWViaWFvLGJ1bGxldGVkbGlzdCxidWxsZXRlZCBsaXN0LOaXoOW6j+WIl+ihqCcsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gTGlzdEVkaXRvci50b2dnbGVMaXN0KGVkaXRvciwgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLmlzQWN0aXZlKGVkaXRvciwgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCksXG4gICAgICAgICAgICB0eXBlOiBUaGVQbHVnaW5NZW51SXRlbVR5cGUuaWNvbixcbiAgICAgICAgICAgIG5hbWU6ICfml6Dluo/liJfooagnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICfmj5LlhaXml6Dluo/liJfooagnLFxuICAgICAgICAgICAgZGlzcGxheUtleTogJy93eGxiJyxcbiAgICAgICAgICAgIGljb246ICdsaXN0LWJ1bGxldCcsXG4gICAgICAgICAgICBtZW51SWNvbjogUGx1Z2luTWVudUljb25zLmJ1bGxldGVkTGlzdFxuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiBsaXN0T3B0aW9uc1xufSk7XG4iXX0=
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L2xpc3QucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFD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QUNuQixRQUFRLEVBQUUsZUFBZSxDQUFDLFlBQVk7U0FDekM7S0FDSjtJQUNELE9BQU8sRUFBRSxXQUFXO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2VzdG9yLCBFZGl0b3IsIEVsZW1lbnQsIE5vZGUsIFBhdGgsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBPcmlnaW5FdmVudCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzLCBQbHVnaW5NZW51SWNvbnMsIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5LCBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGV4dHJhY3RGcmFnbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZyYWdtZW50JztcbmltcG9ydCB7IFRoZUJ1bGxldGVkTGlzdCB9IGZyb20gJy4vY29tcG9uZW50cy9idWxsZXRlZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVMaXN0SXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZU51bWJlcmVkTGlzdCB9IGZyb20gJy4vY29tcG9uZW50cy9udW1iZXJlZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0RWRpdG9yIH0gZnJvbSAnLi9saXN0LmVkaXRvcic7XG5pbXBvcnQgeyBnZXRMaXN0Tm9ybWFsaXplciB9IGZyb20gJy4vbm9ybWFsaXplcnMvZ2V0LWxpc3Qtbm9ybWFsaXplcic7XG5pbXBvcnQgeyBvbktleURvd25MaXN0IH0gZnJvbSAnLi9vbi1rZXktZG93bi1saXN0JztcbmltcG9ydCB7IGdldExpc3RJdGVtRW50cnkgfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LWxpc3QtaXRlbS1lbnRyeSc7XG5pbXBvcnQgeyBnZXRMaXN0VHlwZXMgfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LWxpc3QtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3RhcnRMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9nZXQtc3RhcnQtbGlzdC1pdGVtJztcbmltcG9ydCB7IGhhc0xpc3RJbkxpc3RJdGVtLCBoYXNTdGFibGVMaXN0SW5MaXN0SXRlbSwgaGFzU3RhYmxlTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaGFzLWxpc3QtaW4tbGlzdC1pdGVtJztcbmltcG9ydCB7IGlzSW5MaXN0IH0gZnJvbSAnLi9xdWVyaWVzL2lzLWluLWxpc3QnO1xuaW1wb3J0IHsgaXNMaXN0IH0gZnJvbSAnLi9xdWVyaWVzL2lzLWxpc3QnO1xuaW1wb3J0IHsgaXNMaXN0TmVzdGVkIH0gZnJvbSAnLi9xdWVyaWVzL2lzLWxpc3QtbmVzdGVkJztcbmltcG9ydCB7IGlzU2VsZWN0aW9uQXRMaXN0SXRlbVN0YXJ0IH0gZnJvbSAnLi9xdWVyaWVzL2lzLXNlbGVjdGlvbi1hdC1saXN0LWl0ZW0tc3RhcnQnO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25JblNhbWVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9pcy1zZWxlY3Rpb24taW4tc2FtZS1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgaXNTaW5nbGVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9pcy1zaW5nbGUtbGlzdC1pdGVtJztcbmltcG9ydCB7IGluc2VydExpc3REYXRhIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2luc2VydC1saXN0LWRhdGEnO1xuaW1wb3J0IHsgaW5zZXJ0TGlzdEl0ZW0gfSBmcm9tICcuL3RyYW5zZm9ybXMvaW5zZXJ0LWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QtaXRlbS1zdWJsaXN0JztcbmltcG9ydCB7IG1vdmVMaXN0SXRlbVVwIH0gZnJvbSAnLi90cmFuc2Zvcm1zL21vdmUtbGlzdC1pdGVtLXVwJztcbmltcG9ydCB7IHVud3JhcExpc3QgfSBmcm9tICcuL3RyYW5zZm9ybXMvdW53cmFwLWxpc3QnO1xuaW1wb3J0IHsgV2l0aExpc3RPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBzZXRDbGlwYm9hcmREYXRhQnlEb20gfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoTGlzdCA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IGluc2VydEJyZWFrLCBkZWxldGVCYWNrd2FyZCwgb25LZXlkb3duLCBpbnNlcnRGcmFnbWVudERhdGEsIHNldEZyYWdtZW50RGF0YSwgcmVuZGVyRWxlbWVudCB9ID0gZWRpdG9yO1xuXG4gICAgY29uc3QgdmFsaWRMaUNoaWxkcmVuVHlwZXMgPSBnZXRQbHVnaW5PcHRpb25zPFdpdGhMaXN0T3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmxpc3QpPy52YWxpZExpQ2hpbGRyZW5UeXBlcyA/PyBbXTtcblxuICAgIGNvbnN0IHJlc2V0QmxvY2tUeXBlc0xpc3RSdWxlID0ge1xuICAgICAgICB0eXBlczogW0VsZW1lbnRLaW5kcy5saXN0SXRlbV0sXG4gICAgICAgIGRlZmF1bHRUeXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICBvblJlc2V0OiAoX2VkaXRvcjogRWRpdG9yKSA9PiB1bndyYXBMaXN0KF9lZGl0b3IpXG4gICAgfTtcblxuICAgIGVkaXRvci5pbnNlcnRCcmVhayA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2soZWRpdG9yKTtcblxuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1ZvaWQgPSBFZGl0b3IuaXNWb2lkKGVkaXRvciwgbm9kZSk7XG4gICAgICAgIGlmIChpc1ZvaWQpIHtcbiAgICAgICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGlzdEVudHJ5ID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgaWYgKGxpc3RFbnRyeSkge1xuICAgICAgICAgICAgbGV0IG1vdmVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgeyBsaXN0LCBsaXN0SXRlbSB9ID0gbGlzdEVudHJ5O1xuICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuICAgICAgICAgICAgY29uc3QgY3Vyc29yID0gZWRpdG9yLnNlbGVjdGlvbi5mb2N1cztcbiAgICAgICAgICAgIGNvbnN0IGlzU3RhcnQgPSBFZGl0b3IuaXNTdGFydChlZGl0b3IsIGN1cnNvciwgbGlzdEl0ZW1QYXRoKTtcblxuICAgICAgICAgICAgLy8gZGVwcmVjYXRlZFxuICAgICAgICAgICAgLy8g5aaC5p6c5pyJ5a2Q57qnXG4gICAgICAgICAgICBpZiAoaGFzTGlzdEluTGlzdEl0ZW0obGlzdEl0ZW1Ob2RlKSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHNlbGVjdGlvbiBpcyBhdCB0aGUgZW5kIG9mIGxpLFxuICAgICAgICAgICAgICAgICAqIGluc2VydCBiZWxvdyBsaSB3aGVyZSBjaGlsZHJlbiB3aWxsIGJlIG1vdmVkLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChFZGl0b3IuaXNFbmQoZWRpdG9yLCBjdXJzb3IsIGxpc3RJdGVtUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLCBjaGlsZHJlbjogW3sgdGV4dDogJycgfV0gfV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGF0OiBQYXRoLm5leHQobGlzdEl0ZW1QYXRoKSwgc2VsZWN0OiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiDlpoLmnpzpgInljLrmmK/lnKhsaXN0SXRlbeeahOW8gOWktO+8jOWImeWcqGxpc3RJdGVt5LiK5pa55o+S5YWlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLCBjaGlsZHJlbjogW3sgdGV4dDogJycgfV0gfV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGF0OiBsaXN0SXRlbVBhdGggfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g5aaC5p6c6YCJ5oup55qEbGlzdEl0ZW3kuLrnqbrliJnlsIblhbblkJHkuIrnp7vliqhcbiAgICAgICAgICAgIGlmIChpc1N0YXJ0ICYmIFRoZVF1ZXJpZXMuaXNCbG9ja0Fib3ZlRW1wdHkoZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIG1vdmVkID0gbW92ZUxpc3RJdGVtVXAoZWRpdG9yLCB7IGxpc3QsIGxpc3RJdGVtIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtb3ZlZCkgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBkaWRSZXNldCA9IFRoZVRyYW5zZm9ybXMub25LZXlEb3duUmVzZXRCbG9ja1R5cGUoe1xuICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc2V0QmxvY2tUeXBlc0xpc3RSdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGljYXRlOiAoKSA9PiAhbW92ZWQgJiYgaXNTdGFydCAmJiBUaGVRdWVyaWVzLmlzQmxvY2tBYm92ZUVtcHR5KGVkaXRvcilcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pKG51bGwsIGVkaXRvcik7XG4gICAgICAgICAgICBpZiAoZGlkUmVzZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWRkIGEgbmV3IGxpc3QgaXRlbSBpZiBzZWxlY3Rpb24gaXMgaW4gYSBMSVNUX0lURU0gPiBwLnR5cGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghbW92ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZCA9IGluc2VydExpc3RJdGVtKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKGluc2VydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgIH07XG5cbiAgICBlZGl0b3Iuc2V0RnJhZ21lbnREYXRhID0gKGRhdGE6IERhdGFUcmFuc2Zlciwgb3JpZ2luRXZlbnQ/OiBPcmlnaW5FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBbc3RhcnRdID0gRWRpdG9yLmVkZ2VzKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKGlzSW5MaXN0KGVkaXRvciwgc3RhcnQpKSB7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudERhdGEgPSBlZGl0b3IuZ2V0RnJhZ21lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RWxlbWVudCA9IGZyYWdtZW50RGF0YVswXSBhcyBFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGdldExpc3RUeXBlcygpLmluY2x1ZGVzKGZyYWdtZW50RWxlbWVudC50eXBlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0Tm9kZXMgPSBnZXRTdGFydExpc3RJdGVtKFtmcmFnbWVudEVsZW1lbnQuY2hpbGRyZW5bMF1dIGFzIEVsZW1lbnRbXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBzdGFydE5vZGVzLmNvbmNhdCgoZnJhZ21lbnRFbGVtZW50LmNoaWxkcmVuIGFzIEVsZW1lbnRbXSkuc2xpY2UoMSkpO1xuICAgICAgICAgICAgICAgIGxldCBmcmFnbWVudE5vZGVzID0gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5mcmFnbWVudEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSBhcyBOb2RlW107XG4gICAgICAgICAgICAgICAgaWYgKGlzU2VsZWN0aW9uSW5TYW1lTGlzdEl0ZW0oZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyDku4Xku4XlpI3liLbliJfooajkuK3nmoTlhoXlrrlcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnROb2RlcyA9IGNoaWxkcmVuWzBdLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZnJhZ21lbnROb2Rlcy5jb25jYXQoZnJhZ21lbnREYXRhLnNsaWNlKDEpKTtcbiAgICAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2xpcGJvYXJkRGF0YUJ5RG9tKGVkaXRvciwgZnJhZ21lbnQgYXMgRWxlbWVudFtdLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzZXRGcmFnbWVudERhdGEoZGF0YSwgb3JpZ2luRXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3QgcmVzID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcblxuICAgICAgICBpZiAocmVzICYmIGlzU2VsZWN0aW9uQXRMaXN0SXRlbVN0YXJ0KGVkaXRvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGlzdCwgbGlzdEl0ZW0gfSA9IHJlcztcbiAgICAgICAgICAgIGNvbnN0IFssIGxpc3RQYXRoXSA9IGxpc3Q7XG4gICAgICAgICAgICBjb25zdCBbbGlzdEl0ZW1Ob2RlLCBsaXN0SXRlbVBhdGhdID0gbGlzdEl0ZW07XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzTGlzdEl0ZW1QYXRoID0gVGhlUXVlcmllcy5nZXRQcmV2aW91c1BhdGgobGlzdEl0ZW1QYXRoKTtcblxuICAgICAgICAgICAgaWYgKHByZXZpb3VzTGlzdEl0ZW1QYXRoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUG9pbnQgPSBFZGl0b3IuYmVmb3JlKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gUGF0aC5wYXJlbnQoYmVmb3JlUG9pbnQucGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IE5vZGUuZ2V0KGVkaXRvciwgcGFyZW50UGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KHBhcmVudE5vZGUpICYmIEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBwYXJlbnROb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy51bndyYXBOb2Rlc0J5VHlwZShlZGl0b3IsIFtFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwbGl0OiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMudW53cmFwTm9kZXNCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMubGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByZXZpb3VzTGlzdEl0ZW1QYXRoICYmIGhhc1N0YWJsZUxpc3RJbkxpc3RJdGVtKGxpc3RJdGVtTm9kZSkpIHtcbiAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3ByZXZpb3VzTGlzdEl0ZW1Ob2RlXSA9IEVkaXRvci5ub2RlKGVkaXRvciwgcHJldmlvdXNMaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tTGlzdEl0ZW06IGxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvTGlzdEl0ZW06IFtwcmV2aW91c0xpc3RJdGVtTm9kZSBhcyBBbmNlc3RvciwgcHJldmlvdXNMaXN0SXRlbVBhdGhdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBtb3ZlIGxpc3RJdGVtIGNoaWxkcmVuIHRvIGJlZm9yZSBsaXN0SXRlbVxuICAgICAgICAgICAgaWYgKGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUGF0aFJlZiA9IEVkaXRvci5wYXRoUmVmKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUG9pbnQgPSBFZGl0b3IuYmVmb3JlKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IEVkaXRvci5zdGFydChlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gRWRpdG9yLmVuZChlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzSW5GaXJzdENoaWxkID0gIWlzTGlzdE5lc3RlZChlZGl0b3IsIGxpc3RQYXRoKSAmJiBUaGVRdWVyaWVzLmlzRmlyc3RDaGlsZChsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0byA9IGlzSW5GaXJzdENoaWxkID8gbGlzdFBhdGggOiBQYXRoLm5leHQoUGF0aC5wYXJlbnQoYmVmb3JlUG9pbnQucGF0aCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXQ6IEVkaXRvci5yYW5nZShlZGl0b3IsIHN0YXJ0UG9pbnQsIGVuZFBvaW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IG5vZGUgPT4gbGlzdEl0ZW1Ob2RlLmNoaWxkcmVuLmluY2x1ZGVzKG5vZGUgYXMgYW55KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBiZWZvcmVQYXRoUmVmLnVucmVmKCkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0luRmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGRlcHJlY2F0ZWRcbiAgICAgICAgICAgIGlmICghaXNMaXN0TmVzdGVkKGVkaXRvciwgbGlzdFBhdGgpICYmIFRoZVF1ZXJpZXMuaXNGaXJzdENoaWxkKGxpc3RJdGVtUGF0aCkpIHtcbiAgICAgICAgICAgICAgICB1bndyYXBMaXN0KGVkaXRvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5pbnNlcnRGcmFnbWVudERhdGEgPSBhc3luYyAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gYXdhaXQgZXh0cmFjdEZyYWdtZW50KGRhdGEpO1xuXG4gICAgICAgIGlmIChmcmFnbWVudCkge1xuICAgICAgICAgICAgY29uc3QgYWJvdmVFbnRyeSA9IEVkaXRvci5hYm92ZShlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmxpc3RJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgICAgICAgaXNMaXN0KGZyYWdtZW50WzBdIGFzIEVsZW1lbnQpICYmXG4gICAgICAgICAgICAgICAgYWJvdmVFbnRyeSAmJlxuICAgICAgICAgICAgICAgICFpc1NpbmdsZUxpc3RJdGVtKGZyYWdtZW50WzBdKSAmJlxuICAgICAgICAgICAgICAgIGhhc1N0YWJsZUxpc3RJdGVtKHJlcy5saXN0SXRlbVswXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGluc2VydExpc3REYXRhKGVkaXRvciwgeyBmcm9tTGlzdDogZnJhZ21lbnRbMF0gYXMgRWxlbWVudCwgdG9MaXN0SXRlbUVudHJ5OiBhYm92ZUVudHJ5IH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnNlcnRGcmFnbWVudERhdGEoZGF0YSk7XG4gICAgfTtcblxuICAgIGVkaXRvci5vbktleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgaXNDb250aW51ZSA9ICFvbktleURvd25MaXN0KGV2ZW50LCBlZGl0b3IpO1xuICAgICAgICBpZiAoaXNDb250aW51ZSkge1xuICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlZGl0b3Iubm9ybWFsaXplTm9kZSA9IGdldExpc3ROb3JtYWxpemVyKGVkaXRvciwgeyB2YWxpZExpQ2hpbGRyZW5UeXBlczogdmFsaWRMaUNoaWxkcmVuVHlwZXMgfSk7XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVOdW1iZXJlZExpc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZUJ1bGxldGVkTGlzdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMubGlzdEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVMaXN0SXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmNvbnN0IGxpc3RPcHRpb25zID0ge1xuICAgIHZhbGlkTGlDaGlsZHJlblR5cGVzOiBbRWxlbWVudEtpbmRzLmltYWdlXSxcbiAgICBhbGxvd1BhcmVudFR5cGVzOiBbRWxlbWVudEtpbmRzLmxpc3RJdGVtLCBFbGVtZW50S2luZHMudGFibGVDZWxsLCBFbGVtZW50S2luZHMuYmxvY2txdW90ZV1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVMaXN0UGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeTxXaXRoTGlzdE9wdGlvbnM+KHtcbiAgICBrZXk6IFBsdWdpbktleXMubGlzdCxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoTGlzdCxcbiAgICBwbHVnaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogUGx1Z2luS2V5cy5udW1iZXJlZExpc3QsXG4gICAgICAgICAgICBvcHRpb25zOiBsaXN0T3B0aW9uc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFBsdWdpbktleXMuYnVsbGV0ZWRMaXN0LFxuICAgICAgICAgICAgb3B0aW9uczogbGlzdE9wdGlvbnNcbiAgICAgICAgfVxuICAgIF0sXG4gICAgbmVzdGVkU3RydWN0dXJlQnlLZXk6IHtcbiAgICAgICAgW0VsZW1lbnRLaW5kcy5idWxsZXRlZExpc3RdOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgIFtFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0XTogRWxlbWVudEtpbmRzLmxpc3RJdGVtXG4gICAgfSxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgaWNvbjogJ2xpc3Qtb3JkZXJlZCcsXG4gICAgICAgICAgICBuYW1lOiAn5pyJ5bqP5YiX6KGoJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLnRvZ2dsZUxpc3QoZWRpdG9yLCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IExpc3RFZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsXG4gICAgICAgICAgICBpY29uOiAnbGlzdC1idWxsZXQnLFxuICAgICAgICAgICAgbmFtZTogJ+aXoOW6j+WIl+ihqCcsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gTGlzdEVkaXRvci50b2dnbGVMaXN0KGVkaXRvciwgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLmlzQWN0aXZlKGVkaXRvciwgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgbWVudUl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICAgICAgICAgIGtleXdvcmRzOiAneXhsYix5b3V4dWxpZWJpYW8sbnVtYmVyZWQgbGlzdCxudW1iZXJlZGxpc3Qs5pyJ5bqP5YiX6KGoJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLnRvZ2dsZUxpc3QoZWRpdG9yLCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IExpc3RFZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KSxcbiAgICAgICAgICAgIHR5cGU6IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5pY29uLFxuICAgICAgICAgICAgbmFtZTogJ+acieW6j+WIl+ihqCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ+aPkuWFpeacieW6j+WIl+ihqCcsXG4gICAgICAgICAgICBkaXNwbGF5S2V5OiAnL3l4bGInLFxuICAgICAgICAgICAgaWNvbjogJ2xpc3Qtb3JkZXJlZCcsXG4gICAgICAgICAgICBtZW51SWNvbjogUGx1Z2luTWVudUljb25zLm51bWJlcmVkTGlzdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsXG4gICAgICAgICAgICBrZXl3b3JkczogJ3d4bGIsd3V4dWxpZWJpYW8sYnVsbGV0ZWRsaXN0LGJ1bGxldGVkIGxpc3Qs5peg5bqP5YiX6KGoJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLnRvZ2dsZUxpc3QoZWRpdG9yLCBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0KSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IExpc3RFZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0KSxcbiAgICAgICAgICAgIHR5cGU6IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5pY29uLFxuICAgICAgICAgICAgbmFtZTogJ+aXoOW6j+WIl+ihqCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ+aPkuWFpeaXoOW6j+WIl+ihqCcsXG4gICAgICAgICAgICBkaXNwbGF5S2V5OiAnL3d4bGInLFxuICAgICAgICAgICAgaWNvbjogJ2xpc3QtYnVsbGV0JyxcbiAgICAgICAgICAgIG1lbnVJY29uOiBQbHVnaW5NZW51SWNvbnMuYnVsbGV0ZWRMaXN0XG4gICAgICAgIH1cbiAgICBdLFxuICAgIG9wdGlvbnM6IGxpc3RPcHRpb25zXG59KTtcbiJdfQ==
|
|
@@ -4,10 +4,10 @@ export class TheBaseSuggestion {
|
|
|
4
4
|
handleMousedown(event) {
|
|
5
5
|
event.preventDefault();
|
|
6
6
|
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheBaseSuggestion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: TheBaseSuggestion, inputs: { editor: "editor", type: "type", keywords: "keywords" }, host: { listeners: { "mousedown": "handleMousedown($event)" } }, ngImport: i0 }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheBaseSuggestion, decorators: [{
|
|
11
11
|
type: Directive
|
|
12
12
|
}], propDecorators: { editor: [{
|
|
13
13
|
type: Input
|
|
@@ -103,10 +103,10 @@ export class TheQuickInsert {
|
|
|
103
103
|
this.updateIconDisplay();
|
|
104
104
|
}, 100);
|
|
105
105
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheQuickInsert, isStandalone: true, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n [thyIconName]=\"displayIconName\"\n class=\"quick-insert-icon text-desc font-size-xlg\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mousedown)=\"handleClick($event)\"\n></thy-icon>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
|
|
108
108
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, decorators: [{
|
|
110
110
|
type: Component,
|
|
111
111
|
args: [{ selector: '[theQuickInsert]', standalone: true, imports: [ThyIcon], template: "<thy-icon\n #iconElement\n [thyIconName]=\"displayIconName\"\n class=\"quick-insert-icon text-desc font-size-xlg\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mousedown)=\"handleClick($event)\"\n></thy-icon>\n" }]
|
|
112
112
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { className: [{
|
|
@@ -106,10 +106,10 @@ export class TheInsertMark {
|
|
|
106
106
|
}
|
|
107
107
|
return this.type === 'column' && this.at === tablePosition.getWidth();
|
|
108
108
|
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheInsertMark, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheInsertMark, isStandalone: true, selector: "the-table-insert-mark", inputs: { type: "type", at: "at", tableStore: "tableStore", parentElement: "parentElement" }, host: { classAttribute: "the-table-insert-mark" }, viewQueries: [{ propertyName: "insertWrapper", first: true, predicate: ["insertWrapper"], descendants: true }], ngImport: i0, template: "<div\n #insertWrapper\n [thyTooltip]=\"!disabled && tooltipContent\"\n class=\"the-table-controls-insert-wrapper\"\n [ngClass]=\"{ disabled: disabled }\"\n contenteditable=\"false\"\n (pointerdown)=\"preventDefault($event)\"\n (pointerup)=\"insert($event)\"\n (click)=\"preventDefault($event)\"\n (mouseup)=\"preventDefault($event)\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseLeave($event)\"\n>\n <div\n class=\"the-table-controls-insert-line\"\n *ngIf=\"dotWrapperHovered\"\n [ngStyle]=\"insertLineStyle\"\n ></div>\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheInsertMark, decorators: [{
|
|
113
113
|
type: Component,
|
|
114
114
|
args: [{ selector: 'the-table-insert-mark', host: {
|
|
115
115
|
class: 'the-table-insert-mark'
|
|
@@ -66,14 +66,14 @@ export class TheTableRow extends TheBaseElement {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTableRow, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheTableRow, isStandalone: true, selector: "tr[theTableRow]", host: { properties: { "style.height": "this.height" } }, viewQueries: [{ propertyName: "numberedColumnRef", first: true, predicate: ["numberedColumn"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
71
71
|
<td #numberedColumn *ngIf="readonly && numberedColumn" class="the-table-number-column align-middle" thePreventDefault>
|
|
72
72
|
{{ rowNumber }}
|
|
73
73
|
</td>
|
|
74
74
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] }); }
|
|
75
75
|
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTableRow, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{
|
|
79
79
|
selector: 'tr[theTableRow]',
|
|
@@ -812,8 +812,8 @@ export class TheTable extends TheBaseElement {
|
|
|
812
812
|
this.destroy$.next();
|
|
813
813
|
this.destroy$.complete();
|
|
814
814
|
}
|
|
815
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
816
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
815
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTable, deps: [{ token: i0.ElementRef }, { token: i1.TableCellEventDispatcher }, { token: i1.ColumnResizeNotifierSource }, { token: i2.TableStore }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i3.TableService }, { token: i4.TheTableContextMenuService }, { token: i5.TableFreezeColumnPipe }, { token: i5.TableFreezeRowPipe }, { token: i0.Renderer2 }, { token: i6.TheContextService }, { token: THE_MODE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
816
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheTable, isStandalone: true, selector: "ng-component", host: { properties: { "class.the-table-with-controls": "isInTable || tableStore.isRightClicking || tableStore.isFocusedInput", "class.the-table-with-sticky-column": "isFreezeColumn", "class.the-numbered-table": "element?.options?.numberedColumn", "class.the-table-selection-hide": "tableStore.isCellSelecting || tableStore.isRightClicking || tableStore.isFocusedInput" } }, providers: [
|
|
817
817
|
TableStore,
|
|
818
818
|
TableService,
|
|
819
819
|
TheTableContextMenuService,
|
|
@@ -827,7 +827,7 @@ export class TheTable extends TheBaseElement {
|
|
|
827
827
|
}
|
|
828
828
|
], viewQueries: [{ propertyName: "tableWrapper", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef, static: true }, { propertyName: "theTableElement", first: true, predicate: ["theTable"], descendants: true, read: ElementRef, static: true }, { propertyName: "tbodyElement", first: true, predicate: ["tbody"], descendants: true, read: ElementRef, static: true }, { propertyName: "tableRowControlsWrapper", first: true, predicate: ["tableRowControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "columnControlsWrapper", first: true, predicate: ["columnControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "cornerControl", first: true, predicate: ["cornerControl"], descendants: true, read: ElementRef }, { propertyName: "rowControlsInner", first: true, predicate: ["rowControlsInner"], descendants: true, read: ElementRef }, { propertyName: "headerRowLeftShadow", first: true, predicate: ["headerRowLeftShadow"], descendants: true, read: ElementRef }, { propertyName: "headerRowRightShadow", first: true, predicate: ["headerRowRightShadow"], descendants: true, read: ElementRef }, { propertyName: "colgroup", first: true, predicate: ["colgroup"], descendants: true, read: ElementRef }, { propertyName: "rowControlsButtonWrapper", predicate: ["rowControlsButtonWrapper"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"the-table-container\" theColumnResize>\n <div #tableRowControlsWrapper class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls\"\n #cornerControl\n contenteditable=\"false\"\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (pointerdown)=\"onSelectTable($event)\"></div>\n <div class=\"the-table-corner-controls-insert-row-marker\" *ngIf=\"!(element | hasHeaderRow) && !isMobileMode\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n <div class=\"the-table-corner-controls-insert-column-marker\" *ngIf=\"!element?.options?.headerColumn && !isMobileMode\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n <div\n class=\"the-table-row-control-button-wrap\"\n #rowControlsButtonWrapper\n contenteditable=\"false\"\n *ngFor=\"let control of rowControls; let i = index; trackBy: trackByFnRowControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n <ng-container\n *ngIf=\"!readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !element?.options?.numberedColumn\"\n >\n <button\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n contenteditable=\"false\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"element?.options?.numberedColumn\">\n <div\n contenteditable=\"false\"\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">\n {{ (element | hasHeaderRow) && i === 0 ? '' : (element | hasHeaderRow) ? i : i + 1 }}\n </p>\n </div>\n </ng-container>\n <the-table-insert-mark *ngIf=\"!isMobileMode\" type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\">\n </the-table-insert-mark>\n </div>\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup>\n <!--\u63A7\u5236\u5E8F\u53F7\u5217\u5BBD\u5EA6-->\n <col *ngIf=\"readonly && element?.options?.numberedColumn\" class=\"the-table-number-col\" />\n <col *ngFor=\"let col of columns\" [ngStyle]=\"{ width: col.width + 'px' }\" />\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n <th *ngIf=\"readonly && element?.options?.numberedColumn\" class=\"the-table-number-col\"></th>\n <th\n #colControl\n class=\"the-table-col-control\"\n contenteditable=\"false\"\n *ngFor=\"let control of colControls; let i = index; trackBy: trackByFnColControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0,\n 'the-sticky-cell': i === 0 && isFreezeColumn\n }\"\n (pointerdown)=\"onColMousedown($event, i)\"\n >\n <the-table-insert-mark\n *ngIf=\"(isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !isMobileMode\"\n type=\"column\"\n [at]=\"i + 1\"\n [tableStore]=\"tableStore\"\n [parentElement]=\"colControl\"\n >\n </the-table-insert-mark>\n </th>\n </tr>\n </thead>\n <tbody #tbody></tbody>\n <div\n *ngIf=\"!element?.options?.headerColumn\"\n #headerRowLeftShadow\n class=\"header-row-shadow header-row-left-shadow\"\n contenteditable=\"false\"\n ></div>\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TheInsertMark, selector: "the-table-insert-mark", inputs: ["type", "at", "tableStore", "parentElement"] }, { kind: "directive", type: TheColumnResizeDirective, selector: "div[theColumnResize]" }, { kind: "pipe", type: TableHasHeaderRowPipe, name: "hasHeaderRow" }] }); }
|
|
829
829
|
}
|
|
830
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
830
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTable, decorators: [{
|
|
831
831
|
type: Component,
|
|
832
832
|
args: [{ providers: [
|
|
833
833
|
TableStore,
|
|
@@ -588,10 +588,10 @@ export class TheTd extends TheBaseElement {
|
|
|
588
588
|
this.destroy$.next();
|
|
589
589
|
this.destroy$.complete();
|
|
590
590
|
}
|
|
591
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
592
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
591
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTd, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: i1.Overlay }, { token: i2.ColumnResizingStore }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
592
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheTd, isStandalone: true, selector: "td[theTd]", host: { properties: { "style.backgroundColor": "this.backgroundColor", "attr.colspan": "this.colspan", "attr.rowspan": "this.rowspan", "style.display": "this.display" } }, providers: [ColumnResizingStore], viewQueries: [{ propertyName: "cellInner", first: true, predicate: ["cellInner"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div #cellInner></div>\n" }); }
|
|
593
593
|
}
|
|
594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTd, decorators: [{
|
|
595
595
|
type: Component,
|
|
596
596
|
args: [{ selector: 'td[theTd]', standalone: true, providers: [ColumnResizingStore], template: "<div #cellInner></div>\n" }]
|
|
597
597
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: i1.Overlay }, { type: i2.ColumnResizingStore }, { type: i1.ScrollDispatcher }], propDecorators: { cellInner: [{
|
|
@@ -58,8 +58,8 @@ export class TheTableOptions {
|
|
|
58
58
|
Transforms.setNodes(this.editor, { header: null }, { at: rowPath });
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTableOptions, deps: [{ token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheTableOptions, isStandalone: true, selector: "the-table-options", inputs: { editor: "editor" }, host: { classAttribute: "the-table-options" }, ngImport: i0, template: `
|
|
63
63
|
<div class="thy-dropdown-menu table-drop-menu">
|
|
64
64
|
<ng-container *ngFor="let option of tableDropdownList">
|
|
65
65
|
<a thyDropdownMenuItem href="javascript:;" (mousedown)="setTableOptions($event, option)">
|
|
@@ -72,7 +72,7 @@ export class TheTableOptions {
|
|
|
72
72
|
</div>
|
|
73
73
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }] }); }
|
|
74
74
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTableOptions, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
77
|
args: [{
|
|
78
78
|
selector: 'the-table-options',
|
|
@@ -163,10 +163,10 @@ export class TheTableToolbar {
|
|
|
163
163
|
viewContainerRef: this.viewContainerRef
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTableToolbar, deps: [{ token: i1.ThyPopover }, { token: i1.ThyPopoverRef }, { token: i2.ThyNotifyService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheTableToolbar, isStandalone: true, selector: "the-table-toolbar", inputs: { tableStore: "tableStore", tableElement: "tableElement" }, ngImport: i0, template: "<thy-actions thySize=\"xxs\" (mousedown)=\"preventDefault($event)\">\n <ng-container *ngFor=\"let item of cellMenuList\">\n <a\n *ngIf=\"item.visibility\"\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n (click)=\"item.actionHandle()\"\n ></a>\n </ng-container>\n <thy-divider *ngIf=\"hasDivider\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"> </thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyTooltip=\"\u5355\u5143\u683C\u80CC\u666F\"\n thyColorPicker\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (click)=\"openColorPanel($event)\"\n thyPlacement=\"bottomLeft\"\n [thyHasBackdrop]=\"false\"\n >\n <thy-icon thyIconName=\"background-tt\" thyIconType=\"twotone\" [thyTwotoneColor]=\"selectedColor\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && !isColumnEqual\"\n thyAction\n thyTooltip=\"\u5217\u7B49\u5BBD\"\n (click)=\"setEquallyColumnHandle($event)\"\n >\n <thy-icon thyIconName=\"table-column-equal-width\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && tableOptions?.showFullscreen\"\n thyAction\n thyTooltip=\"\u5168\u5C4F\"\n (click)=\"setFullscreen($event)\"\n >\n <thy-icon thyIconName=\"arrows-alt\"></thy-icon>\n </a>\n <a\n *ngIf=\"tableStore.isSelectedTable && !tableStore?.isFullscreen\"\n class=\"fullscreen-hidden\"\n href=\"javascript:;\"\n thyAction\n thyActionIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n (click)=\"onCopy($event)\"\n ></a>\n <ng-container *ngIf=\"tableStore.isSelectedTable\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" class=\"link-with-down\" thyAction (mousedown)=\"preventDefault($event)\" (click)=\"openTableOptionMenu($event)\">\n <span>\u8868\u683C\u9009\u9879</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"tableStore?.isFullscreen ? deleteIcon && !tableStore.isSelectedTable : deleteIcon\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n [thyActionIcon]=\"deleteIcon\"\n [thyTooltip]=\"iconName\"\n (click)=\"onDelete($event)\"\n (mouseenter)=\"onEnterDelete($event)\"\n (mouseleave)=\"onLeaveDelete($event)\"\n ></a>\n </ng-container>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }] }); }
|
|
168
168
|
}
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheTableToolbar, decorators: [{
|
|
170
170
|
type: Component,
|
|
171
171
|
args: [{ selector: 'the-table-toolbar', standalone: true, imports: [NgFor, NgIf, FormsModule, ThyIcon, ThyAction, ThyActions, ThyTooltipDirective, ThyDivider, ThyColorPickerDirective], template: "<thy-actions thySize=\"xxs\" (mousedown)=\"preventDefault($event)\">\n <ng-container *ngFor=\"let item of cellMenuList\">\n <a\n *ngIf=\"item.visibility\"\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n (click)=\"item.actionHandle()\"\n ></a>\n </ng-container>\n <thy-divider *ngIf=\"hasDivider\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"> </thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyTooltip=\"\u5355\u5143\u683C\u80CC\u666F\"\n thyColorPicker\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (click)=\"openColorPanel($event)\"\n thyPlacement=\"bottomLeft\"\n [thyHasBackdrop]=\"false\"\n >\n <thy-icon thyIconName=\"background-tt\" thyIconType=\"twotone\" [thyTwotoneColor]=\"selectedColor\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && !isColumnEqual\"\n thyAction\n thyTooltip=\"\u5217\u7B49\u5BBD\"\n (click)=\"setEquallyColumnHandle($event)\"\n >\n <thy-icon thyIconName=\"table-column-equal-width\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && tableOptions?.showFullscreen\"\n thyAction\n thyTooltip=\"\u5168\u5C4F\"\n (click)=\"setFullscreen($event)\"\n >\n <thy-icon thyIconName=\"arrows-alt\"></thy-icon>\n </a>\n <a\n *ngIf=\"tableStore.isSelectedTable && !tableStore?.isFullscreen\"\n class=\"fullscreen-hidden\"\n href=\"javascript:;\"\n thyAction\n thyActionIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n (click)=\"onCopy($event)\"\n ></a>\n <ng-container *ngIf=\"tableStore.isSelectedTable\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" class=\"link-with-down\" thyAction (mousedown)=\"preventDefault($event)\" (click)=\"openTableOptionMenu($event)\">\n <span>\u8868\u683C\u9009\u9879</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"tableStore?.isFullscreen ? deleteIcon && !tableStore.isSelectedTable : deleteIcon\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n [thyActionIcon]=\"deleteIcon\"\n [thyTooltip]=\"iconName\"\n (click)=\"onDelete($event)\"\n (mouseenter)=\"onEnterDelete($event)\"\n (mouseleave)=\"onLeaveDelete($event)\"\n ></a>\n </ng-container>\n</thy-actions>\n" }]
|
|
172
172
|
}], ctorParameters: () => [{ type: i1.ThyPopover }, { type: i1.ThyPopoverRef }, { type: i2.ThyNotifyService }, { type: i0.ViewContainerRef }], propDecorators: { tableStore: [{
|
|
@@ -20,10 +20,10 @@ export class TableFreezeColumnPipe {
|
|
|
20
20
|
}
|
|
21
21
|
return headerColumnWidth + buffer < tableWrapperWidth;
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
24
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableFreezeColumnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
24
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: TableFreezeColumnPipe, isStandalone: true, name: "freezeColumn" }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableFreezeColumnPipe, decorators: [{
|
|
27
27
|
type: Pipe,
|
|
28
28
|
args: [{
|
|
29
29
|
name: 'freezeColumn',
|
|
@@ -42,10 +42,10 @@ export class TableFreezeRowPipe {
|
|
|
42
42
|
const mergeRows = table.children[0]?.children.filter(item => item.rowspan && item.rowspan !== 1);
|
|
43
43
|
return !mergeRows.length;
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
46
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableFreezeRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
46
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: TableFreezeRowPipe, isStandalone: true, name: "freezeRow" }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableFreezeRowPipe, decorators: [{
|
|
49
49
|
type: Pipe,
|
|
50
50
|
args: [{
|
|
51
51
|
name: 'freezeRow',
|
|
@@ -56,10 +56,10 @@ export class TableHasHeaderRowPipe {
|
|
|
56
56
|
transform(table) {
|
|
57
57
|
return hasHeaderRow(table);
|
|
58
58
|
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
60
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableHasHeaderRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
60
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: TableHasHeaderRowPipe, isStandalone: true, name: "hasHeaderRow" }); }
|
|
61
61
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TableHasHeaderRowPipe, decorators: [{
|
|
63
63
|
type: Pipe,
|
|
64
64
|
args: [{ name: 'hasHeaderRow', standalone: true }]
|
|
65
65
|
}] });
|