@po-ui/ng-code-editor 17.19.0 → 18.0.0-next.0

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.
@@ -235,7 +235,7 @@ export class PoCodeEditorBaseComponent {
235
235
  return !!val;
236
236
  }
237
237
  static ɵfac = function PoCodeEditorBaseComponent_Factory(t) { return new (t || PoCodeEditorBaseComponent)(); };
238
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoCodeEditorBaseComponent, inputs: { language: [i0.ɵɵInputFlags.None, "p-language", "language"], readonly: [i0.ɵɵInputFlags.None, "p-readonly", "readonly"], showDiff: [i0.ɵɵInputFlags.None, "p-show-diff", "showDiff"], suggestions: [i0.ɵɵInputFlags.None, "p-suggestions", "suggestions"], theme: [i0.ɵɵInputFlags.None, "p-theme", "theme"], height: [i0.ɵɵInputFlags.None, "p-height", "height"] } });
238
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoCodeEditorBaseComponent, inputs: { language: [0, "p-language", "language"], readonly: [0, "p-readonly", "readonly"], showDiff: [0, "p-show-diff", "showDiff"], suggestions: [0, "p-suggestions", "suggestions"], theme: [0, "p-theme", "theme"], height: [0, "p-height", "height"] } });
239
239
  }
240
240
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorBaseComponent, [{
241
241
  type: Directive
@@ -258,4 +258,4 @@ export class PoCodeEditorBaseComponent {
258
258
  type: Input,
259
259
  args: ['p-height']
260
260
  }] }); })();
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvcG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2pELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5REc7QUFFSCxNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQU07SUFDWixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFUixPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxXQUFXLENBQUM7SUFDeEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFlBQVksQ0FBNEM7SUFDeEQsTUFBTSxHQUFHLDRCQUE0QixDQUFDO0lBRTlDOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUF5QixRQUFRLENBQUMsUUFBZ0I7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLFdBQVcs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dkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEdBQVE7UUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO1FBRUQsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2YsQ0FBQzttRkFyTW1CLHlCQUF5Qjs2REFBekIseUJBQXlCOztpRkFBekIseUJBQXlCO2NBRDlDLFNBQVM7Z0JBMkJpQixRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUF5Qk0sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBNEJPLFFBQVE7a0JBQWpDLEtBQUs7bUJBQUMsYUFBYTtZQStCUSxXQUFXO2tCQUF0QyxLQUFLO21CQUFDLGVBQWU7WUE4QkEsS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTO1lBcUJPLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XG5cbmNvbnN0IFBPX0NPREVfRURJVE9SX1RIRU1FUyA9IFsndnMtZGFyaycsICd2cycsICdoYy1ibGFjayddO1xuY29uc3QgUE9fQ09ERV9FRElUT1JfVEhFTUVfREVGQVVMVCA9ICd2cyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgcG8tY29kZS1lZGl0b3JgIMOpIHVtIGNvbXBvbmVudGUgcGFyYSBlZGnDp8OjbyBkZSBjw7NkaWdvIGZvbnRlIGJhc2VhZG8gbm8gTW9uYWNvIEVkaXRvciBkYSBNaWNyb3NvZnQuXG4gKlxuICogU2VuZG8gYXNzaW0sIGFsZ3VtYXMgY29uZmlndXJhw6fDtWVzIHByZXNlbnRlcyBubyBNb25hY28gcG9kZW0gc2VyIHV0aWxpemFkYXMgYXF1aSwgY29tbyBhIGVzY29saGEgZGEgbGluZ3VhZ2VtXG4gKiAodXRpbGl6YW5kbyBvIGhpZ2hsaWdodCBzeW50YXggZXNwZWPDrWZpY28pLCBlc2NvbGhhIGRvIHRlbWEgZSBvcMOnw6NvIGRlIGRpZmYsIGFsw6ltIGRlIHNlciBtdWl0byBzaW1pbGFyIGFvIFZpc3VhbFxuICogU3R1ZGlvIENvZGUsIGNvbSBhdXRvY29tcGxldGUgZSBmZWNoYW1lbnRvIGF1dG9tw6F0aWNvIGRlIGJyYWNrZXRzLlxuICpcbiAqIEVzdGUgY29tcG9uZW50ZSBwb2RlIHNlciB1c2FkbyBlbSBxdWFscXVlciBzaXR1YcOnw6NvIHF1ZSBuZWNlc3NpdGUgZGUgYWRpw6fDo28gZGUgY8OzZGlnb3MsIGNvbW8gcG9yIGV4ZW1wbG8sIGNyaWFyXG4gKiByZWNlaXRhcyB1dGlsaXphbmRvIFRlcnJhZm9ybSBwYXJhIGdlcmVuY2lhciB0b3BvbG9naWFzLlxuICogw4kgaW1wb3J0YW50ZSByZXNzYWx0YXIgcXVlIGVzdGUgbsOjbyDDqSB1bSBjb21wb25lbnRlIHBhcmEgZWRpw6fDo28gZGUgdGV4dG9zIGNvbXVucy5cbiAqXG4gKiBPIFsobmdNb2RlbCldIGRldmUgc2VyIHVzYWRvIHBhcmEgbWFuaXB1bGFyIG8gY29udGXDumRvIGRvIHBvLWNvZGUtZWRpdG9yLCBvdSBzZWphLCB0YW50byBwYXJhIGluY2x1aXIgdW0gY29udGXDumRvIHF1YW50b1xuICogcGFyYSByZWN1cGVyYXIgbyBjb250ZcO6ZG8gZG8gcG8tY29kZS1lZGl0b3IsIHV0aWxpemEtc2UgdW1hIHZhcmnDoXZlbCBwYXNzYWRhIHBvciBbKG5nTW9kZWwpXS5cbiAqXG4gKiAjIyMjIEFkaWNpb25hbmRvIG8gcGFjb3RlIEBwby11aS9uZy1jb2RlLWVkaXRvclxuICpcbiAqIFBhcmEgaW5zdGFsYXIgbyBwYWNvdGUgYHBvLWNvZGUtZWRpdG9yYCBlbSBzdWEgYXBsaWNhw6fDo28gZXhlY3V0ZTpcbiAqXG4gKiBgYGBzaGVsbFxuICogbmcgYWRkIEBwby11aS9uZy1jb2RlLWVkaXRvclxuICogYGBgXG4gKlxuICogTyBjb21hbmRvIGBuZyBhZGRgIGRvIGBBbmd1bGFyIENMSWA6XG4gKiAtIGluY2x1aSBvIGBwby1jb2RlLWVkaXRvcmAgbm8gc2V1IHByb2pldG87XG4gKiAtIGFkaWNpb25hIG8gbcOzZHVsbyBgUG9Db2RlRWRpdG9yTW9kdWxlYDo7XG4gKlxuICogYGBgXG4gKiAvLyBhcHAubW9kdWxlLnRzXG4gKiAuLi5cbiAqIGltcG9ydCB7IFBvTW9kdWxlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuICogaW1wb3J0IHsgUG9Db2RlRWRpdG9yTW9kdWxlIH0gZnJvbSAnQHBvLXVpL25nLWNvZGUtZWRpdG9yJztcbiAqIC4uLlxuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIC4uLlxuICogICAgIFBvTW9kdWxlLFxuICogICAgIFBvQ29kZUVkaXRvck1vZHVsZVxuICogICBdLFxuICogICAuLi5cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxuICogYGBgXG4gKlxuICogLSBhZGljaW9uYSBvIHRlbWEgUE8gVUkgZSB0YW1iw6ltIG8gKmFzc2V0KiBkbyBNb25hY28gbm8gYXJxdWl2byBgYW5ndWxhci5qc29uYCwgY29uZm9ybWUgYWJhaXhvOlxuICpcbiAqIDxwcmUgbmdOb25CaW5kYWJsZT5cbiAqIC4uLlxuICogXCJhc3NldHNcIjogW1xuICogICAgeyBcImdsb2JcIjogXCImIzQyOyYjNDI7LyYjNDI7XCIsIFwiaW5wdXRcIjogXCJub2RlX21vZHVsZXMvbW9uYWNvLWVkaXRvci9taW5cIiwgXCJvdXRwdXRcIjogXCIvYXNzZXRzL21vbmFjby9cIiB9XG4gKiAgXSxcbiAqIFwic3R5bGVzXCI6IFtcbiAqICAgIFwiLi9ub2RlX21vZHVsZXMvQHBvLXVpL3N0eWxlL2Nzcy9wby10aGVtZS1kZWZhdWx0Lm1pbi5jc3NcIlxuICogXVxuICogLi4uXG4gKiA8L3ByZT5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9Db2RlRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgZWRpdG9yOiBhbnk7XG4gIG1vZGlmaWVkVmFsdWU6IHN0cmluZyA9ICcnO1xuICB2YWx1ZTogYW55ID0gJyc7XG5cbiAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXIgPSAxNTA7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gJ3BsYWluVGV4dCc7XG4gIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3Nob3dEaWZmOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3N1Z2dlc3Rpb25zOiBBcnJheTxQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uPjtcbiAgcHJpdmF0ZSBfdGhlbWUgPSBQT19DT0RFX0VESVRPUl9USEVNRV9ERUZBVUxUO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIExpbmd1YWdlbSBuYSBxdWFsIHNlcsOhIGFwcmVzZW50YWRvIG8gY8OzZGlnbyBmb250ZS5cbiAgICogUGFyYSBzYWJlciBxdWFpcyBzw6NvIGFzIGxpbmd1YWdlbnMgY29tcGF0w612ZWlzLCBjb25zdWx0ZSBhIGRvY3VtZW50YcOnw6NvIG9maWNpYWwgZG9cbiAgICogWyoqTW9uYWNvIEVkaXRvcioqXShodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbW9uYWNvLWVkaXRvci8pLlxuICAgKlxuICAgKiBUYW1iw6ltIMOpIHBvc3PDrXZlbCBhZGljaW9uYXIgdW1hIG5vdmEgbGluZ3VhZ2VtIHBlcnNvbmFsaXphZGEgdXRpbGl6YW5kbyBvIHNlcnZpw6dvOlxuICAgKiBbKipwby1jb2RlLWVkaXRvci1yZWdpc3RlcioqXShodHRwczovL3BvLXVpLmlvL2RvY3VtZW50YXRpb24vcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXI/dmlldz1kb2MpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgcGxhaW5UZXh0YFxuICAgKi9cbiAgQElucHV0KCdwLWxhbmd1YWdlJykgc2V0IGxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sYW5ndWFnZSA9IGxhbmd1YWdlICYmIGxhbmd1YWdlLmxlbmd0aCA/IGxhbmd1YWdlLnRyaW0oKSA6ICdwbGFpblRleHQnO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuX2xhbmd1YWdlKSB7XG4gICAgICB0aGlzLnNldExhbmd1YWdlKHRoaXMuX2xhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgbyBlZGl0b3Igc2Vyw6EgYWJlcnRvIGVtIG1vZG8gZGUgbGVpdHVyYS5cbiAgICpcbiAgICogTmVzdGUgY2FzbywgbsOjbyDDqSBwb3Nzw612ZWwgZWRpdGFyIG8gY8OzZGlnbyBpbnNlcmlkby5cbiAgICpcbiAgICogT2JzOiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcmVmbGV0aXLDoSBlZmVpdG8gc2UgYWx0ZXJhZGEgYXDDs3MgbyBjYXJyZWdhbWVudG8gZG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXJlYWRvbmx5Jykgc2V0IHJlYWRvbmx5KHJlYWRvbmx5OiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZG9ubHkgPSA8YW55PnJlYWRvbmx5ID09PSAnJyA/IHRydWUgOiB0aGlzLmNvbnZlcnRUb0Jvb2xlYW4ocmVhZG9ubHkpO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICB0aGlzLnNldFJlYWRPbmx5KHJlYWRvbmx5KTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHNlIG8gZWRpdG9yIHNlcsOhIGFiZXJ0byBlbSBtb2RvIGRlIGNvbXBhcmHDp8Ojby5cbiAgICpcbiAgICogQ2FzbyBlc3RlamEgaGFiaWxpdGFkYSBlc3RhIG9ww6fDo28sIGVudMOjbyBvIFsobmdNb2RlbCldIGRldmVyw6Egc2VyIHBhc3NhZG8gY29tbyB1bSBhcnJheSwgY3VqYSBwcmltZWlyYSBvcMOnw6NvIGRldmVcbiAgICogY29udGVyIHVtYSBzdHJpbmcgY29tIG8gY8OzZGlnbyBvcmlnaW5hbCBlIG5hIHNlZ3VuZGEgcG9zacOnw6NvIHVtYSBzdHJpbmcgY8OzZGlnbyBtb2RpZmljYWRvIHBhcmEgZWZlaXRvIGRlXG4gICAqIGNvbXBhcmHDp8Ojby4gTmVzdGUgY2FzbywgbyB1c3XDoXJpbyBjb25zZWd1aXLDoSBlZGl0YXIgYXBlbmFzIG8gY8OzZGlnbyBtb2RpZmljYWRvIGUgaXNzbyByZWZsZXRpcsOhIG5hIHNlZ3VuZGEgcG9zacOnw6NvXG4gICAqIGRvIGFycmF5IGNvbnNlcXVlbnRlbWVudGUuXG4gICAqXG4gICAqIE9iczogRXN0YSBwcm9wcmllZGFkZSBuw6NvIHJlZmxldGlyw6EgZWZlaXRvIHNlIGFsdGVyYWRhIGFww7NzIG8gY2FycmVnYW1lbnRvIGRvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1zaG93LWRpZmYnKSBzZXQgc2hvd0RpZmYoc2hvd0RpZmY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93RGlmZiA9IDxhbnk+c2hvd0RpZmYgPT09ICcnID8gdHJ1ZSA6IHRoaXMuY29udmVydFRvQm9vbGVhbihzaG93RGlmZik7XG4gIH1cblxuICBnZXQgc2hvd0RpZmYoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dEaWZmO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZGUgc3VnZXN0w7VlcyB1c2FkYXMgcGVsbyBhdXRvY29tcGxldGUgZGVudHJvIGRvIGVkaXRvci5cbiAgICpcbiAgICogUGFyYSB2aXN1YWxpemFyIGEgbGlzdGEgZGUgc3VnZXN0w7VlcyB1c2UgbyBjb21hbmRvIGBDVFJMICsgU1BBQ0VgLlxuICAgKlxuICAgKiBDYXNvIG8gZWRpdG9yIGVzdGVqYSB1c2FuZG8gdW1hIGxpbmd1YWdlbSBxdWUgasOhIHRlbmhhIHVtYSBsaXN0YSBkZSBzdWdlc3TDtWVzIHByZWRlZmluaWRhLCBvIHZhbG9yIHBhc3NhZG8gc2Vyw6EgYWRpY2lvbmFkb1xuICAgKiBhIGxpc3RhIHByZWV4aXN0ZW50ZSwgYXVtZW50YW5kbyBhcyBvcMOnw7VlcyBwYXJhIG8gdXN1w6FyaW8uXG4gICAqXG4gICAqIENhc28gdGVuaGEgbWFpcyBkZSB1bSBlZGl0b3IgZGEgbWVzbWEgbGluZ3VhZ2VtIG5hIGFwbGljYcOnw6NvLCBhcyBzdWdlc3TDtWVzIHNlcsOjbyBhZGljaW9uYWRhcyBwYXJhIHF1ZSB0b2RvcyBvcyBlZGl0b3JlcyBkYSBtZXNtYSBsaW5ndWFnZW1cbiAgICogdGVuaGFtIGFzIG1lc21hcyBzdWdlc3TDtWVzLlxuICAgKlxuICAgKiBgYGBcbiAgICogIDxwby1jb2RlLWVkaXRvclxuICAgKiAgICBbcC1zdWdnZXN0aW9uc109XCJbeyBsYWJlbDogJ3BvJywgaW5zZXJ0VGV4dDogJ1BvcnRpbmFyaSBVSScgfSwgeyBsYWJlbDogJ25nJywgaW5zZXJ0VGV4dDogJ0FuZ3VsYXInIH1dXCI+XG4gICAqICA8L3BvLWNvZGUtZWRpdG9yPlxuICAgKiBgYGBcbiAgICpcbiAgICogQW8gZm9ybmVjZXIgdW1hIGxpc3RhIGRlIHN1Z2VzdMO1ZXMgw6kgcG9zc8OtdmVsIGFjZWxlcmFyIGEgZXNjcml0YSBkZSBzY3JpcHRzIHBlbG9zIHVzdcOhcmlvcy5cbiAgICovXG4gIEBJbnB1dCgncC1zdWdnZXN0aW9ucycpIHNldCBzdWdnZXN0aW9ucyh2YWx1ZXM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+KSB7XG4gICAgdGhpcy5fc3VnZ2VzdGlvbnMgPSB2YWx1ZXM7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdGhpcy5fc3VnZ2VzdGlvbnMpIHtcbiAgICAgIHRoaXMuc2V0U3VnZ2VzdGlvbnModGhpcy5fc3VnZ2VzdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdWdnZXN0aW9ucygpOiBBcnJheTxQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1Z2dlc3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHVtIHRlbWEgcGFyYSBvIGVkaXRvci5cbiAgICpcbiAgICogVGVtYXMgdsOhbGlkb3M6XG4gICAqICAtIGB2cy1kYXJrYFxuICAgKiAgLSBgdnNgXG4gICAqICAtIGBoYy1ibGFja2BcbiAgICpcbiAgICogw4kgaW1wb3J0YW50ZSBzYWxpZW50YXIgcXVlIG8gdGVtYSBzZXLDoSBhcGxpY2Fkb3MgYSB0b2RvcyBvcyBjb21wb25lbnRlcyBwby1jb2RlLWVkaXRvciBleGlzdGVudGVzIG5hIHRlbGEsXG4gICAqIG91IHNlamEsIHRvZGFzIGFzIGluc3TDom5jaWFzIGRvIGNvbXBvbmVudGUgcmVjZWJlcsOjbyBvIMO6bHRpbW8gdGVtYSBhdHJpYnXDrWRvIG91IG8gdGVtYSBkYSDDumx0aW1hIGluc3TDom5jaWFcbiAgICogY3JpYWRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdnNgXG4gICAqL1xuICBASW5wdXQoJ3AtdGhlbWUnKSBzZXQgdGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RoZW1lID0gUE9fQ09ERV9FRElUT1JfVEhFTUVTLmluY2x1ZGVzKHRoZW1lKSA/IHRoZW1lIDogUE9fQ09ERV9FRElUT1JfVEhFTUVfREVGQVVMVDtcblxuICAgIGlmICh0aGlzLmVkaXRvcikge1xuICAgICAgdGhpcy5zZXRUaGVtZSh0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRoZW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgYWx0dXJhIGRvIGNvbXBvbmVudGUgZW0gcGl4ZWxzIGRvIHBvLWNvZGUtZWRpdG9yLlxuICAgKiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcG9kZXLDoSBzZXIgYWx0ZXJhZGEgYXDDs3MgbyBjb21wb25lbnRlIHRlciBzaWRvIGluaWNpYWRvLlxuICAgKiBBIGFsdHVyYSBtw61uaW1hIMOpIDE1MCBwaXhlbHMuXG4gICAqL1xuICBASW5wdXQoJ3AtaGVpZ2h0Jykgc2V0IGhlaWdodChoZWlnaHQ6IHN0cmluZykge1xuICAgIHRoaXMuX2hlaWdodCA9IHBhcnNlRmxvYXQoaGVpZ2h0KSA+PSAxNTAgPyBwYXJzZUZsb2F0KGhlaWdodCkgOiAxNTA7XG4gIH1cblxuICBnZXQgaGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2hlaWdodH1weGA7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBvblRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIG9uQ2hhbmdlUHJvcGFnYXRlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuXG4gIGdldE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHsgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsIHRoZW1lOiB0aGlzLnRoZW1lLCByZWFkT25seTogdGhpcy5yZWFkb25seSB9O1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFRvQm9vbGVhbih2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgICAgcmV0dXJuIHZhbCA9PT0gJ3RydWUnIHx8IHZhbCA9PT0gJ29uJyB8fCB2YWwgPT09ICcnO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHZhbCA9PT0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gISF2YWw7XG4gIH1cblxuICBhYnN0cmFjdCB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpO1xuXG4gIGFic3RyYWN0IHNldExhbmd1YWdlKHZhbHVlOiBhbnkpO1xuXG4gIGFic3RyYWN0IHNldFRoZW1lKHZhbHVlOiBhbnkpO1xuXG4gIGFic3RyYWN0IHNldFJlYWRPbmx5KHZhbHVlOiBhbnkpO1xuXG4gIGFic3RyYWN0IHNldFN1Z2dlc3Rpb25zKHZhbHVlOiBhbnkpO1xufVxuIl19
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvcG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2pELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5REc7QUFFSCxNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQU07SUFDWixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFUixPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxXQUFXLENBQUM7SUFDeEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFlBQVksQ0FBNEM7SUFDeEQsTUFBTSxHQUFHLDRCQUE0QixDQUFDO0lBRTlDOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUF5QixRQUFRLENBQUMsUUFBZ0I7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMs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LENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEdBQVE7UUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDZixDQUFDO21GQXJNbUIseUJBQXlCOzZEQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FEOUMsU0FBUztnQkEyQmlCLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWTtZQXlCTSxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUE0Qk8sUUFBUTtrQkFBakMsS0FBSzttQkFBQyxhQUFhO1lBK0JRLFdBQVc7a0JBQXRDLEtBQUs7bUJBQUMsZUFBZTtZQThCQSxLQUFLO2tCQUExQixLQUFLO21CQUFDLFNBQVM7WUFxQk8sTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlJztcblxuY29uc3QgUE9fQ09ERV9FRElUT1JfVEhFTUVTID0gWyd2cy1kYXJrJywgJ3ZzJywgJ2hjLWJsYWNrJ107XG5jb25zdCBQT19DT0RFX0VESVRPUl9USEVNRV9ERUZBVUxUID0gJ3ZzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGBwby1jb2RlLWVkaXRvcmAgw6kgdW0gY29tcG9uZW50ZSBwYXJhIGVkacOnw6NvIGRlIGPDs2RpZ28gZm9udGUgYmFzZWFkbyBubyBNb25hY28gRWRpdG9yIGRhIE1pY3Jvc29mdC5cbiAqXG4gKiBTZW5kbyBhc3NpbSwgYWxndW1hcyBjb25maWd1cmHDp8O1ZXMgcHJlc2VudGVzIG5vIE1vbmFjbyBwb2RlbSBzZXIgdXRpbGl6YWRhcyBhcXVpLCBjb21vIGEgZXNjb2xoYSBkYSBsaW5ndWFnZW1cbiAqICh1dGlsaXphbmRvIG8gaGlnaGxpZ2h0IHN5bnRheCBlc3BlY8OtZmljbyksIGVzY29saGEgZG8gdGVtYSBlIG9ww6fDo28gZGUgZGlmZiwgYWzDqW0gZGUgc2VyIG11aXRvIHNpbWlsYXIgYW8gVmlzdWFsXG4gKiBTdHVkaW8gQ29kZSwgY29tIGF1dG9jb21wbGV0ZSBlIGZlY2hhbWVudG8gYXV0b23DoXRpY28gZGUgYnJhY2tldHMuXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIHBvZGUgc2VyIHVzYWRvIGVtIHF1YWxxdWVyIHNpdHVhw6fDo28gcXVlIG5lY2Vzc2l0ZSBkZSBhZGnDp8OjbyBkZSBjw7NkaWdvcywgY29tbyBwb3IgZXhlbXBsbywgY3JpYXJcbiAqIHJlY2VpdGFzIHV0aWxpemFuZG8gVGVycmFmb3JtIHBhcmEgZ2VyZW5jaWFyIHRvcG9sb2dpYXMuXG4gKiDDiSBpbXBvcnRhbnRlIHJlc3NhbHRhciBxdWUgZXN0ZSBuw6NvIMOpIHVtIGNvbXBvbmVudGUgcGFyYSBlZGnDp8OjbyBkZSB0ZXh0b3MgY29tdW5zLlxuICpcbiAqIE8gWyhuZ01vZGVsKV0gZGV2ZSBzZXIgdXNhZG8gcGFyYSBtYW5pcHVsYXIgbyBjb250ZcO6ZG8gZG8gcG8tY29kZS1lZGl0b3IsIG91IHNlamEsIHRhbnRvIHBhcmEgaW5jbHVpciB1bSBjb250ZcO6ZG8gcXVhbnRvXG4gKiBwYXJhIHJlY3VwZXJhciBvIGNvbnRlw7pkbyBkbyBwby1jb2RlLWVkaXRvciwgdXRpbGl6YS1zZSB1bWEgdmFyacOhdmVsIHBhc3NhZGEgcG9yIFsobmdNb2RlbCldLlxuICpcbiAqICMjIyMgQWRpY2lvbmFuZG8gbyBwYWNvdGUgQHBvLXVpL25nLWNvZGUtZWRpdG9yXG4gKlxuICogUGFyYSBpbnN0YWxhciBvIHBhY290ZSBgcG8tY29kZS1lZGl0b3JgIGVtIHN1YSBhcGxpY2HDp8OjbyBleGVjdXRlOlxuICpcbiAqIGBgYHNoZWxsXG4gKiBuZyBhZGQgQHBvLXVpL25nLWNvZGUtZWRpdG9yXG4gKiBgYGBcbiAqXG4gKiBPIGNvbWFuZG8gYG5nIGFkZGAgZG8gYEFuZ3VsYXIgQ0xJYDpcbiAqIC0gaW5jbHVpIG8gYHBvLWNvZGUtZWRpdG9yYCBubyBzZXUgcHJvamV0bztcbiAqIC0gYWRpY2lvbmEgbyBtw7NkdWxvIGBQb0NvZGVFZGl0b3JNb2R1bGVgOjtcbiAqXG4gKiBgYGBcbiAqIC8vIGFwcC5tb2R1bGUudHNcbiAqIC4uLlxuICogaW1wb3J0IHsgUG9Nb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBQb0NvZGVFZGl0b3JNb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29kZS1lZGl0b3InO1xuICogLi4uXG4gKiBATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbXG4gKiAgICAgLi4uXG4gKiAgICAgUG9Nb2R1bGUsXG4gKiAgICAgUG9Db2RlRWRpdG9yTW9kdWxlXG4gKiAgIF0sXG4gKiAgIC4uLlxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG4gKiBgYGBcbiAqXG4gKiAtIGFkaWNpb25hIG8gdGVtYSBQTyBVSSBlIHRhbWLDqW0gbyAqYXNzZXQqIGRvIE1vbmFjbyBubyBhcnF1aXZvIGBhbmd1bGFyLmpzb25gLCBjb25mb3JtZSBhYmFpeG86XG4gKlxuICogPHByZSBuZ05vbkJpbmRhYmxlPlxuICogLi4uXG4gKiBcImFzc2V0c1wiOiBbXG4gKiAgICB7IFwiZ2xvYlwiOiBcIiYjNDI7JiM0MjsvJiM0MjtcIiwgXCJpbnB1dFwiOiBcIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL21pblwiLCBcIm91dHB1dFwiOiBcIi9hc3NldHMvbW9uYWNvL1wiIH1cbiAqICBdLFxuICogXCJzdHlsZXNcIjogW1xuICogICAgXCIuL25vZGVfbW9kdWxlcy9AcG8tdWkvc3R5bGUvY3NzL3BvLXRoZW1lLWRlZmF1bHQubWluLmNzc1wiXG4gKiBdXG4gKiAuLi5cbiAqIDwvcHJlPlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0NvZGVFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBlZGl0b3I6IGFueTtcbiAgbW9kaWZpZWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHZhbHVlOiBhbnkgPSAnJztcblxuICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciA9IDE1MDtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSAncGxhaW5UZXh0JztcbiAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2hvd0RpZmY6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+O1xuICBwcml2YXRlIF90aGVtZSA9IFBPX0NPREVfRURJVE9SX1RIRU1FX0RFRkFVTFQ7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGluZ3VhZ2VtIG5hIHF1YWwgc2Vyw6EgYXByZXNlbnRhZG8gbyBjw7NkaWdvIGZvbnRlLlxuICAgKiBQYXJhIHNhYmVyIHF1YWlzIHPDo28gYXMgbGluZ3VhZ2VucyBjb21wYXTDrXZlaXMsIGNvbnN1bHRlIGEgZG9jdW1lbnRhw6fDo28gb2ZpY2lhbCBkb1xuICAgKiBbKipNb25hY28gRWRpdG9yKipdKGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9tb25hY28tZWRpdG9yLykuXG4gICAqXG4gICAqIFRhbWLDqW0gw6kgcG9zc8OtdmVsIGFkaWNpb25hciB1bWEgbm92YSBsaW5ndWFnZW0gcGVyc29uYWxpemFkYSB1dGlsaXphbmRvIG8gc2VydmnDp286XG4gICAqIFsqKnBvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyKipdKGh0dHBzOi8vcG8tdWkuaW8vZG9jdW1lbnRhdGlvbi9wby1jb2RlLWVkaXRvci1yZWdpc3Rlcj92aWV3PWRvYykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBwbGFpblRleHRgXG4gICAqL1xuICBASW5wdXQoJ3AtbGFuZ3VhZ2UnKSBzZXQgbGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmd1YWdlID0gbGFuZ3VhZ2UgJiYgbGFuZ3VhZ2UubGVuZ3RoID8gbGFuZ3VhZ2UudHJpbSgpIDogJ3BsYWluVGV4dCc7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdGhpcy5fbGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UodGhpcy5fbGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBzZSBvIGVkaXRvciBzZXLDoSBhYmVydG8gZW0gbW9kbyBkZSBsZWl0dXJhLlxuICAgKlxuICAgKiBOZXN0ZSBjYXNvLCBuw6NvIMOpIHBvc3PDrXZlbCBlZGl0YXIgbyBjw7NkaWdvIGluc2VyaWRvLlxuICAgKlxuICAgKiBPYnM6IEVzdGEgcHJvcHJpZWRhZGUgbsOjbyByZWZsZXRpcsOhIGVmZWl0byBzZSBhbHRlcmFkYSBhcMOzcyBvIGNhcnJlZ2FtZW50byBkbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtcmVhZG9ubHknKSBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZWFkb25seSA9IDxhbnk+cmVhZG9ubHkgPT09ICcnID8gdHJ1ZSA6IHRoaXMuY29udmVydFRvQm9vbGVhbihyZWFkb25seSk7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuc2V0UmVhZE9ubHkocmVhZG9ubHkpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgbyBlZGl0b3Igc2Vyw6EgYWJlcnRvIGVtIG1vZG8gZGUgY29tcGFyYcOnw6NvLlxuICAgKlxuICAgKiBDYXNvIGVzdGVqYSBoYWJpbGl0YWRhIGVzdGEgb3DDp8OjbywgZW50w6NvIG8gWyhuZ01vZGVsKV0gZGV2ZXLDoSBzZXIgcGFzc2FkbyBjb21vIHVtIGFycmF5LCBjdWphIHByaW1laXJhIG9ww6fDo28gZGV2ZVxuICAgKiBjb250ZXIgdW1hIHN0cmluZyBjb20gbyBjw7NkaWdvIG9yaWdpbmFsIGUgbmEgc2VndW5kYSBwb3Npw6fDo28gdW1hIHN0cmluZyBjw7NkaWdvIG1vZGlmaWNhZG8gcGFyYSBlZmVpdG8gZGVcbiAgICogY29tcGFyYcOnw6NvLiBOZXN0ZSBjYXNvLCBvIHVzdcOhcmlvIGNvbnNlZ3VpcsOhIGVkaXRhciBhcGVuYXMgbyBjw7NkaWdvIG1vZGlmaWNhZG8gZSBpc3NvIHJlZmxldGlyw6EgbmEgc2VndW5kYSBwb3Npw6fDo29cbiAgICogZG8gYXJyYXkgY29uc2VxdWVudGVtZW50ZS5cbiAgICpcbiAgICogT2JzOiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcmVmbGV0aXLDoSBlZmVpdG8gc2UgYWx0ZXJhZGEgYXDDs3MgbyBjYXJyZWdhbWVudG8gZG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXNob3ctZGlmZicpIHNldCBzaG93RGlmZihzaG93RGlmZjogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dEaWZmID0gPGFueT5zaG93RGlmZiA9PT0gJycgPyB0cnVlIDogdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHNob3dEaWZmKTtcbiAgfVxuXG4gIGdldCBzaG93RGlmZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RpZmY7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkZSBzdWdlc3TDtWVzIHVzYWRhcyBwZWxvIGF1dG9jb21wbGV0ZSBkZW50cm8gZG8gZWRpdG9yLlxuICAgKlxuICAgKiBQYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkZSBzdWdlc3TDtWVzIHVzZSBvIGNvbWFuZG8gYENUUkwgKyBTUEFDRWAuXG4gICAqXG4gICAqIENhc28gbyBlZGl0b3IgZXN0ZWphIHVzYW5kbyB1bWEgbGluZ3VhZ2VtIHF1ZSBqw6EgdGVuaGEgdW1hIGxpc3RhIGRlIHN1Z2VzdMO1ZXMgcHJlZGVmaW5pZGEsIG8gdmFsb3IgcGFzc2FkbyBzZXLDoSBhZGljaW9uYWRvXG4gICAqIGEgbGlzdGEgcHJlZXhpc3RlbnRlLCBhdW1lbnRhbmRvIGFzIG9ww6fDtWVzIHBhcmEgbyB1c3XDoXJpby5cbiAgICpcbiAgICogQ2FzbyB0ZW5oYSBtYWlzIGRlIHVtIGVkaXRvciBkYSBtZXNtYSBsaW5ndWFnZW0gbmEgYXBsaWNhw6fDo28sIGFzIHN1Z2VzdMO1ZXMgc2Vyw6NvIGFkaWNpb25hZGFzIHBhcmEgcXVlIHRvZG9zIG9zIGVkaXRvcmVzIGRhIG1lc21hIGxpbmd1YWdlbVxuICAgKiB0ZW5oYW0gYXMgbWVzbWFzIHN1Z2VzdMO1ZXMuXG4gICAqXG4gICAqIGBgYFxuICAgKiAgPHBvLWNvZGUtZWRpdG9yXG4gICAqICAgIFtwLXN1Z2dlc3Rpb25zXT1cIlt7IGxhYmVsOiAncG8nLCBpbnNlcnRUZXh0OiAnUG9ydGluYXJpIFVJJyB9LCB7IGxhYmVsOiAnbmcnLCBpbnNlcnRUZXh0OiAnQW5ndWxhcicgfV1cIj5cbiAgICogIDwvcG8tY29kZS1lZGl0b3I+XG4gICAqIGBgYFxuICAgKlxuICAgKiBBbyBmb3JuZWNlciB1bWEgbGlzdGEgZGUgc3VnZXN0w7VlcyDDqSBwb3Nzw612ZWwgYWNlbGVyYXIgYSBlc2NyaXRhIGRlIHNjcmlwdHMgcGVsb3MgdXN1w6FyaW9zLlxuICAgKi9cbiAgQElucHV0KCdwLXN1Z2dlc3Rpb25zJykgc2V0IHN1Z2dlc3Rpb25zKHZhbHVlczogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4pIHtcbiAgICB0aGlzLl9zdWdnZXN0aW9ucyA9IHZhbHVlcztcblxuICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLl9zdWdnZXN0aW9ucykge1xuICAgICAgdGhpcy5zZXRTdWdnZXN0aW9ucyh0aGlzLl9zdWdnZXN0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN1Z2dlc3Rpb25zKCk6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgdW0gdGVtYSBwYXJhIG8gZWRpdG9yLlxuICAgKlxuICAgKiBUZW1hcyB2w6FsaWRvczpcbiAgICogIC0gYHZzLWRhcmtgXG4gICAqICAtIGB2c2BcbiAgICogIC0gYGhjLWJsYWNrYFxuICAgKlxuICAgKiDDiSBpbXBvcnRhbnRlIHNhbGllbnRhciBxdWUgbyB0ZW1hIHNlcsOhIGFwbGljYWRvcyBhIHRvZG9zIG9zIGNvbXBvbmVudGVzIHBvLWNvZGUtZWRpdG9yIGV4aXN0ZW50ZXMgbmEgdGVsYSxcbiAgICogb3Ugc2VqYSwgdG9kYXMgYXMgaW5zdMOibmNpYXMgZG8gY29tcG9uZW50ZSByZWNlYmVyw6NvIG8gw7psdGltbyB0ZW1hIGF0cmlidcOtZG8gb3UgbyB0ZW1hIGRhIMO6bHRpbWEgaW5zdMOibmNpYVxuICAgKiBjcmlhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB2c2BcbiAgICovXG4gIEBJbnB1dCgncC10aGVtZScpIHNldCB0aGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGhlbWUgPSBQT19DT0RFX0VESVRPUl9USEVNRVMuaW5jbHVkZXModGhlbWUpID8gdGhlbWUgOiBQT19DT0RFX0VESVRPUl9USEVNRV9ERUZBVUxUO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICB0aGlzLnNldFRoZW1lKHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdGhlbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGhlbWU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBhbHR1cmEgZG8gY29tcG9uZW50ZSBlbSBwaXhlbHMgZG8gcG8tY29kZS1lZGl0b3IuXG4gICAqIEVzdGEgcHJvcHJpZWRhZGUgbsOjbyBwb2RlcsOhIHNlciBhbHRlcmFkYSBhcMOzcyBvIGNvbXBvbmVudGUgdGVyIHNpZG8gaW5pY2lhZG8uXG4gICAqIEEgYWx0dXJhIG3DrW5pbWEgw6kgMTUwIHBpeGVscy5cbiAgICovXG4gIEBJbnB1dCgncC1oZWlnaHQnKSBzZXQgaGVpZ2h0KGhlaWdodDogc3RyaW5nKSB7XG4gICAgdGhpcy5faGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHQpID49IDE1MCA/IHBhcnNlRmxvYXQoaGVpZ2h0KSA6IDE1MDtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5faGVpZ2h0fXB4YDtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIG9uVG91Y2hlZCA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgb25DaGFuZ2VQcm9wYWdhdGUgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICByZXR1cm4geyBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSwgdGhlbWU6IHRoaXMudGhlbWUsIHJlYWRPbmx5OiB0aGlzLnJlYWRvbmx5IH07XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0VG9Cb29sZWFuKHZhbDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWwgPSB2YWwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgICByZXR1cm4gdmFsID09PSAndHJ1ZScgfHwgdmFsID09PSAnb24nIHx8IHZhbCA9PT0gJyc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdmFsID09PSAxO1xuICAgIH1cblxuICAgIHJldHVybiAhIXZhbDtcbiAgfVxuXG4gIGFic3RyYWN0IHdyaXRlVmFsdWUodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0TGFuZ3VhZ2UodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0VGhlbWUodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0UmVhZE9ubHkodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0U3VnZ2VzdGlvbnModmFsdWU6IGFueSk7XG59XG4iXX0=
@@ -25,4 +25,4 @@ export class PoCodeEditorSuggestionService {
25
25
  providedIn: 'root'
26
26
  }]
27
27
  }], () => [], null); })();
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sNkJBQTZCO0lBQ2hDLFdBQVcsR0FBK0IsRUFBRSxDQUFDO0lBQ3JELGdCQUFlLENBQUM7SUFFVCxhQUFhLENBQUMsUUFBZ0IsRUFBRSxhQUF3RDtRQUM3RixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUN0RyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztZQUN4RixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsbUJBQThELEVBQzlELGNBQXlEO1FBRXpELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FDMUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDakcsQ0FBQztJQUNKLENBQUM7dUZBckJVLDZCQUE2QjtnRUFBN0IsNkJBQTZCLFdBQTdCLDZCQUE2QixtQkFGNUIsTUFBTTs7aUZBRVAsNkJBQTZCO2NBSHpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25MaXN0LFxuICBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uXG59IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtc3VnZ2VzdGlvbi5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgc3VnZ2VzdGlvbnM6IFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25MaXN0ID0ge307XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0U3VnZ2VzdGlvbihsYW5ndWFnZTogc3RyaW5nLCBuZXdTdWdnZXN0aW9uOiBBcnJheTxQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uPikge1xuICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSkge1xuICAgICAgY29uc3QgZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyA9IHRoaXMuZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyh0aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSwgbmV3U3VnZ2VzdGlvbik7XG4gICAgICB0aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSA9IFsuLi50aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSwgLi4uZGVkdXBsaWNhdGVTdWdnZXN0aW9uc107XG4gICAgICByZXR1cm4gZGVkdXBsaWNhdGVTdWdnZXN0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICh0aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSA9IFsuLi5uZXdTdWdnZXN0aW9uXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zKFxuICAgIG9yaWdpbmFsU3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+LFxuICAgIG5ld1N1Z2dlc3Rpb25zOiBBcnJheTxQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uPlxuICApIHtcbiAgICByZXR1cm4gbmV3U3VnZ2VzdGlvbnMuZmlsdGVyKFxuICAgICAgbmV3SXRlbSA9PiAhb3JpZ2luYWxTdWdnZXN0aW9ucy5maW5kKG9yaWdpbmFsSXRlbSA9PiBvcmlnaW5hbEl0ZW1bJ2xhYmVsJ10gPT09IG5ld0l0ZW1bJ2xhYmVsJ10pXG4gICAgKTtcbiAgfVxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sNkJBQTZCO0lBQ2hDLFdBQVcsR0FBK0IsRUFBRSxDQUFDO0lBQ3JELGdCQUFlLENBQUM7SUFFVCxhQUFhLENBQUMsUUFBZ0IsRUFBRSxhQUF3RDtRQUM3RixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3RHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3hGLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUM1QixtQkFBOEQsRUFDOUQsY0FBeUQ7UUFFekQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUMxQixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNqRyxDQUFDO0lBQ0osQ0FBQzt1RkFyQlUsNkJBQTZCO2dFQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCLG1CQUY1QixNQUFNOztpRkFFUCw2QkFBNkI7Y0FIekMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUG9Db2RlRWRpdG9yU3VnZ2VzdGlvbkxpc3QsXG4gIFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdWdnZXN0aW9uczogUG9Db2RlRWRpdG9yU3VnZ2VzdGlvbkxpc3QgPSB7fTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBnZXRTdWdnZXN0aW9uKGxhbmd1YWdlOiBzdHJpbmcsIG5ld1N1Z2dlc3Rpb246IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+KSB7XG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdKSB7XG4gICAgICBjb25zdCBkZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zID0gdGhpcy5kZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdLCBuZXdTdWdnZXN0aW9uKTtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLnRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdLCAuLi5kZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zXTtcbiAgICAgIHJldHVybiBkZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLm5ld1N1Z2dlc3Rpb25dKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlZHVwbGljYXRlU3VnZ2VzdGlvbnMoXG4gICAgb3JpZ2luYWxTdWdnZXN0aW9uczogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4sXG4gICAgbmV3U3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+XG4gICkge1xuICAgIHJldHVybiBuZXdTdWdnZXN0aW9ucy5maWx0ZXIoXG4gICAgICBuZXdJdGVtID0+ICFvcmlnaW5hbFN1Z2dlc3Rpb25zLmZpbmQob3JpZ2luYWxJdGVtID0+IG9yaWdpbmFsSXRlbVsnbGFiZWwnXSA9PT0gbmV3SXRlbVsnbGFiZWwnXSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -232,4 +232,4 @@ export class PoCodeEditorComponent extends PoCodeEditorBaseComponent {
232
232
  args: ['editorContainer', { static: true }]
233
233
  }] }); })();
234
234
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoCodeEditorComponent, { className: "PoCodeEditorComponent", filePath: "lib/components/po-code-editor/po-code-editor.component.ts", lineNumber: 64 }); })();
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9wby1jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBdUIsVUFBVSxFQUFVLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFLNUUsbUNBQW1DO0FBQ25DLElBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxJQUFJLFdBQTBCLENBQUM7QUFNL0IsMEJBQTBCO0FBQzFCLE1BQU0sU0FBUyxHQUFvQjtJQUNqQztRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsMkJBQTJCO1FBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7UUFDcEQsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQU1ILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx5QkFBeUI7SUFNeEQ7SUFDQTtJQUNBO0lBQ0E7SUFSc0MsZUFBZSxDQUFhO0lBRTVFLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFaEIsWUFDVSxJQUFZLEVBQ1osRUFBYyxFQUNkLDZCQUE0RCxFQUM1RCxrQkFBeUM7UUFFakQsS0FBSyxFQUFF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QUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O2tGQURuQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIE5nWm9uZSwgVmlld0NoaWxkLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBvQ29kZUVkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWNvZGUtZWRpdG9yLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyIH0gZnJvbSAnLi9wby1jb2RlLWVkaXRvci1yZWdpc3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uLnNlcnZpY2UnO1xuXG4vLyB2YXJpw6F2ZWlzIHJlbGFjaW9uYWRhcyBhbyBNb25hY29cbmxldCBsb2FkZWRNb25hY286IGJvb2xlYW4gPSBmYWxzZTtcbmxldCBsb2FkUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuZGVjbGFyZSBjb25zdCByZXF1aXJlOiBhbnk7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5jb25zdCBwcm92aWRlcnM6IEFycmF5PFByb3ZpZGVyPiA9IFtcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvQ29kZUVkaXRvckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfVxuXTtcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9Db2RlRWRpdG9yQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWNvZGUtZWRpdG9yLWJhc2ljXCIgdGl0bGU9XCJQTyBDb2RlIEVkaXRvciBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItYmFzaWMvc2FtcGxlLXBvLWNvZGUtZWRpdG9yLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLWJhc2ljL3NhbXBsZS1wby1jb2RlLWVkaXRvci1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1jb2RlLWVkaXRvci1sYWJzXCIgdGl0bGU9XCJQTyBDb2RlIEVkaXRvciBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1sYWJzL3NhbXBsZS1wby1jb2RlLWVkaXRvci1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLWxhYnMvc2FtcGxlLXBvLWNvZGUtZWRpdG9yLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tY29kZS1lZGl0b3ItZGlmZlwiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgLSBEaWZmXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1kaWZmL3NhbXBsZS1wby1jb2RlLWVkaXRvci1kaWZmLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLWRpZmYvc2FtcGxlLXBvLWNvZGUtZWRpdG9yLWRpZmYuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tY29kZS1lZGl0b3ItdGVycmFmb3JtXCIgdGl0bGU9XCJQTyBDb2RlIEVkaXRvciAtIFRlcnJhZm9ybVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtL3NhbXBsZS1wby1jb2RlLWVkaXRvci10ZXJyYWZvcm0uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtL3NhbXBsZS1wby1jb2RlLWVkaXRvci10ZXJyYWZvcm0uY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS9zYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtLmNvbnN0YW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS9zYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtLm1vZHVsZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb25cIiB0aXRsZT1cIlBPIENvZGUgRWRpdG9yIFN1Z2dlc3Rpb25cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi9zYW1wbGUtcG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1jb2RlLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyc1xufSlcbmV4cG9ydCBjbGFzcyBQb0NvZGVFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBQb0NvZGVFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XG4gIEBWaWV3Q2hpbGQoJ2VkaXRvckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGVkaXRvckNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjYW5Mb2FkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlOiBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvZGVFZGl0b3JSZWdpc3Rlcj86IFBvQ29kZUVkaXRvclJlZ2lzdGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGxvYWRQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyQ3VzdG9tTGFuZ3VhZ2UoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLmdldE9wdGlvbnMoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2FuTG9hZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkZWRNb25hY28gPSB0cnVlO1xuICAgICAgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7ICd2cyc6ICcuL2Fzc2V0cy9tb25hY28vdnMnIH0gfSk7XG4gICAgICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlKFsndnMvZWRpdG9yL2VkaXRvci5tYWluJ10sICgpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckN1c3RvbUxhbmd1YWdlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMuZ2V0T3B0aW9ucygpKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbkxvYWQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghKDxhbnk+d2luZG93KS5yZXF1aXJlKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVyU2NyaXB0OiBIVE1MU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9ICcuL2Fzc2V0cy9tb25hY28vdnMvbG9hZGVyLmpzJztcbiAgICAgICAgICBsb2FkZXJTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uR290QW1kTG9hZGVyKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvYWRlclNjcmlwdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICBpZiAodGhpcy5jYW5Mb2FkICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgdGhpcy5yZWdpc3RlckN1c3RvbUxhbmd1YWdlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28odGhpcy5nZXRPcHRpb25zKCkpO1xuICAgICAgdGhpcy5jYW5Mb2FkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgbW9uYWNvQ3JlYXRlTW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiBtb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKHZhbHVlKTtcbiAgfVxuXG4gIHNldFZhbHVlSW5FZGl0b3IoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0RpZmYpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgICAgICB0aGlzLmVkaXRvci5zZXRNb2RlbCh7XG4gICAgICAgICAgICBvcmlnaW5hbDogdGhpcy5tb25hY29DcmVhdGVNb2RlbCh0aGlzLnZhbHVlKSxcbiAgICAgICAgICAgIG1vZGlmaWVkOiB0aGlzLm1vbmFjb0NyZWF0ZU1vZGVsKHRoaXMubW9kaWZpZWRWYWx1ZSlcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgICAgICB0aGlzLmVkaXRvci5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNob3dEaWZmKSB7XG4gICAgICB0aGlzLnNldE1vbmFjb0xhbmd1YWdlKHRoaXMuZWRpdG9yLmdldE1vZGVsKCkub3JpZ2luYWwsIGxhbmd1YWdlKTtcbiAgICAgIHRoaXMuc2V0TW9uYWNvTGFuZ3VhZ2UodGhpcy5lZGl0b3IuZ2V0TW9kZWwoKS5tb2RpZmllZCwgbGFuZ3VhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldE1vbmFjb0xhbmd1YWdlKHRoaXMuZWRpdG9yLmdldE1vZGVsKCksIGxhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBzZXRUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgbW9uYWNvLmVkaXRvci5zZXRUaGVtZSh0aGVtZSk7XG4gIH1cblxuICBzZXRSZWFkT25seShyZWFkT25seTogYm9vbGVhbikge1xuICAgIHRoaXMuZWRpdG9yLnVwZGF0ZU9wdGlvbnMoeyByZWFkT25seTogcmVhZE9ubHkgfSk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBzZXRTdWdnZXN0aW9ucyhuZXdTdWdnZXN0aW9uczogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4sIGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZSkge1xuICAgIGlmICghbmV3U3VnZ2VzdGlvbnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdWdnZXN0aW9ucyA9IHRoaXMucG9Db2RlRWRpdG9yU3VnZ2VzdGlvblNlcnZpY2UuZ2V0U3VnZ2VzdGlvbihsYW5ndWFnZSwgbmV3U3VnZ2VzdGlvbnMpO1xuXG4gICAgbW9uYWNvLmxhbmd1YWdlcy5yZWdpc3RlckNvbXBsZXRpb25JdGVtUHJvdmlkZXIobGFuZ3VhZ2UsIHtcbiAgICAgIHByb3ZpZGVDb21wbGV0aW9uSXRlbXM6ICgpID0+ICh7IHN1Z2dlc3Rpb25zIH0pXG4gICAgfSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICAgIHRoaXMubW9kaWZpZWRWYWx1ZSA9IHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlWzFdIDogJyc7XG4gICAgdGhpcy5zZXRWYWx1ZUluRWRpdG9yKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIGluaXRNb25hY28ob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd0RpZmYpIHtcbiAgICAgIHRoaXMuZWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKHRoaXMuZWRpdG9yQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgICB0aGlzLmVkaXRvci5zZXRNb2RlbCh7XG4gICAgICAgIG9yaWdpbmFsOiBtb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMudmFsdWUpLFxuICAgICAgICBtb2RpZmllZDogbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkVmFsdWUpXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5lZGl0b3Iub25EaWRVcGRhdGVEaWZmKChlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLmVkaXRvci5nZXRNb2RlbCgpLm9yaWdpbmFsLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG1vZGlmaWVkID0gdGhpcy5lZGl0b3IuZ2V0TW9kZWwoKS5tb2RpZmllZC5nZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlKFtvcmlnaW5hbCwgbW9kaWZpZWRdKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVkaXRvciA9IG1vbmFjby5lZGl0b3IuY3JlYXRlKHRoaXMuZWRpdG9yQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5lZGl0b3Iuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLmVkaXRvci5vbkRpZENoYW5nZU1vZGVsQ29udGVudCgoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gKHRoaXMudmFsdWUgPSB2YWx1ZSkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRMYW5ndWFnZSh0aGlzLmxhbmd1YWdlKTtcbiAgICAgIHRoaXMuc2V0U3VnZ2VzdGlvbnModGhpcy5zdWdnZXN0aW9ucyk7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgc2V0TW9uYWNvTGFuZ3VhZ2UobW9kZWwsIGxhbmd1YWdlKSB7XG4gICAgbW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKG1vZGVsLCBsYW5ndWFnZSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQ3VzdG9tTGFuZ3VhZ2UoKSB7XG4gICAgaWYgKHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLmxhbmd1YWdlKSB7XG4gICAgICBtb25hY28ubGFuZ3VhZ2VzLnJlZ2lzdGVyKHsgaWQ6IHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLmxhbmd1YWdlIH0pO1xuXG4gICAgICBpZiAodGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIub3B0aW9ucykge1xuICAgICAgICBtb25hY28ubGFuZ3VhZ2VzLnNldE1vbmFyY2hUb2tlbnNQcm92aWRlcih0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5sYW5ndWFnZSwgdGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIub3B0aW9ucyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5zdWdnZXN0aW9ucykge1xuICAgICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zKFxuICAgICAgICAgIHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLnN1Z2dlc3Rpb25zLnByb3ZpZGVDb21wbGV0aW9uSXRlbXMoKS5zdWdnZXN0aW9ucyxcbiAgICAgICAgICB0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5sYW5ndWFnZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjZWRpdG9yQ29udGFpbmVyIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCI+PC9kaXY+XG4iXX0=
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9wby1jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBdUIsVUFBVSxFQUFVLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFLNUUsbUNBQW1DO0FBQ25DLElBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxJQUFJLFdBQTBCLENBQUM7QUFNL0IsMEJBQTBCO0FBQzFCLE1BQU0sU0FBUyxHQUFvQjtJQUNqQztRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsMkJBQTJCO1FBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7UUFDcEQsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQU1ILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx5QkFBeUI7SUFNeEQ7SUFDQTtJQUNBO0lBQ0E7SUFSc0MsZUFBZSxDQUFhO0lBRTVFLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFaEIsWUFDVSxJQUFZLEVBQ1osRUFBYyxFQUNkLDZCQUE0RCxFQUM1RCxrQkFBeUM7UUFFakQsS0FBSyxFQUFF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LENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0VBakxVLHFCQUFxQjs2REFBckIscUJBQXFCOzs7Ozs4Q0FGaEMsU0FBUztZQzdEWCwrQkFBb0Q7O1lBQTlCLG9DQUF1Qjs7O2lGRCtEaEMscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsZ0JBQWdCLGFBRTFCLFNBQVM7K0lBR3VDLGVBQWU7a0JBQTlELFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrRkFEbkMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBOZ1pvbmUsIFZpZXdDaGlsZCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1jb2RlLWVkaXRvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlciB9IGZyb20gJy4vcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZSB9IGZyb20gJy4vcG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlJztcblxuLy8gdmFyacOhdmVpcyByZWxhY2lvbmFkYXMgYW8gTW9uYWNvXG5sZXQgbG9hZGVkTW9uYWNvOiBib29sZWFuID0gZmFsc2U7XG5sZXQgbG9hZFByb21pc2U6IFByb21pc2U8dm9pZD47XG5cbmRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmRlY2xhcmUgY29uc3QgcmVxdWlyZTogYW55O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuY29uc3QgcHJvdmlkZXJzOiBBcnJheTxQcm92aWRlcj4gPSBbXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0NvZGVFZGl0b3JDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvQ29kZUVkaXRvckJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1jb2RlLWVkaXRvci1iYXNpY1wiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLWJhc2ljL3NhbXBsZS1wby1jb2RlLWVkaXRvci1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1iYXNpYy9zYW1wbGUtcG8tY29kZS1lZGl0b3ItYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tY29kZS1lZGl0b3ItbGFic1wiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItbGFicy9zYW1wbGUtcG8tY29kZS1lZGl0b3ItbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1sYWJzL3NhbXBsZS1wby1jb2RlLWVkaXRvci1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWNvZGUtZWRpdG9yLWRpZmZcIiB0aXRsZT1cIlBPIENvZGUgRWRpdG9yIC0gRGlmZlwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItZGlmZi9zYW1wbGUtcG8tY29kZS1lZGl0b3ItZGlmZi5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1kaWZmL3NhbXBsZS1wby1jb2RlLWVkaXRvci1kaWZmLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybVwiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgLSBUZXJyYWZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS9zYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS9zYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci10ZXJyYWZvcm0vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS5jb25zdGFudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci10ZXJyYWZvcm0vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS5tb2R1bGUudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uXCIgdGl0bGU9XCJQTyBDb2RlIEVkaXRvciBTdWdnZXN0aW9uXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uL3NhbXBsZS1wby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tY29kZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnNcbn0pXG5leHBvcnQgY2xhc3MgUG9Db2RlRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgUG9Db2RlRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgY2FuTG9hZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBwb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZTogUG9Db2RlRWRpdG9yU3VnZ2VzdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RlRWRpdG9yUmVnaXN0ZXI/OiBQb0NvZGVFZGl0b3JSZWdpc3RlclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChsb2FkZWRNb25hY28pIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBsb2FkUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckN1c3RvbUxhbmd1YWdlKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5nZXRPcHRpb25zKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhbkxvYWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9hZGVkTW9uYWNvID0gdHJ1ZTtcbiAgICAgIGxvYWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmU6IGFueSkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBjb25zdCBvbkdvdEFtZExvYWRlcjogYW55ID0gKCkgPT4ge1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZS5jb25maWcoeyBwYXRoczogeyAndnMnOiAnLi9hc3NldHMvbW9uYWNvL3ZzJyB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDdXN0b21MYW5ndWFnZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLmdldE9wdGlvbnMoKSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5Mb2FkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoISg8YW55PndpbmRvdykucmVxdWlyZSkge1xuICAgICAgICAgIGNvbnN0IGxvYWRlclNjcmlwdDogSFRNTFNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICBsb2FkZXJTY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5zcmMgPSAnLi9hc3NldHMvbW9uYWNvL3ZzL2xvYWRlci5qcyc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkZXJTY3JpcHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuY2FuTG9hZCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJDdXN0b21MYW5ndWFnZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMuZ2V0T3B0aW9ucygpKTtcbiAgICAgIHRoaXMuY2FuTG9hZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIG1vbmFjb0NyZWF0ZU1vZGVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbCh2YWx1ZSk7XG4gIH1cblxuICBzZXRWYWx1ZUluRWRpdG9yKCkge1xuICAgIGlmICh0aGlzLnNob3dEaWZmKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgdGhpcy5lZGl0b3Iuc2V0TW9kZWwoe1xuICAgICAgICAgICAgb3JpZ2luYWw6IHRoaXMubW9uYWNvQ3JlYXRlTW9kZWwodGhpcy52YWx1ZSksXG4gICAgICAgICAgICBtb2RpZmllZDogdGhpcy5tb25hY29DcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkVmFsdWUpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zaG93RGlmZikge1xuICAgICAgdGhpcy5zZXRNb25hY29MYW5ndWFnZSh0aGlzLmVkaXRvci5nZXRNb2RlbCgpLm9yaWdpbmFsLCBsYW5ndWFnZSk7XG4gICAgICB0aGlzLnNldE1vbmFjb0xhbmd1YWdlKHRoaXMuZWRpdG9yLmdldE1vZGVsKCkubW9kaWZpZWQsIGxhbmd1YWdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRNb25hY29MYW5ndWFnZSh0aGlzLmVkaXRvci5nZXRNb2RlbCgpLCBsYW5ndWFnZSk7XG4gICAgfVxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgc2V0VGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIG1vbmFjby5lZGl0b3Iuc2V0VGhlbWUodGhlbWUpO1xuICB9XG5cbiAgc2V0UmVhZE9ubHkocmVhZE9ubHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVkaXRvci51cGRhdGVPcHRpb25zKHsgcmVhZE9ubHk6IHJlYWRPbmx5IH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgc2V0U3VnZ2VzdGlvbnMobmV3U3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+LCBsYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2UpIHtcbiAgICBpZiAoIW5ld1N1Z2dlc3Rpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB0aGlzLnBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlLmdldFN1Z2dlc3Rpb24obGFuZ3VhZ2UsIG5ld1N1Z2dlc3Rpb25zKTtcblxuICAgIG1vbmFjby5sYW5ndWFnZXMucmVnaXN0ZXJDb21wbGV0aW9uSXRlbVByb3ZpZGVyKGxhbmd1YWdlLCB7XG4gICAgICBwcm92aWRlQ29tcGxldGlvbkl0ZW1zOiAoKSA9PiAoeyBzdWdnZXN0aW9ucyB9KVxuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gdmFsdWVbMF0gOiB2YWx1ZTtcbiAgICB0aGlzLm1vZGlmaWVkVmFsdWUgPSB2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlLmxlbmd0aCA+IDAgPyB2YWx1ZVsxXSA6ICcnO1xuICAgIHRoaXMuc2V0VmFsdWVJbkVkaXRvcigpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHJpdmF0ZSBpbml0TW9uYWNvKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dEaWZmKSB7XG4gICAgICB0aGlzLmVkaXRvciA9IG1vbmFjby5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcih0aGlzLmVkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgdGhpcy5lZGl0b3Iuc2V0TW9kZWwoe1xuICAgICAgICBvcmlnaW5hbDogbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLnZhbHVlKSxcbiAgICAgICAgbW9kaWZpZWQ6IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZFZhbHVlKVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZWRpdG9yLm9uRGlkVXBkYXRlRGlmZigoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gdGhpcy5lZGl0b3IuZ2V0TW9kZWwoKS5vcmlnaW5hbC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBtb2RpZmllZCA9IHRoaXMuZWRpdG9yLmdldE1vZGVsKCkubW9kaWZpZWQuZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZShbb3JpZ2luYWwsIG1vZGlmaWVkXSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLmVkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcbiAgICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VQcm9wYWdhdGUodmFsdWUpO1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+ICh0aGlzLnZhbHVlID0gdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UodGhpcy5sYW5ndWFnZSk7XG4gICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zKHRoaXMuc3VnZ2VzdGlvbnMpO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIHNldE1vbmFjb0xhbmd1YWdlKG1vZGVsLCBsYW5ndWFnZSkge1xuICAgIG1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShtb2RlbCwgbGFuZ3VhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckN1c3RvbUxhbmd1YWdlKCkge1xuICAgIGlmICh0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5sYW5ndWFnZSkge1xuICAgICAgbW9uYWNvLmxhbmd1YWdlcy5yZWdpc3Rlcih7IGlkOiB0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5sYW5ndWFnZSB9KTtcblxuICAgICAgaWYgKHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLm9wdGlvbnMpIHtcbiAgICAgICAgbW9uYWNvLmxhbmd1YWdlcy5zZXRNb25hcmNoVG9rZW5zUHJvdmlkZXIodGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIubGFuZ3VhZ2UsIHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLm9wdGlvbnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIuc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zZXRTdWdnZXN0aW9ucyhcbiAgICAgICAgICB0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5zdWdnZXN0aW9ucy5wcm92aWRlQ29tcGxldGlvbkl0ZW1zKCkuc3VnZ2VzdGlvbnMsXG4gICAgICAgICAgdGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIubGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2VkaXRvckNvbnRhaW5lciBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiPjwvZGl2PlxuIl19
@@ -238,7 +238,7 @@ class PoCodeEditorBaseComponent {
238
238
  return !!val;
239
239
  }
240
240
  static ɵfac = function PoCodeEditorBaseComponent_Factory(t) { return new (t || PoCodeEditorBaseComponent)(); };
241
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoCodeEditorBaseComponent, inputs: { language: [i0.ɵɵInputFlags.None, "p-language", "language"], readonly: [i0.ɵɵInputFlags.None, "p-readonly", "readonly"], showDiff: [i0.ɵɵInputFlags.None, "p-show-diff", "showDiff"], suggestions: [i0.ɵɵInputFlags.None, "p-suggestions", "suggestions"], theme: [i0.ɵɵInputFlags.None, "p-theme", "theme"], height: [i0.ɵɵInputFlags.None, "p-height", "height"] } });
241
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoCodeEditorBaseComponent, inputs: { language: [0, "p-language", "language"], readonly: [0, "p-readonly", "readonly"], showDiff: [0, "p-show-diff", "showDiff"], suggestions: [0, "p-suggestions", "suggestions"], theme: [0, "p-theme", "theme"], height: [0, "p-height", "height"] } });
242
242
  }
243
243
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorBaseComponent, [{
244
244
  type: Directive
@@ -1 +1 @@
1
- {"version":3,"file":"po-ui-ng-code-editor.mjs","sources":["../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-base.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-suggestion.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-register.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.html","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.module.ts","../../../projects/code-editor/src/po-ui-ng-code-editor.ts"],"sourcesContent":["import { Input, Directive } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\nconst PO_CODE_EDITOR_THEMES = ['vs-dark', 'vs', 'hc-black'];\nconst PO_CODE_EDITOR_THEME_DEFAULT = 'vs';\n\n/**\n * @description\n *\n * O `po-code-editor` é um componente para edição de código fonte baseado no Monaco Editor da Microsoft.\n *\n * Sendo assim, algumas configurações presentes no Monaco podem ser utilizadas aqui, como a escolha da linguagem\n * (utilizando o highlight syntax específico), escolha do tema e opção de diff, além de ser muito similar ao Visual\n * Studio Code, com autocomplete e fechamento automático de brackets.\n *\n * Este componente pode ser usado em qualquer situação que necessite de adição de códigos, como por exemplo, criar\n * receitas utilizando Terraform para gerenciar topologias.\n * É importante ressaltar que este não é um componente para edição de textos comuns.\n *\n * O [(ngModel)] deve ser usado para manipular o conteúdo do po-code-editor, ou seja, tanto para incluir um conteúdo quanto\n * para recuperar o conteúdo do po-code-editor, utiliza-se uma variável passada por [(ngModel)].\n *\n * #### Adicionando o pacote @po-ui/ng-code-editor\n *\n * Para instalar o pacote `po-code-editor` em sua aplicação execute:\n *\n * ```shell\n * ng add @po-ui/ng-code-editor\n * ```\n *\n * O comando `ng add` do `Angular CLI`:\n * - inclui o `po-code-editor` no seu projeto;\n * - adiciona o módulo `PoCodeEditorModule`:;\n *\n * ```\n * // app.module.ts\n * ...\n * import { PoModule } from '@po-ui/ng-components';\n * import { PoCodeEditorModule } from '@po-ui/ng-code-editor';\n * ...\n * @NgModule({\n * imports: [\n * ...\n * PoModule,\n * PoCodeEditorModule\n * ],\n * ...\n * })\n * export class AppModule { }\n * ```\n *\n * - adiciona o tema PO UI e também o *asset* do Monaco no arquivo `angular.json`, conforme abaixo:\n *\n * <pre ngNonBindable>\n * ...\n * \"assets\": [\n * { \"glob\": \"&#42;&#42;/&#42;\", \"input\": \"node_modules/monaco-editor/min\", \"output\": \"/assets/monaco/\" }\n * ],\n * \"styles\": [\n * \"./node_modules/@po-ui/style/css/po-theme-default.min.css\"\n * ]\n * ...\n * </pre>\n */\n@Directive()\nexport abstract class PoCodeEditorBaseComponent implements ControlValueAccessor {\n editor: any;\n modifiedValue: string = '';\n value: any = '';\n\n private _height: number = 150;\n private _language = 'plainText';\n private _readonly: boolean = false;\n private _showDiff: boolean = false;\n private _suggestions: Array<PoCodeEditorRegisterableSuggestion>;\n private _theme = PO_CODE_EDITOR_THEME_DEFAULT;\n\n /**\n * @optional\n *\n * @description\n *\n * Linguagem na qual será apresentado o código fonte.\n * Para saber quais são as linguagens compatíveis, consulte a documentação oficial do\n * [**Monaco Editor**](https://microsoft.github.io/monaco-editor/).\n *\n * Também é possível adicionar uma nova linguagem personalizada utilizando o serviço:\n * [**po-code-editor-register**](https://po-ui.io/documentation/po-code-editor-register?view=doc).\n *\n * @default `plainText`\n */\n @Input('p-language') set language(language: string) {\n this._language = language && language.length ? language.trim() : 'plainText';\n\n if (this.editor && this._language) {\n this.setLanguage(this._language);\n }\n }\n\n get language(): string {\n return this._language;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de leitura.\n *\n * Neste caso, não é possível editar o código inserido.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-readonly') set readonly(readonly: boolean) {\n this._readonly = <any>readonly === '' ? true : this.convertToBoolean(readonly);\n\n if (this.editor) {\n this.setReadOnly(readonly);\n }\n }\n\n get readonly(): boolean {\n return this._readonly;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de comparação.\n *\n * Caso esteja habilitada esta opção, então o [(ngModel)] deverá ser passado como um array, cuja primeira opção deve\n * conter uma string com o código original e na segunda posição uma string código modificado para efeito de\n * comparação. Neste caso, o usuário conseguirá editar apenas o código modificado e isso refletirá na segunda posição\n * do array consequentemente.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-show-diff') set showDiff(showDiff: boolean) {\n this._showDiff = <any>showDiff === '' ? true : this.convertToBoolean(showDiff);\n }\n\n get showDiff(): boolean {\n return this._showDiff;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Lista de sugestões usadas pelo autocomplete dentro do editor.\n *\n * Para visualizar a lista de sugestões use o comando `CTRL + SPACE`.\n *\n * Caso o editor esteja usando uma linguagem que já tenha uma lista de sugestões predefinida, o valor passado será adicionado\n * a lista preexistente, aumentando as opções para o usuário.\n *\n * Caso tenha mais de um editor da mesma linguagem na aplicação, as sugestões serão adicionadas para que todos os editores da mesma linguagem\n * tenham as mesmas sugestões.\n *\n * ```\n * <po-code-editor\n * [p-suggestions]=\"[{ label: 'po', insertText: 'Portinari UI' }, { label: 'ng', insertText: 'Angular' }]\">\n * </po-code-editor>\n * ```\n *\n * Ao fornecer uma lista de sugestões é possível acelerar a escrita de scripts pelos usuários.\n */\n @Input('p-suggestions') set suggestions(values: Array<PoCodeEditorRegisterableSuggestion>) {\n this._suggestions = values;\n\n if (this.editor && this._suggestions) {\n this.setSuggestions(this._suggestions);\n }\n }\n\n get suggestions(): Array<PoCodeEditorRegisterableSuggestion> {\n return this._suggestions;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define um tema para o editor.\n *\n * Temas válidos:\n * - `vs-dark`\n * - `vs`\n * - `hc-black`\n *\n * É importante salientar que o tema será aplicados a todos os componentes po-code-editor existentes na tela,\n * ou seja, todas as instâncias do componente receberão o último tema atribuído ou o tema da última instância\n * criada.\n *\n * @default `vs`\n */\n @Input('p-theme') set theme(theme: string) {\n this._theme = PO_CODE_EDITOR_THEMES.includes(theme) ? theme : PO_CODE_EDITOR_THEME_DEFAULT;\n\n if (this.editor) {\n this.setTheme(theme);\n }\n }\n\n get theme(): string {\n return this._theme;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define a altura do componente em pixels do po-code-editor.\n * Esta propriedade não poderá ser alterada após o componente ter sido iniciado.\n * A altura mínima é 150 pixels.\n */\n @Input('p-height') set height(height: string) {\n this._height = parseFloat(height) >= 150 ? parseFloat(height) : 150;\n }\n\n get height(): string {\n return `${this._height}px`;\n }\n\n /* istanbul ignore next */\n onTouched = (value: any) => {};\n /* istanbul ignore next */\n onChangePropagate = (value: any) => {};\n\n getOptions() {\n return { language: this.language, theme: this.theme, readOnly: this.readonly };\n }\n\n registerOnChange(fn: any): void {\n this.onChangePropagate = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n protected convertToBoolean(val: any): boolean {\n if (typeof val === 'string') {\n val = val.toLowerCase().trim();\n return val === 'true' || val === 'on' || val === '';\n }\n\n if (typeof val === 'number') {\n return val === 1;\n }\n\n return !!val;\n }\n\n abstract writeValue(value: any);\n\n abstract setLanguage(value: any);\n\n abstract setTheme(value: any);\n\n abstract setReadOnly(value: any);\n\n abstract setSuggestions(value: any);\n}\n","import { Injectable } from '@angular/core';\nimport {\n PoCodeEditorSuggestionList,\n PoCodeEditorRegisterableSuggestion\n} from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PoCodeEditorSuggestionService {\n private suggestions: PoCodeEditorSuggestionList = {};\n constructor() {}\n\n public getSuggestion(language: string, newSuggestion: Array<PoCodeEditorRegisterableSuggestion>) {\n if (this.suggestions[language]) {\n const deduplicateSuggestions = this.deduplicateSuggestions(this.suggestions[language], newSuggestion);\n this.suggestions[language] = [...this.suggestions[language], ...deduplicateSuggestions];\n return deduplicateSuggestions;\n } else {\n return (this.suggestions[language] = [...newSuggestion]);\n }\n }\n\n private deduplicateSuggestions(\n originalSuggestions: Array<PoCodeEditorRegisterableSuggestion>,\n newSuggestions: Array<PoCodeEditorRegisterableSuggestion>\n ) {\n return newSuggestions.filter(\n newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label'])\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\nimport { PoCodeEditorRegisterableOptions } from './interfaces/po-code-editor-registerable-options.interface';\nimport { PoCodeEditorRegisterableSuggestionType } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n/**\n * @description\n *\n * Wrapper para registro de sintaxes customizadas para o po-code-editor.\n *\n * Para utilização do serviço de idiomas **PoCodeEditorRegister**,\n * deve-se importar o módulo PoCodeEditorModule mesmo já tendo importado\n * o módulo PoModule.\n * Na importação opcionalmente pode ser invocado o método **forRegister** informando um objeto para configuração.\n *\n * Exemplo de configuração:\n * ```\n * import { PoCodeEditorModule, PoCodeEditorRegisterable } from '@po-ui/ng-code-editor';\n *\n * declare const monaco: any; // Importante para usar configurações com tipos definidos pelo Monaco\n *\n * // A função `provideCompletionItems` precisa ser exportada para ser compatível com AOT.\n * export function provideCompletionItems() {\n * const suggestions = [{\n * label: 'terraform',\n * insertText: '#terraform language'\n * }, {\n * label: 'server',\n * insertText: 'server ${1:ip}'\n * }];\n *\n * return { suggestions: suggestions };\n * }\n *\n * const customEditor: PoCodeEditorRegisterable = {\n * language: 'terraform',\n * options: {\n * keywords: ['resource', 'provider', 'variable', 'output', 'module', 'true', 'false'],\n * operators: ['{', '}', '(', ')', '[', ']', '?', ':'],\n * symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n * escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n * tokenizer: {\n * ...\n * }\n * },\n * suggestions: { provideCompletionItems: provideCompletionItems }\n * };\n *\n * @NgModule({\n * declarations: [],\n * imports: [\n * PoModule,\n * PoCodeEditorModule.forRegister(customEditor)\n * ],\n * bootstrap: [AppComponent]\n * })\n * ```\n *\n * > As configurações para o registro de uma nova sintaxe no Monaco code editor podem ser encontradas em\n * > [**Monaco Editor**](https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-custom-languages).\n */\n@Injectable()\nexport class PoCodeEditorRegister implements PoCodeEditorRegisterable {\n /** Sintaxe a ser registrada. */\n language: string;\n\n /** Opções da sintaxe para registro no po-code-editor. */\n options: PoCodeEditorRegisterableOptions;\n\n /** Lista de sugestões para a função de autocomplete (CTRL + SPACE). */\n suggestions?: PoCodeEditorRegisterableSuggestionType;\n}\n","import { AfterViewInit, Component, DoCheck, ElementRef, forwardRef, NgZone, ViewChild, Provider } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PoCodeEditorBaseComponent } from './po-code-editor-base.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\nimport { PoCodeEditorSuggestionService } from './po-code-editor-suggestion.service';\n\n// variáveis relacionadas ao Monaco\nlet loadedMonaco: boolean = false;\nlet loadPromise: Promise<void>;\n\ndeclare const monaco: any;\n// eslint-disable-next-line\ndeclare const require: any;\n\n/* istanbul ignore next */\nconst providers: Array<Provider> = [\n {\n provide: NG_VALUE_ACCESSOR,\n // eslint-disable-next-line\n useExisting: forwardRef(() => PoCodeEditorComponent),\n multi: true\n }\n];\n\n/**\n * @docsExtends PoCodeEditorBaseComponent\n *\n * @example\n *\n * <example name=\"po-code-editor-basic\" title=\"PO Code Editor Basic\">\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.html\"> </file>\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-labs\" title=\"PO Code Editor Labs\">\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.html\"> </file>\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-diff\" title=\"PO Code Editor - Diff\">\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.html\"> </file>\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-terraform\" title=\"PO Code Editor - Terraform\">\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.html\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.constant.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.module.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-suggestion\" title=\"PO Code Editor Suggestion\">\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.html\"> </file>\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.ts\"> </file>\n * </example>\n */\n@Component({\n selector: 'po-code-editor',\n templateUrl: './po-code-editor.component.html',\n providers\n})\nexport class PoCodeEditorComponent extends PoCodeEditorBaseComponent implements AfterViewInit, DoCheck {\n @ViewChild('editorContainer', { static: true }) editorContainer: ElementRef;\n\n canLoad = false;\n\n constructor(\n private zone: NgZone,\n private el: ElementRef,\n private poCodeEditorSuggestionService: PoCodeEditorSuggestionService,\n private codeEditorRegister?: PoCodeEditorRegister\n ) {\n super();\n }\n\n /* istanbul ignore next */\n ngAfterViewInit(): void {\n if (loadedMonaco) {\n /* istanbul ignore next */\n loadPromise.then(() => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n });\n });\n } else {\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: any) => {\n /* istanbul ignore next */\n const onGotAmdLoader: any = () => {\n (<any>window).require.config({ paths: { 'vs': './assets/monaco/vs' } });\n (<any>window).require(['vs/editor/editor.main'], () => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n resolve();\n });\n });\n };\n\n if (!(<any>window).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = './assets/monaco/vs/loader.js';\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n }\n });\n }\n }\n\n ngDoCheck() {\n if (this.canLoad && this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n this.canLoad = false;\n }\n }\n\n /* istanbul ignore next */\n monacoCreateModel(value: string) {\n return monaco.editor.createModel(value);\n }\n\n setValueInEditor() {\n if (this.showDiff) {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setModel({\n original: this.monacoCreateModel(this.value),\n modified: this.monacoCreateModel(this.modifiedValue)\n });\n }\n });\n } else {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setValue(this.value);\n }\n });\n }\n }\n\n setLanguage(language: string) {\n if (this.showDiff) {\n this.setMonacoLanguage(this.editor.getModel().original, language);\n this.setMonacoLanguage(this.editor.getModel().modified, language);\n } else {\n this.setMonacoLanguage(this.editor.getModel(), language);\n }\n }\n\n /* istanbul ignore next */\n setTheme(theme: string) {\n monaco.editor.setTheme(theme);\n }\n\n setReadOnly(readOnly: boolean) {\n this.editor.updateOptions({ readOnly: readOnly });\n }\n\n /* istanbul ignore next */\n setSuggestions(newSuggestions: Array<PoCodeEditorRegisterableSuggestion>, language = this.language) {\n if (!newSuggestions) {\n return;\n }\n\n const suggestions = this.poCodeEditorSuggestionService.getSuggestion(language, newSuggestions);\n\n monaco.languages.registerCompletionItemProvider(language, {\n provideCompletionItems: () => ({ suggestions })\n });\n }\n\n writeValue(value) {\n this.value = value && value instanceof Array ? value[0] : value;\n this.modifiedValue = value && value instanceof Array && value.length > 0 ? value[1] : '';\n this.setValueInEditor();\n }\n\n /* istanbul ignore next */\n private initMonaco(options: any): void {\n if (this.showDiff) {\n this.editor = monaco.editor.createDiffEditor(this.editorContainer.nativeElement, options);\n\n this.editor.setModel({\n original: monaco.editor.createModel(this.value),\n modified: monaco.editor.createModel(this.modifiedValue)\n });\n\n this.editor.onDidUpdateDiff((e: any) => {\n const original = this.editor.getModel().original.getValue();\n const modified = this.editor.getModel().modified.getValue();\n this.onChangePropagate([original, modified]);\n });\n } else {\n this.editor = monaco.editor.create(this.editorContainer.nativeElement, options);\n this.editor.setValue(this.value);\n this.editor.onDidChangeModelContent((e: any) => {\n const value = this.editor.getValue();\n this.onChangePropagate(value);\n this.zone.run(() => (this.value = value));\n });\n }\n setTimeout(() => {\n this.setLanguage(this.language);\n this.setSuggestions(this.suggestions);\n }, 500);\n }\n\n /* istanbul ignore next */\n private setMonacoLanguage(model, language) {\n monaco.editor.setModelLanguage(model, language);\n }\n\n private registerCustomLanguage() {\n if (this.codeEditorRegister.language) {\n monaco.languages.register({ id: this.codeEditorRegister.language });\n\n if (this.codeEditorRegister.options) {\n monaco.languages.setMonarchTokensProvider(this.codeEditorRegister.language, this.codeEditorRegister.options);\n }\n\n if (this.codeEditorRegister.suggestions) {\n this.setSuggestions(\n this.codeEditorRegister.suggestions.provideCompletionItems().suggestions,\n this.codeEditorRegister.language\n );\n }\n }\n }\n}\n","<div #editorContainer [style.height]=\"height\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PoCodeEditorComponent } from './po-code-editor.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\n\n/**\n * @description\n *\n * Módulo do componente po-code-editor.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [PoCodeEditorComponent],\n exports: [PoCodeEditorComponent],\n providers: [PoCodeEditorRegister]\n})\nexport class PoCodeEditorModule {\n static forRegister(props: PoCodeEditorRegisterable): ModuleWithProviders<PoCodeEditorModule> {\n return {\n ngModule: PoCodeEditorModule,\n providers: [\n {\n provide: PoCodeEditorRegister,\n useValue: props\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PoCodeEditorSuggestionService","i2.PoCodeEditorRegister"],"mappings":"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"}
1
+ {"version":3,"file":"po-ui-ng-code-editor.mjs","sources":["../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-base.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-suggestion.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-register.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.html","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.module.ts","../../../projects/code-editor/src/po-ui-ng-code-editor.ts"],"sourcesContent":["import { Input, Directive } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\nconst PO_CODE_EDITOR_THEMES = ['vs-dark', 'vs', 'hc-black'];\nconst PO_CODE_EDITOR_THEME_DEFAULT = 'vs';\n\n/**\n * @description\n *\n * O `po-code-editor` é um componente para edição de código fonte baseado no Monaco Editor da Microsoft.\n *\n * Sendo assim, algumas configurações presentes no Monaco podem ser utilizadas aqui, como a escolha da linguagem\n * (utilizando o highlight syntax específico), escolha do tema e opção de diff, além de ser muito similar ao Visual\n * Studio Code, com autocomplete e fechamento automático de brackets.\n *\n * Este componente pode ser usado em qualquer situação que necessite de adição de códigos, como por exemplo, criar\n * receitas utilizando Terraform para gerenciar topologias.\n * É importante ressaltar que este não é um componente para edição de textos comuns.\n *\n * O [(ngModel)] deve ser usado para manipular o conteúdo do po-code-editor, ou seja, tanto para incluir um conteúdo quanto\n * para recuperar o conteúdo do po-code-editor, utiliza-se uma variável passada por [(ngModel)].\n *\n * #### Adicionando o pacote @po-ui/ng-code-editor\n *\n * Para instalar o pacote `po-code-editor` em sua aplicação execute:\n *\n * ```shell\n * ng add @po-ui/ng-code-editor\n * ```\n *\n * O comando `ng add` do `Angular CLI`:\n * - inclui o `po-code-editor` no seu projeto;\n * - adiciona o módulo `PoCodeEditorModule`:;\n *\n * ```\n * // app.module.ts\n * ...\n * import { PoModule } from '@po-ui/ng-components';\n * import { PoCodeEditorModule } from '@po-ui/ng-code-editor';\n * ...\n * @NgModule({\n * imports: [\n * ...\n * PoModule,\n * PoCodeEditorModule\n * ],\n * ...\n * })\n * export class AppModule { }\n * ```\n *\n * - adiciona o tema PO UI e também o *asset* do Monaco no arquivo `angular.json`, conforme abaixo:\n *\n * <pre ngNonBindable>\n * ...\n * \"assets\": [\n * { \"glob\": \"&#42;&#42;/&#42;\", \"input\": \"node_modules/monaco-editor/min\", \"output\": \"/assets/monaco/\" }\n * ],\n * \"styles\": [\n * \"./node_modules/@po-ui/style/css/po-theme-default.min.css\"\n * ]\n * ...\n * </pre>\n */\n@Directive()\nexport abstract class PoCodeEditorBaseComponent implements ControlValueAccessor {\n editor: any;\n modifiedValue: string = '';\n value: any = '';\n\n private _height: number = 150;\n private _language = 'plainText';\n private _readonly: boolean = false;\n private _showDiff: boolean = false;\n private _suggestions: Array<PoCodeEditorRegisterableSuggestion>;\n private _theme = PO_CODE_EDITOR_THEME_DEFAULT;\n\n /**\n * @optional\n *\n * @description\n *\n * Linguagem na qual será apresentado o código fonte.\n * Para saber quais são as linguagens compatíveis, consulte a documentação oficial do\n * [**Monaco Editor**](https://microsoft.github.io/monaco-editor/).\n *\n * Também é possível adicionar uma nova linguagem personalizada utilizando o serviço:\n * [**po-code-editor-register**](https://po-ui.io/documentation/po-code-editor-register?view=doc).\n *\n * @default `plainText`\n */\n @Input('p-language') set language(language: string) {\n this._language = language && language.length ? language.trim() : 'plainText';\n\n if (this.editor && this._language) {\n this.setLanguage(this._language);\n }\n }\n\n get language(): string {\n return this._language;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de leitura.\n *\n * Neste caso, não é possível editar o código inserido.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-readonly') set readonly(readonly: boolean) {\n this._readonly = <any>readonly === '' ? true : this.convertToBoolean(readonly);\n\n if (this.editor) {\n this.setReadOnly(readonly);\n }\n }\n\n get readonly(): boolean {\n return this._readonly;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de comparação.\n *\n * Caso esteja habilitada esta opção, então o [(ngModel)] deverá ser passado como um array, cuja primeira opção deve\n * conter uma string com o código original e na segunda posição uma string código modificado para efeito de\n * comparação. Neste caso, o usuário conseguirá editar apenas o código modificado e isso refletirá na segunda posição\n * do array consequentemente.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-show-diff') set showDiff(showDiff: boolean) {\n this._showDiff = <any>showDiff === '' ? true : this.convertToBoolean(showDiff);\n }\n\n get showDiff(): boolean {\n return this._showDiff;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Lista de sugestões usadas pelo autocomplete dentro do editor.\n *\n * Para visualizar a lista de sugestões use o comando `CTRL + SPACE`.\n *\n * Caso o editor esteja usando uma linguagem que já tenha uma lista de sugestões predefinida, o valor passado será adicionado\n * a lista preexistente, aumentando as opções para o usuário.\n *\n * Caso tenha mais de um editor da mesma linguagem na aplicação, as sugestões serão adicionadas para que todos os editores da mesma linguagem\n * tenham as mesmas sugestões.\n *\n * ```\n * <po-code-editor\n * [p-suggestions]=\"[{ label: 'po', insertText: 'Portinari UI' }, { label: 'ng', insertText: 'Angular' }]\">\n * </po-code-editor>\n * ```\n *\n * Ao fornecer uma lista de sugestões é possível acelerar a escrita de scripts pelos usuários.\n */\n @Input('p-suggestions') set suggestions(values: Array<PoCodeEditorRegisterableSuggestion>) {\n this._suggestions = values;\n\n if (this.editor && this._suggestions) {\n this.setSuggestions(this._suggestions);\n }\n }\n\n get suggestions(): Array<PoCodeEditorRegisterableSuggestion> {\n return this._suggestions;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define um tema para o editor.\n *\n * Temas válidos:\n * - `vs-dark`\n * - `vs`\n * - `hc-black`\n *\n * É importante salientar que o tema será aplicados a todos os componentes po-code-editor existentes na tela,\n * ou seja, todas as instâncias do componente receberão o último tema atribuído ou o tema da última instância\n * criada.\n *\n * @default `vs`\n */\n @Input('p-theme') set theme(theme: string) {\n this._theme = PO_CODE_EDITOR_THEMES.includes(theme) ? theme : PO_CODE_EDITOR_THEME_DEFAULT;\n\n if (this.editor) {\n this.setTheme(theme);\n }\n }\n\n get theme(): string {\n return this._theme;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define a altura do componente em pixels do po-code-editor.\n * Esta propriedade não poderá ser alterada após o componente ter sido iniciado.\n * A altura mínima é 150 pixels.\n */\n @Input('p-height') set height(height: string) {\n this._height = parseFloat(height) >= 150 ? parseFloat(height) : 150;\n }\n\n get height(): string {\n return `${this._height}px`;\n }\n\n /* istanbul ignore next */\n onTouched = (value: any) => {};\n /* istanbul ignore next */\n onChangePropagate = (value: any) => {};\n\n getOptions() {\n return { language: this.language, theme: this.theme, readOnly: this.readonly };\n }\n\n registerOnChange(fn: any): void {\n this.onChangePropagate = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n protected convertToBoolean(val: any): boolean {\n if (typeof val === 'string') {\n val = val.toLowerCase().trim();\n return val === 'true' || val === 'on' || val === '';\n }\n\n if (typeof val === 'number') {\n return val === 1;\n }\n\n return !!val;\n }\n\n abstract writeValue(value: any);\n\n abstract setLanguage(value: any);\n\n abstract setTheme(value: any);\n\n abstract setReadOnly(value: any);\n\n abstract setSuggestions(value: any);\n}\n","import { Injectable } from '@angular/core';\nimport {\n PoCodeEditorSuggestionList,\n PoCodeEditorRegisterableSuggestion\n} from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PoCodeEditorSuggestionService {\n private suggestions: PoCodeEditorSuggestionList = {};\n constructor() {}\n\n public getSuggestion(language: string, newSuggestion: Array<PoCodeEditorRegisterableSuggestion>) {\n if (this.suggestions[language]) {\n const deduplicateSuggestions = this.deduplicateSuggestions(this.suggestions[language], newSuggestion);\n this.suggestions[language] = [...this.suggestions[language], ...deduplicateSuggestions];\n return deduplicateSuggestions;\n } else {\n return (this.suggestions[language] = [...newSuggestion]);\n }\n }\n\n private deduplicateSuggestions(\n originalSuggestions: Array<PoCodeEditorRegisterableSuggestion>,\n newSuggestions: Array<PoCodeEditorRegisterableSuggestion>\n ) {\n return newSuggestions.filter(\n newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label'])\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\nimport { PoCodeEditorRegisterableOptions } from './interfaces/po-code-editor-registerable-options.interface';\nimport { PoCodeEditorRegisterableSuggestionType } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n/**\n * @description\n *\n * Wrapper para registro de sintaxes customizadas para o po-code-editor.\n *\n * Para utilização do serviço de idiomas **PoCodeEditorRegister**,\n * deve-se importar o módulo PoCodeEditorModule mesmo já tendo importado\n * o módulo PoModule.\n * Na importação opcionalmente pode ser invocado o método **forRegister** informando um objeto para configuração.\n *\n * Exemplo de configuração:\n * ```\n * import { PoCodeEditorModule, PoCodeEditorRegisterable } from '@po-ui/ng-code-editor';\n *\n * declare const monaco: any; // Importante para usar configurações com tipos definidos pelo Monaco\n *\n * // A função `provideCompletionItems` precisa ser exportada para ser compatível com AOT.\n * export function provideCompletionItems() {\n * const suggestions = [{\n * label: 'terraform',\n * insertText: '#terraform language'\n * }, {\n * label: 'server',\n * insertText: 'server ${1:ip}'\n * }];\n *\n * return { suggestions: suggestions };\n * }\n *\n * const customEditor: PoCodeEditorRegisterable = {\n * language: 'terraform',\n * options: {\n * keywords: ['resource', 'provider', 'variable', 'output', 'module', 'true', 'false'],\n * operators: ['{', '}', '(', ')', '[', ']', '?', ':'],\n * symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n * escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n * tokenizer: {\n * ...\n * }\n * },\n * suggestions: { provideCompletionItems: provideCompletionItems }\n * };\n *\n * @NgModule({\n * declarations: [],\n * imports: [\n * PoModule,\n * PoCodeEditorModule.forRegister(customEditor)\n * ],\n * bootstrap: [AppComponent]\n * })\n * ```\n *\n * > As configurações para o registro de uma nova sintaxe no Monaco code editor podem ser encontradas em\n * > [**Monaco Editor**](https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-custom-languages).\n */\n@Injectable()\nexport class PoCodeEditorRegister implements PoCodeEditorRegisterable {\n /** Sintaxe a ser registrada. */\n language: string;\n\n /** Opções da sintaxe para registro no po-code-editor. */\n options: PoCodeEditorRegisterableOptions;\n\n /** Lista de sugestões para a função de autocomplete (CTRL + SPACE). */\n suggestions?: PoCodeEditorRegisterableSuggestionType;\n}\n","import { AfterViewInit, Component, DoCheck, ElementRef, forwardRef, NgZone, ViewChild, Provider } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PoCodeEditorBaseComponent } from './po-code-editor-base.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\nimport { PoCodeEditorSuggestionService } from './po-code-editor-suggestion.service';\n\n// variáveis relacionadas ao Monaco\nlet loadedMonaco: boolean = false;\nlet loadPromise: Promise<void>;\n\ndeclare const monaco: any;\n// eslint-disable-next-line\ndeclare const require: any;\n\n/* istanbul ignore next */\nconst providers: Array<Provider> = [\n {\n provide: NG_VALUE_ACCESSOR,\n // eslint-disable-next-line\n useExisting: forwardRef(() => PoCodeEditorComponent),\n multi: true\n }\n];\n\n/**\n * @docsExtends PoCodeEditorBaseComponent\n *\n * @example\n *\n * <example name=\"po-code-editor-basic\" title=\"PO Code Editor Basic\">\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.html\"> </file>\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-labs\" title=\"PO Code Editor Labs\">\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.html\"> </file>\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-diff\" title=\"PO Code Editor - Diff\">\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.html\"> </file>\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-terraform\" title=\"PO Code Editor - Terraform\">\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.html\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.constant.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.module.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-suggestion\" title=\"PO Code Editor Suggestion\">\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.html\"> </file>\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.ts\"> </file>\n * </example>\n */\n@Component({\n selector: 'po-code-editor',\n templateUrl: './po-code-editor.component.html',\n providers\n})\nexport class PoCodeEditorComponent extends PoCodeEditorBaseComponent implements AfterViewInit, DoCheck {\n @ViewChild('editorContainer', { static: true }) editorContainer: ElementRef;\n\n canLoad = false;\n\n constructor(\n private zone: NgZone,\n private el: ElementRef,\n private poCodeEditorSuggestionService: PoCodeEditorSuggestionService,\n private codeEditorRegister?: PoCodeEditorRegister\n ) {\n super();\n }\n\n /* istanbul ignore next */\n ngAfterViewInit(): void {\n if (loadedMonaco) {\n /* istanbul ignore next */\n loadPromise.then(() => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n });\n });\n } else {\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: any) => {\n /* istanbul ignore next */\n const onGotAmdLoader: any = () => {\n (<any>window).require.config({ paths: { 'vs': './assets/monaco/vs' } });\n (<any>window).require(['vs/editor/editor.main'], () => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n resolve();\n });\n });\n };\n\n if (!(<any>window).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = './assets/monaco/vs/loader.js';\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n }\n });\n }\n }\n\n ngDoCheck() {\n if (this.canLoad && this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n this.canLoad = false;\n }\n }\n\n /* istanbul ignore next */\n monacoCreateModel(value: string) {\n return monaco.editor.createModel(value);\n }\n\n setValueInEditor() {\n if (this.showDiff) {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setModel({\n original: this.monacoCreateModel(this.value),\n modified: this.monacoCreateModel(this.modifiedValue)\n });\n }\n });\n } else {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setValue(this.value);\n }\n });\n }\n }\n\n setLanguage(language: string) {\n if (this.showDiff) {\n this.setMonacoLanguage(this.editor.getModel().original, language);\n this.setMonacoLanguage(this.editor.getModel().modified, language);\n } else {\n this.setMonacoLanguage(this.editor.getModel(), language);\n }\n }\n\n /* istanbul ignore next */\n setTheme(theme: string) {\n monaco.editor.setTheme(theme);\n }\n\n setReadOnly(readOnly: boolean) {\n this.editor.updateOptions({ readOnly: readOnly });\n }\n\n /* istanbul ignore next */\n setSuggestions(newSuggestions: Array<PoCodeEditorRegisterableSuggestion>, language = this.language) {\n if (!newSuggestions) {\n return;\n }\n\n const suggestions = this.poCodeEditorSuggestionService.getSuggestion(language, newSuggestions);\n\n monaco.languages.registerCompletionItemProvider(language, {\n provideCompletionItems: () => ({ suggestions })\n });\n }\n\n writeValue(value) {\n this.value = value && value instanceof Array ? value[0] : value;\n this.modifiedValue = value && value instanceof Array && value.length > 0 ? value[1] : '';\n this.setValueInEditor();\n }\n\n /* istanbul ignore next */\n private initMonaco(options: any): void {\n if (this.showDiff) {\n this.editor = monaco.editor.createDiffEditor(this.editorContainer.nativeElement, options);\n\n this.editor.setModel({\n original: monaco.editor.createModel(this.value),\n modified: monaco.editor.createModel(this.modifiedValue)\n });\n\n this.editor.onDidUpdateDiff((e: any) => {\n const original = this.editor.getModel().original.getValue();\n const modified = this.editor.getModel().modified.getValue();\n this.onChangePropagate([original, modified]);\n });\n } else {\n this.editor = monaco.editor.create(this.editorContainer.nativeElement, options);\n this.editor.setValue(this.value);\n this.editor.onDidChangeModelContent((e: any) => {\n const value = this.editor.getValue();\n this.onChangePropagate(value);\n this.zone.run(() => (this.value = value));\n });\n }\n setTimeout(() => {\n this.setLanguage(this.language);\n this.setSuggestions(this.suggestions);\n }, 500);\n }\n\n /* istanbul ignore next */\n private setMonacoLanguage(model, language) {\n monaco.editor.setModelLanguage(model, language);\n }\n\n private registerCustomLanguage() {\n if (this.codeEditorRegister.language) {\n monaco.languages.register({ id: this.codeEditorRegister.language });\n\n if (this.codeEditorRegister.options) {\n monaco.languages.setMonarchTokensProvider(this.codeEditorRegister.language, this.codeEditorRegister.options);\n }\n\n if (this.codeEditorRegister.suggestions) {\n this.setSuggestions(\n this.codeEditorRegister.suggestions.provideCompletionItems().suggestions,\n this.codeEditorRegister.language\n );\n }\n }\n }\n}\n","<div #editorContainer [style.height]=\"height\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PoCodeEditorComponent } from './po-code-editor.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\n\n/**\n * @description\n *\n * Módulo do componente po-code-editor.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [PoCodeEditorComponent],\n exports: [PoCodeEditorComponent],\n providers: [PoCodeEditorRegister]\n})\nexport class PoCodeEditorModule {\n static forRegister(props: PoCodeEditorRegisterable): ModuleWithProviders<PoCodeEditorModule> {\n return {\n ngModule: PoCodeEditorModule,\n providers: [\n {\n provide: PoCodeEditorRegister,\n useValue: props\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PoCodeEditorSuggestionService","i2.PoCodeEditorRegister"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@po-ui/ng-code-editor",
3
- "version": "17.19.0",
3
+ "version": "18.0.0-next.0",
4
4
  "description": "PO UI - Code Editor",
5
5
  "author": "PO UI",
6
6
  "license": "MIT",
@@ -11,18 +11,18 @@
11
11
  },
12
12
  "schematics": "./schematics/collection.json",
13
13
  "dependencies": {
14
- "@po-ui/ng-components": "17.19.0",
15
- "@po-ui/ng-schematics": "17.19.0",
14
+ "@po-ui/ng-components": "18.0.0-next.0",
15
+ "@po-ui/ng-schematics": "18.0.0-next.0",
16
16
  "monaco-editor": "0.44.0",
17
17
  "core-js": "^3.33.3",
18
18
  "intl": "^1.2.5",
19
19
  "tslib": "^2.6.2"
20
20
  },
21
21
  "peerDependencies": {
22
- "@angular/common": "^17",
23
- "@angular/core": "^17",
24
- "@angular/forms": "^17",
25
- "@po-ui/ng-components": "17.19.0",
22
+ "@angular/common": "^18",
23
+ "@angular/core": "^18",
24
+ "@angular/forms": "^18",
25
+ "@po-ui/ng-components": "18.0.0-next.0",
26
26
  "monaco-editor": "0.44.0",
27
27
  "zone.js": "~0.14.4"
28
28
  },
@@ -31,7 +31,7 @@ function default_1(options) {
31
31
  exports.default = default_1;
32
32
  function addPoPackageAndInstall() {
33
33
  return (tree, context) => {
34
- (0, package_config_1.addPackageToPackageJson)(tree, '@po-ui/ng-code-editor', '17.19.0');
34
+ (0, package_config_1.addPackageToPackageJson)(tree, '@po-ui/ng-code-editor', '18.0.0-next.0');
35
35
  // install packages
36
36
  context.addTask(new tasks_1.NodePackageInstallTask());
37
37
  };
Binary file