slate-angular 16.1.0-next.2 → 16.1.0-next.20

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.
Files changed (42) hide show
  1. package/components/children/children-outlet.component.d.ts +9 -0
  2. package/components/editable/editable.component.d.ts +1 -1
  3. package/components/string/default-string.component.d.ts +1 -1
  4. package/components/text/void-text.component.d.ts +0 -1
  5. package/esm2022/components/block-card/block-card.component.mjs +2 -2
  6. package/esm2022/components/children/children-outlet.component.mjs +22 -0
  7. package/esm2022/components/children/children.component.mjs +2 -4
  8. package/esm2022/components/editable/editable.component.mjs +36 -20
  9. package/esm2022/components/leaf/token.mjs +1 -1
  10. package/esm2022/components/string/default-string.component.mjs +1 -1
  11. package/esm2022/components/string/string.component.mjs +1 -1
  12. package/esm2022/components/text/token.mjs +1 -1
  13. package/esm2022/components/text/void-text.component.mjs +2 -6
  14. package/esm2022/module.mjs +7 -16
  15. package/esm2022/plugins/angular-editor.mjs +61 -17
  16. package/esm2022/plugins/with-angular.mjs +5 -4
  17. package/esm2022/public-api.mjs +3 -2
  18. package/esm2022/utils/constants.mjs +2 -0
  19. package/esm2022/utils/index.mjs +2 -1
  20. package/esm2022/utils/throttle.mjs +1 -1
  21. package/esm2022/view/base.mjs +59 -22
  22. package/esm2022/view/container.mjs +1 -1
  23. package/esm2022/view/context-change.mjs +13 -0
  24. package/esm2022/view/context.mjs +1 -1
  25. package/esm2022/view/render/leaves-render.mjs +8 -6
  26. package/esm2022/view/render/list-render.mjs +57 -15
  27. package/esm2022/view/render/utils.mjs +25 -14
  28. package/fesm2022/slate-angular.mjs +294 -111
  29. package/fesm2022/slate-angular.mjs.map +1 -1
  30. package/module.d.ts +2 -1
  31. package/package.json +7 -7
  32. package/plugins/angular-editor.d.ts +17 -6
  33. package/public-api.d.ts +2 -1
  34. package/utils/constants.d.ts +1 -0
  35. package/utils/index.d.ts +1 -0
  36. package/view/base.d.ts +11 -7
  37. package/view/{before-context-change.d.ts → context-change.d.ts} +4 -0
  38. package/view/context.d.ts +2 -3
  39. package/view/render/leaves-render.d.ts +2 -1
  40. package/view/render/list-render.d.ts +7 -3
  41. package/view/render/utils.d.ts +3 -3
  42. package/esm2022/view/before-context-change.mjs +0 -7
@@ -8,12 +8,13 @@ export * from './components/element/element.component';
8
8
  export * from './components/string/string.component';
9
9
  export * from './components/string/default-string.component';
10
10
  export * from './components/children/children.component';
11
+ export * from './components/children/children-outlet.component';
11
12
  export * from './components/leaves/leaves.component';
12
13
  export * from './module';
13
14
  export * from './types/error';
14
15
  export * from './view/base';
15
16
  export * from './view/context';
16
- export * from './view/before-context-change';
17
+ export * from './view/context-change';
17
18
  export * from './utils';
18
19
  export * from './types';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3BhY2thZ2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2xhdGUtYW5ndWxhclxuICovXG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvYW5ndWxhci1lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zL3dpdGgtYW5ndWxhcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZWRpdGFibGUvZWRpdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvc3RyaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc3RyaW5nL2RlZmF1bHQtc3RyaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sZWF2ZXMvbGVhdmVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2Vycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vdmlldy9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlldy9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vdmlldy9iZWZvcmUtY29udGV4dC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3BhY2thZ2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzbGF0ZS1hbmd1bGFyXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMvd2l0aC1hbmd1bGFyJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lZGl0YWJsZS9lZGl0YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3N0cmluZy9zdHJpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvZGVmYXVsdC1zdHJpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jaGlsZHJlbi9jaGlsZHJlbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NoaWxkcmVuL2NoaWxkcmVuLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xlYXZlcy9sZWF2ZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3L2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3L2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3L2NvbnRleHQtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export const TRIPLE_CLICK = 3;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRSSVBMRV9DTElDSyA9IDM7XG4iXX0=
@@ -7,4 +7,5 @@ export * from './key';
7
7
  export * from './range-list';
8
8
  export * from './block-card';
9
9
  export * from './global-normalize';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2Vhay1tYXBzJztcbmV4cG9ydCAqIGZyb20gJy4vaG90a2V5cyc7XG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2tleSc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9jay1jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZ2xvYmFsLW5vcm1hbGl6ZSc7XG4iXX0=
10
+ export * from './throttle';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2Vhay1tYXBzJztcbmV4cG9ydCAqIGZyb20gJy4vaG90a2V5cyc7XG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2tleSc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9jay1jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZ2xvYmFsLW5vcm1hbGl6ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rocm90dGxlJztcbiJdfQ==
@@ -15,4 +15,4 @@ export const createThrottleRAF = () => {
15
15
  };
16
16
  return throttleRAF;
17
17
  };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvdGhyb3R0bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFO0lBQ2xDLElBQUksT0FBTyxHQUFrQixJQUFJLENBQUM7SUFDbEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFjLEVBQUUsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDakMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixFQUFFLEVBQUUsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ2xCLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFDRCxZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFDRixPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY3JlYXRlVGhyb3R0bGVSQUYgPSAoKSA9PiB7XG4gICAgbGV0IHRpbWVySWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IHRocm90dGxlUkFGID0gKGZuOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjaGVkdWxlRnVuYyA9ICgpID0+IHtcbiAgICAgICAgICAgIHRpbWVySWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRpbWVySWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRpbWVySWQpO1xuICAgICAgICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVGdW5jKCk7XG4gICAgfTtcbiAgICByZXR1cm4gdGhyb3R0bGVSQUY7XG59O1xuXG5leHBvcnQgdHlwZSBUaHJvdHRsZVJBRiA9IChmbjogKCkgPT4gdm9pZCkgPT4gdm9pZCJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvdGhyb3R0bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFO0lBQ2xDLElBQUksT0FBTyxHQUFrQixJQUFJLENBQUM7SUFDbEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFjLEVBQUUsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDakMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixFQUFFLEVBQUUsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ2xCLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFDRCxZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFDRixPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY3JlYXRlVGhyb3R0bGVSQUYgPSAoKSA9PiB7XG4gICAgbGV0IHRpbWVySWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IHRocm90dGxlUkFGID0gKGZuOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjaGVkdWxlRnVuYyA9ICgpID0+IHtcbiAgICAgICAgICAgIHRpbWVySWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRpbWVySWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRpbWVySWQpO1xuICAgICAgICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVGdW5jKCk7XG4gICAgfTtcbiAgICByZXR1cm4gdGhyb3R0bGVSQUY7XG59O1xuXG5leHBvcnQgdHlwZSBUaHJvdHRsZVJBRiA9IChmbjogKCkgPT4gdm9pZCkgPT4gdm9pZDtcbiJdfQ==
@@ -1,9 +1,10 @@
1
- import { Directive, HostBinding, Input, ViewContainerRef, inject } from '@angular/core';
1
+ import { Directive, HostBinding, Input, ViewChild, ViewContainerRef, inject } from '@angular/core';
2
2
  import { ELEMENT_TO_COMPONENT, ELEMENT_TO_NODE, NODE_TO_ELEMENT } from '../utils/weak-maps';
3
3
  import { Range } from 'slate';
4
- import { hasBeforeContextChange } from './before-context-change';
4
+ import { hasAfterContextChange, hasBeforeContextChange } from './context-change';
5
5
  import { ListRender } from './render/list-render';
6
6
  import { LeavesRender } from './render/leaves-render';
7
+ import { SlateChildrenOutlet } from '../components/children/children-outlet.component';
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * base class for custom element component or text component
@@ -15,6 +16,12 @@ export class BaseComponent {
15
16
  }
16
17
  this._context = value;
17
18
  this.onContextChange();
19
+ if (this.initialized) {
20
+ this.cdr.detectChanges();
21
+ }
22
+ if (hasAfterContextChange(this)) {
23
+ this.afterContextChange();
24
+ }
18
25
  }
19
26
  get context() {
20
27
  return this._context;
@@ -28,6 +35,7 @@ export class BaseComponent {
28
35
  constructor(elementRef, cdr) {
29
36
  this.elementRef = elementRef;
30
37
  this.cdr = cdr;
38
+ this.initialized = false;
31
39
  }
32
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
33
41
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseComponent, inputs: { context: "context", viewContext: "viewContext" }, ngImport: i0 }); }
@@ -45,7 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
45
53
  export class BaseLeafComponent extends BaseComponent {
46
54
  constructor() {
47
55
  super(...arguments);
48
- this.initialized = false;
49
56
  this.isSlateLeaf = true;
50
57
  }
51
58
  get text() {
@@ -61,7 +68,6 @@ export class BaseLeafComponent extends BaseComponent {
61
68
  if (!this.initialized) {
62
69
  return;
63
70
  }
64
- this.cdr.detectChanges();
65
71
  }
66
72
  renderPlaceholder() {
67
73
  // issue-1: IME input was interrupted
@@ -114,10 +120,15 @@ export class BaseElementComponent extends BaseComponent {
114
120
  constructor() {
115
121
  super(...arguments);
116
122
  this.viewContainerRef = inject(ViewContainerRef);
117
- this.initialized = false;
118
- this.getOutletElement = () => {
123
+ this.getOutletParent = () => {
119
124
  return this.elementRef.nativeElement;
120
125
  };
126
+ this.getOutletElement = () => {
127
+ if (this.childrenOutletInstance) {
128
+ return this.childrenOutletInstance.getNativeElement();
129
+ }
130
+ return null;
131
+ };
121
132
  }
122
133
  get element() {
123
134
  return this._context && this._context.element;
@@ -125,9 +136,6 @@ export class BaseElementComponent extends BaseComponent {
125
136
  get selection() {
126
137
  return this._context && this._context.selection;
127
138
  }
128
- get path() {
129
- return this._context && this._context.path;
130
- }
131
139
  get decorations() {
132
140
  return this._context && this._context.decorations;
133
141
  }
@@ -148,8 +156,16 @@ export class BaseElementComponent extends BaseComponent {
148
156
  this.nativeElement.setAttribute(key, this._context.attributes[key]);
149
157
  }
150
158
  this.initialized = true;
151
- this.listRender = new ListRender(this.viewContext, this.viewContainerRef, this.getOutletElement);
152
- this.listRender.initialize(this.children, this.element, this.path, this.childrenContext);
159
+ this.listRender = new ListRender(this.viewContext, this.viewContainerRef, this.getOutletParent, this.getOutletElement);
160
+ if (this.editor.isExpanded(this.element)) {
161
+ this.listRender.initialize(this.children, this.element, this.childrenContext);
162
+ }
163
+ }
164
+ afterViewInit() {
165
+ if (this._context.contentEditable !== undefined) {
166
+ this.nativeElement.setAttribute('contenteditable', this._context.contentEditable + '');
167
+ }
168
+ this.listRender.afterViewInit();
153
169
  }
154
170
  updateWeakMap() {
155
171
  NODE_TO_ELEMENT.set(this.element, this.nativeElement);
@@ -160,6 +176,7 @@ export class BaseElementComponent extends BaseComponent {
160
176
  if (NODE_TO_ELEMENT.get(this.element) === this.nativeElement) {
161
177
  NODE_TO_ELEMENT.delete(this.element);
162
178
  }
179
+ ELEMENT_TO_NODE.delete(this.nativeElement);
163
180
  if (ELEMENT_TO_COMPONENT.get(this.element) === this) {
164
181
  ELEMENT_TO_COMPONENT.delete(this.element);
165
182
  }
@@ -170,8 +187,17 @@ export class BaseElementComponent extends BaseComponent {
170
187
  if (!this.initialized) {
171
188
  return;
172
189
  }
173
- this.listRender.update(this.children, this.element, this.path, this.childrenContext);
174
- this.cdr.detectChanges();
190
+ this.updateChildrenView();
191
+ }
192
+ updateChildrenView() {
193
+ if (this.editor.isExpanded(this.element)) {
194
+ this.listRender.update(this.children, this.element, this.childrenContext);
195
+ }
196
+ else {
197
+ if (this.listRender.initialized) {
198
+ this.listRender.destroy();
199
+ }
200
+ }
175
201
  }
176
202
  getChildrenContext() {
177
203
  return {
@@ -183,29 +209,37 @@ export class BaseElementComponent extends BaseComponent {
183
209
  };
184
210
  }
185
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
186
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseElementComponent, usesInheritance: true, ngImport: i0 }); }
212
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseElementComponent, viewQueries: [{ propertyName: "childrenOutletInstance", first: true, predicate: SlateChildrenOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0 }); }
187
213
  }
188
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseElementComponent, decorators: [{
189
215
  type: Directive
190
- }] });
216
+ }], propDecorators: { childrenOutletInstance: [{
217
+ type: ViewChild,
218
+ args: [SlateChildrenOutlet, { static: true }]
219
+ }] } });
191
220
  /**
192
221
  * base class for custom text component
193
222
  */
194
223
  export class BaseTextComponent extends BaseComponent {
195
224
  constructor() {
196
225
  super(...arguments);
197
- this.initialized = false;
198
226
  this.viewContainerRef = inject(ViewContainerRef);
199
- this.getOutletElement = () => {
227
+ this.getOutletParent = () => {
200
228
  return this.elementRef.nativeElement;
201
229
  };
230
+ this.getOutletElement = () => {
231
+ if (this.childrenOutletInstance) {
232
+ return this.childrenOutletInstance.getNativeElement();
233
+ }
234
+ return null;
235
+ };
202
236
  }
203
237
  get text() {
204
238
  return this._context && this._context.text;
205
239
  }
206
240
  ngOnInit() {
207
241
  this.initialized = true;
208
- this.leavesRender = new LeavesRender(this.viewContext, this.viewContainerRef, this.getOutletElement);
242
+ this.leavesRender = new LeavesRender(this.viewContext, this.viewContainerRef, this.getOutletParent, this.getOutletElement);
209
243
  this.leavesRender.initialize(this.context);
210
244
  }
211
245
  updateWeakMap() {
@@ -216,6 +250,7 @@ export class BaseTextComponent extends BaseComponent {
216
250
  if (NODE_TO_ELEMENT.get(this.text) === this.nativeElement) {
217
251
  NODE_TO_ELEMENT.delete(this.text);
218
252
  }
253
+ ELEMENT_TO_NODE.delete(this.nativeElement);
219
254
  }
220
255
  onContextChange() {
221
256
  this.updateWeakMap();
@@ -223,12 +258,14 @@ export class BaseTextComponent extends BaseComponent {
223
258
  return;
224
259
  }
225
260
  this.leavesRender.update(this.context);
226
- this.cdr.detectChanges();
227
261
  }
228
262
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
229
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseTextComponent, usesInheritance: true, ngImport: i0 }); }
263
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseTextComponent, viewQueries: [{ propertyName: "childrenOutletInstance", first: true, predicate: SlateChildrenOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0 }); }
230
264
  }
231
265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseTextComponent, decorators: [{
232
266
  type: Directive
233
- }] });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUYsT0FBTyxFQUE2QixLQUFLLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFVdEQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFNL0IsSUFDSSxPQUFPLENBQUMsS0FBUTtRQUNoQixJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQW1CLFVBQXNCLEVBQVMsR0FBc0I7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LGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJy4uL3BsdWdpbnMvYW5ndWxhci1lZGl0b3InO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19DT01QT05FTlQsIEVMRU1FTlRfVE9fTk9ERSwgTk9ERV9UT19FTEVNRU5UIH0gZnJvbSAnLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFNsYXRlVmlld0NvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlTGVhZkNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCwgUGF0aCwgUmFuZ2UsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlIH0gZnJvbSAnLi9iZWZvcmUtY29udGV4dC1jaGFuZ2UnO1xuaW1wb3J0IHsgTGlzdFJlbmRlciB9IGZyb20gJy4vcmVuZGVyL2xpc3QtcmVuZGVyJztcbmltcG9ydCB7IExlYXZlc1JlbmRlciB9IGZyb20gJy4vcmVuZGVyL2xlYXZlcy1yZW5kZXInO1xuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIHRlbXBsYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUVtYmVkZGVkVmlldzxULCBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBjb250ZXh0OiBUO1xuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0PEs+O1xufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudCBvciB0ZXh0IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50PFxuICAgIFQgPSBTbGF0ZVRleHRDb250ZXh0IHwgU2xhdGVMZWFmQ29udGV4dCB8IFNsYXRlRWxlbWVudENvbnRleHQsXG4gICAgSyBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yXG4+IHtcbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgICAgIGlmIChoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLmJlZm9yZUNvbnRleHRDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ8Sz47XG5cbiAgICBnZXQgZWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCAmJiB0aGlzLnZpZXdDb250ZXh0LmVkaXRvcjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBhYnN0cmFjdCBvbkNvbnRleHRDaGFuZ2UoKTtcbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gbGVhZiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUxlYWZDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlTGVhZkNvbnRleHQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcGxhY2Vob2xkZXJFbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zbGF0ZS1sZWFmJykgaXNTbGF0ZUxlYWYgPSB0cnVlO1xuXG4gICAgZ2V0IHRleHQoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGxlYWYoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmxlYWY7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHJlbmRlclBsYWNlaG9sZGVyKCkge1xuICAgICAgICAvLyBpc3N1ZS0xOiBJTUUgaW5wdXQgd2FzIGludGVycnVwdGVkXG4gICAgICAgIC8vIGlzc3VlLTI6IElNRSBpbnB1dCBmb2N1cyBqdW1waW5nXG4gICAgICAgIC8vIElzc3VlIG9jY3VycyB3aGVuIHRoZSBzcGFuIG5vZGUgb2YgdGhlIHBsYWNlaG9sZGVyIGlzIGJlZm9yZSB0aGUgc2xhdGVTdHJpbmcgc3BhbiBub2RlXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVBsYWNlaG9sZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBwbGFjZWhvbGRlckVsZW1lbnQuaW5uZXJUZXh0ID0gdGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ107XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5jb250ZW50RWRpdGFibGUgPSAnZmFsc2UnO1xuICAgICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXNsYXRlLXBsYWNlaG9sZGVyJywgJ3RydWUnKTtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQgPSBwbGFjZWhvbGRlckVsZW1lbnQ7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdsZWFmLXdpdGgtcGxhY2Vob2xkZXInKTtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHBsYWNlaG9sZGVyRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdXBkYXRlUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgIT09IHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgPSB0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3lQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdsZWFmLXdpdGgtcGxhY2Vob2xkZXInKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gZWxlbWVudCBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUVsZW1lbnRDb21wb25lbnQ8VCBleHRlbmRzIEVsZW1lbnQgPSBFbGVtZW50LCBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+XG4gICAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlRWxlbWVudENvbnRleHQ8VD4sIEs+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY2hpbGRyZW5Db250ZXh0OiBTbGF0ZUNoaWxkcmVuQ29udGV4dDtcblxuICAgIGdldCBlbGVtZW50KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGlvbigpOiBSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIGdldCBwYXRoKCk6IFBhdGgge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnBhdGg7XG4gICAgfVxuXG4gICAgZ2V0IGRlY29yYXRpb25zKCk6IFJhbmdlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmRlY29yYXRpb25zO1xuICAgIH1cblxuICAgIGdldCBjaGlsZHJlbigpOiBEZXNjZW5kYW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmVsZW1lbnQuY2hpbGRyZW47XG4gICAgfVxuXG4gICAgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQodGhpcy5zZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIGdldCBpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQodGhpcy5zZWxlY3Rpb24pICYmICF0aGlzLnJlYWRvbmx5O1xuICAgIH1cblxuICAgIGdldCByZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5yZWFkb25seTtcbiAgICB9XG5cbiAgICBnZXRPdXRsZXRFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfTtcblxuICAgIGxpc3RSZW5kZXI6IExpc3RSZW5kZXI7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxpc3RSZW5kZXIgPSBuZXcgTGlzdFJlbmRlcih0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMuZ2V0T3V0bGV0RWxlbWVudCk7XG4gICAgICAgIHRoaXMubGlzdFJlbmRlci5pbml0aWFsaXplKHRoaXMuY2hpbGRyZW4sIHRoaXMuZWxlbWVudCwgdGhpcy5wYXRoLCB0aGlzLmNoaWxkcmVuQ29udGV4dCk7XG4gICAgfVxuXG4gICAgdXBkYXRlV2Vha01hcCgpIHtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLmVsZW1lbnQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIEVMRU1FTlRfVE9fTk9ERS5zZXQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5zZXQodGhpcy5lbGVtZW50LCB0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKE5PREVfVE9fRUxFTUVOVC5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBOT0RFX1RPX0VMRU1FTlQuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldCh0aGlzLmVsZW1lbnQpID09PSB0aGlzKSB7XG4gICAgICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbkNvbnRleHQgPSB0aGlzLmdldENoaWxkcmVuQ29udGV4dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0UmVuZGVyLnVwZGF0ZSh0aGlzLmNoaWxkcmVuLCB0aGlzLmVsZW1lbnQsIHRoaXMucGF0aCwgdGhpcy5jaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0Q2hpbGRyZW5Db250ZXh0KCk6IFNsYXRlQ2hpbGRyZW5Db250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5fY29udGV4dC5lbGVtZW50LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB0aGlzLl9jb250ZXh0LnNlbGVjdGlvbixcbiAgICAgICAgICAgIGRlY29yYXRpb25zOiB0aGlzLl9jb250ZXh0LmRlY29yYXRpb25zLFxuICAgICAgICAgICAgZGVjb3JhdGU6IHRoaXMuX2NvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5fY29udGV4dC5yZWFkb25seVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gdGV4dCBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZVRleHRDb21wb25lbnQ8VCBleHRlbmRzIFRleHQgPSBUZXh0PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVUZXh0Q29udGV4dDxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBnZXQgdGV4dCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC50ZXh0O1xuICAgIH1cblxuICAgIGxlYXZlc1JlbmRlcjogTGVhdmVzUmVuZGVyO1xuXG4gICAgZ2V0T3V0bGV0RWxlbWVudCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGVhdmVzUmVuZGVyID0gbmV3IExlYXZlc1JlbmRlcih0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMuZ2V0T3V0bGV0RWxlbWVudCk7XG4gICAgICAgIHRoaXMubGVhdmVzUmVuZGVyLmluaXRpYWxpemUodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICB1cGRhdGVXZWFrTWFwKCkge1xuICAgICAgICBFTEVNRU5UX1RPX05PREUuc2V0KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy50ZXh0KTtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLnRleHQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChOT0RFX1RPX0VMRU1FTlQuZ2V0KHRoaXMudGV4dCkgPT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgTk9ERV9UT19FTEVNRU5ULmRlbGV0ZSh0aGlzLnRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sZWF2ZXNSZW5kZXIudXBkYXRlKHRoaXMuY29udGV4dCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iXX0=
267
+ }], propDecorators: { childrenOutletInstance: [{
268
+ type: ViewChild,
269
+ args: [SlateChildrenOutlet, { static: true }]
270
+ }] } });
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUYsT0FBTyxFQUE2QixLQUFLLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFVdkY7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFRL0IsSUFDSSxPQUFPLENBQUMsS0FBUTtRQUNoQixJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUkscUJBQXFCLENBQUksSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FB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LENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQS9DUSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrRkFTZixtQkFBbUI7OzJGQVRyQixpQkFBaUI7a0JBRDdCLFNBQVM7OEJBV04sc0JBQXNCO3NCQURyQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBFTEVNRU5UX1RPX0NPTVBPTkVOVCwgRUxFTUVOVF9UT19OT0RFLCBOT0RFX1RPX0VMRU1FTlQgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgU2xhdGVWaWV3Q29udGV4dCwgU2xhdGVFbGVtZW50Q29udGV4dCwgU2xhdGVUZXh0Q29udGV4dCwgU2xhdGVMZWFmQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBEZXNjZW5kYW50LCBFbGVtZW50LCBQYXRoLCBSYW5nZSwgVGV4dCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW5Db250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IGhhc0FmdGVyQ29udGV4dENoYW5nZSwgaGFzQmVmb3JlQ29udGV4dENoYW5nZSB9IGZyb20gJy4vY29udGV4dC1jaGFuZ2UnO1xuaW1wb3J0IHsgTGlzdFJlbmRlciB9IGZyb20gJy4vcmVuZGVyL2xpc3QtcmVuZGVyJztcbmltcG9ydCB7IExlYXZlc1JlbmRlciB9IGZyb20gJy4vcmVuZGVyL2xlYXZlcy1yZW5kZXInO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbk91dGxldCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4tb3V0bGV0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogYmFzZSBjbGFzcyBmb3IgdGVtcGxhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRW1iZWRkZWRWaWV3PFQsIEsgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yID0gQW5ndWxhckVkaXRvcj4ge1xuICAgIGNvbnRleHQ6IFQ7XG4gICAgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ8Sz47XG59XG5cbi8qKlxuICogYmFzZSBjbGFzcyBmb3IgY3VzdG9tIGVsZW1lbnQgY29tcG9uZW50IG9yIHRleHQgY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQ8XG4gICAgVCA9IFNsYXRlVGV4dENvbnRleHQgfCBTbGF0ZUxlYWZDb250ZXh0IHwgU2xhdGVFbGVtZW50Q29udGV4dCxcbiAgICBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3Jcbj4ge1xuICAgIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgICAgIGlmIChoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLmJlZm9yZUNvbnRleHRDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFzQWZ0ZXJDb250ZXh0Q2hhbmdlPFQ+KHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLmFmdGVyQ29udGV4dENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0PEs+O1xuXG4gICAgZ2V0IGVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQgJiYgdGhpcy52aWV3Q29udGV4dC5lZGl0b3I7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIGFic3RyYWN0IG9uQ29udGV4dENoYW5nZSgpO1xufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBsZWFmIGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlTGVhZkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVMZWFmQ29udGV4dD4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHBsYWNlaG9sZGVyRWxlbWVudDogSFRNTFNwYW5FbGVtZW50O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2xhdGUtbGVhZicpIGlzU2xhdGVMZWFmID0gdHJ1ZTtcblxuICAgIGdldCB0ZXh0KCk6IFRleHQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC50ZXh0O1xuICAgIH1cblxuICAgIGdldCBsZWFmKCk6IFRleHQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC5sZWFmO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIC8vIGlzc3VlLTE6IElNRSBpbnB1dCB3YXMgaW50ZXJydXB0ZWRcbiAgICAgICAgLy8gaXNzdWUtMjogSU1FIGlucHV0IGZvY3VzIGp1bXBpbmdcbiAgICAgICAgLy8gSXNzdWUgb2NjdXJzIHdoZW4gdGhlIHNwYW4gbm9kZSBvZiB0aGUgcGxhY2Vob2xkZXIgaXMgYmVmb3JlIHRoZSBzbGF0ZVN0cmluZyBzcGFuIG5vZGVcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95UGxhY2Vob2xkZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgPSB0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXTtcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9ICdmYWxzZSc7XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xhdGUtcGxhY2Vob2xkZXInLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCA9IHBsYWNlaG9sZGVyRWxlbWVudDtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2xlYWYtd2l0aC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2Vob2xkZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB1cGRhdGVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCAhPT0gdGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ10pIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCA9IHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2xlYWYtd2l0aC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlRWxlbWVudENvbXBvbmVudDxUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQsIEsgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yID0gQW5ndWxhckVkaXRvcj5cbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVFbGVtZW50Q29udGV4dDxUPiwgSz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQ7XG5cbiAgICBAVmlld0NoaWxkKFNsYXRlQ2hpbGRyZW5PdXRsZXQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY2hpbGRyZW5PdXRsZXRJbnN0YW5jZT86IFNsYXRlQ2hpbGRyZW5PdXRsZXQ7XG5cbiAgICBnZXQgZWxlbWVudCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5lbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBzZWxlY3Rpb24oKTogUmFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICBnZXQgZGVjb3JhdGlvbnMoKTogUmFuZ2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuZGVjb3JhdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuKCk6IERlc2NlbmRhbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuZWxlbWVudC5jaGlsZHJlbjtcbiAgICB9XG5cbiAgICBnZXQgaXNDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZCh0aGlzLnNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZCh0aGlzLnNlbGVjdGlvbikgJiYgIXRoaXMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnJlYWRvbmx5O1xuICAgIH1cblxuICAgIGdldE91dGxldFBhcmVudCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH07XG5cbiAgICBnZXRPdXRsZXRFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbk91dGxldEluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbk91dGxldEluc3RhbmNlLmdldE5hdGl2ZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgbGlzdFJlbmRlcjogTGlzdFJlbmRlcjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLl9jb250ZXh0LmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCB0aGlzLl9jb250ZXh0LmF0dHJpYnV0ZXNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGlzdFJlbmRlciA9IG5ldyBMaXN0UmVuZGVyKHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy5nZXRPdXRsZXRQYXJlbnQsIHRoaXMuZ2V0T3V0bGV0RWxlbWVudCk7XG4gICAgICAgIGlmICh0aGlzLmVkaXRvci5pc0V4cGFuZGVkKHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdFJlbmRlci5pbml0aWFsaXplKHRoaXMuY2hpbGRyZW4sIHRoaXMuZWxlbWVudCwgdGhpcy5jaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnRleHQuY29udGVudEVkaXRhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHRoaXMuX2NvbnRleHQuY29udGVudEVkaXRhYmxlICsgJycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlzdFJlbmRlci5hZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgdXBkYXRlV2Vha01hcCgpIHtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLmVsZW1lbnQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIEVMRU1FTlRfVE9fTk9ERS5zZXQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5zZXQodGhpcy5lbGVtZW50LCB0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKE5PREVfVE9fRUxFTUVOVC5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBOT0RFX1RPX0VMRU1FTlQuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgRUxFTUVOVF9UT19OT0RFLmRlbGV0ZSh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBpZiAoRUxFTUVOVF9UT19DT01QT05FTlQuZ2V0KHRoaXMuZWxlbWVudCkgPT09IHRoaXMpIHtcbiAgICAgICAgICAgIEVMRU1FTlRfVE9fQ09NUE9ORU5ULmRlbGV0ZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuQ29udGV4dCA9IHRoaXMuZ2V0Q2hpbGRyZW5Db250ZXh0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlV2Vha01hcCgpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuVmlldygpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNoaWxkcmVuVmlldygpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yLmlzRXhwYW5kZWQodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5saXN0UmVuZGVyLnVwZGF0ZSh0aGlzLmNoaWxkcmVuLCB0aGlzLmVsZW1lbnQsIHRoaXMuY2hpbGRyZW5Db250ZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxpc3RSZW5kZXIuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RSZW5kZXIuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q2hpbGRyZW5Db250ZXh0KCk6IFNsYXRlQ2hpbGRyZW5Db250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5fY29udGV4dC5lbGVtZW50LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB0aGlzLl9jb250ZXh0LnNlbGVjdGlvbixcbiAgICAgICAgICAgIGRlY29yYXRpb25zOiB0aGlzLl9jb250ZXh0LmRlY29yYXRpb25zLFxuICAgICAgICAgICAgZGVjb3JhdGU6IHRoaXMuX2NvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5fY29udGV4dC5yZWFkb25seVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gdGV4dCBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZVRleHRDb21wb25lbnQ8VCBleHRlbmRzIFRleHQgPSBUZXh0PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVUZXh0Q29udGV4dDxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGdldCB0ZXh0KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnRleHQ7XG4gICAgfVxuXG4gICAgbGVhdmVzUmVuZGVyOiBMZWF2ZXNSZW5kZXI7XG5cbiAgICBAVmlld0NoaWxkKFNsYXRlQ2hpbGRyZW5PdXRsZXQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY2hpbGRyZW5PdXRsZXRJbnN0YW5jZT86IFNsYXRlQ2hpbGRyZW5PdXRsZXQ7XG5cbiAgICBnZXRPdXRsZXRQYXJlbnQgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9O1xuXG4gICAgZ2V0T3V0bGV0RWxlbWVudCA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5PdXRsZXRJbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5PdXRsZXRJbnN0YW5jZS5nZXROYXRpdmVFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sZWF2ZXNSZW5kZXIgPSBuZXcgTGVhdmVzUmVuZGVyKHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy5nZXRPdXRsZXRQYXJlbnQsIHRoaXMuZ2V0T3V0bGV0RWxlbWVudCk7XG4gICAgICAgIHRoaXMubGVhdmVzUmVuZGVyLmluaXRpYWxpemUodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICB1cGRhdGVXZWFrTWFwKCkge1xuICAgICAgICBFTEVNRU5UX1RPX05PREUuc2V0KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy50ZXh0KTtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLnRleHQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChOT0RFX1RPX0VMRU1FTlQuZ2V0KHRoaXMudGV4dCkgPT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgTk9ERV9UT19FTEVNRU5ULmRlbGV0ZSh0aGlzLnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIEVMRU1FTlRfVE9fTk9ERS5kZWxldGUodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlV2Vha01hcCgpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxlYXZlc1JlbmRlci51cGRhdGUodGhpcy5jb250ZXh0KTtcbiAgICB9XG59XG4iXX0=
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
19
19
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.IterableDiffers }]; }, propDecorators: { viewContext: [{
20
20
  type: Input
21
21
  }] } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFtQixNQUFNLGVBQWUsQ0FBQzs7QUFJOUU7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFHL0IsWUFBc0IsVUFBMkIsRUFBWSxPQUF3QjtRQUEvRCxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUFZLFlBQU8sR0FBUCxPQUFPLENBQWlCO0lBQUcsQ0FBQzs4R0FIdkUsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQURsQyxTQUFTOytIQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBJdGVyYWJsZURpZmZlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lckl0ZW0gfSBmcm9tICcuL2NvbnRhaW5lci1pdGVtJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogdGhlIHNwZWNpYWwgY29udGFpbmVyIGZvciBhbmd1bGFyIHRlbXBsYXRlXG4gKiBBZGQgdGhlIHJvb3ROb2RlcyBvZiBlYWNoIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgcGFyZW50RWxlbWVudFxuICogUmVtb3ZlIHVzZWxlc3MgRE9NIGVsZW1lbnRzLCBlZzogY29tbWVudC4uLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3Q29udGFpbmVyPFQgZXh0ZW5kcyBWaWV3Q29udGFpbmVySXRlbT4ge1xuICAgIEBJbnB1dCgpIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8YW55PiwgcHJvdGVjdGVkIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge31cbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFtQixNQUFNLGVBQWUsQ0FBQzs7QUFJOUU7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFHL0IsWUFDYyxVQUEyQixFQUMzQixPQUF3QjtRQUR4QixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUNuQyxDQUFDOzhHQU5jLGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUzsrSEFFRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgSXRlcmFibGVEaWZmZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IFZpZXdDb250YWluZXJJdGVtIH0gZnJvbSAnLi9jb250YWluZXItaXRlbSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIHRoZSBzcGVjaWFsIGNvbnRhaW5lciBmb3IgYW5ndWxhciB0ZW1wbGF0ZVxuICogQWRkIHRoZSByb290Tm9kZXMgb2YgZWFjaCBjaGlsZCBjb21wb25lbnQgdG8gdGhlIHBhcmVudEVsZW1lbnRcbiAqIFJlbW92ZSB1c2VsZXNzIERPTSBlbGVtZW50cywgZWc6IGNvbW1lbnQuLi5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlld0NvbnRhaW5lcjxUIGV4dGVuZHMgVmlld0NvbnRhaW5lckl0ZW0+IHtcbiAgICBASW5wdXQoKSB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxhbnk+LFxuICAgICAgICBwcm90ZWN0ZWQgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzXG4gICAgKSB7fVxufVxuIl19
@@ -0,0 +1,13 @@
1
+ export function hasBeforeContextChange(value) {
2
+ if (value.beforeContextChange) {
3
+ return true;
4
+ }
5
+ return false;
6
+ }
7
+ export function hasAfterContextChange(value) {
8
+ if (value.afterContextChange) {
9
+ return true;
10
+ }
11
+ return false;
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1jaGFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9jb250ZXh0LWNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLFVBQVUsc0JBQXNCLENBQUksS0FBSztJQUMzQyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtRQUMzQixPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxLQUFLO0lBQzFDLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+IHtcbiAgICBiZWZvcmVDb250ZXh0Q2hhbmdlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJDb250ZXh0Q2hhbmdlPD4ge1xuICAgIGFmdGVyQ29udGV4dENoYW5nZTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0JlZm9yZUNvbnRleHRDaGFuZ2U8VD4odmFsdWUpOiB2YWx1ZSBpcyBCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+IHtcbiAgICBpZiAodmFsdWUuYmVmb3JlQ29udGV4dENoYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQWZ0ZXJDb250ZXh0Q2hhbmdlPFQ+KHZhbHVlKTogdmFsdWUgaXMgQWZ0ZXJDb250ZXh0Q2hhbmdlIHtcbiAgICBpZiAodmFsdWUuYWZ0ZXJDb250ZXh0Q2hhbmdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgUmFuZ2UsIEVsZW1lbnQsIEFuY2VzdG9yLCBUZXh0LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3RyaW5nL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBWaWV3VHlwZSB9IGZyb20gJy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnRDb21wb25lbnQsIEJhc2VMZWFmQ29tcG9uZW50LCBCYXNlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVWaWV3Q29udGV4dDxUIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBlZGl0b3I6IFQ7XG4gICAgdGVtcGxhdGVDb21wb25lbnQ6IFNsYXRlU3RyaW5nVGVtcGxhdGU7XG4gICAgZGVmYXVsdEVsZW1lbnQ6IENvbXBvbmVudFR5cGU8QmFzZUVsZW1lbnRDb21wb25lbnQ+O1xuICAgIGRlZmF1bHRUZXh0OiBDb21wb25lbnRUeXBlPEJhc2VUZXh0Q29tcG9uZW50PjtcbiAgICBkZWZhdWx0Vm9pZFRleHQ6IENvbXBvbmVudFR5cGU8QmFzZVRleHRDb21wb25lbnQ+O1xuICAgIGRlZmF1bHRMZWFmOiBDb21wb25lbnRUeXBlPEJhc2VMZWFmQ29tcG9uZW50PjtcbiAgICB0cmFja0J5OiAoZWxlbWVudDogRWxlbWVudCkgPT4gYW55O1xuICAgIHJlbmRlckVsZW1lbnQ/OiAoZWxlbWVudDogRWxlbWVudCkgPT4gVmlld1R5cGU7XG4gICAgcmVuZGVyTGVhZj86ICh0ZXh0OiBUZXh0KSA9PiBWaWV3VHlwZTtcbiAgICByZW5kZXJUZXh0PzogKHRleHQ6IFRleHQpID0+IFZpZXdUeXBlO1xuICAgIGlzU3RyaWN0RGVjb3JhdGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVDaGlsZHJlbkNvbnRleHQge1xuICAgIHBhcmVudDogQW5jZXN0b3I7XG4gICAgc2VsZWN0aW9uOiBSYW5nZTtcbiAgICBkZWNvcmF0aW9uczogUmFuZ2VbXTtcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVFbGVtZW50Q29udGV4dDxUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIHNlbGVjdGlvbjogUmFuZ2UgfCBudWxsO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgZGVjb3JhdGlvbnM6IFJhbmdlW107XG4gICAgYXR0cmlidXRlczogU2xhdGVFbGVtZW50QXR0cmlidXRlcztcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVUZXh0Q29udGV4dDxUIGV4dGVuZHMgVGV4dCA9IFRleHQ+IHtcbiAgICB0ZXh0OiBUO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBwYXJlbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVMZWFmQ29udGV4dCB7XG4gICAgbGVhZjogVGV4dDtcbiAgICB0ZXh0OiBUZXh0O1xuICAgIHBhcmVudDogRWxlbWVudDtcbiAgICBpc0xhc3Q6IGJvb2xlYW47XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRBdHRyaWJ1dGVzIHtcbiAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnO1xuICAgICdkYXRhLXNsYXRlLXZvaWQnPzogYm9vbGVhbjtcbiAgICAnZGF0YS1zbGF0ZS1pbmxpbmUnPzogYm9vbGVhbjtcbiAgICBjb250ZW50ZWRpdGFibGU/OiBib29sZWFuO1xuICAgICdkYXRhLXNsYXRlLWtleSc/OiBzdHJpbmc7XG4gICAgZGlyPzogJ3J0bCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVTdHJpbmdDb250ZXh0IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZWxlbWVudFN0cmluZ0xlbmd0aDogbnVtYmVyO1xuICAgIHR5cGU6ICdzdHJpbmcnIHwgJ2xpbmVCcmVha0VtcHR5U3RyaW5nJztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgUmFuZ2UsIEVsZW1lbnQsIEFuY2VzdG9yLCBUZXh0LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3RyaW5nL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBWaWV3VHlwZSB9IGZyb20gJy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnRDb21wb25lbnQsIEJhc2VMZWFmQ29tcG9uZW50LCBCYXNlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVWaWV3Q29udGV4dDxUIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBlZGl0b3I6IFQ7XG4gICAgdGVtcGxhdGVDb21wb25lbnQ6IFNsYXRlU3RyaW5nVGVtcGxhdGU7XG4gICAgZGVmYXVsdEVsZW1lbnQ6IENvbXBvbmVudFR5cGU8QmFzZUVsZW1lbnRDb21wb25lbnQ+O1xuICAgIGRlZmF1bHRUZXh0OiBDb21wb25lbnRUeXBlPEJhc2VUZXh0Q29tcG9uZW50PjtcbiAgICBkZWZhdWx0Vm9pZFRleHQ6IENvbXBvbmVudFR5cGU8QmFzZVRleHRDb21wb25lbnQ+O1xuICAgIGRlZmF1bHRMZWFmOiBDb21wb25lbnRUeXBlPEJhc2VMZWFmQ29tcG9uZW50PjtcbiAgICB0cmFja0J5OiAoZWxlbWVudDogRWxlbWVudCkgPT4gYW55O1xuICAgIHJlbmRlckVsZW1lbnQ/OiAoZWxlbWVudDogRWxlbWVudCkgPT4gVmlld1R5cGU7XG4gICAgcmVuZGVyTGVhZj86ICh0ZXh0OiBUZXh0KSA9PiBWaWV3VHlwZTtcbiAgICByZW5kZXJUZXh0PzogKHRleHQ6IFRleHQpID0+IFZpZXdUeXBlO1xuICAgIGlzU3RyaWN0RGVjb3JhdGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVDaGlsZHJlbkNvbnRleHQge1xuICAgIHBhcmVudDogQW5jZXN0b3I7XG4gICAgc2VsZWN0aW9uOiBSYW5nZTtcbiAgICBkZWNvcmF0aW9uczogUmFuZ2VbXTtcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVFbGVtZW50Q29udGV4dDxUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIHNlbGVjdGlvbjogUmFuZ2UgfCBudWxsO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGF0dHJpYnV0ZXM6IFNsYXRlRWxlbWVudEF0dHJpYnV0ZXM7XG4gICAgY29udGVudEVkaXRhYmxlPzogYm9vbGVhbjtcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVUZXh0Q29udGV4dDxUIGV4dGVuZHMgVGV4dCA9IFRleHQ+IHtcbiAgICB0ZXh0OiBUO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBwYXJlbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVMZWFmQ29udGV4dCB7XG4gICAgbGVhZjogVGV4dDtcbiAgICB0ZXh0OiBUZXh0O1xuICAgIHBhcmVudDogRWxlbWVudDtcbiAgICBpc0xhc3Q6IGJvb2xlYW47XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRBdHRyaWJ1dGVzIHtcbiAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnO1xuICAgICdkYXRhLXNsYXRlLXZvaWQnPzogYm9vbGVhbjtcbiAgICAnZGF0YS1zbGF0ZS1pbmxpbmUnPzogYm9vbGVhbjtcbiAgICAnZGF0YS1zbGF0ZS1rZXknPzogc3RyaW5nO1xuICAgIGRpcj86ICdydGwnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNsYXRlU3RyaW5nQ29udGV4dCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGVsZW1lbnRTdHJpbmdMZW5ndGg6IG51bWJlcjtcbiAgICB0eXBlOiAnc3RyaW5nJyB8ICdsaW5lQnJlYWtFbXB0eVN0cmluZyc7XG59XG4iXX0=
@@ -2,9 +2,10 @@ import { Text } from 'slate';
2
2
  import { IterableDiffers } from '@angular/core';
3
3
  import { createEmbeddedViewOrComponent, getRootNodes, mount, mountOnItemChange, updateContext } from './utils';
4
4
  export class LeavesRender {
5
- constructor(viewContext, viewContainerRef, getOutletElement) {
5
+ constructor(viewContext, viewContainerRef, getOutletParent, getOutletElement) {
6
6
  this.viewContext = viewContext;
7
7
  this.viewContainerRef = viewContainerRef;
8
+ this.getOutletParent = getOutletParent;
8
9
  this.getOutletElement = getOutletElement;
9
10
  this.views = [];
10
11
  this.contexts = [];
@@ -22,16 +23,17 @@ export class LeavesRender {
22
23
  this.contexts.push(context);
23
24
  this.viewTypes.push(viewType);
24
25
  });
25
- mount(this.views, null, this.getOutletElement());
26
+ mount(this.views, null, this.getOutletParent(), this.getOutletElement());
26
27
  const newDiffers = this.viewContainerRef.injector.get(IterableDiffers);
27
28
  this.differ = newDiffers.find(this.leaves).create(trackBy(this.viewContext));
28
29
  this.differ.diff(this.leaves);
29
30
  }
30
31
  update(context) {
31
32
  const { leaves, contexts } = this.getLeaves(context);
32
- const outletElement = this.getOutletElement();
33
+ const outletParent = this.getOutletParent();
33
34
  const diffResult = this.differ.diff(leaves);
34
35
  if (diffResult) {
36
+ let firstRootNode = getRootNodes(this.views[0])[0];
35
37
  const newContexts = [];
36
38
  const newViewTypes = [];
37
39
  const newViews = [];
@@ -44,7 +46,7 @@ export class LeavesRender {
44
46
  view = createEmbeddedViewOrComponent(viewType, context, this.viewContext, this.viewContainerRef);
45
47
  newContexts.push(context);
46
48
  newViews.push(view);
47
- mountOnItemChange(record.currentIndex, record.item, newViews, null, outletElement, this.viewContext);
49
+ mountOnItemChange(record.currentIndex, record.item, newViews, null, outletParent, firstRootNode, this.viewContext);
48
50
  }
49
51
  else {
50
52
  const previousView = this.views[record.previousIndex];
@@ -69,7 +71,7 @@ export class LeavesRender {
69
71
  view.destroy();
70
72
  });
71
73
  diffResult.forEachMovedItem(record => {
72
- mountOnItemChange(record.currentIndex, record.item, newViews, null, outletElement, this.viewContext);
74
+ mountOnItemChange(record.currentIndex, record.item, newViews, null, outletParent, firstRootNode, this.viewContext);
73
75
  });
74
76
  this.viewTypes = newViewTypes;
75
77
  this.views = newViews;
@@ -102,4 +104,4 @@ export function trackBy(viewContext) {
102
104
  return index;
103
105
  };
104
106
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmVzLXJlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L3JlbmRlci9sZWF2ZXMtcmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFpRCxlQUFlLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR2pILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUvRyxNQUFNLE9BQU8sWUFBWTtJQU9yQixZQUNZLFdBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxnQkFBbUM7UUFGbkMsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQVJ2QyxVQUFLLEdBQWlELEVBQUUsQ0FBQztRQUN6RCxhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQUNsQyxjQUFTLEdBQWUsRUFBRSxDQUFDO0lBT2hDLENBQUM7SUFFRyxVQUFVLENBQUMsT0FBeUI7UUFDdkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVB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XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiwgSXRlcmFibGVEaWZmZXIsIEl0ZXJhYmxlRGlmZmVycywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcy92aWV3JztcbmltcG9ydCB7IFNsYXRlTGVhZkNvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50LCBnZXRSb290Tm9kZXMsIG1vdW50LCBtb3VudE9uSXRlbUNoYW5nZSwgdXBkYXRlQ29udGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGVhdmVzUmVuZGVyIHtcbiAgICBwcml2YXRlIGxlYXZlczogVGV4dFtdO1xuICAgIHByaXZhdGUgdmlld3M6IChFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KVtdID0gW107XG4gICAgcHJpdmF0ZSBjb250ZXh0czogU2xhdGVMZWFmQ29udGV4dFtdID0gW107XG4gICAgcHJpdmF0ZSB2aWV3VHlwZXM6IFZpZXdUeXBlW10gPSBbXTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZ2V0T3V0bGV0RWxlbWVudDogKCkgPT4gSFRNTEVsZW1lbnRcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShjb250ZXh0OiBTbGF0ZVRleHRDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgbGVhdmVzLCBjb250ZXh0cyB9ID0gdGhpcy5nZXRMZWF2ZXMoY29udGV4dCk7XG4gICAgICAgIHRoaXMubGVhdmVzID0gbGVhdmVzO1xuICAgICAgICB0aGlzLmNvbnRleHRzID0gY29udGV4dHM7XG4gICAgICAgIHRoaXMubGVhdmVzLmZvckVhY2goKGxlYWYsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2V0Q29udGV4dChpbmRleCwgdGhpcy5jb250ZXh0cyk7XG4gICAgICAgICAgICBjb25zdCB2aWV3VHlwZSA9IGdldFZpZXdUeXBlKGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KHZpZXdUeXBlLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBtb3VudCh0aGlzLnZpZXdzLCBudWxsLCB0aGlzLmdldE91dGxldEVsZW1lbnQoKSk7XG4gICAgICAgIGNvbnN0IG5ld0RpZmZlcnMgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IuZ2V0KEl0ZXJhYmxlRGlmZmVycyk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gbmV3RGlmZmVycy5maW5kKHRoaXMubGVhdmVzKS5jcmVhdGUodHJhY2tCeSh0aGlzLnZpZXdDb250ZXh0KSk7XG4gICAgICAgIHRoaXMuZGlmZmVyLmRpZmYodGhpcy5sZWF2ZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUoY29udGV4dDogU2xhdGVUZXh0Q29udGV4dCkge1xuICAgICAgICBjb25zdCB7IGxlYXZlcywgY29udGV4dHMgfSA9IHRoaXMuZ2V0TGVhdmVzKGNvbnRleHQpO1xuICAgICAgICBjb25zdCBvdXRsZXRFbGVtZW50ID0gdGhpcy5nZXRPdXRsZXRFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGRpZmZSZXN1bHQgPSB0aGlzLmRpZmZlci5kaWZmKGxlYXZlcyk7XG4gICAgICAgIGlmIChkaWZmUmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3Vmlld1R5cGVzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdWaWV3cyA9IFtdO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoSXRlbShyZWNvcmQgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gZ2V0Q29udGV4dChyZWNvcmQuY3VycmVudEluZGV4LCBjb250ZXh0cyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBuZXdWaWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgbW91bnRPbkl0ZW1DaGFuZ2UocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIG5ld1ZpZXdzLCBudWxsLCBvdXRsZXRFbGVtZW50LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaWV3VHlwZSA9IHRoaXMudmlld1R5cGVzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1R5cGUgIT09IHZpZXdUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQodmlld1R5cGUsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFJvb3ROb2RlID0gZ2V0Um9vdE5vZGVzKHByZXZpb3VzVmlldywgbnVsbClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldywgbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFJvb3ROb2RlLnJlcGxhY2VXaXRoKC4uLm5ld1Jvb3ROb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1ZpZXcuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IHByZXZpb3VzVmlldztcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnRleHQocHJldmlvdXNWaWV3LCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdDb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdWaWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoUmVtb3ZlZEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3c1tyZWNvcmQucHJldmlvdXNJbmRleF07XG4gICAgICAgICAgICAgICAgdmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRpZmZSZXN1bHQuZm9yRWFjaE1vdmVkSXRlbShyZWNvcmQgPT4ge1xuICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKHJlY29yZC5jdXJyZW50SW5kZXgsIHJlY29yZC5pdGVtLCBuZXdWaWV3cywgbnVsbCwgb3V0bGV0RWxlbWVudCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudmlld1R5cGVzID0gbmV3Vmlld1R5cGVzO1xuICAgICAgICAgICAgdGhpcy52aWV3cyA9IG5ld1ZpZXdzO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cyA9IG5ld0NvbnRleHRzO1xuICAgICAgICAgICAgdGhpcy5sZWF2ZXMgPSBsZWF2ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExlYXZlcyhjb250ZXh0OiBTbGF0ZVRleHRDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGxlYXZlcyA9IFRleHQuZGVjb3JhdGlvbnMoY29udGV4dC50ZXh0LCBjb250ZXh0LmRlY29yYXRpb25zKTtcbiAgICAgICAgY29uc3QgY29udGV4dHMgPSBsZWF2ZXMubWFwKChsZWFmLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsZWFmLFxuICAgICAgICAgICAgICAgIHRleHQ6IGNvbnRleHQudGV4dCxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGNvbnRleHQucGFyZW50LFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgIGlzTGFzdDogY29udGV4dC5pc0xhc3QgJiYgaW5kZXggPT09IGxlYXZlcy5sZW5ndGggLSAxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgbGVhdmVzLCBjb250ZXh0cyB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRleHQoaW5kZXg6IG51bWJlciwgbGVhZkNvbnRleHRzOiBTbGF0ZUxlYWZDb250ZXh0W10pOiBTbGF0ZUxlYWZDb250ZXh0IHtcbiAgICByZXR1cm4gbGVhZkNvbnRleHRzW2luZGV4XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdUeXBlKGxlYWZDb250ZXh0OiBTbGF0ZUxlYWZDb250ZXh0LCB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dCkge1xuICAgIHJldHVybiAodmlld0NvbnRleHQucmVuZGVyTGVhZiAmJiB2aWV3Q29udGV4dC5yZW5kZXJMZWFmKGxlYWZDb250ZXh0LmxlYWYpKSB8fCB2aWV3Q29udGV4dC5kZWZhdWx0TGVhZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQnkodmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICByZXR1cm4gKGluZGV4LCBub2RlKSA9PiB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9O1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmVzLXJlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L3JlbmRlci9sZWF2ZXMtcmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFpRCxlQUFlLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR2pILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUvRyxNQUFNLE9BQU8sWUFBWTtJQU9yQixZQUNZLFdBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxlQUFrQyxFQUNsQyxnQkFBbUM7UUFIbkMsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFUdkMsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsYUFBUSxHQUF1QixFQUFFLENBQUM7UUFDbEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztJQVFoQyxDQUFDO0lBRUcsVUFBVSxDQUFDLE9BQXlCO1FBQ3ZDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FB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O0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxXQUE2QjtJQUNqRCxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEl0ZXJhYmxlRGlmZmVyLCBJdGVyYWJsZURpZmZlcnMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmlldyc7XG5pbXBvcnQgeyBTbGF0ZUxlYWZDb250ZXh0LCBTbGF0ZVRleHRDb250ZXh0LCBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCwgZ2V0Um9vdE5vZGVzLCBtb3VudCwgbW91bnRPbkl0ZW1DaGFuZ2UsIHVwZGF0ZUNvbnRleHQgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIExlYXZlc1JlbmRlciB7XG4gICAgcHJpdmF0ZSBsZWF2ZXM6IFRleHRbXTtcbiAgICBwcml2YXRlIHZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSA9IFtdO1xuICAgIHByaXZhdGUgY29udGV4dHM6IFNsYXRlTGVhZkNvbnRleHRbXSA9IFtdO1xuICAgIHByaXZhdGUgdmlld1R5cGVzOiBWaWV3VHlwZVtdID0gW107XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dCxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGdldE91dGxldFBhcmVudDogKCkgPT4gSFRNTEVsZW1lbnQsXG4gICAgICAgIHByaXZhdGUgZ2V0T3V0bGV0RWxlbWVudDogKCkgPT4gSFRNTEVsZW1lbnRcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShjb250ZXh0OiBTbGF0ZVRleHRDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgbGVhdmVzLCBjb250ZXh0cyB9ID0gdGhpcy5nZXRMZWF2ZXMoY29udGV4dCk7XG4gICAgICAgIHRoaXMubGVhdmVzID0gbGVhdmVzO1xuICAgICAgICB0aGlzLmNvbnRleHRzID0gY29udGV4dHM7XG4gICAgICAgIHRoaXMubGVhdmVzLmZvckVhY2goKGxlYWYsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2V0Q29udGV4dChpbmRleCwgdGhpcy5jb250ZXh0cyk7XG4gICAgICAgICAgICBjb25zdCB2aWV3VHlwZSA9IGdldFZpZXdUeXBlKGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KHZpZXdUeXBlLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBtb3VudCh0aGlzLnZpZXdzLCBudWxsLCB0aGlzLmdldE91dGxldFBhcmVudCgpLCB0aGlzLmdldE91dGxldEVsZW1lbnQoKSk7XG4gICAgICAgIGNvbnN0IG5ld0RpZmZlcnMgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IuZ2V0KEl0ZXJhYmxlRGlmZmVycyk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gbmV3RGlmZmVycy5maW5kKHRoaXMubGVhdmVzKS5jcmVhdGUodHJhY2tCeSh0aGlzLnZpZXdDb250ZXh0KSk7XG4gICAgICAgIHRoaXMuZGlmZmVyLmRpZmYodGhpcy5sZWF2ZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUoY29udGV4dDogU2xhdGVUZXh0Q29udGV4dCkge1xuICAgICAgICBjb25zdCB7IGxlYXZlcywgY29udGV4dHMgfSA9IHRoaXMuZ2V0TGVhdmVzKGNvbnRleHQpO1xuICAgICAgICBjb25zdCBvdXRsZXRQYXJlbnQgPSB0aGlzLmdldE91dGxldFBhcmVudCgpO1xuICAgICAgICBjb25zdCBkaWZmUmVzdWx0ID0gdGhpcy5kaWZmZXIuZGlmZihsZWF2ZXMpO1xuICAgICAgICBpZiAoZGlmZlJlc3VsdCkge1xuICAgICAgICAgICAgbGV0IGZpcnN0Um9vdE5vZGUgPSBnZXRSb290Tm9kZXModGhpcy52aWV3c1swXSlbMF07XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3Vmlld1R5cGVzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdWaWV3cyA9IFtdO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoSXRlbShyZWNvcmQgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gZ2V0Q29udGV4dChyZWNvcmQuY3VycmVudEluZGV4LCBjb250ZXh0cyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBuZXdWaWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgbW91bnRPbkl0ZW1DaGFuZ2UocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIG5ld1ZpZXdzLCBudWxsLCBvdXRsZXRQYXJlbnQsIGZpcnN0Um9vdE5vZGUsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmlldyA9IHRoaXMudmlld3NbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXdUeXBlID0gdGhpcy52aWV3VHlwZXNbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWaWV3VHlwZSAhPT0gdmlld1R5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um9vdE5vZGUgPSBnZXRSb290Tm9kZXMocHJldmlvdXNWaWV3LCBudWxsKVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Jvb3ROb2RlcyA9IGdldFJvb3ROb2Rlcyh2aWV3LCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4ubmV3Um9vdE5vZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID0gcHJldmlvdXNWaWV3O1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dChwcmV2aW91c1ZpZXcsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaWZmUmVzdWx0LmZvckVhY2hSZW1vdmVkSXRlbShyZWNvcmQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICB2aWV3LmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoTW92ZWRJdGVtKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgbW91bnRPbkl0ZW1DaGFuZ2UocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIG5ld1ZpZXdzLCBudWxsLCBvdXRsZXRQYXJlbnQsIGZpcnN0Um9vdE5vZGUsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnZpZXdUeXBlcyA9IG5ld1ZpZXdUeXBlcztcbiAgICAgICAgICAgIHRoaXMudmlld3MgPSBuZXdWaWV3cztcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMgPSBuZXdDb250ZXh0cztcbiAgICAgICAgICAgIHRoaXMubGVhdmVzID0gbGVhdmVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMZWF2ZXMoY29udGV4dDogU2xhdGVUZXh0Q29udGV4dCkge1xuICAgICAgICBjb25zdCBsZWF2ZXMgPSBUZXh0LmRlY29yYXRpb25zKGNvbnRleHQudGV4dCwgY29udGV4dC5kZWNvcmF0aW9ucyk7XG4gICAgICAgIGNvbnN0IGNvbnRleHRzID0gbGVhdmVzLm1hcCgobGVhZiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGVhZixcbiAgICAgICAgICAgICAgICB0ZXh0OiBjb250ZXh0LnRleHQsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjb250ZXh0LnBhcmVudCxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICBpc0xhc3Q6IGNvbnRleHQuaXNMYXN0ICYmIGluZGV4ID09PSBsZWF2ZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IGxlYXZlcywgY29udGV4dHMgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250ZXh0KGluZGV4OiBudW1iZXIsIGxlYWZDb250ZXh0czogU2xhdGVMZWFmQ29udGV4dFtdKTogU2xhdGVMZWFmQ29udGV4dCB7XG4gICAgcmV0dXJuIGxlYWZDb250ZXh0c1tpbmRleF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaWV3VHlwZShsZWFmQ29udGV4dDogU2xhdGVMZWFmQ29udGV4dCwgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICByZXR1cm4gKHZpZXdDb250ZXh0LnJlbmRlckxlYWYgJiYgdmlld0NvbnRleHQucmVuZGVyTGVhZihsZWFmQ29udGV4dC5sZWFmKSkgfHwgdmlld0NvbnRleHQuZGVmYXVsdExlYWY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0J5KHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0KSB7XG4gICAgcmV0dXJuIChpbmRleCwgbm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfTtcbn1cbiJdfQ==