ngx-tethys 14.2.2 → 14.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [14.2.3](https://github.com/atinc/ngx-tethys/compare/14.2.2...14.2.3) (2022-12-13)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **dialog:** add style for dialog use setting siderbar header zd/#INFR-5686 ([#2425](https://github.com/atinc/ngx-tethys/issues/2425)) ([abfa03c](https://github.com/atinc/ngx-tethys/commit/abfa03c91f221ee21fc7d57d420173f8e1cb6eb2)), closes [zd/#INFR-5686](https://github.com/atinc/ngx-tethys/issues/INFR-5686)
11
+
12
+
13
+ ### Features
14
+
15
+ * **cdk:** add Ids, IdOrIds types and export these from @tethys/cdk/immutable in types and remove unused types #INFR-5683 ([#2424](https://github.com/atinc/ngx-tethys/issues/2424)) ([a53dec2](https://github.com/atinc/ngx-tethys/commit/a53dec272212771f5e7f14f8d6ee4ca0e7d28f61)), closes [#INFR-5683](https://github.com/atinc/ngx-tethys/issues/INFR-5683)
16
+
17
+
18
+
5
19
  ## [14.2.2](https://github.com/atinc/ngx-tethys/compare/14.2.1...14.2.2) (2022-12-09)
6
20
 
7
21
 
@@ -4,6 +4,13 @@
4
4
  @use "../../styles/variables";
5
5
  @use "../../styles/modules/utils.scss";
6
6
 
7
+ .thy-dialog-content-sidebar-header {
8
+ min-height: variables.$dialog-header-height;
9
+ .title {
10
+ font-size: variables.$font-size-md;
11
+ }
12
+ }
13
+
7
14
  .thy-dialog-container {
8
15
  display: flex;
9
16
  flex-direction: column;
@@ -33,11 +40,8 @@
33
40
  @extend .d-flex-column-fill;
34
41
  overflow: hidden;
35
42
  & > .thy-layout > .thy-layout-sidebar > .sidebar-header {
36
- min-height: variables.$dialog-header-height;
37
43
  padding: variables.$dialog-header-padding;
38
- .title {
39
- font-size: variables.$font-size-md;
40
- }
44
+ @extend .thy-dialog-content-sidebar-header;
41
45
  }
42
46
  }
43
47
 
@@ -119,10 +119,7 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
119
119
  const position = this.getTipPosition(step);
120
120
  this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {
121
121
  origin: null,
122
- originPosition: {
123
- x: position[0],
124
- y: position[1]
125
- },
122
+ originPosition: position,
126
123
  originActiveClass: '',
127
124
  panelClass: this.guiderRef.config.hintClass || '',
128
125
  backdropClosable: false,
@@ -238,4 +235,4 @@ ThyGuiderStepRef = __decorate([
238
235
  Document])
239
236
  ], ThyGuiderStepRef);
240
237
  export { ThyGuiderStepRef };
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVyLXN0ZXAtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2d1aWRlci9ndWlkZXItc3RlcC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFDOUIsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFlekIsWUFDVyxJQUFtQixFQUNuQixTQUFpQixFQUNQLGVBQWlDLEVBQzFDLE9BQW1CLEVBQ25CLGFBQStCLEVBQy9CLE9BQWdCLEVBQ0UsUUFBa0I7UUFOckMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQzFDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTVDLElBQUksQ0FBQyxRQUFRLEdBQUcs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Z0IsR0FBRyxTQUFTLENBQUM7U0FDckM7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDdEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7WUFDbkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBbUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQztDQUNKLENBQUE7QUFqUVksZ0JBQWdCO0lBc0JwQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtxREFKaUIsZ0JBQWdCO1FBQ2pDLFVBQVU7UUFDSixnQkFBZ0I7UUFDdEIsT0FBTztRQUNZLFFBQVE7R0F0QnZDLGdCQUFnQixDQWlRNUI7U0FqUVksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyQ29uZmlnLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IGNvZXJjZUFycmF5LCBpc0FycmF5LCBpc051bGwsIGlzU3RyaW5nLCBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGh5R3VpZGVyTWFuYWdlciB9IGZyb20gJy4vZ3VpZGVyLW1hbmFnZXInO1xuaW1wb3J0IHsgVGh5R3VpZGVyUmVmIH0gZnJvbSAnLi9ndWlkZXItcmVmJztcbmltcG9ydCB7IFRoeUd1aWRlclN0ZXAgfSBmcm9tICcuL2d1aWRlci5jbGFzcyc7XG5pbXBvcnQgeyBpc1Bvc2l0aW9uRGF0YVR5cGUgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgcG9pbnRDb250YWluZXJTaXplID0gMjg7XG5leHBvcnQgY2xhc3MgVGh5R3VpZGVyU3RlcFJlZiB7XG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gICAgcHJpdmF0ZSBsYXN0UG9pbnRlckNvbnRhaW5lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBsYXN0VGFyZ2V0RWxlbWVudDogRWxlbWVudDtcblxuICAgIHByaXZhdGUgdGFyZ2V0RWxlbWVudE9ic2VydmVyOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIGxhc3RUaXBDb250YWluZXI6IGFueTtcblxuICAgIHByaXZhdGUgZ3VpZGVyUmVmOiBUaHlHdWlkZXJSZWY7XG5cbiAgICBwcml2YXRlIGxhc3RQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHN0ZXA6IFRoeUd1aWRlclN0ZXAsXG4gICAgICAgIHB1YmxpYyBzdGVwSW5kZXg6IG51bWJlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgICAgIHByaXZhdGUgcG9wb3ZlcjogVGh5UG9wb3ZlcixcbiAgICAgICAgcHJpdmF0ZSBndWlkZXJNYW5hZ2VyOiBUaHlHdWlkZXJNYW5hZ2VyLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdyhndWlkZXJSZWY6IFRoeUd1aWRlclJlZikge1xuICAgICAgICB0aGlzLmd1aWRlclJlZiA9IGd1aWRlclJlZjtcbiAgICAgICAgdGhpcy5jcmVhdGVQb2ludCh0aGlzLnN0ZXAsIGd1aWRlclJlZik7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3Bvc2UoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGFzdFBvaW50Q29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMucmVtb3ZlVGlwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYXJnZXRFbGVtZW50KHN0ZXA6IFRoeUd1aWRlclN0ZXApIHtcbiAgICAgICAgbGV0IHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmIChzdGVwLnRhcmdldCAmJiAhaXNQb3NpdGlvbkRhdGFUeXBlKHN0ZXAudGFyZ2V0KSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gWy4uLmNvZXJjZUFycmF5KHN0ZXAudGFyZ2V0KV07XG5cbiAgICAgICAgICAgIHdoaWxlICh0YXJnZXQubGVuZ3RoICYmIGlzVW5kZWZpbmVkT3JOdWxsKHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGhpcy5ndWlkZXJNYW5hZ2VyLmdldEFjdGl2ZVRhcmdldChzdGVwLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQb2ludChzdGVwOiBUaHlHdWlkZXJTdGVwLCBndWlkZXJSZWY6IFRoeUd1aWRlclJlZikge1xuICAgICAgICAvLyB0YXJnZXQg5Li656m65bm25LiUIGd1aWRlck1hbmFnZXIg5Lit55qEIHRhcmdldE1hcCDkuZ/msqHmnInmraRzdGVwIOeahCBrZXnvvIzmiJbogIUgdGFyZ2V0IOebtOaOpeS4uiDlnZDmoIfmlbDnu4RcbiAgICAgICAgLy8g5YiZ5omn6KGM5pegIHRhcmdldCDnmoTmmL7npLpcbiAgICAgICAgaWYgKCF0aGlzLmlzVGlwSGFzVGFyZ2V0KHN0ZXApKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVRpcCh0aGlzLnN0ZXApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudChzdGVwKTtcblxuICAgICAgICBpZiAoKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkgJiYgaXNOdWxsKHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHRoZXJlIGlzIG5vIHRhcmdldCBjYWxsZWQgJHtjb2VyY2VBcnJheShzdGVwLnRhcmdldCkuam9pbignIG9yICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudE9ic2VydmVyID0gZnJvbUV2ZW50KHRhcmdldEVsZW1lbnQsICdjbGljaycpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBndWlkZXJSZWYudGFyZ2V0Q2xpY2tlZCgpLm5leHQoc3RlcCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwb3NpdGlvblZhbHVlID0gdGFyZ2V0RWxlbWVudD8uc3R5bGU/LnBvc2l0aW9uO1xuICAgICAgICBpZiAoIXBvc2l0aW9uVmFsdWUgfHwgcG9zaXRpb25WYWx1ZSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGFyZ2V0RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdHlsZUZvclBvaW50Q29udGFpbmVyKHN0ZXAsIHRhcmdldEVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3R5bGVGb3JQb2ludENvbnRhaW5lcihzdGVwOiBUaHlHdWlkZXJTdGVwLCB0YXJnZXRFbGVtZW50OiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBvaW50UG9zaXRpb24gPSB0aGlzLmdldFBvaW50UG9zaXRpb24oc3RlcCwgdGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBvaW50Q29udGFpbmVyID0gdGhpcy5zZXRQb2ludFBvc2l0aW9uKHBvaW50UG9zaXRpb24pO1xuXG4gICAgICAgIHRoaXMucmVuZGVyUG9pbnQodGFyZ2V0RWxlbWVudCwgcG9pbnRDb250YWluZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9pbnRQb3NpdGlvbihzdGVwOiBUaHlHdWlkZXJTdGVwLCB0YXJnZXRFbGVtZW50OiBFbGVtZW50KTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRDbGllbnRSZWN0ID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgeyB3aWR0aDogdGFyZ2V0RWxlbWVudFdpZHRoLCBoZWlnaHQ6IHRhcmdldEVsZW1lbnRIZWlnaHQgfSA9IHRhcmdldEVsZW1lbnRDbGllbnRSZWN0O1xuICAgICAgICBjb25zdCBwb2ludE9mZnNldCA9IHN0ZXAucG9pbnRPZmZzZXQ7XG4gICAgICAgIC8vIOWPqumAmui/hyBwb2ludE9mZnNldCDmjqfliLYgcG9pbnQg55qE5L2N572u77yM6buY6K6k5ZyoIHRhcmdldCDnmoTlj7PkuIvop5LvvIxcbiAgICAgICAgLy8gb2Zmc2V0IOeahOWfuueCueS5n+S4uum7mOiupOS9jee9rlxuICAgICAgICByZXR1cm4gW3RhcmdldEVsZW1lbnRXaWR0aCArIHBvaW50T2Zmc2V0WzBdLCB0YXJnZXRFbGVtZW50SGVpZ2h0ICsgcG9pbnRPZmZzZXRbMV1dO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9pbnRQb3NpdGlvbihwb2ludFBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQb2ludENvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjdXJyZW50UG9pbnRDb250YWluZXIsICd0aHktZ3VpZGVyLWhpZ2hsaWdodC1jb250YWluZXInKTtcbiAgICAgICAgaWYgKHRoaXMuZ3VpZGVyUmVmLmNvbmZpZy5wb2ludENsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFBvaW50Q2xhc3MoY3VycmVudFBvaW50Q29udGFpbmVyLCB0aGlzLmd1aWRlclJlZi5jb25maWcucG9pbnRDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjdXJyZW50UG9pbnRDb250YWluZXIsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRQb2ludENvbnRhaW5lciwgJ2xlZnQnLCBwb2ludFBvc2l0aW9uWzBdICsgJ3B4Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudFBvaW50Q29udGFpbmVyLCAndG9wJywgcG9pbnRQb3NpdGlvblsxXSArICdweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRQb2ludENvbnRhaW5lciwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoLTEwMCUsLTEwMCUpJyk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQb2ludENvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJpdmF0ZSBhZGRQb2ludENsYXNzKGVsOiBhbnksIHBvaW50Q2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGlmIChpc1N0cmluZyhwb2ludENsYXNzKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgcG9pbnRDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQXJyYXkocG9pbnRDbGFzcykpIHtcbiAgICAgICAgICAgIHBvaW50Q2xhc3MuZm9yRWFjaChjbGFzc0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsIGNsYXNzSXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyUG9pbnQodGFyZ2V0RWxlbWVudDogRWxlbWVudCwgcG9pbnRDb250YWluZXI6IGFueSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRhcmdldEVsZW1lbnQsIHBvaW50Q29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5sYXN0UG9pbnRlckNvbnRhaW5lciA9IHBvaW50Q29udGFpbmVyO1xuICAgICAgICB0aGlzLmxhc3RUYXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudDtcbiAgICAgICAgdGhpcy5jcmVhdGVUaXAodGhpcy5zdGVwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUxhc3RQb2ludENvbnRhaW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFBvaW50ZXJDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLmxhc3RQb2ludGVyQ29udGFpbmVyKTtcbiAgICAgICAgICAgIHRoaXMubGFzdFBvaW50ZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVRpcChzdGVwOiBUaHlHdWlkZXJTdGVwKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVGlwSGFzVGFyZ2V0KHN0ZXApKSB7XG4gICAgICAgICAgICB0aGlzLnRpcFdpdGhUYXJnZXQoc3RlcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpcFdpdGhvdXRUYXJnZXQoc3RlcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRpcFdpdGhvdXRUYXJnZXQoc3RlcDogVGh5R3VpZGVyU3RlcCkge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0VGlwUG9zaXRpb24oc3RlcCk7XG4gICAgICAgIHRoaXMubGFzdFBvcG92ZXJSZWYgPSB0aGlzLnBvcG92ZXIub3Blbih0aGlzLmd1aWRlclJlZi5jb25maWcuaGludENvbXBvbmVudCwge1xuICAgICAgICAgICAgb3JpZ2luOiBudWxsLFxuICAgICAgICAgICAgb3JpZ2luUG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICB4OiBwb3NpdGlvblswXSxcbiAgICAgICAgICAgICAgICB5OiBwb3NpdGlvblsxXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9yaWdpbkFjdGl2ZUNsYXNzOiAnJyxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuZ3VpZGVyUmVmLmNvbmZpZy5oaW50Q2xhc3MgfHwgJycsXG4gICAgICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBndWlkZXJSZWY6IHRoaXMuZ3VpZGVyUmVmLFxuICAgICAgICAgICAgICAgIHN0ZXBSZWY6IHRoaXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRpcFBvc2l0aW9uKHN0ZXA6IFRoeUd1aWRlclN0ZXApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgaWYgKGlzUG9zaXRpb25EYXRhVHlwZShzdGVwLnRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLnRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ndWlkZXJSZWYuY29uZmlnLmRlZmF1bHRQb3NpdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVRpcENvbnRhaW5lcigpIHtcbiAgICAgICAgY29uc3QgdGlwQ29udGFpbmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aXBDb250YWluZXIsICd0aHktZ3VpZGVyLWNvbnRlbnQtY29udGFpbmVyJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGlwQ29udGFpbmVyLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aXBDb250YWluZXIsICd0b3AnLCAnMHB4Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGlwQ29udGFpbmVyLCAncmlnaHQnLCAnMHB4Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGlwQ29udGFpbmVyLCAnYm90dG9tJywgJzBweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRpcENvbnRhaW5lciwgJ2xlZnQnLCAnMHB4Jyk7XG4gICAgICAgIHJldHVybiB0aXBDb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0aXBXaXRoVGFyZ2V0KHN0ZXA6IFRoeUd1aWRlclN0ZXApIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudChzdGVwKTtcbiAgICAgICAgY29uc3QgaGludENvbnRhaW5lciA9IHRoaXMuY3JlYXRlVGlwQ29udGFpbmVyKCk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0YXJnZXRFbGVtZW50LCBoaW50Q29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5sYXN0VGlwQ29udGFpbmVyID0gaGludENvbnRhaW5lcjtcblxuICAgICAgICBjb25zdCBwb3BvdmVyQ29uZmlnID0ge1xuICAgICAgICAgICAgb3JpZ2luOiBoaW50Q29udGFpbmVyLFxuICAgICAgICAgICAgcGxhY2VtZW50OiBzdGVwLmhpbnRQbGFjZW1lbnQsXG4gICAgICAgICAgICBwYW5lbENsYXNzOiB0aGlzLmd1aWRlclJlZi5jb25maWcuaGludENsYXNzIHx8ICcnLFxuICAgICAgICAgICAgYmFja2Ryb3BDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgZ3VpZGVyUmVmOiB0aGlzLmd1aWRlclJlZixcbiAgICAgICAgICAgICAgICBzdGVwUmVmOiB0aGlzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKClcbiAgICAgICAgfSBhcyBUaHlQb3BvdmVyQ29uZmlnPGFueT47XG5cbiAgICAgICAgY29uc3QgcG9pbnRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9pbnRQb3NpdGlvbihzdGVwLCB0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgaGludE9mZnNldCA9IHRoaXMuZ2V0VGlwT2Zmc2V0KHN0ZXAsIHBvaW50UG9zaXRpb24sIHRhcmdldEVsZW1lbnQpO1xuICAgICAgICBpZiAoaGludE9mZnNldCkge1xuICAgICAgICAgICAgcG9wb3ZlckNvbmZpZy5vZmZzZXQgPSBoaW50T2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFBvcG92ZXJSZWYgPSB0aGlzLnBvcG92ZXIub3Blbih0aGlzLmd1aWRlclJlZi5jb25maWcuaGludENvbXBvbmVudCwgcG9wb3ZlckNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUaXBPZmZzZXQoc3RlcDogVGh5R3VpZGVyU3RlcCwgcG9pbnRQb3NpdGlvbjogW251bWJlciwgbnVtYmVyXSwgdGFyZ2V0RWxlbWVudDogRWxlbWVudCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGhpbnRQbGFjZW1lbnQgPSBzdGVwLmhpbnRQbGFjZW1lbnQ7XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRDbGllbnRSZWN0ID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgeyB3aWR0aDogdGFyZ2V0RWxlbWVudFdpZHRoLCBoZWlnaHQ6IHRhcmdldEVsZW1lbnRIZWlnaHQgfSA9IHRhcmdldEVsZW1lbnRDbGllbnRSZWN0O1xuICAgICAgICBsZXQgaGludE9mZnNldDogbnVtYmVyID0gc3RlcC5oaW50T2Zmc2V0IHx8IDA7XG4gICAgICAgIGNvbnN0IHBvaW50WEF4aXNPZmZzZXQgPSBwb2ludFBvc2l0aW9uWzBdO1xuICAgICAgICBjb25zdCBwb2ludFlBeGlzT2Zmc2V0ID0gcG9pbnRQb3NpdGlvblsxXTtcblxuICAgICAgICBpZiAoaGludFBsYWNlbWVudC5zdGFydHNXaXRoKCd0b3AnKSkge1xuICAgICAgICAgICAgaWYgKHBvaW50WUF4aXNPZmZzZXQgPCBwb2ludENvbnRhaW5lclNpemUpIHtcbiAgICAgICAgICAgICAgICBoaW50T2Zmc2V0ID0gaGludE9mZnNldCArIE1hdGguYWJzKHBvaW50WUF4aXNPZmZzZXQpICsgcG9pbnRDb250YWluZXJTaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGhpbnRQbGFjZW1lbnQuc3RhcnRzV2l0aCgnYm90dG9tJykpIHtcbiAgICAgICAgICAgIGlmIChwb2ludFlBeGlzT2Zmc2V0ID4gdGFyZ2V0RWxlbWVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQgPSBoaW50T2Zmc2V0ICsgKHBvaW50WUF4aXNPZmZzZXQgLSB0YXJnZXRFbGVtZW50SGVpZ2h0KSArIDEwOyAvLyAxMCDkuLrnqbrpmpnph49cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChoaW50UGxhY2VtZW50LnN0YXJ0c1dpdGgoJ2xlZnQnKSkge1xuICAgICAgICAgICAgaWYgKHBvaW50WEF4aXNPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgaGludE9mZnNldCA9IGhpbnRPZmZzZXQgKyBNYXRoLmFicyhwb2ludFhBeGlzT2Zmc2V0KSArIHBvaW50Q29udGFpbmVyU2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChoaW50UGxhY2VtZW50LnN0YXJ0c1dpdGgoJ3JpZ2h0JykpIHtcbiAgICAgICAgICAgIGlmIChwb2ludFhBeGlzT2Zmc2V0ID4gdGFyZ2V0RWxlbWVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgaGludE9mZnNldCA9IGhpbnRPZmZzZXQgKyAocG9pbnRYQXhpc09mZnNldCAtIHRhcmdldEVsZW1lbnRXaWR0aCkgKyAxMDsgLy8gMTAg5Li656m66ZqZ6YePXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhpbnRPZmZzZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVUaXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQb3BvdmVyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmxhc3RQb3BvdmVyUmVmID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxhc3RUaXBDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLmxhc3RUaXBDb250YWluZXIpO1xuICAgICAgICAgICAgdGhpcy5sYXN0VGlwQ29udGFpbmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxhc3RUYXJnZXRFbGVtZW50ICYmIHRoaXMudGFyZ2V0RWxlbWVudE9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnRPYnNlcnZlci51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5sYXN0VGFyZ2V0RWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudE9ic2VydmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1RpcEhhc1RhcmdldChzdGVwOiBUaHlHdWlkZXJTdGVwKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChzdGVwLnRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuICFpc1Bvc2l0aW9uRGF0YVR5cGUoc3RlcC50YXJnZXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5ndWlkZXJNYW5hZ2VyLmdldEFjdGl2ZVRhcmdldChzdGVwLmtleSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVyLXN0ZXAtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2d1aWRlci9ndWlkZXItc3RlcC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFDOUIsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFlekIsWUFDVyxJQUFtQixFQUNuQixTQUFpQixFQUNQLGVBQWlDLEVBQzFDLE9BQW1CLEVBQ25CLGFBQStCLEVBQy9CLE9BQWdCLEVBQ0UsUUFBa0I7UUFOckMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQzFDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTVDLElBQUksQ0FBQyxRQUFRLEdBQUcs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LEVBQUU7WUFDdEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7WUFDbkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBbUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQztDQUNKLENBQUE7QUE5UFksZ0JBQWdCO0lBc0JwQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtxREFKaUIsZ0JBQWdCO1FBQ2pDLFVBQVU7UUFDSixnQkFBZ0I7UUFDdEIsT0FBTztRQUNZLFFBQVE7R0F0QnZDLGdCQUFnQixDQThQNUI7U0E5UFksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyQ29uZmlnLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IGNvZXJjZUFycmF5LCBpc0FycmF5LCBpc051bGwsIGlzU3RyaW5nLCBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGh5R3VpZGVyTWFuYWdlciB9IGZyb20gJy4vZ3VpZGVyLW1hbmFnZXInO1xuaW1wb3J0IHsgVGh5R3VpZGVyUmVmIH0gZnJvbSAnLi9ndWlkZXItcmVmJztcbmltcG9ydCB7IFRoeUd1aWRlclN0ZXAgfSBmcm9tICcuL2d1aWRlci5jbGFzcyc7XG5pbXBvcnQgeyBpc1Bvc2l0aW9uRGF0YVR5cGUgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgcG9pbnRDb250YWluZXJTaXplID0gMjg7XG5leHBvcnQgY2xhc3MgVGh5R3VpZGVyU3RlcFJlZiB7XG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gICAgcHJpdmF0ZSBsYXN0UG9pbnRlckNvbnRhaW5lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBsYXN0VGFyZ2V0RWxlbWVudDogRWxlbWVudDtcblxuICAgIHByaXZhdGUgdGFyZ2V0RWxlbWVudE9ic2VydmVyOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIGxhc3RUaXBDb250YWluZXI6IGFueTtcblxuICAgIHByaXZhdGUgZ3VpZGVyUmVmOiBUaHlHdWlkZXJSZWY7XG5cbiAgICBwcml2YXRlIGxhc3RQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHN0ZXA6IFRoeUd1aWRlclN0ZXAsXG4gICAgICAgIHB1YmxpYyBzdGVwSW5kZXg6IG51bWJlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgICAgIHByaXZhdGUgcG9wb3ZlcjogVGh5UG9wb3ZlcixcbiAgICAgICAgcHJpdmF0ZSBndWlkZXJNYW5hZ2VyOiBUaHlHdWlkZXJNYW5hZ2VyLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdyhndWlkZXJSZWY6IFRoeUd1aWRlclJlZikge1xuICAgICAgICB0aGlzLmd1aWRlclJlZiA9IGd1aWRlclJlZjtcbiAgICAgICAgdGhpcy5jcmVhdGVQb2ludCh0aGlzLnN0ZXAsIGd1aWRlclJlZik7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3Bvc2UoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGFzdFBvaW50Q29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMucmVtb3ZlVGlwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYXJnZXRFbGVtZW50KHN0ZXA6IFRoeUd1aWRlclN0ZXApIHtcbiAgICAgICAgbGV0IHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmIChzdGVwLnRhcmdldCAmJiAhaXNQb3NpdGlvbkRhdGFUeXBlKHN0ZXAudGFyZ2V0KSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gWy4uLmNvZXJjZUFycmF5KHN0ZXAudGFyZ2V0KV07XG5cbiAgICAgICAgICAgIHdoaWxlICh0YXJnZXQubGVuZ3RoICYmIGlzVW5kZWZpbmVkT3JOdWxsKHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGhpcy5ndWlkZXJNYW5hZ2VyLmdldEFjdGl2ZVRhcmdldChzdGVwLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQb2ludChzdGVwOiBUaHlHdWlkZXJTdGVwLCBndWlkZXJSZWY6IFRoeUd1aWRlclJlZikge1xuICAgICAgICAvLyB0YXJnZXQg5Li656m65bm25LiUIGd1aWRlck1hbmFnZXIg5Lit55qEIHRhcmdldE1hcCDkuZ/msqHmnInmraRzdGVwIOeahCBrZXnvvIzmiJbogIUgdGFyZ2V0IOebtOaOpeS4uiDlnZDmoIfmlbDnu4RcbiAgICAgICAgLy8g5YiZ5omn6KGM5pegIHRhcmdldCDnmoTmmL7npLpcbiAgICAgICAgaWYgKCF0aGlzLmlzVGlwSGFzVGFyZ2V0KHN0ZXApKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVRpcCh0aGlzLnN0ZXApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudChzdGVwKTtcblxuICAgICAgICBpZiAoKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkgJiYgaXNOdWxsKHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHRoZXJlIGlzIG5vIHRhcmdldCBjYWxsZWQgJHtjb2VyY2VBcnJheShzdGVwLnRhcmdldCkuam9pbignIG9yICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudE9ic2VydmVyID0gZnJvbUV2ZW50KHRhcmdldEVsZW1lbnQsICdjbGljaycpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBndWlkZXJSZWYudGFyZ2V0Q2xpY2tlZCgpLm5leHQoc3RlcCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwb3NpdGlvblZhbHVlID0gdGFyZ2V0RWxlbWVudD8uc3R5bGU/LnBvc2l0aW9uO1xuICAgICAgICBpZiAoIXBvc2l0aW9uVmFsdWUgfHwgcG9zaXRpb25WYWx1ZSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGFyZ2V0RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdHlsZUZvclBvaW50Q29udGFpbmVyKHN0ZXAsIHRhcmdldEVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3R5bGVGb3JQb2ludENvbnRhaW5lcihzdGVwOiBUaHlHdWlkZXJTdGVwLCB0YXJnZXRFbGVtZW50OiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBvaW50UG9zaXRpb24gPSB0aGlzLmdldFBvaW50UG9zaXRpb24oc3RlcCwgdGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBvaW50Q29udGFpbmVyID0gdGhpcy5zZXRQb2ludFBvc2l0aW9uKHBvaW50UG9zaXRpb24pO1xuXG4gICAgICAgIHRoaXMucmVuZGVyUG9pbnQodGFyZ2V0RWxlbWVudCwgcG9pbnRDb250YWluZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9pbnRQb3NpdGlvbihzdGVwOiBUaHlHdWlkZXJTdGVwLCB0YXJnZXRFbGVtZW50OiBFbGVtZW50KTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRDbGllbnRSZWN0ID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgeyB3aWR0aDogdGFyZ2V0RWxlbWVudFdpZHRoLCBoZWlnaHQ6IHRhcmdldEVsZW1lbnRIZWlnaHQgfSA9IHRhcmdldEVsZW1lbnRDbGllbnRSZWN0O1xuICAgICAgICBjb25zdCBwb2ludE9mZnNldCA9IHN0ZXAucG9pbnRPZmZzZXQ7XG4gICAgICAgIC8vIOWPqumAmui/hyBwb2ludE9mZnNldCDmjqfliLYgcG9pbnQg55qE5L2N572u77yM6buY6K6k5ZyoIHRhcmdldCDnmoTlj7PkuIvop5LvvIxcbiAgICAgICAgLy8gb2Zmc2V0IOeahOWfuueCueS5n+S4uum7mOiupOS9jee9rlxuICAgICAgICByZXR1cm4gW3RhcmdldEVsZW1lbnRXaWR0aCArIHBvaW50T2Zmc2V0WzBdLCB0YXJnZXRFbGVtZW50SGVpZ2h0ICsgcG9pbnRPZmZzZXRbMV1dO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9pbnRQb3NpdGlvbihwb2ludFBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQb2ludENvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjdXJyZW50UG9pbnRDb250YWluZXIsICd0aHktZ3VpZGVyLWhpZ2hsaWdodC1jb250YWluZXInKTtcbiAgICAgICAgaWYgKHRoaXMuZ3VpZGVyUmVmLmNvbmZpZy5wb2ludENsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFBvaW50Q2xhc3MoY3VycmVudFBvaW50Q29udGFpbmVyLCB0aGlzLmd1aWRlclJlZi5jb25maWcucG9pbnRDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjdXJyZW50UG9pbnRDb250YWluZXIsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRQb2ludENvbnRhaW5lciwgJ2xlZnQnLCBwb2ludFBvc2l0aW9uWzBdICsgJ3B4Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudFBvaW50Q29udGFpbmVyLCAndG9wJywgcG9pbnRQb3NpdGlvblsxXSArICdweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRQb2ludENvbnRhaW5lciwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoLTEwMCUsLTEwMCUpJyk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQb2ludENvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJpdmF0ZSBhZGRQb2ludENsYXNzKGVsOiBhbnksIHBvaW50Q2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGlmIChpc1N0cmluZyhwb2ludENsYXNzKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgcG9pbnRDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQXJyYXkocG9pbnRDbGFzcykpIHtcbiAgICAgICAgICAgIHBvaW50Q2xhc3MuZm9yRWFjaChjbGFzc0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsIGNsYXNzSXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyUG9pbnQodGFyZ2V0RWxlbWVudDogRWxlbWVudCwgcG9pbnRDb250YWluZXI6IGFueSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRhcmdldEVsZW1lbnQsIHBvaW50Q29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5sYXN0UG9pbnRlckNvbnRhaW5lciA9IHBvaW50Q29udGFpbmVyO1xuICAgICAgICB0aGlzLmxhc3RUYXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudDtcbiAgICAgICAgdGhpcy5jcmVhdGVUaXAodGhpcy5zdGVwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUxhc3RQb2ludENvbnRhaW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFBvaW50ZXJDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLmxhc3RQb2ludGVyQ29udGFpbmVyKTtcbiAgICAgICAgICAgIHRoaXMubGFzdFBvaW50ZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVRpcChzdGVwOiBUaHlHdWlkZXJTdGVwKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVGlwSGFzVGFyZ2V0KHN0ZXApKSB7XG4gICAgICAgICAgICB0aGlzLnRpcFdpdGhUYXJnZXQoc3RlcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpcFdpdGhvdXRUYXJnZXQoc3RlcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRpcFdpdGhvdXRUYXJnZXQoc3RlcDogVGh5R3VpZGVyU3RlcCkge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0VGlwUG9zaXRpb24oc3RlcCk7XG4gICAgICAgIHRoaXMubGFzdFBvcG92ZXJSZWYgPSB0aGlzLnBvcG92ZXIub3Blbih0aGlzLmd1aWRlclJlZi5jb25maWcuaGludENvbXBvbmVudCwge1xuICAgICAgICAgICAgb3JpZ2luOiBudWxsLFxuICAgICAgICAgICAgb3JpZ2luUG9zaXRpb246IHBvc2l0aW9uLFxuICAgICAgICAgICAgb3JpZ2luQWN0aXZlQ2xhc3M6ICcnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogdGhpcy5ndWlkZXJSZWYuY29uZmlnLmhpbnRDbGFzcyB8fCAnJyxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGd1aWRlclJlZjogdGhpcy5ndWlkZXJSZWYsXG4gICAgICAgICAgICAgICAgc3RlcFJlZjogdGhpc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGlwUG9zaXRpb24oc3RlcDogVGh5R3VpZGVyU3RlcCk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB7XG4gICAgICAgIGlmIChpc1Bvc2l0aW9uRGF0YVR5cGUoc3RlcC50YXJnZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RlcC50YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ3VpZGVyUmVmLmNvbmZpZy5kZWZhdWx0UG9zaXRpb247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVUaXBDb250YWluZXIoKSB7XG4gICAgICAgIGNvbnN0IHRpcENvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGlwQ29udGFpbmVyLCAndGh5LWd1aWRlci1jb250ZW50LWNvbnRhaW5lcicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRpcENvbnRhaW5lciwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGlwQ29udGFpbmVyLCAndG9wJywgJzBweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRpcENvbnRhaW5lciwgJ3JpZ2h0JywgJzBweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRpcENvbnRhaW5lciwgJ2JvdHRvbScsICcwcHgnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aXBDb250YWluZXIsICdsZWZ0JywgJzBweCcpO1xuICAgICAgICByZXR1cm4gdGlwQ29udGFpbmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgdGlwV2l0aFRhcmdldChzdGVwOiBUaHlHdWlkZXJTdGVwKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSB0aGlzLmdldFRhcmdldEVsZW1lbnQoc3RlcCk7XG4gICAgICAgIGNvbnN0IGhpbnRDb250YWluZXIgPSB0aGlzLmNyZWF0ZVRpcENvbnRhaW5lcigpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGFyZ2V0RWxlbWVudCwgaGludENvbnRhaW5lcik7XG4gICAgICAgIHRoaXMubGFzdFRpcENvbnRhaW5lciA9IGhpbnRDb250YWluZXI7XG5cbiAgICAgICAgY29uc3QgcG9wb3ZlckNvbmZpZyA9IHtcbiAgICAgICAgICAgIG9yaWdpbjogaGludENvbnRhaW5lcixcbiAgICAgICAgICAgIHBsYWNlbWVudDogc3RlcC5oaW50UGxhY2VtZW50LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogdGhpcy5ndWlkZXJSZWYuY29uZmlnLmhpbnRDbGFzcyB8fCAnJyxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGd1aWRlclJlZjogdGhpcy5ndWlkZXJSZWYsXG4gICAgICAgICAgICAgICAgc3RlcFJlZjogdGhpc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpXG4gICAgICAgIH0gYXMgVGh5UG9wb3ZlckNvbmZpZzxhbnk+O1xuXG4gICAgICAgIGNvbnN0IHBvaW50UG9zaXRpb24gPSB0aGlzLmdldFBvaW50UG9zaXRpb24oc3RlcCwgdGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGhpbnRPZmZzZXQgPSB0aGlzLmdldFRpcE9mZnNldChzdGVwLCBwb2ludFBvc2l0aW9uLCB0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgaWYgKGhpbnRPZmZzZXQpIHtcbiAgICAgICAgICAgIHBvcG92ZXJDb25maWcub2Zmc2V0ID0gaGludE9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RQb3BvdmVyUmVmID0gdGhpcy5wb3BvdmVyLm9wZW4odGhpcy5ndWlkZXJSZWYuY29uZmlnLmhpbnRDb21wb25lbnQsIHBvcG92ZXJDb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGlwT2Zmc2V0KHN0ZXA6IFRoeUd1aWRlclN0ZXAsIHBvaW50UG9zaXRpb246IFtudW1iZXIsIG51bWJlcl0sIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBoaW50UGxhY2VtZW50ID0gc3RlcC5oaW50UGxhY2VtZW50O1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50Q2xpZW50UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHsgd2lkdGg6IHRhcmdldEVsZW1lbnRXaWR0aCwgaGVpZ2h0OiB0YXJnZXRFbGVtZW50SGVpZ2h0IH0gPSB0YXJnZXRFbGVtZW50Q2xpZW50UmVjdDtcbiAgICAgICAgbGV0IGhpbnRPZmZzZXQ6IG51bWJlciA9IHN0ZXAuaGludE9mZnNldCB8fCAwO1xuICAgICAgICBjb25zdCBwb2ludFhBeGlzT2Zmc2V0ID0gcG9pbnRQb3NpdGlvblswXTtcbiAgICAgICAgY29uc3QgcG9pbnRZQXhpc09mZnNldCA9IHBvaW50UG9zaXRpb25bMV07XG5cbiAgICAgICAgaWYgKGhpbnRQbGFjZW1lbnQuc3RhcnRzV2l0aCgndG9wJykpIHtcbiAgICAgICAgICAgIGlmIChwb2ludFlBeGlzT2Zmc2V0IDwgcG9pbnRDb250YWluZXJTaXplKSB7XG4gICAgICAgICAgICAgICAgaGludE9mZnNldCA9IGhpbnRPZmZzZXQgKyBNYXRoLmFicyhwb2ludFlBeGlzT2Zmc2V0KSArIHBvaW50Q29udGFpbmVyU2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChoaW50UGxhY2VtZW50LnN0YXJ0c1dpdGgoJ2JvdHRvbScpKSB7XG4gICAgICAgICAgICBpZiAocG9pbnRZQXhpc09mZnNldCA+IHRhcmdldEVsZW1lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBoaW50T2Zmc2V0ID0gaGludE9mZnNldCArIChwb2ludFlBeGlzT2Zmc2V0IC0gdGFyZ2V0RWxlbWVudEhlaWdodCkgKyAxMDsgLy8gMTAg5Li656m66ZqZ6YePXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaGludFBsYWNlbWVudC5zdGFydHNXaXRoKCdsZWZ0JykpIHtcbiAgICAgICAgICAgIGlmIChwb2ludFhBeGlzT2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQgPSBoaW50T2Zmc2V0ICsgTWF0aC5hYnMocG9pbnRYQXhpc09mZnNldCkgKyBwb2ludENvbnRhaW5lclNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaGludFBsYWNlbWVudC5zdGFydHNXaXRoKCdyaWdodCcpKSB7XG4gICAgICAgICAgICBpZiAocG9pbnRYQXhpc09mZnNldCA+IHRhcmdldEVsZW1lbnRXaWR0aCkge1xuICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQgPSBoaW50T2Zmc2V0ICsgKHBvaW50WEF4aXNPZmZzZXQgLSB0YXJnZXRFbGVtZW50V2lkdGgpICsgMTA7IC8vIDEwIOS4uuepuumamemHj1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoaW50T2Zmc2V0O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlVGlwKCkge1xuICAgICAgICBpZiAodGhpcy5sYXN0UG9wb3ZlclJlZikge1xuICAgICAgICAgICAgdGhpcy5sYXN0UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5sYXN0UG9wb3ZlclJlZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5sYXN0VGlwQ29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgdGhpcy5sYXN0VGlwQ29udGFpbmVyKTtcbiAgICAgICAgICAgIHRoaXMubGFzdFRpcENvbnRhaW5lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5sYXN0VGFyZ2V0RWxlbWVudCAmJiB0aGlzLnRhcmdldEVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy50YXJnZXRFbGVtZW50T2JzZXJ2ZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMubGFzdFRhcmdldEVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnRPYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNUaXBIYXNUYXJnZXQoc3RlcDogVGh5R3VpZGVyU3RlcCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoc3RlcC50YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybiAhaXNQb3NpdGlvbkRhdGFUeXBlKHN0ZXAudGFyZ2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMuZ3VpZGVyTWFuYWdlci5nZXRBY3RpdmVUYXJnZXQoc3RlcC5rZXkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -3,8 +3,8 @@ export class ThyGuiderConfig {
3
3
  export const defaultGuiderPositionConfig = {
4
4
  hintComponent: null,
5
5
  hintPlacement: 'rightBottom',
6
- defaultPosition: [0, 0],
6
+ defaultPosition: { x: 0, y: 0 },
7
7
  pointOffset: [0, 0],
8
8
  hintOffset: 4
9
9
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2d1aWRlci9ndWlkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsTUFBTSxPQUFPLGVBQWU7Q0F3QjNCO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDdkMsYUFBYSxFQUFFLElBQXFCO0lBQ3BDLGFBQWEsRUFBRSxhQUFhO0lBQzVCLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQixVQUFVLEVBQUUsQ0FBQztDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlHdWlkZXJTdGVwPFREYXRhID0gYW55PiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdGFyZ2V0Pzogc3RyaW5nIHwgc3RyaW5nW10gfCBbbnVtYmVyLCBudW1iZXJdO1xuICAgIGRhdGE6IFREYXRhO1xuICAgIHJvdXRlPzogc3RyaW5nO1xuICAgIGhpbnRQbGFjZW1lbnQ/OiBUaHlQbGFjZW1lbnQ7XG4gICAgaGludE9mZnNldD86IG51bWJlcjtcbiAgICBwb2ludE9mZnNldD86IFtudW1iZXIsIG51bWJlcl07XG4gICAgLy8gY2hpbGRyZW46IFN0ZXBJbmZvPFQ+W11cbn1cblxuZXhwb3J0IGNsYXNzIFRoeUd1aWRlckNvbmZpZyB7XG4gICAgLyoqIGhpbnQgQ29tcG9uZW50LGRlZmF1bHQgaXMgVGh5R3VpZGVySGludENvbXBvbmVudCAqL1xuICAgIGhpbnRDb21wb25lbnQ/OiBUeXBlPHVua25vd24+O1xuXG4gICAgLyoqIHN0ZXBzIGluZm8gKi9cbiAgICBzdGVwczogVGh5R3VpZGVyU3RlcFtdO1xuXG4gICAgLyoqIGhpbnQgZGVmYXVsdCBwb3NpdGlvbiB3aGVuIHN0ZXAgaW5mbyBub3Qgc2V0IGhpbnRQbGFjZW1lbnQgKi9cbiAgICBoaW50UGxhY2VtZW50PzogVGh5UGxhY2VtZW50O1xuXG4gICAgLyoqIHVzZWZ1bCB3aGVuIHdpdGhvdXQgdGFyZ2V0ICovXG4gICAgZGVmYXVsdFBvc2l0aW9uPzogW251bWJlciwgbnVtYmVyXTtcblxuICAgIC8qKiBzZXR0aW5nIGRlZmF1bHQgcG9pbnQgb2Zmc2V0ICovXG4gICAgcG9pbnRPZmZzZXQ/OiBbbnVtYmVyLCBudW1iZXJdO1xuXG4gICAgLyoqIGxpa2UgcG9wb3ZlciBvZmZzZXQgKi9cbiAgICBoaW50T2Zmc2V0PzogbnVtYmVyO1xuXG4gICAgLyoqIHBvcG92ZXIgYWN0aXZlIGNsYXNzICovXG4gICAgaGludENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICAvKiogZ3VpZGVyIHBvaW50IGNsYXNzICovXG4gICAgcG9pbnRDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEd1aWRlclBvc2l0aW9uQ29uZmlnID0ge1xuICAgIGhpbnRDb21wb25lbnQ6IG51bGwgYXMgVHlwZTx1bmtub3duPixcbiAgICBoaW50UGxhY2VtZW50OiAncmlnaHRCb3R0b20nLFxuICAgIGRlZmF1bHRQb3NpdGlvbjogWzAsIDBdLFxuICAgIHBvaW50T2Zmc2V0OiBbMCwgMF0sXG4gICAgaGludE9mZnNldDogNFxufTtcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2d1aWRlci9ndWlkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsTUFBTSxPQUFPLGVBQWU7Q0F3QjNCO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDdkMsYUFBYSxFQUFFLElBQXFCO0lBQ3BDLGFBQWEsRUFBRSxhQUFhO0lBQzVCLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtJQUMvQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25CLFVBQVUsRUFBRSxDQUFDO0NBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQbGFjZW1lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoeUd1aWRlclN0ZXA8VERhdGEgPSBhbnk+IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0YXJnZXQ/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgICBkYXRhOiBURGF0YTtcbiAgICByb3V0ZT86IHN0cmluZztcbiAgICBoaW50UGxhY2VtZW50PzogVGh5UGxhY2VtZW50O1xuICAgIGhpbnRPZmZzZXQ/OiBudW1iZXI7XG4gICAgcG9pbnRPZmZzZXQ/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIC8vIGNoaWxkcmVuOiBTdGVwSW5mbzxUPltdXG59XG5cbmV4cG9ydCBjbGFzcyBUaHlHdWlkZXJDb25maWcge1xuICAgIC8qKiBoaW50IENvbXBvbmVudCxkZWZhdWx0IGlzIFRoeUd1aWRlckhpbnRDb21wb25lbnQgKi9cbiAgICBoaW50Q29tcG9uZW50PzogVHlwZTx1bmtub3duPjtcblxuICAgIC8qKiBzdGVwcyBpbmZvICovXG4gICAgc3RlcHM6IFRoeUd1aWRlclN0ZXBbXTtcblxuICAgIC8qKiBoaW50IGRlZmF1bHQgcG9zaXRpb24gd2hlbiBzdGVwIGluZm8gbm90IHNldCBoaW50UGxhY2VtZW50ICovXG4gICAgaGludFBsYWNlbWVudD86IFRoeVBsYWNlbWVudDtcblxuICAgIC8qKiB1c2VmdWwgd2hlbiB3aXRob3V0IHRhcmdldCAqL1xuICAgIGRlZmF1bHRQb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcblxuICAgIC8qKiBzZXR0aW5nIGRlZmF1bHQgcG9pbnQgb2Zmc2V0ICovXG4gICAgcG9pbnRPZmZzZXQ/OiBbbnVtYmVyLCBudW1iZXJdO1xuXG4gICAgLyoqIGxpa2UgcG9wb3ZlciBvZmZzZXQgKi9cbiAgICBoaW50T2Zmc2V0PzogbnVtYmVyO1xuXG4gICAgLyoqIHBvcG92ZXIgYWN0aXZlIGNsYXNzICovXG4gICAgaGludENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICAvKiogZ3VpZGVyIHBvaW50IGNsYXNzICovXG4gICAgcG9pbnRDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEd1aWRlclBvc2l0aW9uQ29uZmlnID0ge1xuICAgIGhpbnRDb21wb25lbnQ6IG51bGwgYXMgVHlwZTx1bmtub3duPixcbiAgICBoaW50UGxhY2VtZW50OiAncmlnaHRCb3R0b20nLFxuICAgIGRlZmF1bHRQb3NpdGlvbjogeyB4OiAwLCB5OiAwIH0sXG4gICAgcG9pbnRPZmZzZXQ6IFswLCAwXSxcbiAgICBoaW50T2Zmc2V0OiA0XG59O1xuIl19
@@ -1,14 +1,10 @@
1
- import { isArray, isNumber } from 'ngx-tethys/util';
1
+ import { isArray, isNumber, isObject } from 'ngx-tethys/util';
2
2
  export function isPositionDataType(target) {
3
- if (isArray(target)) {
4
- if (target.length !== 2) {
5
- return false;
6
- }
7
- if (isNumber(target[0]) && isNumber(target[1])) {
3
+ if (isObject(target) && !isArray(target)) {
4
+ if (isNumber(target.x) && isNumber(target.y)) {
8
5
  return true;
9
6
  }
10
- return false;
11
7
  }
12
8
  return false;
13
9
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3VpZGVyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQVc7SUFDMUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDakIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBcnJheSwgaXNOdW1iZXIgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNQb3NpdGlvbkRhdGFUeXBlKHRhcmdldDogYW55KTogdGFyZ2V0IGlzIFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGlmIChpc0FycmF5KHRhcmdldCkpIHtcbiAgICAgICAgaWYgKHRhcmdldC5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOdW1iZXIodGFyZ2V0WzBdKSAmJiBpc051bWJlcih0YXJnZXRbMV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3VpZGVyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFXO0lBQzFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3RDLElBQUksUUFBUSxDQUFFLE1BQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFFLE1BQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEUsT0FBTyxJQUFJLENBQUM7U0FDZjtLQUNKO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZmVBbnkgfSBmcm9tICduZ3gtdGV0aHlzL3R5cGVzJztcbmltcG9ydCB7IGlzQXJyYXksIGlzTnVtYmVyLCBpc09iamVjdCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bvc2l0aW9uRGF0YVR5cGUodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiAhaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgICAgIGlmIChpc051bWJlcigodGFyZ2V0IGFzIFNhZmVBbnkpLngpICYmIGlzTnVtYmVyKCh0YXJnZXQgYXMgU2FmZUFueSkueSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -1,8 +1,2 @@
1
- export const System = window.System;
2
- export const ENV = window.ENV;
3
- export const PR = window.PR;
4
- export const mermaid = window.mermaid;
5
- export const liteMarked = window.liteMarked;
6
- export const $ = window.$;
7
- export const katex = window.katex;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUksTUFBYyxDQUFDLE1BQU0sQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUksTUFBYyxDQUFDLEdBQUcsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUksTUFBYyxDQUFDLEVBQUUsQ0FBQztBQUNyQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUksTUFBYyxDQUFDLE9BQU8sQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUksTUFBYyxDQUFDLFVBQVUsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUksTUFBYyxDQUFDLENBQUMsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUksTUFBYyxDQUFDLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTeXN0ZW0gPSAod2luZG93IGFzIGFueSkuU3lzdGVtO1xuZXhwb3J0IGNvbnN0IEVOViA9ICh3aW5kb3cgYXMgYW55KS5FTlY7XG5leHBvcnQgY29uc3QgUFIgPSAod2luZG93IGFzIGFueSkuUFI7XG5leHBvcnQgY29uc3QgbWVybWFpZCA9ICh3aW5kb3cgYXMgYW55KS5tZXJtYWlkO1xuZXhwb3J0IGNvbnN0IGxpdGVNYXJrZWQgPSAod2luZG93IGFzIGFueSkubGl0ZU1hcmtlZDtcbmV4cG9ydCBjb25zdCAkID0gKHdpbmRvdyBhcyBhbnkpLiQ7XG5leHBvcnQgY29uc3Qga2F0ZXggPSAod2luZG93IGFzIGFueSkua2F0ZXg7XG5cbmV4cG9ydCBkZWNsYXJlIG1vZHVsZSBqYXNtaW5lIHtcbiAgICBpbnRlcmZhY2UgTWF0Y2hlcnM8VD4ge1xuICAgICAgICB0b0hhdmVDc3NDbGFzcyhleHBlY3RlZDogYW55KTogYm9vbGVhbjtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJZCB7XG4gICAgdG9TdHJpbmcoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTYWZlQW55ID0gYW55O1xuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2FmZUFueSA9IGFueTtcblxuZXhwb3J0IHsgSWQsIElkcywgSWRPcklkcyB9IGZyb20gJ0B0ZXRoeXMvY2RrL2ltbXV0YWJsZSc7XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('14.2.2');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNC4yLjInKTtcbiJdfQ==
2
+ export const VERSION = new Version('14.2.3');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNC4yLjMnKTtcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param, __metadata } from 'tslib';
2
2
  import * as i2 from '@angular/router';
3
3
  import { Router } from '@angular/router';
4
- import { isArray, isNumber, coerceArray, isUndefinedOrNull, isNull, isString, helpers } from 'ngx-tethys/util';
4
+ import { isObject, isArray, isNumber, coerceArray, isUndefinedOrNull, isNull, isString, helpers } from 'ngx-tethys/util';
5
5
  import * as i1$1 from '@angular/common';
6
6
  import { DOCUMENT, CommonModule } from '@angular/common';
7
7
  import * as i1 from 'ngx-tethys/popover';
@@ -50,14 +50,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
50
50
  }], ctorParameters: function () { return []; } });
51
51
 
52
52
  function isPositionDataType(target) {
53
- if (isArray(target)) {
54
- if (target.length !== 2) {
55
- return false;
56
- }
57
- if (isNumber(target[0]) && isNumber(target[1])) {
53
+ if (isObject(target) && !isArray(target)) {
54
+ if (isNumber(target.x) && isNumber(target.y)) {
58
55
  return true;
59
56
  }
60
- return false;
61
57
  }
62
58
  return false;
63
59
  }
@@ -175,10 +171,7 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
175
171
  const position = this.getTipPosition(step);
176
172
  this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {
177
173
  origin: null,
178
- originPosition: {
179
- x: position[0],
180
- y: position[1]
181
- },
174
+ originPosition: position,
182
175
  originActiveClass: '',
183
176
  panelClass: this.guiderRef.config.hintClass || '',
184
177
  backdropClosable: false,
@@ -299,7 +292,7 @@ class ThyGuiderConfig {
299
292
  const defaultGuiderPositionConfig = {
300
293
  hintComponent: null,
301
294
  hintPlacement: 'rightBottom',
302
- defaultPosition: [0, 0],
295
+ defaultPosition: { x: 0, y: 0 },
303
296
  pointOffset: [0, 0],
304
297
  hintOffset: 4
305
298
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-guider.mjs","sources":["../../../src/guider/guider-manager.ts","../../../src/guider/utils.ts","../../../src/guider/guider-step-ref.ts","../../../src/guider/guider.class.ts","../../../src/guider/guider-ref.ts","../../../src/guider/guider.service.ts","../../../src/guider/guider.directive.ts","../../../src/guider/guider-hint/guider-hint.component.ts","../../../src/guider/guider-hint/guider-hint.component.html","../../../src/guider/guider.module.ts","../../../src/guider/ngx-tethys-guider.ts"],"sourcesContent":["import { ThyGuiderRef } from './guider-ref';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuiderManager {\n private targetListMap = {};\n\n private thyGuiderRef: ThyGuiderRef;\n\n private activeStepKey: string;\n\n constructor() {}\n\n public updateActive(key: string, guiderRef: ThyGuiderRef) {\n this.activeStepKey = key;\n this.thyGuiderRef = guiderRef;\n }\n\n public addStepTarget(key: string, el: HTMLElement) {\n this.targetListMap[key] = el;\n }\n\n public removeStepTarget(key: string) {\n delete this.targetListMap[key];\n }\n\n public getActiveTarget(key: string): HTMLElement {\n return this.targetListMap[key];\n }\n\n public getActive(): { key: string; guiderRef: ThyGuiderRef } {\n return {\n key: this.activeStepKey,\n guiderRef: this.thyGuiderRef\n };\n }\n}\n","import { isArray, isNumber } from 'ngx-tethys/util';\n\nexport function isPositionDataType(target: any): target is [number, number] {\n if (isArray(target)) {\n if (target.length !== 2) {\n return false;\n }\n if (isNumber(target[0]) && isNumber(target[1])) {\n return true;\n }\n return false;\n }\n return false;\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceArray, isArray, isNull, isString, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderRef } from './guider-ref';\nimport { ThyGuiderStep } from './guider.class';\nimport { isPositionDataType } from './utils';\n\nconst pointContainerSize = 28;\nexport class ThyGuiderStepRef {\n private renderer: Renderer2;\n\n private lastPointerContainer: any;\n\n private lastTargetElement: Element;\n\n private targetElementObserver: Subscription;\n\n private lastTipContainer: any;\n\n private guiderRef: ThyGuiderRef;\n\n private lastPopoverRef: ThyPopoverRef<any>;\n\n constructor(\n public step: ThyGuiderStep,\n public stepIndex: number,\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private guiderManager: ThyGuiderManager,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n public show(guiderRef: ThyGuiderRef) {\n this.guiderRef = guiderRef;\n this.createPoint(this.step, guiderRef);\n }\n\n public dispose() {\n this.removeLastPointContainer();\n this.removeTip();\n }\n\n private getTargetElement(step: ThyGuiderStep) {\n let targetElement: HTMLElement;\n\n if (step.target && !isPositionDataType(step.target)) {\n const target = [...coerceArray(step.target)];\n\n while (target.length && isUndefinedOrNull(targetElement)) {\n targetElement = this.document.querySelector(target.shift());\n }\n } else {\n targetElement = this.guiderManager.getActiveTarget(step.key);\n }\n return targetElement;\n }\n\n private createPoint(step: ThyGuiderStep, guiderRef: ThyGuiderRef) {\n // target 为空并且 guiderManager 中的 targetMap 也没有此step 的 key,或者 target 直接为 坐标数组\n // 则执行无 target 的显示\n if (!this.isTipHasTarget(step)) {\n this.createTip(this.step);\n return;\n }\n\n const targetElement = this.getTargetElement(step);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && isNull(targetElement)) {\n throw new Error(`there is no target called ${coerceArray(step.target).join(' or ')}`);\n }\n this.targetElementObserver = fromEvent(targetElement, 'click').subscribe(() => {\n guiderRef.targetClicked().next(step);\n });\n const positionValue = targetElement?.style?.position;\n if (!positionValue || positionValue === 'static') {\n this.renderer.setStyle(targetElement, 'position', 'relative');\n }\n this.setStyleForPointContainer(step, targetElement);\n }\n\n private setStyleForPointContainer(step: ThyGuiderStep, targetElement: Element) {\n const pointPosition = this.getPointPosition(step, targetElement);\n const pointContainer = this.setPointPosition(pointPosition);\n\n this.renderPoint(targetElement, pointContainer);\n }\n\n private getPointPosition(step: ThyGuiderStep, targetElement: Element): [number, number] {\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n const pointOffset = step.pointOffset;\n // 只通过 pointOffset 控制 point 的位置,默认在 target 的右下角,\n // offset 的基点也为默认位置\n return [targetElementWidth + pointOffset[0], targetElementHeight + pointOffset[1]];\n }\n\n private setPointPosition(pointPosition: [number, number]) {\n const currentPointContainer = this.renderer.createElement('div');\n\n this.renderer.addClass(currentPointContainer, 'thy-guider-highlight-container');\n if (this.guiderRef.config.pointClass) {\n this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);\n }\n this.renderer.setStyle(currentPointContainer, 'position', 'absolute');\n this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0] + 'px');\n this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1] + 'px');\n this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');\n\n return currentPointContainer;\n }\n private addPointClass(el: any, pointClass: string | string[]) {\n if (isString(pointClass)) {\n this.renderer.addClass(el, pointClass);\n }\n if (isArray(pointClass)) {\n pointClass.forEach(classItem => {\n this.renderer.addClass(el, classItem);\n });\n }\n }\n\n private renderPoint(targetElement: Element, pointContainer: any) {\n this.renderer.appendChild(targetElement, pointContainer);\n this.lastPointerContainer = pointContainer;\n this.lastTargetElement = targetElement;\n this.createTip(this.step);\n }\n\n private removeLastPointContainer() {\n if (this.lastPointerContainer) {\n this.renderer.removeChild(this.document.body, this.lastPointerContainer);\n this.lastPointerContainer = undefined;\n }\n }\n\n private createTip(step: ThyGuiderStep) {\n if (this.isTipHasTarget(step)) {\n this.tipWithTarget(step);\n } else {\n this.tipWithoutTarget(step);\n }\n }\n\n private tipWithoutTarget(step: ThyGuiderStep) {\n const position = this.getTipPosition(step);\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {\n origin: null,\n originPosition: {\n x: position[0],\n y: position[1]\n },\n originActiveClass: '',\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n\n private getTipPosition(step: ThyGuiderStep): [number, number] {\n if (isPositionDataType(step.target)) {\n return step.target;\n }\n return this.guiderRef.config.defaultPosition;\n }\n\n private createTipContainer() {\n const tipContainer = this.renderer.createElement('div');\n this.renderer.addClass(tipContainer, 'thy-guider-content-container');\n this.renderer.setStyle(tipContainer, 'position', 'absolute');\n this.renderer.setStyle(tipContainer, 'top', '0px');\n this.renderer.setStyle(tipContainer, 'right', '0px');\n this.renderer.setStyle(tipContainer, 'bottom', '0px');\n this.renderer.setStyle(tipContainer, 'left', '0px');\n return tipContainer;\n }\n\n private tipWithTarget(step: ThyGuiderStep) {\n const targetElement = this.getTargetElement(step);\n const hintContainer = this.createTipContainer();\n\n this.renderer.appendChild(targetElement, hintContainer);\n this.lastTipContainer = hintContainer;\n\n const popoverConfig = {\n origin: hintContainer,\n placement: step.hintPlacement,\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n } as ThyPopoverConfig<any>;\n\n const pointPosition = this.getPointPosition(step, targetElement);\n const hintOffset = this.getTipOffset(step, pointPosition, targetElement);\n if (hintOffset) {\n popoverConfig.offset = hintOffset;\n }\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, popoverConfig);\n }\n\n private getTipOffset(step: ThyGuiderStep, pointPosition: [number, number], targetElement: Element): number {\n const hintPlacement = step.hintPlacement;\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n let hintOffset: number = step.hintOffset || 0;\n const pointXAxisOffset = pointPosition[0];\n const pointYAxisOffset = pointPosition[1];\n\n if (hintPlacement.startsWith('top')) {\n if (pointYAxisOffset < pointContainerSize) {\n hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('bottom')) {\n if (pointYAxisOffset > targetElementHeight) {\n hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量\n }\n } else if (hintPlacement.startsWith('left')) {\n if (pointXAxisOffset < 0) {\n hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('right')) {\n if (pointXAxisOffset > targetElementWidth) {\n hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量\n }\n }\n return hintOffset;\n }\n\n private removeTip() {\n if (this.lastPopoverRef) {\n this.lastPopoverRef.close();\n this.lastPopoverRef = undefined;\n }\n if (this.lastTipContainer) {\n this.renderer.removeChild(this.document.body, this.lastTipContainer);\n this.lastTipContainer = undefined;\n }\n if (this.lastTargetElement && this.targetElementObserver) {\n this.targetElementObserver.unsubscribe();\n this.lastTargetElement = undefined;\n this.targetElementObserver = undefined;\n }\n }\n\n private isTipHasTarget(step: ThyGuiderStep): boolean {\n if (step.target) {\n return !isPositionDataType(step.target);\n } else {\n return !!this.guiderManager.getActiveTarget(step.key);\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyGuiderStep<TData = any> {\n key: string;\n target?: string | string[] | [number, number];\n data: TData;\n route?: string;\n hintPlacement?: ThyPlacement;\n hintOffset?: number;\n pointOffset?: [number, number];\n // children: StepInfo<T>[]\n}\n\nexport class ThyGuiderConfig {\n /** hint Component,default is ThyGuiderHintComponent */\n hintComponent?: Type<unknown>;\n\n /** steps info */\n steps: ThyGuiderStep[];\n\n /** hint default position when step info not set hintPlacement */\n hintPlacement?: ThyPlacement;\n\n /** useful when without target */\n defaultPosition?: [number, number];\n\n /** setting default point offset */\n pointOffset?: [number, number];\n\n /** like popover offset */\n hintOffset?: number;\n\n /** popover active class */\n hintClass?: string | string[];\n\n /** guider point class */\n pointClass?: string | string[];\n}\n\nexport const defaultGuiderPositionConfig = {\n hintComponent: null as Type<unknown>,\n hintPlacement: 'rightBottom',\n defaultPosition: [0, 0],\n pointOffset: [0, 0],\n hintOffset: 4\n};\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderStepRef } from './guider-step-ref';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { ThyGuiderConfig, ThyGuiderStep } from './guider.class';\nimport { Inject, NgZone, RendererFactory2 } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport class ThyGuiderRef {\n public steps: ThyGuiderStep[];\n\n private stepChange$: ReplaySubject<ThyGuiderStep> = new ReplaySubject<ThyGuiderStep>();\n\n private guiderEnded$ = new Subject();\n\n private closed$ = new Subject<ThyGuiderStep>();\n\n private targetClicked$ = new Subject<ThyGuiderStep>();\n\n private currentStep: ThyGuiderStep;\n\n private currentStepIndex: number;\n\n private stepsRef: ThyGuiderStepRef[];\n\n constructor(\n public config: ThyGuiderConfig,\n private rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {\n this.stepsRef = config.steps.map((step, index) => {\n return new ThyGuiderStepRef(step, index, this.rendererFactory, this.popover, this.guiderManager, this.overlay, this.document);\n });\n this.steps = config.steps;\n }\n\n public stepChange(): Observable<ThyGuiderStep> {\n return this.stepChange$.asObservable();\n }\n\n public ended() {\n return this.guiderEnded$;\n }\n\n public closed() {\n return this.closed$;\n }\n\n public targetClicked() {\n return this.targetClicked$;\n }\n\n public start(startWith?: number) {\n this.to(startWith);\n\n return this.stepChange();\n }\n\n public next() {\n if (this.currentStepIndex + 1 > this.steps.length) {\n return;\n }\n this.to(this.currentStepIndex + 1);\n }\n\n public previous() {\n if (this.currentStepIndex - 1 < 0) {\n return;\n }\n\n this.to(this.currentStepIndex - 1);\n }\n\n public active(indexOrKey: number | string): void {\n if (helpers.isNumber(indexOrKey)) {\n this.to(indexOrKey as number);\n return;\n }\n if (helpers.isString(indexOrKey)) {\n const index = this.steps.findIndex(step => step.key === (indexOrKey as string));\n this.to(index);\n return;\n }\n }\n\n private to(index: number): void {\n this.removeExistedStep();\n\n if (!helpers.isNumber(index) || index >= this.steps.length || index < 0 || Number.isNaN(index)) {\n index = 0;\n }\n this.currentStep = this.steps[index];\n this.currentStepIndex = index;\n\n // update guiderManager\n this.guiderManager.updateActive(this.currentStep.key, this);\n if (this.currentStep.route && this.currentStep.route !== this.router.url) {\n this.ngZone.run(() => {\n this.router.navigateByUrl(this.currentStep.route);\n });\n return;\n }\n setTimeout(() => {\n this.drawStep();\n this.notifyStepClicked();\n }, 0);\n }\n\n public close() {\n this.removeManagerActiveKey();\n this.stepsRef[this.currentStepIndex]?.dispose();\n this.closed$.next(this.currentStep);\n }\n\n public end() {\n this.close();\n this.guiderEnded$.next(this.currentStep);\n this.notifyGuiderIsFinished();\n }\n\n private removeManagerActiveKey() {\n const activeKey = this.guiderManager.getActive().key;\n if (activeKey && this.steps.some(step => step.key === activeKey)) {\n this.guiderManager.updateActive('', undefined);\n }\n }\n\n private notifyStepClicked() {\n this.stepChange$.next(this.currentStep);\n }\n\n private drawStep() {\n this.removeExistedStep();\n this.stepsRef[this.currentStepIndex].show(this);\n }\n\n private notifyGuiderIsFinished() {\n this.stepChange$.complete();\n // this.targetClicked().unsubscribe();\n this.currentStepIndex = 0;\n }\n\n private removeExistedStep() {\n this.stepsRef[this.currentStepIndex]?.dispose();\n }\n}\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyGuiderRef } from './guider-ref';\nimport { Inject, NgZone } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { Injectable, RendererFactory2 } from '@angular/core';\nimport { ThyGuiderStep, ThyGuiderConfig, defaultGuiderPositionConfig } from './guider.class';\nimport { Overlay } from '@angular/cdk/overlay';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuider {\n private guiderRef: ThyGuiderRef;\n\n private guiderRefs: ThyGuiderRef[] = [];\n\n constructor(\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n public create(config: ThyGuiderConfig): ThyGuiderRef {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!config || !config?.steps || !helpers.isArray(config?.steps)) {\n throw new Error(`'config.steps' must be an array of length greater than 0`);\n }\n }\n const normalizeConfig = this.normalizeConfig(config);\n this.guiderRef = new ThyGuiderRef(\n normalizeConfig,\n this.rendererFactory,\n this.popover,\n this.router,\n this.guiderManager,\n this.ngZone,\n this.overlay,\n this.document\n );\n this.guiderRef.closed().subscribe(() => {\n const index = this.guiderRefs.findIndex(guiderRef => guiderRef === this.guiderRef);\n this.guiderRefs.splice(index, 1);\n });\n this.guiderRefs.push(this.guiderRef);\n return this.guiderRef;\n }\n\n private normalizeConfig(config: ThyGuiderConfig): ThyGuiderConfig {\n const normalizeConfig = Object.assign({}, defaultGuiderPositionConfig, config);\n normalizeConfig.steps = normalizeConfig.steps.map(step => {\n return this.normalizeStep(step, normalizeConfig);\n });\n return normalizeConfig;\n }\n\n private normalizeStep(step: ThyGuiderStep, config: ThyGuiderConfig): ThyGuiderStep {\n const tempStep = Object.assign(\n {\n hintPlacement: config.hintPlacement,\n hintOffset: config.hintOffset,\n pointOffset: config.pointOffset\n },\n step\n );\n\n return tempStep;\n }\n\n close() {\n if (this.guiderRefs.length > 0) {\n const lasGuiderRef = this.guiderRefs[this.guiderRefs.length - 1];\n if (lasGuiderRef) {\n lasGuiderRef.close();\n this.guiderRefs.pop();\n }\n }\n }\n}\n","import { ThyGuiderManager } from './guider-manager';\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\n@Directive({ selector: '[thyGuiderTarget]', exportAs: 'thyGuiderTarget' })\nexport class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewInit {\n @Input('thyGuiderTarget')\n target: string;\n\n constructor(private guiderManager: ThyGuiderManager, private el: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.guiderManager.addStepTarget(this.target, this.el.nativeElement);\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const { key, guiderRef } = this.guiderManager.getActive();\n if (key === this.target) {\n const index = guiderRef.steps.findIndex(step => step.key === this.target);\n this.ngZone.run(() => {\n guiderRef.active(index);\n });\n }\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnDestroy() {\n const { guiderRef } = this.guiderManager.getActive();\n if (guiderRef) {\n guiderRef.close();\n }\n this.guiderManager.removeStepTarget(this.target);\n }\n}\n","import { HostBinding, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ThyGuiderRef } from '../guider-ref';\nimport { helpers } from 'ngx-tethys/util';\nimport { defaultGuiderPositionConfig, ThyGuiderStep } from '../guider.class';\nimport { ThyGuiderStepRef } from '../guider-step-ref';\n\n@Component({\n selector: 'thy-guider-hint',\n templateUrl: 'guider-hint.component.html'\n})\nexport class ThyGuiderHintComponent implements OnInit {\n @HostBinding('class.thy-guider-tip-container') guiderHint = true;\n\n public guiderRef: ThyGuiderRef;\n\n public stepRef: ThyGuiderStepRef;\n\n public descriptionString: string;\n\n public descriptionTemplateRef: TemplateRef<any>;\n\n public currentStepIndex: number;\n\n constructor() {}\n\n ngOnInit() {\n this.setDescription(this.stepRef.step.data.description);\n }\n\n private setDescription(value: string | TemplateRef<any>) {\n if (helpers.isString(value)) {\n this.descriptionString = value as string;\n } else {\n this.descriptionTemplateRef = value as TemplateRef<any>;\n }\n }\n\n public jump() {\n this.guiderRef.end();\n }\n\n public prev() {\n this.guiderRef.previous();\n }\n\n public next() {\n this.guiderRef.next();\n }\n\n public end() {\n this.guiderRef.end();\n }\n\n public trackByFn(index: number, step: ThyGuiderStep) {\n return step.key || index;\n }\n}\n\ndefaultGuiderPositionConfig.hintComponent = ThyGuiderHintComponent;\n","<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">跳过</a>\n</div>\n<div class=\"thy-guider-tip-content bg-white\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n <ng-container *ngIf=\"descriptionTemplateRef; else stringTemplateRef\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #stringTemplateRef>{{ descriptionString }}</ng-template>\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n <span\n class=\"pagination-item\"\n *ngFor=\"let step of guiderRef.steps; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{ active: i === stepRef.stepIndex }\"\n ></span>\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n <ng-container *ngIf=\"stepRef.stepIndex !== 0\">\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">上一步</a>\n </ng-container>\n <ng-container *ngIf=\"stepRef.stepIndex !== guiderRef.steps.length - 1; else finish\">\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">下一步</a>\n </ng-container>\n <ng-template #finish>\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">完成</a>\n </ng-template>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ThyGuider } from './guider.service';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyGuiderTargetDirective } from './guider.directive';\nimport { ThyGuiderHintComponent } from './guider-hint/guider-hint.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule],\n declarations: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n exports: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n providers: [ThyGuider]\n})\nexport class ThyGuiderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyGuiderManager","i1"],"mappings":";;;;;;;;;;;;;;;;;;MAMa,gBAAgB,CAAA;AAOzB,IAAA,WAAA,GAAA;AANQ,QAAA,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;KAMX;IAET,YAAY,CAAC,GAAW,EAAE,SAAuB,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;KACjC;IAEM,aAAa,CAAC,GAAW,EAAE,EAAe,EAAA;AAC7C,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;KAChC;AAEM,IAAA,gBAAgB,CAAC,GAAW,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAClC;AAEM,IAAA,eAAe,CAAC,GAAW,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAClC;IAEM,SAAS,GAAA;QACZ,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,aAAa;YACvB,SAAS,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;KACL;;6GA/BQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;ACHK,SAAU,kBAAkB,CAAC,MAAW,EAAA;AAC1C,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACjB,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB;;ACFA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACjB,IAAA,gBAAgB,GAA7B,MAAa,gBAAgB,CAAA;AAezB,IAAA,WAAA,CACW,IAAmB,EACnB,SAAiB,EACP,eAAiC,EAC1C,OAAmB,EACnB,aAA+B,EAC/B,OAAgB,EACE,QAAkB,EAAA;AANrC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;AACnB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;AACP,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAC1C,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AACnB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAC/B,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AACE,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAE5C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACnE;AAEM,IAAA,IAAI,CAAC,SAAuB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC1C;IAEM,OAAO,GAAA;QACV,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;AAEO,IAAA,gBAAgB,CAAC,IAAmB,EAAA;AACxC,QAAA,IAAI,aAA0B,CAAC;QAE/B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACjD,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAE7C,OAAO,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE;AACtD,gBAAA,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/D,aAAA;AACJ,SAAA;AAAM,aAAA;YACH,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACxB;IAEO,WAAW,CAAC,IAAmB,EAAE,SAAuB,EAAA;;;;AAG5D,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;AACV,SAAA;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAElD,QAAA,IAAI,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,MAAM,CAAC,aAAa,CAAC,EAAE;AAC1E,YAAA,MAAM,IAAI,KAAK,CAAC,CAA6B,0BAAA,EAAA,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;AACzF,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;YAC1E,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAE,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;AACrD,QAAA,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,QAAQ,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,SAAA;AACD,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACvD;IAEO,yBAAyB,CAAC,IAAmB,EAAE,aAAsB,EAAA;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;KACnD;IAEO,gBAAgB,CAAC,IAAmB,EAAE,aAAsB,EAAA;AAChE,QAAA,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACtE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,uBAAuB,CAAC;AAC3F,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;;;AAGrC,QAAA,OAAO,CAAC,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KACtF;AAEO,IAAA,gBAAgB,CAAC,aAA+B,EAAA;QACpD,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,CAAC,CAAC;AAChF,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/E,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;AAErF,QAAA,OAAO,qBAAqB,CAAC;KAChC;IACO,aAAa,CAAC,EAAO,EAAE,UAA6B,EAAA;AACxD,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACrB,YAAA,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;gBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC1C,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IAEO,WAAW,CAAC,aAAsB,EAAE,cAAmB,EAAA;QAC3D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAEO,wBAAwB,GAAA;QAC5B,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;AACzC,SAAA;KACJ;AAEO,IAAA,SAAS,CAAC,IAAmB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;KACJ;AAEO,IAAA,gBAAgB,CAAC,IAAmB,EAAA;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE;AACzE,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,cAAc,EAAE;AACZ,gBAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,gBAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjB,aAAA;AACD,YAAA,iBAAiB,EAAE,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;AACjD,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,YAAY,EAAE;gBACV,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA;YACD,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACxD,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,cAAc,CAAC,IAAmB,EAAA;AACtC,QAAA,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;KAChD;IAEO,kBAAkB,GAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,QAAA,OAAO,YAAY,CAAC;KACvB;AAEO,IAAA,aAAa,CAAC,IAAmB,EAAA;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAClD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;AAEtC,QAAA,MAAM,aAAa,GAAG;AAClB,YAAA,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,IAAI,CAAC,aAAa;YAC7B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;AACjD,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,YAAY,EAAE;gBACV,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA;YACD,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;SAC/B,CAAC;QAE3B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACjE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACzE,QAAA,IAAI,UAAU,EAAE;AACZ,YAAA,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAC/F;AAEO,IAAA,YAAY,CAAC,IAAmB,EAAE,aAA+B,EAAE,aAAsB,EAAA;AAC7F,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AACzC,QAAA,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACtE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,uBAAuB,CAAC;AAC3F,QAAA,IAAI,UAAU,GAAW,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;AAC9C,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAE1C,QAAA,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACjC,IAAI,gBAAgB,GAAG,kBAAkB,EAAE;gBACvC,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;AAC7E,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC3C,IAAI,gBAAgB,GAAG,mBAAmB,EAAE;AACxC,gBAAA,UAAU,GAAG,UAAU,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC3E,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,gBAAgB,GAAG,CAAC,EAAE;gBACtB,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;AAC7E,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC1C,IAAI,gBAAgB,GAAG,kBAAkB,EAAE;AACvC,gBAAA,UAAU,GAAG,UAAU,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAC1E,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACrB;IAEO,SAAS,GAAA;QACb,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AACnC,SAAA;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACtD,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACnC,YAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;AAC1C,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,IAAmB,EAAA;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,SAAA;KACJ;EACJ;AAjQY,gBAAgB,GAAA,UAAA,CAAA;AAsBpB,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qDAJiB,gBAAgB;QACjC,UAAU;QACJ,gBAAgB;QACtB,OAAO;AACY,QAAA,QAAQ,CAAA,CAAA;CAtBvC,EAAA,gBAAgB,CAiQ5B;;MC/PY,eAAe,CAAA;AAwB3B,CAAA;AAEY,MAAA,2BAA2B,GAAG;AACvC,IAAA,aAAa,EAAE,IAAqB;AACpC,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,IAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACnB,IAAA,UAAU,EAAE,CAAC;;;AClCJ,IAAA,YAAY,GAAzB,MAAa,YAAY,CAAA;AAiBrB,IAAA,WAAA,CACW,MAAuB,EACtB,eAAiC,EACjC,OAAmB,EACnB,MAAc,EACd,aAA+B,EAC/B,MAAc,EACd,OAAgB,EACE,QAAa,EAAA;AAPhC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AACtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AACjC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AACnB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAC/B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AACE,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;AAtBnC,QAAA,IAAA,CAAA,WAAW,GAAiC,IAAI,aAAa,EAAiB,CAAC;AAE/E,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAiB,CAAC;AAEvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAiB,CAAC;AAkBlD,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YAC7C,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClI,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;IAEM,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KAC1C;IAEM,KAAK,GAAA;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IAEM,MAAM,GAAA;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAEM,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;AAEM,IAAA,KAAK,CAAC,SAAkB,EAAA;AAC3B,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEnB,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;KAC5B;IAEM,IAAI,GAAA;QACP,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC/C,OAAO;AACV,SAAA;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;KACtC;IAEM,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,OAAO;AACV,SAAA;QAED,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;KACtC;AAEM,IAAA,MAAM,CAAC,UAA2B,EAAA;AACrC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,EAAE,CAAC,UAAoB,CAAC,CAAC;YAC9B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC9B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAM,UAAqB,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACf,OAAO;AACV,SAAA;KACJ;AAEO,IAAA,EAAE,CAAC,KAAa,EAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC5F,KAAK,GAAG,CAAC,CAAC;AACb,SAAA;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;;AAG9B,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AACtE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;gBACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACtD,aAAC,CAAC,CAAC;YACH,OAAO;AACV,SAAA;QACD,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC;KACT;IAEM,KAAK,GAAA;;QACR,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACvC;IAEM,GAAG,GAAA;QACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAEO,sBAAsB,GAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC;AACrD,QAAA,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE;YAC9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAClD,SAAA;KACJ;IAEO,iBAAiB,GAAA;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3C;IAEO,QAAQ,GAAA;QACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnD;IAEO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;;AAE5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;KAC7B;IAEO,iBAAiB,GAAA;;QACrB,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE,CAAC;KACnD;EACJ;AA9IY,YAAY,GAAA,UAAA,CAAA;AAyBhB,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qCAPF,eAAe;QACL,gBAAgB;QACxB,UAAU;QACX,MAAM;QACC,gBAAgB;QACvB,MAAM;QACL,OAAO,EAAA,MAAA,CAAA,CAAA;CAxBnB,EAAA,YAAY,CA8IxB;;MC3IY,SAAS,CAAA;AAKlB,IAAA,WAAA,CACqB,eAAiC,EAC1C,OAAmB,EACnB,MAAc,EACd,aAA+B,EAC/B,MAAc,EACd,OAAgB,EACE,QAAa,EAAA;AANtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAC1C,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AACnB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAC/B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AACE,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;AATnC,QAAA,IAAU,CAAA,UAAA,GAAmB,EAAE,CAAC;KAUpC;AAEG,IAAA,MAAM,CAAC,MAAuB,EAAA;AACjC,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YAC/C,IAAI,CAAC,MAAM,IAAI,EAAC,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,KAAK,CAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,KAAK,CAAC,EAAE;AAC9D,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,wDAAA,CAA0D,CAAC,CAAC;AAC/E,aAAA;AACJ,SAAA;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAC7B,eAAe,EACf,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAChB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,MAAK;AACnC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAEO,IAAA,eAAe,CAAC,MAAuB,EAAA;AAC3C,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAC/E,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;YACrD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACrD,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,eAAe,CAAC;KAC1B;IAEO,aAAa,CAAC,IAAmB,EAAE,MAAuB,EAAA;AAC9D,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC1B;YACI,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,EACD,IAAI,CACP,CAAC;AAEF,QAAA,OAAO,QAAQ,CAAC;KACnB;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,KAAK,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,aAAA;AACJ,SAAA;KACJ;;AArEQ,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,4KAYN,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAZX,SAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFN,MAAM,EAAA,CAAA,CAAA;2FAET,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;8BAaQ,MAAM;+BAAC,QAAQ,CAAA;;;;MCrBX,wBAAwB,CAAA;AAIjC,IAAA,WAAA,CAAoB,aAA+B,EAAU,EAAc,EAAU,MAAc,EAAA;AAA/E,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAU,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAI;IAEvG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9C,YAAA,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;AAC1D,YAAA,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE;gBACrB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1E,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,oBAAA,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,iBAAC,CAAC,CAAC;AACN,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,eAAe,MAAK;IAEpB,WAAW,GAAA;QACP,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;AACrD,QAAA,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,KAAK,EAAE,CAAC;AACrB,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpD;;qHA3BQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;YAAC,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;kJAGrE,MAAM,EAAA,CAAA;sBADL,KAAK;uBAAC,iBAAiB,CAAA;;;MCIf,sBAAsB,CAAA;AAa/B,IAAA,WAAA,GAAA;AAZ+C,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;KAYjD;IAEhB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3D;AAEO,IAAA,cAAc,CAAC,KAAgC,EAAA;AACnD,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAe,CAAC;AAC5C,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAyB,CAAC;AAC3D,SAAA;KACJ;IAEM,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;KACxB;IAEM,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;IAEM,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;IAEM,GAAG,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;KACxB;IAEM,SAAS,CAAC,KAAa,EAAE,IAAmB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;KAC5B;;mHA7CQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,sICVnC,4lDAiCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDvBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;+BACI,iBAAiB,EAAA,QAAA,EAAA,4lDAAA,EAAA,CAAA;0EAIoB,UAAU,EAAA,CAAA;sBAAxD,WAAW;uBAAC,gCAAgC,CAAA;;AA+CjD,2BAA2B,CAAC,aAAa,GAAG,sBAAsB;;ME1CrD,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAJT,sBAAsB,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CADrD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAE/E,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGjD,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAFb,SAAA,EAAA,CAAC,SAAS,CAAC,EAHZ,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAKhF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAC;AAC1F,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;AAChE,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;oBAC3D,SAAS,EAAE,CAAC,SAAS,CAAC;iBACzB,CAAA;;;ACfD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-guider.mjs","sources":["../../../src/guider/guider-manager.ts","../../../src/guider/utils.ts","../../../src/guider/guider-step-ref.ts","../../../src/guider/guider.class.ts","../../../src/guider/guider-ref.ts","../../../src/guider/guider.service.ts","../../../src/guider/guider.directive.ts","../../../src/guider/guider-hint/guider-hint.component.ts","../../../src/guider/guider-hint/guider-hint.component.html","../../../src/guider/guider.module.ts","../../../src/guider/ngx-tethys-guider.ts"],"sourcesContent":["import { ThyGuiderRef } from './guider-ref';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuiderManager {\n private targetListMap = {};\n\n private thyGuiderRef: ThyGuiderRef;\n\n private activeStepKey: string;\n\n constructor() {}\n\n public updateActive(key: string, guiderRef: ThyGuiderRef) {\n this.activeStepKey = key;\n this.thyGuiderRef = guiderRef;\n }\n\n public addStepTarget(key: string, el: HTMLElement) {\n this.targetListMap[key] = el;\n }\n\n public removeStepTarget(key: string) {\n delete this.targetListMap[key];\n }\n\n public getActiveTarget(key: string): HTMLElement {\n return this.targetListMap[key];\n }\n\n public getActive(): { key: string; guiderRef: ThyGuiderRef } {\n return {\n key: this.activeStepKey,\n guiderRef: this.thyGuiderRef\n };\n }\n}\n","import { SafeAny } from 'ngx-tethys/types';\nimport { isArray, isNumber, isObject } from 'ngx-tethys/util';\n\nexport function isPositionDataType(target: any): target is { x: number; y: number } {\n if (isObject(target) && !isArray(target)) {\n if (isNumber((target as SafeAny).x) && isNumber((target as SafeAny).y)) {\n return true;\n }\n }\n return false;\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceArray, isArray, isNull, isString, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderRef } from './guider-ref';\nimport { ThyGuiderStep } from './guider.class';\nimport { isPositionDataType } from './utils';\n\nconst pointContainerSize = 28;\nexport class ThyGuiderStepRef {\n private renderer: Renderer2;\n\n private lastPointerContainer: any;\n\n private lastTargetElement: Element;\n\n private targetElementObserver: Subscription;\n\n private lastTipContainer: any;\n\n private guiderRef: ThyGuiderRef;\n\n private lastPopoverRef: ThyPopoverRef<any>;\n\n constructor(\n public step: ThyGuiderStep,\n public stepIndex: number,\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private guiderManager: ThyGuiderManager,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n public show(guiderRef: ThyGuiderRef) {\n this.guiderRef = guiderRef;\n this.createPoint(this.step, guiderRef);\n }\n\n public dispose() {\n this.removeLastPointContainer();\n this.removeTip();\n }\n\n private getTargetElement(step: ThyGuiderStep) {\n let targetElement: HTMLElement;\n\n if (step.target && !isPositionDataType(step.target)) {\n const target = [...coerceArray(step.target)];\n\n while (target.length && isUndefinedOrNull(targetElement)) {\n targetElement = this.document.querySelector(target.shift());\n }\n } else {\n targetElement = this.guiderManager.getActiveTarget(step.key);\n }\n return targetElement;\n }\n\n private createPoint(step: ThyGuiderStep, guiderRef: ThyGuiderRef) {\n // target 为空并且 guiderManager 中的 targetMap 也没有此step 的 key,或者 target 直接为 坐标数组\n // 则执行无 target 的显示\n if (!this.isTipHasTarget(step)) {\n this.createTip(this.step);\n return;\n }\n\n const targetElement = this.getTargetElement(step);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && isNull(targetElement)) {\n throw new Error(`there is no target called ${coerceArray(step.target).join(' or ')}`);\n }\n this.targetElementObserver = fromEvent(targetElement, 'click').subscribe(() => {\n guiderRef.targetClicked().next(step);\n });\n const positionValue = targetElement?.style?.position;\n if (!positionValue || positionValue === 'static') {\n this.renderer.setStyle(targetElement, 'position', 'relative');\n }\n this.setStyleForPointContainer(step, targetElement);\n }\n\n private setStyleForPointContainer(step: ThyGuiderStep, targetElement: Element) {\n const pointPosition = this.getPointPosition(step, targetElement);\n const pointContainer = this.setPointPosition(pointPosition);\n\n this.renderPoint(targetElement, pointContainer);\n }\n\n private getPointPosition(step: ThyGuiderStep, targetElement: Element): [number, number] {\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n const pointOffset = step.pointOffset;\n // 只通过 pointOffset 控制 point 的位置,默认在 target 的右下角,\n // offset 的基点也为默认位置\n return [targetElementWidth + pointOffset[0], targetElementHeight + pointOffset[1]];\n }\n\n private setPointPosition(pointPosition: [number, number]) {\n const currentPointContainer = this.renderer.createElement('div');\n\n this.renderer.addClass(currentPointContainer, 'thy-guider-highlight-container');\n if (this.guiderRef.config.pointClass) {\n this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);\n }\n this.renderer.setStyle(currentPointContainer, 'position', 'absolute');\n this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0] + 'px');\n this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1] + 'px');\n this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');\n\n return currentPointContainer;\n }\n private addPointClass(el: any, pointClass: string | string[]) {\n if (isString(pointClass)) {\n this.renderer.addClass(el, pointClass);\n }\n if (isArray(pointClass)) {\n pointClass.forEach(classItem => {\n this.renderer.addClass(el, classItem);\n });\n }\n }\n\n private renderPoint(targetElement: Element, pointContainer: any) {\n this.renderer.appendChild(targetElement, pointContainer);\n this.lastPointerContainer = pointContainer;\n this.lastTargetElement = targetElement;\n this.createTip(this.step);\n }\n\n private removeLastPointContainer() {\n if (this.lastPointerContainer) {\n this.renderer.removeChild(this.document.body, this.lastPointerContainer);\n this.lastPointerContainer = undefined;\n }\n }\n\n private createTip(step: ThyGuiderStep) {\n if (this.isTipHasTarget(step)) {\n this.tipWithTarget(step);\n } else {\n this.tipWithoutTarget(step);\n }\n }\n\n private tipWithoutTarget(step: ThyGuiderStep) {\n const position = this.getTipPosition(step);\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {\n origin: null,\n originPosition: position,\n originActiveClass: '',\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n\n private getTipPosition(step: ThyGuiderStep): { x: number; y: number } {\n if (isPositionDataType(step.target)) {\n return step.target;\n }\n return this.guiderRef.config.defaultPosition;\n }\n\n private createTipContainer() {\n const tipContainer = this.renderer.createElement('div');\n this.renderer.addClass(tipContainer, 'thy-guider-content-container');\n this.renderer.setStyle(tipContainer, 'position', 'absolute');\n this.renderer.setStyle(tipContainer, 'top', '0px');\n this.renderer.setStyle(tipContainer, 'right', '0px');\n this.renderer.setStyle(tipContainer, 'bottom', '0px');\n this.renderer.setStyle(tipContainer, 'left', '0px');\n return tipContainer;\n }\n\n private tipWithTarget(step: ThyGuiderStep) {\n const targetElement = this.getTargetElement(step);\n const hintContainer = this.createTipContainer();\n\n this.renderer.appendChild(targetElement, hintContainer);\n this.lastTipContainer = hintContainer;\n\n const popoverConfig = {\n origin: hintContainer,\n placement: step.hintPlacement,\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n } as ThyPopoverConfig<any>;\n\n const pointPosition = this.getPointPosition(step, targetElement);\n const hintOffset = this.getTipOffset(step, pointPosition, targetElement);\n if (hintOffset) {\n popoverConfig.offset = hintOffset;\n }\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, popoverConfig);\n }\n\n private getTipOffset(step: ThyGuiderStep, pointPosition: [number, number], targetElement: Element): number {\n const hintPlacement = step.hintPlacement;\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n let hintOffset: number = step.hintOffset || 0;\n const pointXAxisOffset = pointPosition[0];\n const pointYAxisOffset = pointPosition[1];\n\n if (hintPlacement.startsWith('top')) {\n if (pointYAxisOffset < pointContainerSize) {\n hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('bottom')) {\n if (pointYAxisOffset > targetElementHeight) {\n hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量\n }\n } else if (hintPlacement.startsWith('left')) {\n if (pointXAxisOffset < 0) {\n hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('right')) {\n if (pointXAxisOffset > targetElementWidth) {\n hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量\n }\n }\n return hintOffset;\n }\n\n private removeTip() {\n if (this.lastPopoverRef) {\n this.lastPopoverRef.close();\n this.lastPopoverRef = undefined;\n }\n if (this.lastTipContainer) {\n this.renderer.removeChild(this.document.body, this.lastTipContainer);\n this.lastTipContainer = undefined;\n }\n if (this.lastTargetElement && this.targetElementObserver) {\n this.targetElementObserver.unsubscribe();\n this.lastTargetElement = undefined;\n this.targetElementObserver = undefined;\n }\n }\n\n private isTipHasTarget(step: ThyGuiderStep): boolean {\n if (step.target) {\n return !isPositionDataType(step.target);\n } else {\n return !!this.guiderManager.getActiveTarget(step.key);\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyGuiderStep<TData = any> {\n key: string;\n target?: string | string[] | { x: number; y: number };\n data: TData;\n route?: string;\n hintPlacement?: ThyPlacement;\n hintOffset?: number;\n pointOffset?: [number, number];\n // children: StepInfo<T>[]\n}\n\nexport class ThyGuiderConfig {\n /** hint Component,default is ThyGuiderHintComponent */\n hintComponent?: Type<unknown>;\n\n /** steps info */\n steps: ThyGuiderStep[];\n\n /** hint default position when step info not set hintPlacement */\n hintPlacement?: ThyPlacement;\n\n /** useful when without target */\n defaultPosition?: { x: number; y: number };\n\n /** setting default point offset */\n pointOffset?: [number, number];\n\n /** like popover offset */\n hintOffset?: number;\n\n /** popover active class */\n hintClass?: string | string[];\n\n /** guider point class */\n pointClass?: string | string[];\n}\n\nexport const defaultGuiderPositionConfig = {\n hintComponent: null as Type<unknown>,\n hintPlacement: 'rightBottom',\n defaultPosition: { x: 0, y: 0 },\n pointOffset: [0, 0],\n hintOffset: 4\n};\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderStepRef } from './guider-step-ref';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { ThyGuiderConfig, ThyGuiderStep } from './guider.class';\nimport { Inject, NgZone, RendererFactory2 } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport class ThyGuiderRef {\n public steps: ThyGuiderStep[];\n\n private stepChange$: ReplaySubject<ThyGuiderStep> = new ReplaySubject<ThyGuiderStep>();\n\n private guiderEnded$ = new Subject();\n\n private closed$ = new Subject<ThyGuiderStep>();\n\n private targetClicked$ = new Subject<ThyGuiderStep>();\n\n private currentStep: ThyGuiderStep;\n\n private currentStepIndex: number;\n\n private stepsRef: ThyGuiderStepRef[];\n\n constructor(\n public config: ThyGuiderConfig,\n private rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {\n this.stepsRef = config.steps.map((step, index) => {\n return new ThyGuiderStepRef(step, index, this.rendererFactory, this.popover, this.guiderManager, this.overlay, this.document);\n });\n this.steps = config.steps;\n }\n\n public stepChange(): Observable<ThyGuiderStep> {\n return this.stepChange$.asObservable();\n }\n\n public ended() {\n return this.guiderEnded$;\n }\n\n public closed() {\n return this.closed$;\n }\n\n public targetClicked() {\n return this.targetClicked$;\n }\n\n public start(startWith?: number) {\n this.to(startWith);\n\n return this.stepChange();\n }\n\n public next() {\n if (this.currentStepIndex + 1 > this.steps.length) {\n return;\n }\n this.to(this.currentStepIndex + 1);\n }\n\n public previous() {\n if (this.currentStepIndex - 1 < 0) {\n return;\n }\n\n this.to(this.currentStepIndex - 1);\n }\n\n public active(indexOrKey: number | string): void {\n if (helpers.isNumber(indexOrKey)) {\n this.to(indexOrKey as number);\n return;\n }\n if (helpers.isString(indexOrKey)) {\n const index = this.steps.findIndex(step => step.key === (indexOrKey as string));\n this.to(index);\n return;\n }\n }\n\n private to(index: number): void {\n this.removeExistedStep();\n\n if (!helpers.isNumber(index) || index >= this.steps.length || index < 0 || Number.isNaN(index)) {\n index = 0;\n }\n this.currentStep = this.steps[index];\n this.currentStepIndex = index;\n\n // update guiderManager\n this.guiderManager.updateActive(this.currentStep.key, this);\n if (this.currentStep.route && this.currentStep.route !== this.router.url) {\n this.ngZone.run(() => {\n this.router.navigateByUrl(this.currentStep.route);\n });\n return;\n }\n setTimeout(() => {\n this.drawStep();\n this.notifyStepClicked();\n }, 0);\n }\n\n public close() {\n this.removeManagerActiveKey();\n this.stepsRef[this.currentStepIndex]?.dispose();\n this.closed$.next(this.currentStep);\n }\n\n public end() {\n this.close();\n this.guiderEnded$.next(this.currentStep);\n this.notifyGuiderIsFinished();\n }\n\n private removeManagerActiveKey() {\n const activeKey = this.guiderManager.getActive().key;\n if (activeKey && this.steps.some(step => step.key === activeKey)) {\n this.guiderManager.updateActive('', undefined);\n }\n }\n\n private notifyStepClicked() {\n this.stepChange$.next(this.currentStep);\n }\n\n private drawStep() {\n this.removeExistedStep();\n this.stepsRef[this.currentStepIndex].show(this);\n }\n\n private notifyGuiderIsFinished() {\n this.stepChange$.complete();\n // this.targetClicked().unsubscribe();\n this.currentStepIndex = 0;\n }\n\n private removeExistedStep() {\n this.stepsRef[this.currentStepIndex]?.dispose();\n }\n}\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyGuiderRef } from './guider-ref';\nimport { Inject, NgZone } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { Injectable, RendererFactory2 } from '@angular/core';\nimport { ThyGuiderStep, ThyGuiderConfig, defaultGuiderPositionConfig } from './guider.class';\nimport { Overlay } from '@angular/cdk/overlay';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuider {\n private guiderRef: ThyGuiderRef;\n\n private guiderRefs: ThyGuiderRef[] = [];\n\n constructor(\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n public create(config: ThyGuiderConfig): ThyGuiderRef {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!config || !config?.steps || !helpers.isArray(config?.steps)) {\n throw new Error(`'config.steps' must be an array of length greater than 0`);\n }\n }\n const normalizeConfig = this.normalizeConfig(config);\n this.guiderRef = new ThyGuiderRef(\n normalizeConfig,\n this.rendererFactory,\n this.popover,\n this.router,\n this.guiderManager,\n this.ngZone,\n this.overlay,\n this.document\n );\n this.guiderRef.closed().subscribe(() => {\n const index = this.guiderRefs.findIndex(guiderRef => guiderRef === this.guiderRef);\n this.guiderRefs.splice(index, 1);\n });\n this.guiderRefs.push(this.guiderRef);\n return this.guiderRef;\n }\n\n private normalizeConfig(config: ThyGuiderConfig): ThyGuiderConfig {\n const normalizeConfig = Object.assign({}, defaultGuiderPositionConfig, config);\n normalizeConfig.steps = normalizeConfig.steps.map(step => {\n return this.normalizeStep(step, normalizeConfig);\n });\n return normalizeConfig;\n }\n\n private normalizeStep(step: ThyGuiderStep, config: ThyGuiderConfig): ThyGuiderStep {\n const tempStep = Object.assign(\n {\n hintPlacement: config.hintPlacement,\n hintOffset: config.hintOffset,\n pointOffset: config.pointOffset\n },\n step\n );\n\n return tempStep;\n }\n\n close() {\n if (this.guiderRefs.length > 0) {\n const lasGuiderRef = this.guiderRefs[this.guiderRefs.length - 1];\n if (lasGuiderRef) {\n lasGuiderRef.close();\n this.guiderRefs.pop();\n }\n }\n }\n}\n","import { ThyGuiderManager } from './guider-manager';\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\n@Directive({ selector: '[thyGuiderTarget]', exportAs: 'thyGuiderTarget' })\nexport class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewInit {\n @Input('thyGuiderTarget')\n target: string;\n\n constructor(private guiderManager: ThyGuiderManager, private el: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.guiderManager.addStepTarget(this.target, this.el.nativeElement);\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const { key, guiderRef } = this.guiderManager.getActive();\n if (key === this.target) {\n const index = guiderRef.steps.findIndex(step => step.key === this.target);\n this.ngZone.run(() => {\n guiderRef.active(index);\n });\n }\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnDestroy() {\n const { guiderRef } = this.guiderManager.getActive();\n if (guiderRef) {\n guiderRef.close();\n }\n this.guiderManager.removeStepTarget(this.target);\n }\n}\n","import { HostBinding, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ThyGuiderRef } from '../guider-ref';\nimport { helpers } from 'ngx-tethys/util';\nimport { defaultGuiderPositionConfig, ThyGuiderStep } from '../guider.class';\nimport { ThyGuiderStepRef } from '../guider-step-ref';\n\n@Component({\n selector: 'thy-guider-hint',\n templateUrl: 'guider-hint.component.html'\n})\nexport class ThyGuiderHintComponent implements OnInit {\n @HostBinding('class.thy-guider-tip-container') guiderHint = true;\n\n public guiderRef: ThyGuiderRef;\n\n public stepRef: ThyGuiderStepRef;\n\n public descriptionString: string;\n\n public descriptionTemplateRef: TemplateRef<any>;\n\n public currentStepIndex: number;\n\n constructor() {}\n\n ngOnInit() {\n this.setDescription(this.stepRef.step.data.description);\n }\n\n private setDescription(value: string | TemplateRef<any>) {\n if (helpers.isString(value)) {\n this.descriptionString = value as string;\n } else {\n this.descriptionTemplateRef = value as TemplateRef<any>;\n }\n }\n\n public jump() {\n this.guiderRef.end();\n }\n\n public prev() {\n this.guiderRef.previous();\n }\n\n public next() {\n this.guiderRef.next();\n }\n\n public end() {\n this.guiderRef.end();\n }\n\n public trackByFn(index: number, step: ThyGuiderStep) {\n return step.key || index;\n }\n}\n\ndefaultGuiderPositionConfig.hintComponent = ThyGuiderHintComponent;\n","<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">跳过</a>\n</div>\n<div class=\"thy-guider-tip-content bg-white\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n <ng-container *ngIf=\"descriptionTemplateRef; else stringTemplateRef\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #stringTemplateRef>{{ descriptionString }}</ng-template>\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n <span\n class=\"pagination-item\"\n *ngFor=\"let step of guiderRef.steps; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{ active: i === stepRef.stepIndex }\"\n ></span>\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n <ng-container *ngIf=\"stepRef.stepIndex !== 0\">\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">上一步</a>\n </ng-container>\n <ng-container *ngIf=\"stepRef.stepIndex !== guiderRef.steps.length - 1; else finish\">\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">下一步</a>\n </ng-container>\n <ng-template #finish>\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">完成</a>\n </ng-template>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ThyGuider } from './guider.service';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyGuiderTargetDirective } from './guider.directive';\nimport { ThyGuiderHintComponent } from './guider-hint/guider-hint.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule],\n declarations: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n exports: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n providers: [ThyGuider]\n})\nexport class ThyGuiderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyGuiderManager","i1"],"mappings":"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"}
@@ -1,14 +1,4 @@
1
- const System = window.System;
2
- const ENV = window.ENV;
3
- const PR = window.PR;
4
- const mermaid = window.mermaid;
5
- const liteMarked = window.liteMarked;
6
- const $ = window.$;
7
- const katex = window.katex;
8
-
9
1
  /**
10
2
  * Generated bundle index. Do not edit.
11
3
  */
12
-
13
- export { $, ENV, PR, System, katex, liteMarked, mermaid };
14
4
  //# sourceMappingURL=ngx-tethys-types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-types.mjs","sources":["../../../src/types/common.ts","../../../src/types/ngx-tethys-types.ts"],"sourcesContent":["export const System = (window as any).System;\nexport const ENV = (window as any).ENV;\nexport const PR = (window as any).PR;\nexport const mermaid = (window as any).mermaid;\nexport const liteMarked = (window as any).liteMarked;\nexport const $ = (window as any).$;\nexport const katex = (window as any).katex;\n\nexport declare module jasmine {\n interface Matchers<T> {\n toHaveCssClass(expected: any): boolean;\n }\n}\n\nexport declare interface Id {\n toString(): string;\n}\n\nexport type SafeAny = any;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAa,MAAA,MAAM,GAAI,MAAc,CAAC,OAAO;AAChC,MAAA,GAAG,GAAI,MAAc,CAAC,IAAI;AAC1B,MAAA,EAAE,GAAI,MAAc,CAAC,GAAG;AACxB,MAAA,OAAO,GAAI,MAAc,CAAC,QAAQ;AAClC,MAAA,UAAU,GAAI,MAAc,CAAC,WAAW;AACxC,MAAA,CAAC,GAAI,MAAc,CAAC,EAAE;AACtB,MAAA,KAAK,GAAI,MAAc,CAAC;;ACNrC;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-types.mjs","sources":["../../../src/types/ngx-tethys-types.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('14.2.2');
3
+ const VERSION = new Version('14.2.3');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('14.2.2');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('14.2.3');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param, __metadata } from 'tslib';
2
2
  import * as i2 from '@angular/router';
3
3
  import { Router } from '@angular/router';
4
- import { isArray, isNumber, coerceArray, isUndefinedOrNull, isNull, isString, helpers } from 'ngx-tethys/util';
4
+ import { isObject, isArray, isNumber, coerceArray, isUndefinedOrNull, isNull, isString, helpers } from 'ngx-tethys/util';
5
5
  import * as i1$1 from '@angular/common';
6
6
  import { DOCUMENT, CommonModule } from '@angular/common';
7
7
  import * as i1 from 'ngx-tethys/popover';
@@ -50,14 +50,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
50
50
  }], ctorParameters: function () { return []; } });
51
51
 
52
52
  function isPositionDataType(target) {
53
- if (isArray(target)) {
54
- if (target.length !== 2) {
55
- return false;
56
- }
57
- if (isNumber(target[0]) && isNumber(target[1])) {
53
+ if (isObject(target) && !isArray(target)) {
54
+ if (isNumber(target.x) && isNumber(target.y)) {
58
55
  return true;
59
56
  }
60
- return false;
61
57
  }
62
58
  return false;
63
59
  }
@@ -174,10 +170,7 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
174
170
  const position = this.getTipPosition(step);
175
171
  this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {
176
172
  origin: null,
177
- originPosition: {
178
- x: position[0],
179
- y: position[1]
180
- },
173
+ originPosition: position,
181
174
  originActiveClass: '',
182
175
  panelClass: this.guiderRef.config.hintClass || '',
183
176
  backdropClosable: false,
@@ -298,7 +291,7 @@ class ThyGuiderConfig {
298
291
  const defaultGuiderPositionConfig = {
299
292
  hintComponent: null,
300
293
  hintPlacement: 'rightBottom',
301
- defaultPosition: [0, 0],
294
+ defaultPosition: { x: 0, y: 0 },
302
295
  pointOffset: [0, 0],
303
296
  hintOffset: 4
304
297
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-guider.mjs","sources":["../../../src/guider/guider-manager.ts","../../../src/guider/utils.ts","../../../src/guider/guider-step-ref.ts","../../../src/guider/guider.class.ts","../../../src/guider/guider-ref.ts","../../../src/guider/guider.service.ts","../../../src/guider/guider.directive.ts","../../../src/guider/guider-hint/guider-hint.component.ts","../../../src/guider/guider-hint/guider-hint.component.html","../../../src/guider/guider.module.ts","../../../src/guider/ngx-tethys-guider.ts"],"sourcesContent":["import { ThyGuiderRef } from './guider-ref';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuiderManager {\n private targetListMap = {};\n\n private thyGuiderRef: ThyGuiderRef;\n\n private activeStepKey: string;\n\n constructor() {}\n\n public updateActive(key: string, guiderRef: ThyGuiderRef) {\n this.activeStepKey = key;\n this.thyGuiderRef = guiderRef;\n }\n\n public addStepTarget(key: string, el: HTMLElement) {\n this.targetListMap[key] = el;\n }\n\n public removeStepTarget(key: string) {\n delete this.targetListMap[key];\n }\n\n public getActiveTarget(key: string): HTMLElement {\n return this.targetListMap[key];\n }\n\n public getActive(): { key: string; guiderRef: ThyGuiderRef } {\n return {\n key: this.activeStepKey,\n guiderRef: this.thyGuiderRef\n };\n }\n}\n","import { isArray, isNumber } from 'ngx-tethys/util';\n\nexport function isPositionDataType(target: any): target is [number, number] {\n if (isArray(target)) {\n if (target.length !== 2) {\n return false;\n }\n if (isNumber(target[0]) && isNumber(target[1])) {\n return true;\n }\n return false;\n }\n return false;\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceArray, isArray, isNull, isString, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderRef } from './guider-ref';\nimport { ThyGuiderStep } from './guider.class';\nimport { isPositionDataType } from './utils';\n\nconst pointContainerSize = 28;\nexport class ThyGuiderStepRef {\n private renderer: Renderer2;\n\n private lastPointerContainer: any;\n\n private lastTargetElement: Element;\n\n private targetElementObserver: Subscription;\n\n private lastTipContainer: any;\n\n private guiderRef: ThyGuiderRef;\n\n private lastPopoverRef: ThyPopoverRef<any>;\n\n constructor(\n public step: ThyGuiderStep,\n public stepIndex: number,\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private guiderManager: ThyGuiderManager,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n public show(guiderRef: ThyGuiderRef) {\n this.guiderRef = guiderRef;\n this.createPoint(this.step, guiderRef);\n }\n\n public dispose() {\n this.removeLastPointContainer();\n this.removeTip();\n }\n\n private getTargetElement(step: ThyGuiderStep) {\n let targetElement: HTMLElement;\n\n if (step.target && !isPositionDataType(step.target)) {\n const target = [...coerceArray(step.target)];\n\n while (target.length && isUndefinedOrNull(targetElement)) {\n targetElement = this.document.querySelector(target.shift());\n }\n } else {\n targetElement = this.guiderManager.getActiveTarget(step.key);\n }\n return targetElement;\n }\n\n private createPoint(step: ThyGuiderStep, guiderRef: ThyGuiderRef) {\n // target 为空并且 guiderManager 中的 targetMap 也没有此step 的 key,或者 target 直接为 坐标数组\n // 则执行无 target 的显示\n if (!this.isTipHasTarget(step)) {\n this.createTip(this.step);\n return;\n }\n\n const targetElement = this.getTargetElement(step);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && isNull(targetElement)) {\n throw new Error(`there is no target called ${coerceArray(step.target).join(' or ')}`);\n }\n this.targetElementObserver = fromEvent(targetElement, 'click').subscribe(() => {\n guiderRef.targetClicked().next(step);\n });\n const positionValue = targetElement?.style?.position;\n if (!positionValue || positionValue === 'static') {\n this.renderer.setStyle(targetElement, 'position', 'relative');\n }\n this.setStyleForPointContainer(step, targetElement);\n }\n\n private setStyleForPointContainer(step: ThyGuiderStep, targetElement: Element) {\n const pointPosition = this.getPointPosition(step, targetElement);\n const pointContainer = this.setPointPosition(pointPosition);\n\n this.renderPoint(targetElement, pointContainer);\n }\n\n private getPointPosition(step: ThyGuiderStep, targetElement: Element): [number, number] {\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n const pointOffset = step.pointOffset;\n // 只通过 pointOffset 控制 point 的位置,默认在 target 的右下角,\n // offset 的基点也为默认位置\n return [targetElementWidth + pointOffset[0], targetElementHeight + pointOffset[1]];\n }\n\n private setPointPosition(pointPosition: [number, number]) {\n const currentPointContainer = this.renderer.createElement('div');\n\n this.renderer.addClass(currentPointContainer, 'thy-guider-highlight-container');\n if (this.guiderRef.config.pointClass) {\n this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);\n }\n this.renderer.setStyle(currentPointContainer, 'position', 'absolute');\n this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0] + 'px');\n this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1] + 'px');\n this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');\n\n return currentPointContainer;\n }\n private addPointClass(el: any, pointClass: string | string[]) {\n if (isString(pointClass)) {\n this.renderer.addClass(el, pointClass);\n }\n if (isArray(pointClass)) {\n pointClass.forEach(classItem => {\n this.renderer.addClass(el, classItem);\n });\n }\n }\n\n private renderPoint(targetElement: Element, pointContainer: any) {\n this.renderer.appendChild(targetElement, pointContainer);\n this.lastPointerContainer = pointContainer;\n this.lastTargetElement = targetElement;\n this.createTip(this.step);\n }\n\n private removeLastPointContainer() {\n if (this.lastPointerContainer) {\n this.renderer.removeChild(this.document.body, this.lastPointerContainer);\n this.lastPointerContainer = undefined;\n }\n }\n\n private createTip(step: ThyGuiderStep) {\n if (this.isTipHasTarget(step)) {\n this.tipWithTarget(step);\n } else {\n this.tipWithoutTarget(step);\n }\n }\n\n private tipWithoutTarget(step: ThyGuiderStep) {\n const position = this.getTipPosition(step);\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {\n origin: null,\n originPosition: {\n x: position[0],\n y: position[1]\n },\n originActiveClass: '',\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n\n private getTipPosition(step: ThyGuiderStep): [number, number] {\n if (isPositionDataType(step.target)) {\n return step.target;\n }\n return this.guiderRef.config.defaultPosition;\n }\n\n private createTipContainer() {\n const tipContainer = this.renderer.createElement('div');\n this.renderer.addClass(tipContainer, 'thy-guider-content-container');\n this.renderer.setStyle(tipContainer, 'position', 'absolute');\n this.renderer.setStyle(tipContainer, 'top', '0px');\n this.renderer.setStyle(tipContainer, 'right', '0px');\n this.renderer.setStyle(tipContainer, 'bottom', '0px');\n this.renderer.setStyle(tipContainer, 'left', '0px');\n return tipContainer;\n }\n\n private tipWithTarget(step: ThyGuiderStep) {\n const targetElement = this.getTargetElement(step);\n const hintContainer = this.createTipContainer();\n\n this.renderer.appendChild(targetElement, hintContainer);\n this.lastTipContainer = hintContainer;\n\n const popoverConfig = {\n origin: hintContainer,\n placement: step.hintPlacement,\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n } as ThyPopoverConfig<any>;\n\n const pointPosition = this.getPointPosition(step, targetElement);\n const hintOffset = this.getTipOffset(step, pointPosition, targetElement);\n if (hintOffset) {\n popoverConfig.offset = hintOffset;\n }\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, popoverConfig);\n }\n\n private getTipOffset(step: ThyGuiderStep, pointPosition: [number, number], targetElement: Element): number {\n const hintPlacement = step.hintPlacement;\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n let hintOffset: number = step.hintOffset || 0;\n const pointXAxisOffset = pointPosition[0];\n const pointYAxisOffset = pointPosition[1];\n\n if (hintPlacement.startsWith('top')) {\n if (pointYAxisOffset < pointContainerSize) {\n hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('bottom')) {\n if (pointYAxisOffset > targetElementHeight) {\n hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量\n }\n } else if (hintPlacement.startsWith('left')) {\n if (pointXAxisOffset < 0) {\n hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('right')) {\n if (pointXAxisOffset > targetElementWidth) {\n hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量\n }\n }\n return hintOffset;\n }\n\n private removeTip() {\n if (this.lastPopoverRef) {\n this.lastPopoverRef.close();\n this.lastPopoverRef = undefined;\n }\n if (this.lastTipContainer) {\n this.renderer.removeChild(this.document.body, this.lastTipContainer);\n this.lastTipContainer = undefined;\n }\n if (this.lastTargetElement && this.targetElementObserver) {\n this.targetElementObserver.unsubscribe();\n this.lastTargetElement = undefined;\n this.targetElementObserver = undefined;\n }\n }\n\n private isTipHasTarget(step: ThyGuiderStep): boolean {\n if (step.target) {\n return !isPositionDataType(step.target);\n } else {\n return !!this.guiderManager.getActiveTarget(step.key);\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyGuiderStep<TData = any> {\n key: string;\n target?: string | string[] | [number, number];\n data: TData;\n route?: string;\n hintPlacement?: ThyPlacement;\n hintOffset?: number;\n pointOffset?: [number, number];\n // children: StepInfo<T>[]\n}\n\nexport class ThyGuiderConfig {\n /** hint Component,default is ThyGuiderHintComponent */\n hintComponent?: Type<unknown>;\n\n /** steps info */\n steps: ThyGuiderStep[];\n\n /** hint default position when step info not set hintPlacement */\n hintPlacement?: ThyPlacement;\n\n /** useful when without target */\n defaultPosition?: [number, number];\n\n /** setting default point offset */\n pointOffset?: [number, number];\n\n /** like popover offset */\n hintOffset?: number;\n\n /** popover active class */\n hintClass?: string | string[];\n\n /** guider point class */\n pointClass?: string | string[];\n}\n\nexport const defaultGuiderPositionConfig = {\n hintComponent: null as Type<unknown>,\n hintPlacement: 'rightBottom',\n defaultPosition: [0, 0],\n pointOffset: [0, 0],\n hintOffset: 4\n};\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderStepRef } from './guider-step-ref';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { ThyGuiderConfig, ThyGuiderStep } from './guider.class';\nimport { Inject, NgZone, RendererFactory2 } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport class ThyGuiderRef {\n public steps: ThyGuiderStep[];\n\n private stepChange$: ReplaySubject<ThyGuiderStep> = new ReplaySubject<ThyGuiderStep>();\n\n private guiderEnded$ = new Subject();\n\n private closed$ = new Subject<ThyGuiderStep>();\n\n private targetClicked$ = new Subject<ThyGuiderStep>();\n\n private currentStep: ThyGuiderStep;\n\n private currentStepIndex: number;\n\n private stepsRef: ThyGuiderStepRef[];\n\n constructor(\n public config: ThyGuiderConfig,\n private rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {\n this.stepsRef = config.steps.map((step, index) => {\n return new ThyGuiderStepRef(step, index, this.rendererFactory, this.popover, this.guiderManager, this.overlay, this.document);\n });\n this.steps = config.steps;\n }\n\n public stepChange(): Observable<ThyGuiderStep> {\n return this.stepChange$.asObservable();\n }\n\n public ended() {\n return this.guiderEnded$;\n }\n\n public closed() {\n return this.closed$;\n }\n\n public targetClicked() {\n return this.targetClicked$;\n }\n\n public start(startWith?: number) {\n this.to(startWith);\n\n return this.stepChange();\n }\n\n public next() {\n if (this.currentStepIndex + 1 > this.steps.length) {\n return;\n }\n this.to(this.currentStepIndex + 1);\n }\n\n public previous() {\n if (this.currentStepIndex - 1 < 0) {\n return;\n }\n\n this.to(this.currentStepIndex - 1);\n }\n\n public active(indexOrKey: number | string): void {\n if (helpers.isNumber(indexOrKey)) {\n this.to(indexOrKey as number);\n return;\n }\n if (helpers.isString(indexOrKey)) {\n const index = this.steps.findIndex(step => step.key === (indexOrKey as string));\n this.to(index);\n return;\n }\n }\n\n private to(index: number): void {\n this.removeExistedStep();\n\n if (!helpers.isNumber(index) || index >= this.steps.length || index < 0 || Number.isNaN(index)) {\n index = 0;\n }\n this.currentStep = this.steps[index];\n this.currentStepIndex = index;\n\n // update guiderManager\n this.guiderManager.updateActive(this.currentStep.key, this);\n if (this.currentStep.route && this.currentStep.route !== this.router.url) {\n this.ngZone.run(() => {\n this.router.navigateByUrl(this.currentStep.route);\n });\n return;\n }\n setTimeout(() => {\n this.drawStep();\n this.notifyStepClicked();\n }, 0);\n }\n\n public close() {\n this.removeManagerActiveKey();\n this.stepsRef[this.currentStepIndex]?.dispose();\n this.closed$.next(this.currentStep);\n }\n\n public end() {\n this.close();\n this.guiderEnded$.next(this.currentStep);\n this.notifyGuiderIsFinished();\n }\n\n private removeManagerActiveKey() {\n const activeKey = this.guiderManager.getActive().key;\n if (activeKey && this.steps.some(step => step.key === activeKey)) {\n this.guiderManager.updateActive('', undefined);\n }\n }\n\n private notifyStepClicked() {\n this.stepChange$.next(this.currentStep);\n }\n\n private drawStep() {\n this.removeExistedStep();\n this.stepsRef[this.currentStepIndex].show(this);\n }\n\n private notifyGuiderIsFinished() {\n this.stepChange$.complete();\n // this.targetClicked().unsubscribe();\n this.currentStepIndex = 0;\n }\n\n private removeExistedStep() {\n this.stepsRef[this.currentStepIndex]?.dispose();\n }\n}\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyGuiderRef } from './guider-ref';\nimport { Inject, NgZone } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { Injectable, RendererFactory2 } from '@angular/core';\nimport { ThyGuiderStep, ThyGuiderConfig, defaultGuiderPositionConfig } from './guider.class';\nimport { Overlay } from '@angular/cdk/overlay';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuider {\n private guiderRef: ThyGuiderRef;\n\n private guiderRefs: ThyGuiderRef[] = [];\n\n constructor(\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n public create(config: ThyGuiderConfig): ThyGuiderRef {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!config || !config?.steps || !helpers.isArray(config?.steps)) {\n throw new Error(`'config.steps' must be an array of length greater than 0`);\n }\n }\n const normalizeConfig = this.normalizeConfig(config);\n this.guiderRef = new ThyGuiderRef(\n normalizeConfig,\n this.rendererFactory,\n this.popover,\n this.router,\n this.guiderManager,\n this.ngZone,\n this.overlay,\n this.document\n );\n this.guiderRef.closed().subscribe(() => {\n const index = this.guiderRefs.findIndex(guiderRef => guiderRef === this.guiderRef);\n this.guiderRefs.splice(index, 1);\n });\n this.guiderRefs.push(this.guiderRef);\n return this.guiderRef;\n }\n\n private normalizeConfig(config: ThyGuiderConfig): ThyGuiderConfig {\n const normalizeConfig = Object.assign({}, defaultGuiderPositionConfig, config);\n normalizeConfig.steps = normalizeConfig.steps.map(step => {\n return this.normalizeStep(step, normalizeConfig);\n });\n return normalizeConfig;\n }\n\n private normalizeStep(step: ThyGuiderStep, config: ThyGuiderConfig): ThyGuiderStep {\n const tempStep = Object.assign(\n {\n hintPlacement: config.hintPlacement,\n hintOffset: config.hintOffset,\n pointOffset: config.pointOffset\n },\n step\n );\n\n return tempStep;\n }\n\n close() {\n if (this.guiderRefs.length > 0) {\n const lasGuiderRef = this.guiderRefs[this.guiderRefs.length - 1];\n if (lasGuiderRef) {\n lasGuiderRef.close();\n this.guiderRefs.pop();\n }\n }\n }\n}\n","import { ThyGuiderManager } from './guider-manager';\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\n@Directive({ selector: '[thyGuiderTarget]', exportAs: 'thyGuiderTarget' })\nexport class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewInit {\n @Input('thyGuiderTarget')\n target: string;\n\n constructor(private guiderManager: ThyGuiderManager, private el: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.guiderManager.addStepTarget(this.target, this.el.nativeElement);\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const { key, guiderRef } = this.guiderManager.getActive();\n if (key === this.target) {\n const index = guiderRef.steps.findIndex(step => step.key === this.target);\n this.ngZone.run(() => {\n guiderRef.active(index);\n });\n }\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnDestroy() {\n const { guiderRef } = this.guiderManager.getActive();\n if (guiderRef) {\n guiderRef.close();\n }\n this.guiderManager.removeStepTarget(this.target);\n }\n}\n","import { HostBinding, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ThyGuiderRef } from '../guider-ref';\nimport { helpers } from 'ngx-tethys/util';\nimport { defaultGuiderPositionConfig, ThyGuiderStep } from '../guider.class';\nimport { ThyGuiderStepRef } from '../guider-step-ref';\n\n@Component({\n selector: 'thy-guider-hint',\n templateUrl: 'guider-hint.component.html'\n})\nexport class ThyGuiderHintComponent implements OnInit {\n @HostBinding('class.thy-guider-tip-container') guiderHint = true;\n\n public guiderRef: ThyGuiderRef;\n\n public stepRef: ThyGuiderStepRef;\n\n public descriptionString: string;\n\n public descriptionTemplateRef: TemplateRef<any>;\n\n public currentStepIndex: number;\n\n constructor() {}\n\n ngOnInit() {\n this.setDescription(this.stepRef.step.data.description);\n }\n\n private setDescription(value: string | TemplateRef<any>) {\n if (helpers.isString(value)) {\n this.descriptionString = value as string;\n } else {\n this.descriptionTemplateRef = value as TemplateRef<any>;\n }\n }\n\n public jump() {\n this.guiderRef.end();\n }\n\n public prev() {\n this.guiderRef.previous();\n }\n\n public next() {\n this.guiderRef.next();\n }\n\n public end() {\n this.guiderRef.end();\n }\n\n public trackByFn(index: number, step: ThyGuiderStep) {\n return step.key || index;\n }\n}\n\ndefaultGuiderPositionConfig.hintComponent = ThyGuiderHintComponent;\n","<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">跳过</a>\n</div>\n<div class=\"thy-guider-tip-content bg-white\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n <ng-container *ngIf=\"descriptionTemplateRef; else stringTemplateRef\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #stringTemplateRef>{{ descriptionString }}</ng-template>\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n <span\n class=\"pagination-item\"\n *ngFor=\"let step of guiderRef.steps; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{ active: i === stepRef.stepIndex }\"\n ></span>\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n <ng-container *ngIf=\"stepRef.stepIndex !== 0\">\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">上一步</a>\n </ng-container>\n <ng-container *ngIf=\"stepRef.stepIndex !== guiderRef.steps.length - 1; else finish\">\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">下一步</a>\n </ng-container>\n <ng-template #finish>\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">完成</a>\n </ng-template>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ThyGuider } from './guider.service';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyGuiderTargetDirective } from './guider.directive';\nimport { ThyGuiderHintComponent } from './guider-hint/guider-hint.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule],\n declarations: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n exports: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n providers: [ThyGuider]\n})\nexport class ThyGuiderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyGuiderManager","i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-guider.mjs","sources":["../../../src/guider/guider-manager.ts","../../../src/guider/utils.ts","../../../src/guider/guider-step-ref.ts","../../../src/guider/guider.class.ts","../../../src/guider/guider-ref.ts","../../../src/guider/guider.service.ts","../../../src/guider/guider.directive.ts","../../../src/guider/guider-hint/guider-hint.component.ts","../../../src/guider/guider-hint/guider-hint.component.html","../../../src/guider/guider.module.ts","../../../src/guider/ngx-tethys-guider.ts"],"sourcesContent":["import { ThyGuiderRef } from './guider-ref';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuiderManager {\n private targetListMap = {};\n\n private thyGuiderRef: ThyGuiderRef;\n\n private activeStepKey: string;\n\n constructor() {}\n\n public updateActive(key: string, guiderRef: ThyGuiderRef) {\n this.activeStepKey = key;\n this.thyGuiderRef = guiderRef;\n }\n\n public addStepTarget(key: string, el: HTMLElement) {\n this.targetListMap[key] = el;\n }\n\n public removeStepTarget(key: string) {\n delete this.targetListMap[key];\n }\n\n public getActiveTarget(key: string): HTMLElement {\n return this.targetListMap[key];\n }\n\n public getActive(): { key: string; guiderRef: ThyGuiderRef } {\n return {\n key: this.activeStepKey,\n guiderRef: this.thyGuiderRef\n };\n }\n}\n","import { SafeAny } from 'ngx-tethys/types';\nimport { isArray, isNumber, isObject } from 'ngx-tethys/util';\n\nexport function isPositionDataType(target: any): target is { x: number; y: number } {\n if (isObject(target) && !isArray(target)) {\n if (isNumber((target as SafeAny).x) && isNumber((target as SafeAny).y)) {\n return true;\n }\n }\n return false;\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceArray, isArray, isNull, isString, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderRef } from './guider-ref';\nimport { ThyGuiderStep } from './guider.class';\nimport { isPositionDataType } from './utils';\n\nconst pointContainerSize = 28;\nexport class ThyGuiderStepRef {\n private renderer: Renderer2;\n\n private lastPointerContainer: any;\n\n private lastTargetElement: Element;\n\n private targetElementObserver: Subscription;\n\n private lastTipContainer: any;\n\n private guiderRef: ThyGuiderRef;\n\n private lastPopoverRef: ThyPopoverRef<any>;\n\n constructor(\n public step: ThyGuiderStep,\n public stepIndex: number,\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private guiderManager: ThyGuiderManager,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n public show(guiderRef: ThyGuiderRef) {\n this.guiderRef = guiderRef;\n this.createPoint(this.step, guiderRef);\n }\n\n public dispose() {\n this.removeLastPointContainer();\n this.removeTip();\n }\n\n private getTargetElement(step: ThyGuiderStep) {\n let targetElement: HTMLElement;\n\n if (step.target && !isPositionDataType(step.target)) {\n const target = [...coerceArray(step.target)];\n\n while (target.length && isUndefinedOrNull(targetElement)) {\n targetElement = this.document.querySelector(target.shift());\n }\n } else {\n targetElement = this.guiderManager.getActiveTarget(step.key);\n }\n return targetElement;\n }\n\n private createPoint(step: ThyGuiderStep, guiderRef: ThyGuiderRef) {\n // target 为空并且 guiderManager 中的 targetMap 也没有此step 的 key,或者 target 直接为 坐标数组\n // 则执行无 target 的显示\n if (!this.isTipHasTarget(step)) {\n this.createTip(this.step);\n return;\n }\n\n const targetElement = this.getTargetElement(step);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && isNull(targetElement)) {\n throw new Error(`there is no target called ${coerceArray(step.target).join(' or ')}`);\n }\n this.targetElementObserver = fromEvent(targetElement, 'click').subscribe(() => {\n guiderRef.targetClicked().next(step);\n });\n const positionValue = targetElement?.style?.position;\n if (!positionValue || positionValue === 'static') {\n this.renderer.setStyle(targetElement, 'position', 'relative');\n }\n this.setStyleForPointContainer(step, targetElement);\n }\n\n private setStyleForPointContainer(step: ThyGuiderStep, targetElement: Element) {\n const pointPosition = this.getPointPosition(step, targetElement);\n const pointContainer = this.setPointPosition(pointPosition);\n\n this.renderPoint(targetElement, pointContainer);\n }\n\n private getPointPosition(step: ThyGuiderStep, targetElement: Element): [number, number] {\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n const pointOffset = step.pointOffset;\n // 只通过 pointOffset 控制 point 的位置,默认在 target 的右下角,\n // offset 的基点也为默认位置\n return [targetElementWidth + pointOffset[0], targetElementHeight + pointOffset[1]];\n }\n\n private setPointPosition(pointPosition: [number, number]) {\n const currentPointContainer = this.renderer.createElement('div');\n\n this.renderer.addClass(currentPointContainer, 'thy-guider-highlight-container');\n if (this.guiderRef.config.pointClass) {\n this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);\n }\n this.renderer.setStyle(currentPointContainer, 'position', 'absolute');\n this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0] + 'px');\n this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1] + 'px');\n this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');\n\n return currentPointContainer;\n }\n private addPointClass(el: any, pointClass: string | string[]) {\n if (isString(pointClass)) {\n this.renderer.addClass(el, pointClass);\n }\n if (isArray(pointClass)) {\n pointClass.forEach(classItem => {\n this.renderer.addClass(el, classItem);\n });\n }\n }\n\n private renderPoint(targetElement: Element, pointContainer: any) {\n this.renderer.appendChild(targetElement, pointContainer);\n this.lastPointerContainer = pointContainer;\n this.lastTargetElement = targetElement;\n this.createTip(this.step);\n }\n\n private removeLastPointContainer() {\n if (this.lastPointerContainer) {\n this.renderer.removeChild(this.document.body, this.lastPointerContainer);\n this.lastPointerContainer = undefined;\n }\n }\n\n private createTip(step: ThyGuiderStep) {\n if (this.isTipHasTarget(step)) {\n this.tipWithTarget(step);\n } else {\n this.tipWithoutTarget(step);\n }\n }\n\n private tipWithoutTarget(step: ThyGuiderStep) {\n const position = this.getTipPosition(step);\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {\n origin: null,\n originPosition: position,\n originActiveClass: '',\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n\n private getTipPosition(step: ThyGuiderStep): { x: number; y: number } {\n if (isPositionDataType(step.target)) {\n return step.target;\n }\n return this.guiderRef.config.defaultPosition;\n }\n\n private createTipContainer() {\n const tipContainer = this.renderer.createElement('div');\n this.renderer.addClass(tipContainer, 'thy-guider-content-container');\n this.renderer.setStyle(tipContainer, 'position', 'absolute');\n this.renderer.setStyle(tipContainer, 'top', '0px');\n this.renderer.setStyle(tipContainer, 'right', '0px');\n this.renderer.setStyle(tipContainer, 'bottom', '0px');\n this.renderer.setStyle(tipContainer, 'left', '0px');\n return tipContainer;\n }\n\n private tipWithTarget(step: ThyGuiderStep) {\n const targetElement = this.getTargetElement(step);\n const hintContainer = this.createTipContainer();\n\n this.renderer.appendChild(targetElement, hintContainer);\n this.lastTipContainer = hintContainer;\n\n const popoverConfig = {\n origin: hintContainer,\n placement: step.hintPlacement,\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n } as ThyPopoverConfig<any>;\n\n const pointPosition = this.getPointPosition(step, targetElement);\n const hintOffset = this.getTipOffset(step, pointPosition, targetElement);\n if (hintOffset) {\n popoverConfig.offset = hintOffset;\n }\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, popoverConfig);\n }\n\n private getTipOffset(step: ThyGuiderStep, pointPosition: [number, number], targetElement: Element): number {\n const hintPlacement = step.hintPlacement;\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n let hintOffset: number = step.hintOffset || 0;\n const pointXAxisOffset = pointPosition[0];\n const pointYAxisOffset = pointPosition[1];\n\n if (hintPlacement.startsWith('top')) {\n if (pointYAxisOffset < pointContainerSize) {\n hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('bottom')) {\n if (pointYAxisOffset > targetElementHeight) {\n hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量\n }\n } else if (hintPlacement.startsWith('left')) {\n if (pointXAxisOffset < 0) {\n hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('right')) {\n if (pointXAxisOffset > targetElementWidth) {\n hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量\n }\n }\n return hintOffset;\n }\n\n private removeTip() {\n if (this.lastPopoverRef) {\n this.lastPopoverRef.close();\n this.lastPopoverRef = undefined;\n }\n if (this.lastTipContainer) {\n this.renderer.removeChild(this.document.body, this.lastTipContainer);\n this.lastTipContainer = undefined;\n }\n if (this.lastTargetElement && this.targetElementObserver) {\n this.targetElementObserver.unsubscribe();\n this.lastTargetElement = undefined;\n this.targetElementObserver = undefined;\n }\n }\n\n private isTipHasTarget(step: ThyGuiderStep): boolean {\n if (step.target) {\n return !isPositionDataType(step.target);\n } else {\n return !!this.guiderManager.getActiveTarget(step.key);\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyGuiderStep<TData = any> {\n key: string;\n target?: string | string[] | { x: number; y: number };\n data: TData;\n route?: string;\n hintPlacement?: ThyPlacement;\n hintOffset?: number;\n pointOffset?: [number, number];\n // children: StepInfo<T>[]\n}\n\nexport class ThyGuiderConfig {\n /** hint Component,default is ThyGuiderHintComponent */\n hintComponent?: Type<unknown>;\n\n /** steps info */\n steps: ThyGuiderStep[];\n\n /** hint default position when step info not set hintPlacement */\n hintPlacement?: ThyPlacement;\n\n /** useful when without target */\n defaultPosition?: { x: number; y: number };\n\n /** setting default point offset */\n pointOffset?: [number, number];\n\n /** like popover offset */\n hintOffset?: number;\n\n /** popover active class */\n hintClass?: string | string[];\n\n /** guider point class */\n pointClass?: string | string[];\n}\n\nexport const defaultGuiderPositionConfig = {\n hintComponent: null as Type<unknown>,\n hintPlacement: 'rightBottom',\n defaultPosition: { x: 0, y: 0 },\n pointOffset: [0, 0],\n hintOffset: 4\n};\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderStepRef } from './guider-step-ref';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { ThyGuiderConfig, ThyGuiderStep } from './guider.class';\nimport { Inject, NgZone, RendererFactory2 } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport class ThyGuiderRef {\n public steps: ThyGuiderStep[];\n\n private stepChange$: ReplaySubject<ThyGuiderStep> = new ReplaySubject<ThyGuiderStep>();\n\n private guiderEnded$ = new Subject();\n\n private closed$ = new Subject<ThyGuiderStep>();\n\n private targetClicked$ = new Subject<ThyGuiderStep>();\n\n private currentStep: ThyGuiderStep;\n\n private currentStepIndex: number;\n\n private stepsRef: ThyGuiderStepRef[];\n\n constructor(\n public config: ThyGuiderConfig,\n private rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {\n this.stepsRef = config.steps.map((step, index) => {\n return new ThyGuiderStepRef(step, index, this.rendererFactory, this.popover, this.guiderManager, this.overlay, this.document);\n });\n this.steps = config.steps;\n }\n\n public stepChange(): Observable<ThyGuiderStep> {\n return this.stepChange$.asObservable();\n }\n\n public ended() {\n return this.guiderEnded$;\n }\n\n public closed() {\n return this.closed$;\n }\n\n public targetClicked() {\n return this.targetClicked$;\n }\n\n public start(startWith?: number) {\n this.to(startWith);\n\n return this.stepChange();\n }\n\n public next() {\n if (this.currentStepIndex + 1 > this.steps.length) {\n return;\n }\n this.to(this.currentStepIndex + 1);\n }\n\n public previous() {\n if (this.currentStepIndex - 1 < 0) {\n return;\n }\n\n this.to(this.currentStepIndex - 1);\n }\n\n public active(indexOrKey: number | string): void {\n if (helpers.isNumber(indexOrKey)) {\n this.to(indexOrKey as number);\n return;\n }\n if (helpers.isString(indexOrKey)) {\n const index = this.steps.findIndex(step => step.key === (indexOrKey as string));\n this.to(index);\n return;\n }\n }\n\n private to(index: number): void {\n this.removeExistedStep();\n\n if (!helpers.isNumber(index) || index >= this.steps.length || index < 0 || Number.isNaN(index)) {\n index = 0;\n }\n this.currentStep = this.steps[index];\n this.currentStepIndex = index;\n\n // update guiderManager\n this.guiderManager.updateActive(this.currentStep.key, this);\n if (this.currentStep.route && this.currentStep.route !== this.router.url) {\n this.ngZone.run(() => {\n this.router.navigateByUrl(this.currentStep.route);\n });\n return;\n }\n setTimeout(() => {\n this.drawStep();\n this.notifyStepClicked();\n }, 0);\n }\n\n public close() {\n this.removeManagerActiveKey();\n this.stepsRef[this.currentStepIndex]?.dispose();\n this.closed$.next(this.currentStep);\n }\n\n public end() {\n this.close();\n this.guiderEnded$.next(this.currentStep);\n this.notifyGuiderIsFinished();\n }\n\n private removeManagerActiveKey() {\n const activeKey = this.guiderManager.getActive().key;\n if (activeKey && this.steps.some(step => step.key === activeKey)) {\n this.guiderManager.updateActive('', undefined);\n }\n }\n\n private notifyStepClicked() {\n this.stepChange$.next(this.currentStep);\n }\n\n private drawStep() {\n this.removeExistedStep();\n this.stepsRef[this.currentStepIndex].show(this);\n }\n\n private notifyGuiderIsFinished() {\n this.stepChange$.complete();\n // this.targetClicked().unsubscribe();\n this.currentStepIndex = 0;\n }\n\n private removeExistedStep() {\n this.stepsRef[this.currentStepIndex]?.dispose();\n }\n}\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyGuiderRef } from './guider-ref';\nimport { Inject, NgZone } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { Injectable, RendererFactory2 } from '@angular/core';\nimport { ThyGuiderStep, ThyGuiderConfig, defaultGuiderPositionConfig } from './guider.class';\nimport { Overlay } from '@angular/cdk/overlay';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuider {\n private guiderRef: ThyGuiderRef;\n\n private guiderRefs: ThyGuiderRef[] = [];\n\n constructor(\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n public create(config: ThyGuiderConfig): ThyGuiderRef {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!config || !config?.steps || !helpers.isArray(config?.steps)) {\n throw new Error(`'config.steps' must be an array of length greater than 0`);\n }\n }\n const normalizeConfig = this.normalizeConfig(config);\n this.guiderRef = new ThyGuiderRef(\n normalizeConfig,\n this.rendererFactory,\n this.popover,\n this.router,\n this.guiderManager,\n this.ngZone,\n this.overlay,\n this.document\n );\n this.guiderRef.closed().subscribe(() => {\n const index = this.guiderRefs.findIndex(guiderRef => guiderRef === this.guiderRef);\n this.guiderRefs.splice(index, 1);\n });\n this.guiderRefs.push(this.guiderRef);\n return this.guiderRef;\n }\n\n private normalizeConfig(config: ThyGuiderConfig): ThyGuiderConfig {\n const normalizeConfig = Object.assign({}, defaultGuiderPositionConfig, config);\n normalizeConfig.steps = normalizeConfig.steps.map(step => {\n return this.normalizeStep(step, normalizeConfig);\n });\n return normalizeConfig;\n }\n\n private normalizeStep(step: ThyGuiderStep, config: ThyGuiderConfig): ThyGuiderStep {\n const tempStep = Object.assign(\n {\n hintPlacement: config.hintPlacement,\n hintOffset: config.hintOffset,\n pointOffset: config.pointOffset\n },\n step\n );\n\n return tempStep;\n }\n\n close() {\n if (this.guiderRefs.length > 0) {\n const lasGuiderRef = this.guiderRefs[this.guiderRefs.length - 1];\n if (lasGuiderRef) {\n lasGuiderRef.close();\n this.guiderRefs.pop();\n }\n }\n }\n}\n","import { ThyGuiderManager } from './guider-manager';\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\n@Directive({ selector: '[thyGuiderTarget]', exportAs: 'thyGuiderTarget' })\nexport class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewInit {\n @Input('thyGuiderTarget')\n target: string;\n\n constructor(private guiderManager: ThyGuiderManager, private el: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.guiderManager.addStepTarget(this.target, this.el.nativeElement);\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const { key, guiderRef } = this.guiderManager.getActive();\n if (key === this.target) {\n const index = guiderRef.steps.findIndex(step => step.key === this.target);\n this.ngZone.run(() => {\n guiderRef.active(index);\n });\n }\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnDestroy() {\n const { guiderRef } = this.guiderManager.getActive();\n if (guiderRef) {\n guiderRef.close();\n }\n this.guiderManager.removeStepTarget(this.target);\n }\n}\n","import { HostBinding, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ThyGuiderRef } from '../guider-ref';\nimport { helpers } from 'ngx-tethys/util';\nimport { defaultGuiderPositionConfig, ThyGuiderStep } from '../guider.class';\nimport { ThyGuiderStepRef } from '../guider-step-ref';\n\n@Component({\n selector: 'thy-guider-hint',\n templateUrl: 'guider-hint.component.html'\n})\nexport class ThyGuiderHintComponent implements OnInit {\n @HostBinding('class.thy-guider-tip-container') guiderHint = true;\n\n public guiderRef: ThyGuiderRef;\n\n public stepRef: ThyGuiderStepRef;\n\n public descriptionString: string;\n\n public descriptionTemplateRef: TemplateRef<any>;\n\n public currentStepIndex: number;\n\n constructor() {}\n\n ngOnInit() {\n this.setDescription(this.stepRef.step.data.description);\n }\n\n private setDescription(value: string | TemplateRef<any>) {\n if (helpers.isString(value)) {\n this.descriptionString = value as string;\n } else {\n this.descriptionTemplateRef = value as TemplateRef<any>;\n }\n }\n\n public jump() {\n this.guiderRef.end();\n }\n\n public prev() {\n this.guiderRef.previous();\n }\n\n public next() {\n this.guiderRef.next();\n }\n\n public end() {\n this.guiderRef.end();\n }\n\n public trackByFn(index: number, step: ThyGuiderStep) {\n return step.key || index;\n }\n}\n\ndefaultGuiderPositionConfig.hintComponent = ThyGuiderHintComponent;\n","<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">跳过</a>\n</div>\n<div class=\"thy-guider-tip-content bg-white\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n <ng-container *ngIf=\"descriptionTemplateRef; else stringTemplateRef\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #stringTemplateRef>{{ descriptionString }}</ng-template>\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n <span\n class=\"pagination-item\"\n *ngFor=\"let step of guiderRef.steps; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{ active: i === stepRef.stepIndex }\"\n ></span>\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n <ng-container *ngIf=\"stepRef.stepIndex !== 0\">\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">上一步</a>\n </ng-container>\n <ng-container *ngIf=\"stepRef.stepIndex !== guiderRef.steps.length - 1; else finish\">\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">下一步</a>\n </ng-container>\n <ng-template #finish>\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">完成</a>\n </ng-template>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ThyGuider } from './guider.service';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyGuiderTargetDirective } from './guider.directive';\nimport { ThyGuiderHintComponent } from './guider-hint/guider-hint.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule],\n declarations: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n exports: [ThyGuiderHintComponent, ThyGuiderTargetDirective],\n providers: [ThyGuider]\n})\nexport class ThyGuiderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyGuiderManager","i1"],"mappings":"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"}
@@ -1,14 +1,4 @@
1
- const System = window.System;
2
- const ENV = window.ENV;
3
- const PR = window.PR;
4
- const mermaid = window.mermaid;
5
- const liteMarked = window.liteMarked;
6
- const $ = window.$;
7
- const katex = window.katex;
8
-
9
1
  /**
10
2
  * Generated bundle index. Do not edit.
11
3
  */
12
-
13
- export { $, ENV, PR, System, katex, liteMarked, mermaid };
14
4
  //# sourceMappingURL=ngx-tethys-types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-types.mjs","sources":["../../../src/types/common.ts","../../../src/types/ngx-tethys-types.ts"],"sourcesContent":["export const System = (window as any).System;\nexport const ENV = (window as any).ENV;\nexport const PR = (window as any).PR;\nexport const mermaid = (window as any).mermaid;\nexport const liteMarked = (window as any).liteMarked;\nexport const $ = (window as any).$;\nexport const katex = (window as any).katex;\n\nexport declare module jasmine {\n interface Matchers<T> {\n toHaveCssClass(expected: any): boolean;\n }\n}\n\nexport declare interface Id {\n toString(): string;\n}\n\nexport type SafeAny = any;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAa,MAAA,MAAM,GAAI,MAAc,CAAC,OAAO;AAChC,MAAA,GAAG,GAAI,MAAc,CAAC,IAAI;AAC1B,MAAA,EAAE,GAAI,MAAc,CAAC,GAAG;AACxB,MAAA,OAAO,GAAI,MAAc,CAAC,QAAQ;AAClC,MAAA,UAAU,GAAI,MAAc,CAAC,WAAW;AACxC,MAAA,CAAC,GAAI,MAAc,CAAC,EAAE;AACtB,MAAA,KAAK,GAAI,MAAc,CAAC;;ACNrC;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-types.mjs","sources":["../../../src/types/ngx-tethys-types.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('14.2.2');
3
+ const VERSION = new Version('14.2.3');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('14.2.2');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('14.2.3');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
@@ -2,7 +2,10 @@ import { Type } from '@angular/core';
2
2
  import { ThyPlacement } from 'ngx-tethys/core';
3
3
  export interface ThyGuiderStep<TData = any> {
4
4
  key: string;
5
- target?: string | string[] | [number, number];
5
+ target?: string | string[] | {
6
+ x: number;
7
+ y: number;
8
+ };
6
9
  data: TData;
7
10
  route?: string;
8
11
  hintPlacement?: ThyPlacement;
@@ -17,7 +20,10 @@ export declare class ThyGuiderConfig {
17
20
  /** hint default position when step info not set hintPlacement */
18
21
  hintPlacement?: ThyPlacement;
19
22
  /** useful when without target */
20
- defaultPosition?: [number, number];
23
+ defaultPosition?: {
24
+ x: number;
25
+ y: number;
26
+ };
21
27
  /** setting default point offset */
22
28
  pointOffset?: [number, number];
23
29
  /** like popover offset */
@@ -30,7 +36,10 @@ export declare class ThyGuiderConfig {
30
36
  export declare const defaultGuiderPositionConfig: {
31
37
  hintComponent: Type<unknown>;
32
38
  hintPlacement: string;
33
- defaultPosition: number[];
39
+ defaultPosition: {
40
+ x: number;
41
+ y: number;
42
+ };
34
43
  pointOffset: number[];
35
44
  hintOffset: number;
36
45
  };
package/guider/utils.d.ts CHANGED
@@ -1 +1,4 @@
1
- export declare function isPositionDataType(target: any): target is [number, number];
1
+ export declare function isPositionDataType(target: any): target is {
2
+ x: number;
3
+ y: number;
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-tethys",
3
- "version": "14.2.2",
3
+ "version": "14.2.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/atinc/ngx-tethys.git"
@@ -1 +1 @@
1
- export declare const VERSION = "14.2.2";
1
+ export declare const VERSION = "14.2.3";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '14.2.2';
4
+ exports.VERSION = '14.2.3';
package/types/common.d.ts CHANGED
@@ -1,16 +1,2 @@
1
- export declare const System: any;
2
- export declare const ENV: any;
3
- export declare const PR: any;
4
- export declare const mermaid: any;
5
- export declare const liteMarked: any;
6
- export declare const $: any;
7
- export declare const katex: any;
8
- export declare module jasmine {
9
- interface Matchers<T> {
10
- toHaveCssClass(expected: any): boolean;
11
- }
12
- }
13
- export declare interface Id {
14
- toString(): string;
15
- }
16
1
  export declare type SafeAny = any;
2
+ export { Id, Ids, IdOrIds } from '@tethys/cdk/immutable';