@natec/mef-dev-ui-kit 16.2.4 → 16.2.5

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/README.md CHANGED
@@ -37,6 +37,11 @@ You can use the library on the following versions of Angular:
37
37
  npm i bootstrap@5
38
38
  ```
39
39
 
40
+ > Ngx-bootstrap provides Bootstrap components powered by Angular, so you don't need to include original JS components.ngx-bootstrap:
41
+ ```sh
42
+ npm i ngx-bootstrap@10
43
+ ```
44
+
40
45
  > CSS font-family parser/stringifier. Font-awesome:
41
46
  ```sh
42
47
  npm i font-awesome@4
@@ -133,4 +138,4 @@ ___
133
138
  * Documentation of the library: https://mef.dev/ui_kit
134
139
  * Demo of the library: https://mef.dev/ui_kit_demo
135
140
  * Library package: https://www.npmjs.com/package/@natec/mef-dev-ui-kit
136
- * Ui-kit-lib at GitHub: https://github.com/mef-dev/ui-kit-demo.git
141
+ * Ui-kit-lib at GitHub: https://github.com/mef-dev/ui-kit-demo.git
@@ -1,12 +1,80 @@
1
1
  import { Component, EventEmitter, Host, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../step-executor/step-executor.component";
4
+ /**
5
+ * A component that allows us to create a content page - a step in our executor.
6
+ * Each individual step can have different styles, content and settings.
7
+ *
8
+ * Example of usage:
9
+ *
10
+ * ```
11
+ * <mefdev-executor-page
12
+ * [title]="'Executor title 1'"
13
+ * [isActive]="mainExecutor.activePageInd === 0"
14
+ * [isCompleted]="mainExecutor.activePageInd >= 0"
15
+ * class="yourClass">
16
+ * <!-- Content of the first executor step -->
17
+ * </mefdev-executor-page>
18
+ * <mefdev-executor-page
19
+ * [title]="'Executor title 2'"
20
+ * [isActive]="mainExecutor.activePageInd === 1"
21
+ * [isCompleted]="mainExecutor.activePageInd >= 1"
22
+ * class="yourClass">
23
+ * <!-- Content of the second executor step -->
24
+ * </mefdev-executor-page>
25
+ * <mefdev-executor-page
26
+ * [title]="'Executor title 3'"
27
+ * [isActive]="mainExecutor.activePageInd === 2"
28
+ * [isCompleted]="mainExecutor.activePageInd >= 2"
29
+ * class="yourClass">
30
+ * <!-- Content of the third executor step -->
31
+ * </mefdev-executor-page>
32
+ * ```
33
+ *
34
+ */
4
35
  export class MefdevExecutorPageComponent {
5
36
  _mainExecutor;
6
37
  _elementRef;
38
+ /**
39
+ * The title of the step
40
+ * @usageNotes
41
+ * ```
42
+ * <mefdev-executor-page [title]="'Description of situation 1'"></mefdev-executor-page>
43
+ * ```
44
+ */
7
45
  title;
46
+ /**
47
+ * The input parameter that corresponds to whether the current step matches the respective page.
48
+ * The value of the active page is passed by reference from the specific component StepExecutorComponent.
49
+ *
50
+ * @usageNotes
51
+ * ```
52
+ * <mefdev-step-executor #mainExecutor>
53
+ * <mefdev-executor-page [isActive]="mainExecutor.activePageInd === 0">
54
+ * <mefdev-executor-page [isActive]="mainExecutor.activePageInd === 1">
55
+ * <mefdev-executor-page [isActive]="mainExecutor.activePageInd === 2">
56
+ * </<mefdev-step-executor>
57
+ *
58
+ * ```
59
+ */
8
60
  isActive = false;
61
+ /**
62
+ * The input parameter that checks whether the step is completed.
63
+ *
64
+ * @usageNotes
65
+ * ```
66
+ * <mefdev-executor-page [isCompleted]="mainExecutor.activePageInd >= 0"></mefdev-executor-page>
67
+ * ```
68
+ */
9
69
  isCompleted = false;
70
+ /**
71
+ * The output parameter that emits a boolean value indicating whether our completed step has changed.
72
+ *
73
+ * @usageNotes
74
+ * ```
75
+ * <mefdev-executor-page (isCompletedChange)="onStepChanged($event)"></mefdev-executor-page>
76
+ * ```
77
+ */
10
78
  isCompletedChange = new EventEmitter();
11
79
  elRef;
12
80
  constructor(_mainExecutor, _elementRef) {
@@ -41,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
41
109
  }], isCompletedChange: [{
42
110
  type: Output
43
111
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVmZGV2LWV4ZWN1dG9yLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL21hcmt1cC1raXQvZXhlY3V0b3JzL21lZmRldi1leGVjdXRvci1wYWdlL21lZmRldi1leGVjdXRvci1wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFjLFlBQVksRUFBRSxJQUFJLEVBQ3pDLEtBQUssRUFBYSxNQUFNLEVBQ3pCLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkIsTUFBTSxPQUFPLDJCQUEyQjtJQVdsQjtJQUNSO0lBVkgsS0FBSyxDQUFTO0lBQ2QsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTVCLGlCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTFFLEtBQUssQ0FBYTtJQUV6QixZQUNvQixhQUFvQyxFQUM1QyxXQUF1QjtRQURmLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUM1QyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUVqQyxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUN6QixhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLGFBQWEsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDckMsYUFBYSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7dUdBdkJVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLG9OQUg1QiwyQkFBMkI7OzJGQUcxQiwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OzBCQWFNLElBQUk7cUVBVEEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0LFxyXG4gIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdGVwRXhlY3V0b3JDb21wb25lbnQgfSBmcm9tICcuLi9zdGVwLWV4ZWN1dG9yL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LWV4ZWN1dG9yLXBhZ2UnLFxyXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzQ29tcGxldGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBpc0NvbXBsZXRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgICBASG9zdCgpIHByaXZhdGUgX21haW5FeGVjdXRvcjogU3RlcEV4ZWN1dG9yQ29tcG9uZW50LFxyXG4gICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmVsUmVmID0gX2VsZW1lbnRSZWY7XHJcbiAgICBfbWFpbkV4ZWN1dG9yLnBhZ2VzLnB1c2godGhpcyk7XHJcbiAgICBpZiAoX21haW5FeGVjdXRvci5hY3RpdmVQYWdlSW5kID09IC0xKSB7XHJcbiAgICAgIF9tYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLmlzQ29tcGxldGVkQ2hhbmdlLmVtaXQoY2hhbmdlc1snaXNDb21wbGV0ZWQnXT8uY3VycmVudFZhbHVlKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVmZGV2LWV4ZWN1dG9yLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL21hcmt1cC1raXQvZXhlY3V0b3JzL21lZmRldi1leGVjdXRvci1wYWdlL21lZmRldi1leGVjdXRvci1wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFjLFlBQVksRUFBRSxJQUFJLEVBQ3pDLEtBQUssRUFBYSxNQUFNLEVBQ3pCLE1BQU0sZUFBZSxDQUFDOzs7QUFHdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQThCSTtBQU9KLE1BQU0sT0FBTywyQkFBMkI7SUFtRGxCO0lBQ1I7SUFsRFo7Ozs7OztPQU1HO0lBQ00sS0FBSyxDQUFTO0lBRXZCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDTSxRQUFRLEdBQVksS0FBSyxDQUFDO0lBR25DOzs7Ozs7O09BT0c7SUFDTSxXQUFXLEdBQVksS0FBSyxDQUFDO0lBRXRDOzs7Ozs7O09BT0c7SUFDTyxpQkFBaUIsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUUxRSxLQUFLLENBQWE7SUFFekIsWUFDb0IsYUFBb0MsRUFDNUMsV0FBdUI7UUFEZixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDNUMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFFakMsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDekIsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxhQUFhLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRSxDQUFDO3VHQS9EVSwyQkFBMkI7MkZBQTNCLDJCQUEyQixvTkFINUIsMkJBQTJCOzsyRkFHMUIsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzswQkFxRE0sSUFBSTtxRUExQ0EsS0FBSztzQkFBYixLQUFLO2dCQWdCRyxRQUFRO3NCQUFoQixLQUFLO2dCQVdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBVUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdCxcclxuICBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RlcEV4ZWN1dG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RlcC1leGVjdXRvci9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgdGhhdCBhbGxvd3MgdXMgdG8gY3JlYXRlIGEgY29udGVudCBwYWdlIC0gYSBzdGVwIGluIG91ciBleGVjdXRvci5cclxuICogRWFjaCBpbmRpdmlkdWFsIHN0ZXAgY2FuIGhhdmUgZGlmZmVyZW50IHN0eWxlcywgY29udGVudCBhbmQgc2V0dGluZ3MuXHJcbiAqXHJcbiAqIEV4YW1wbGUgb2YgdXNhZ2U6XHJcbiAqXHJcbiAqIGBgYFxyXG4gKiAgPG1lZmRldi1leGVjdXRvci1wYWdlXHJcbiAqICAgICBbdGl0bGVdPVwiJ0V4ZWN1dG9yIHRpdGxlIDEnXCJcclxuICogICAgIFtpc0FjdGl2ZV09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA9PT0gMFwiXHJcbiAqICAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMFwiXHJcbiAqICAgICBjbGFzcz1cInlvdXJDbGFzc1wiPlxyXG4gKiAgICAgIDwhLS0gQ29udGVudCBvZiB0aGUgZmlyc3QgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgIFt0aXRsZV09XCInRXhlY3V0b3IgdGl0bGUgMidcIlxyXG4gKiAgICAgW2lzQWN0aXZlXT1cIm1haW5FeGVjdXRvci5hY3RpdmVQYWdlSW5kID09PSAxXCJcclxuICogICAgIFtpc0NvbXBsZXRlZF09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA+PSAxXCJcclxuICogICAgIGNsYXNzPVwieW91ckNsYXNzXCI+XHJcbiAqICAgICAgPCEtLSBDb250ZW50IG9mIHRoZSBzZWNvbmQgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgIFt0aXRsZV09XCInRXhlY3V0b3IgdGl0bGUgMydcIlxyXG4gKiAgICAgW2lzQWN0aXZlXT1cIm1haW5FeGVjdXRvci5hY3RpdmVQYWdlSW5kID09PSAyXCJcclxuICogICAgIFtpc0NvbXBsZXRlZF09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA+PSAyXCJcclxuICogICAgIGNsYXNzPVwieW91ckNsYXNzXCI+XHJcbiAqICAgICAgPCEtLSBDb250ZW50IG9mIHRoZSB0aGlyZCBleGVjdXRvciBzdGVwIC0tPlxyXG4gKiAgPC9tZWZkZXYtZXhlY3V0b3ItcGFnZT5cclxuICogYGBgXHJcbiAqXHJcbiAgKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LWV4ZWN1dG9yLXBhZ2UnLFxyXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBzdGVwXHJcbiAgICogQHVzYWdlTm90ZXNcclxuICAgKiBgYGBcclxuICAgKiAgPG1lZmRldi1leGVjdXRvci1wYWdlIFt0aXRsZV09XCInRGVzY3JpcHRpb24gb2Ygc2l0dWF0aW9uIDEnXCI+PC9tZWZkZXYtZXhlY3V0b3ItcGFnZT5cclxuICAgKiBgYGBcclxuICAgKi9cclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgaW5wdXQgcGFyYW1ldGVyIHRoYXQgY29ycmVzcG9uZHMgdG8gd2hldGhlciB0aGUgY3VycmVudCBzdGVwIG1hdGNoZXMgdGhlIHJlc3BlY3RpdmUgcGFnZS5cclxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGFjdGl2ZSBwYWdlIGlzIHBhc3NlZCBieSByZWZlcmVuY2UgZnJvbSB0aGUgc3BlY2lmaWMgY29tcG9uZW50IFN0ZXBFeGVjdXRvckNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEB1c2FnZU5vdGVzXHJcbiAgICogYGBgXHJcbiAgICogIDxtZWZkZXYtc3RlcC1leGVjdXRvciAjbWFpbkV4ZWN1dG9yPlxyXG4gICAqICAgIDxtZWZkZXYtZXhlY3V0b3ItcGFnZSBbaXNBY3RpdmVdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPT09IDBcIj5cclxuICAgKiAgICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2UgW2lzQWN0aXZlXT1cIm1haW5FeGVjdXRvci5hY3RpdmVQYWdlSW5kID09PSAxXCI+XHJcbiAgICogICAgPG1lZmRldi1leGVjdXRvci1wYWdlIFtpc0FjdGl2ZV09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA9PT0gMlwiPlxyXG4gICAqICA8LzxtZWZkZXYtc3RlcC1leGVjdXRvcj5cclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBUaGUgaW5wdXQgcGFyYW1ldGVyIHRoYXQgY2hlY2tzIHdoZXRoZXIgdGhlIHN0ZXAgaXMgY29tcGxldGVkLlxyXG4gICAqXHJcbiAgICogQHVzYWdlTm90ZXNcclxuICAgKiBgYGBcclxuICAgKiAgPG1lZmRldi1leGVjdXRvci1wYWdlIFtpc0NvbXBsZXRlZF09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA+PSAwXCI+PC9tZWZkZXYtZXhlY3V0b3ItcGFnZT5cclxuICAgKiBgYGBcclxuICAgKi9cclxuICBASW5wdXQoKSBpc0NvbXBsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgb3V0cHV0IHBhcmFtZXRlciB0aGF0IGVtaXRzIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgb3VyIGNvbXBsZXRlZCBzdGVwIGhhcyBjaGFuZ2VkLlxyXG4gICAqXHJcbiAgICogQHVzYWdlTm90ZXNcclxuICAgKiBgYGBcclxuICAgKiAgPG1lZmRldi1leGVjdXRvci1wYWdlIChpc0NvbXBsZXRlZENoYW5nZSk9XCJvblN0ZXBDaGFuZ2VkKCRldmVudClcIj48L21lZmRldi1leGVjdXRvci1wYWdlPlxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBpc0NvbXBsZXRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgICBASG9zdCgpIHByaXZhdGUgX21haW5FeGVjdXRvcjogU3RlcEV4ZWN1dG9yQ29tcG9uZW50LFxyXG4gICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmVsUmVmID0gX2VsZW1lbnRSZWY7XHJcbiAgICBfbWFpbkV4ZWN1dG9yLnBhZ2VzLnB1c2godGhpcyk7XHJcbiAgICBpZiAoX21haW5FeGVjdXRvci5hY3RpdmVQYWdlSW5kID09IC0xKSB7XHJcbiAgICAgIF9tYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLmlzQ29tcGxldGVkQ2hhbmdlLmVtaXQoY2hhbmdlc1snaXNDb21wbGV0ZWQnXT8uY3VycmVudFZhbHVlKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
@@ -1,6 +1,9 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
+ /**
5
+ * @ignore
6
+ */
4
7
  export class StageComponent {
5
8
  currentExecutorStep;
6
9
  isRightModal;
@@ -21,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
21
24
  }], title: [{
22
25
  type: Input
23
26
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL21hcmt1cC1raXQvZXhlY3V0b3JzL3N0YWdlL3N0YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGFnZS9zdGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWpELE1BQU0sT0FBTyxjQUFjO0lBRWhCLG1CQUFtQixDQUFTO0lBQzVCLFlBQVksQ0FBVTtJQUN0QixXQUFXLENBQVU7SUFDckIsS0FBSyxDQUFTO3VHQUxaLGNBQWM7MkZBQWQsY0FBYyxzTENSM0IseXNDQXVCQTs7MkZEZmEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxjQUFjOzhCQU9mLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtZWZkZXYtc3RhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZ2UuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGFnZUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGN1cnJlbnRFeGVjdXRvclN0ZXA6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc1JpZ2h0TW9kYWw6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNDb21wbGV0ZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN0ZXBcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNDb21wbGV0ZWQgZWxzZSBkb25lXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgW25nU3R5bGVdPVwiaXNSaWdodE1vZGFsID8geyAnZmlsbCc6ICcjRkZGRkZGJyB9IDogeyAnZmlsbCc6ICcjRjNGM0YzJyB9XCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiMThcIiAvPlxyXG4gICAgICAgICAgICA8dGV4dCBjbGFzcz1cImJvZHktM1wiIHg9XCI1MCVcIiB5PVwiNTAlXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIiB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiIGZvbnQtc2l6ZT1cIjE2XCIgZmlsbD1cImJsYWNrXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBjdXJyZW50RXhlY3V0b3JTdGVwIH19XHJcbiAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keS02IGRlc2NyaXB0aW9uU3RlcFRleHRcIiAqbmdJZj1cIiFpc1JpZ2h0TW9kYWxcIj5cclxuICAgICAgICAgICAge3sgdGl0bGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNkb25lPlxyXG4gICAgPHN2ZyB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjE3LjVcIiBzdHJva2U9XCIjOTI5MjkyXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNMjQuNzM3MyAxMEwxNC41NDY2IDIwLjM3NjlMMTEuMjQxNSAxNy4wMTE0TDggMjAuMzEyMkwxMS4zMDUxIDIzLjY3NzdMMTQuNTY3OCAyN0wxNy44MDkzIDIzLjY5OTJMMjggMTMuMzIyNEwyNC43MzczIDEwWlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiMyOEI0NDZcIi8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuIGNsYXNzPVwiYm9keS02IGRlc2NyaXB0aW9uU3RlcFRleHRcIiAqbmdJZj1cIiFpc1JpZ2h0TW9kYWxcIj5cclxuICAgICAgICB7eyB0aXRsZSB9fVxyXG4gICAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL21hcmt1cC1raXQvZXhlY3V0b3JzL3N0YWdlL3N0YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGFnZS9zdGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLGNBQWM7SUFFaEIsbUJBQW1CLENBQVM7SUFDNUIsWUFBWSxDQUFVO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixLQUFLLENBQVM7dUdBTFosY0FBYzsyRkFBZCxjQUFjLHNMQ1ozQix5c0NBdUJBOzsyRkRYYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLGNBQWM7OEJBT2YsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LXN0YWdlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0YWdlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3RhZ2VDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBjdXJyZW50RXhlY3V0b3JTdGVwOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaXNSaWdodE1vZGFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzQ29tcGxldGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdGVwXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ29tcGxldGVkIGVsc2UgZG9uZVwiPlxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIFtuZ1N0eWxlXT1cImlzUmlnaHRNb2RhbCA/IHsgJ2ZpbGwnOiAnI0ZGRkZGRicgfSA6IHsgJ2ZpbGwnOiAnI0YzRjNGMycgfVwiPlxyXG4gICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjE4XCIgLz5cclxuICAgICAgICAgICAgPHRleHQgY2xhc3M9XCJib2R5LTNcIiB4PVwiNTAlXCIgeT1cIjUwJVwiIGRvbWluYW50LWJhc2VsaW5lPVwibWlkZGxlXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBmb250LXNpemU9XCIxNlwiIGZpbGw9XCJibGFja1wiPlxyXG4gICAgICAgICAgICAgICAge3sgY3VycmVudEV4ZWN1dG9yU3RlcCB9fVxyXG4gICAgICAgICAgICA8L3RleHQ+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvZHktNiBkZXNjcmlwdGlvblN0ZXBUZXh0XCIgKm5nSWY9XCIhaXNSaWdodE1vZGFsXCI+XHJcbiAgICAgICAgICAgIHt7IHRpdGxlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjZG9uZT5cclxuICAgIDxzdmcgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCIxNy41XCIgc3Ryb2tlPVwiIzkyOTI5MlwiLz5cclxuICAgICAgICA8cGF0aCBkPVwiTTI0LjczNzMgMTBMMTQuNTQ2NiAyMC4zNzY5TDExLjI0MTUgMTcuMDExNEw4IDIwLjMxMjJMMTEuMzA1MSAyMy42Nzc3TDE0LjU2NzggMjdMMTcuODA5MyAyMy42OTkyTDI4IDEzLjMyMjRMMjQuNzM3MyAxMFpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjhCNDQ2XCIvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3BhbiBjbGFzcz1cImJvZHktNiBkZXNjcmlwdGlvblN0ZXBUZXh0XCIgKm5nSWY9XCIhaXNSaWdodE1vZGFsXCI+XHJcbiAgICAgICAge3sgdGl0bGUgfX1cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -2,13 +2,104 @@ import { Component, ContentChild, EventEmitter, Input, Output, ViewChild } from
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "../stage/stage.component";
5
+ /**
6
+ * Wrapper component that represents a specific encapsulated executor.
7
+ *
8
+ * Example of usage:
9
+ *```
10
+ * <mefdev-step-executor #mainExecutor [view]="'regular'">
11
+ *
12
+ * <ng-template #title>
13
+ * <!-- Content for the executor title -->
14
+ * </ng-template>
15
+ * <ng-template #description>
16
+ * <!-- Content for the executor description -->
17
+ * </ng-template>
18
+ *
19
+ * <mefdev-executor-page
20
+ * [title]="'Description of situation 1'"
21
+ * [isActive]="mainExecutor.activePageInd === 0"
22
+ * [isCompleted]="mainExecutor.activePageInd >= 0">
23
+ * <!-- Content of the first executor step -->
24
+ * </mefdev-executor-page>
25
+ * <mefdev-executor-page
26
+ * [title]="'Description of situation 2'"
27
+ * [isActive]="mainExecutor.activePageInd === 1"
28
+ * [isCompleted]="mainExecutor.activePageInd >= 1">
29
+ * <!-- Content of the second executor step -->
30
+ * </mefdev-executor-page>
31
+ * <mefdev-executor-page
32
+ * [title]="'Description of situation 3'"
33
+ * [isActive]="mainExecutor.activePageInd === 2"
34
+ * [isCompleted]="mainExecutor.activePageInd >= 2">
35
+ * <!-- Content of the third executor step -->
36
+ * </mefdev-executor-page>
37
+ *
38
+ * <ng-template #footer>
39
+ * <!-- Content for the executor footer -->
40
+ * <ng-template>
41
+ *
42
+ * </mefdev-step-executor>
43
+ *
44
+ *```
45
+ */
5
46
  export class StepExecutorComponent {
6
47
  renderer;
48
+ /**
49
+ * Mandatory input parameter that specifies the type of the step-by-step wizard.
50
+ * It can have three options: regular, modal, right.
51
+ *
52
+ * @usageNotes
53
+ * ```
54
+ * <mefdev-step-executor #mainExecutor [view]="'regular'"></mefdev-step-executor>
55
+ * ```
56
+ */
7
57
  view;
58
+ /**
59
+ * ViewChild reference to the host executor content.
60
+ */
8
61
  container;
62
+ /**
63
+ * Template for displaying the content of the executor title.
64
+ *
65
+ * @usageNotes
66
+ * ```
67
+ * <ng-template #title>
68
+ * <!-- Content for the executor title -->
69
+ * </ng-template>
70
+ * ```
71
+ */
9
72
  title;
73
+ /**
74
+ * Template for displaying the content of the executor description.
75
+ *
76
+ * @usageNotes
77
+ * ```
78
+ * <ng-template #description>
79
+ * <!-- Content for the executor description -->
80
+ * </ng-template>
81
+ * ```
82
+ */
10
83
  description;
84
+ /**
85
+ * Template for displaying the content of the executor footer.
86
+ *
87
+ * @usageNotes
88
+ * ```
89
+ * <ng-template #footer>
90
+ * <!-- Content for the executor footer -->
91
+ * </ng-template>
92
+ * ```
93
+ */
11
94
  footer;
95
+ /**
96
+ * The output parameter that emits the class of the active page - active step.
97
+ *
98
+ * @usageNotes
99
+ * ```
100
+ * <mefdev-step-executor #mainExecutor (onActivePageChange)="getActiveStep($event)"></mefdev-step-executor>
101
+ * ```
102
+ */
12
103
  onActivePageChange = new EventEmitter();
13
104
  _activePageInd = 0;
14
105
  pages = [];
@@ -35,15 +126,24 @@ export class StepExecutorComponent {
35
126
  this.renderer.appendChild(this.container.nativeElement, this.activePage?.elRef.nativeElement);
36
127
  this.onActivePageChange.emit(this.pages.find((el) => el.isActive));
37
128
  }
129
+ /**
130
+ * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button
131
+ */
38
132
  nextBtnIsDisabled() {
39
133
  return this._activePageInd === this.pages.length - 1;
40
134
  }
135
+ /**
136
+ * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button
137
+ */
41
138
  prev() {
42
139
  const newPageInd = this.activePageInd - 1;
43
140
  if (newPageInd >= 0) {
44
141
  this.activePageInd = newPageInd;
45
142
  }
46
143
  }
144
+ /**
145
+ * Go back to the previous step
146
+ */
47
147
  cancel() {
48
148
  this.activePageInd = 0;
49
149
  const newPageInd = this.activePageInd - 1;
@@ -51,21 +151,33 @@ export class StepExecutorComponent {
51
151
  this.activePageInd = newPageInd;
52
152
  }
53
153
  }
154
+ /**
155
+ * Go to the next step
156
+ */
54
157
  next() {
55
158
  const newPageInd = this.activePageInd + 1;
56
159
  if (newPageInd < this.pages.length) {
57
160
  this.activePageInd = newPageInd;
58
161
  }
59
162
  }
163
+ /**
164
+ * Set a specific active page
165
+ */
60
166
  setActivePage(pageNumber) {
61
167
  pageNumber -= 1;
62
168
  if (pageNumber < this.pages.length && pageNumber >= 0) {
63
169
  this.activePageInd = pageNumber;
64
170
  }
65
171
  }
172
+ /**
173
+ * Add new page
174
+ */
66
175
  addPage(page) {
67
176
  this.pages.push(page);
68
177
  }
178
+ /**
179
+ * Delete a specific page
180
+ */
69
181
  removeSpecificPage(page) {
70
182
  const index = this.pages.indexOf(page);
71
183
  if (index !== -1) {
@@ -75,6 +187,9 @@ export class StepExecutorComponent {
75
187
  }
76
188
  }
77
189
  }
190
+ /**
191
+ * Delete a page by its index
192
+ */
78
193
  removePageByIndex(index) {
79
194
  if (index >= 0 && index < this.pages.length) {
80
195
  this.pages.splice(index, 1);
@@ -107,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
107
222
  }], onActivePageChange: [{
108
223
  type: Output
109
224
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9leGVjdXRvcnMvc3RlcC1leGVjdXRvci9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGVwLWV4ZWN1dG9yL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNZLFNBQVMsRUFDeEIsWUFBWSxFQUNaLFlBQVksRUFBRSxLQUFLLEVBQ25CLE1BQU0sRUFDTyxTQUFTLEVBQ3pCLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3ZCLE1BQU0sT0FBTyxxQkFBcUI7SUFZVjtJQVZLLElBQUksQ0FBUztJQUNkLFNBQVMsQ0FBMEI7SUFDcEMsS0FBSyxDQUFvQjtJQUNuQixXQUFXLENBQW9CO0lBQ3BDLE1BQU0sQ0FBb0I7SUFDeEMsa0JBQWtCLEdBQThDLElBQUksWUFBWSxFQUErQixDQUFDO0lBRW5ILGNBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsS0FBSyxHQUFrQyxFQUFFLENBQUM7SUFFakQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFFM0MsSUFBVyxhQUFhLENBQUMsZ0JBQXdCO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7UUFDdkMsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNB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LENBQUMsSUFBSSxFQUFFLENBQUM7YUFDZjtTQUNKO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2Y7U0FDSjtJQUVMLENBQUM7dUdBN0ZRLHFCQUFxQjsyRkFBckIscUJBQXFCLGlnQkNmbEMsK2hKQXVIQTs7MkZEeEdhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxzQkFBc0I7Z0dBT1AsSUFBSTtzQkFBNUIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ0MsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNDLEtBQUs7c0JBQTNCLFlBQVk7dUJBQUMsT0FBTztnQkFDUSxXQUFXO3NCQUF2QyxZQUFZO3VCQUFDLGFBQWE7Z0JBQ0gsTUFBTTtzQkFBN0IsWUFBWTt1QkFBQyxRQUFRO2dCQUNaLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsIElucHV0LFxyXG4gICAgT3V0cHV0LCBSZW5kZXJlcjIsXHJcbiAgICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uL21lZmRldi1leGVjdXRvci1wYWdlL21lZmRldi1leGVjdXRvci1wYWdlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbWVmZGV2LXN0ZXAtZXhlY3V0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RlcC1leGVjdXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3RlcEV4ZWN1dG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHZpZXc6IHN0cmluZztcclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgICBAQ29udGVudENoaWxkKCd0aXRsZScpIHRpdGxlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICAgIEBDb250ZW50Q2hpbGQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb246IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gICAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJykgZm9vdGVyOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICAgIEBPdXRwdXQoKSBvbkFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQ+KCk7XHJcblxyXG4gICAgcHVibGljIF9hY3RpdmVQYWdlSW5kOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHBhZ2VzOiBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2ZVBhZ2VJbmQoYWN0aXZlUGFnZU51bWJlcjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFnZUluZCA9IGFjdGl2ZVBhZ2VOdW1iZXI7XHJcbiAgICAgICAgaWYgKGFjdGl2ZVBhZ2VOdW1iZXIgPj0gMCAmJiB0aGlzLmNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmFjdGl2ZVBhZ2U/LmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQWN0aXZlUGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZXMuZmluZCgoZWw6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCkgPT4gZWwuaXNBY3RpdmUpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3RpdmVQYWdlSW5kKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhZ2VJbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFjdGl2ZVBhZ2UoKTogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGFnZUluZCA9PSAtMSA/IG51bGwgOiB0aGlzLnBhZ2VzW3RoaXMuYWN0aXZlUGFnZUluZF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5hY3RpdmVQYWdlPy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB0aGlzLm9uQWN0aXZlUGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZXMuZmluZCgoZWw6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCkgPT4gZWwuaXNBY3RpdmUpKTtcclxuICAgIH1cclxuXHJcbiAgICBuZXh0QnRuSXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGFnZUluZCA9PT0gdGhpcy5wYWdlcy5sZW5ndGggLSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHByZXYoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbmV3UGFnZUluZCA9IHRoaXMuYWN0aXZlUGFnZUluZCAtIDE7XHJcbiAgICAgICAgaWYgKG5ld1BhZ2VJbmQgPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBuZXdQYWdlSW5kO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gMDtcclxuICAgICAgICBjb25zdCBuZXdQYWdlSW5kID0gdGhpcy5hY3RpdmVQYWdlSW5kIC0gMTtcclxuICAgICAgICBpZiAobmV3UGFnZUluZCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZCA9IG5ld1BhZ2VJbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5leHQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbmV3UGFnZUluZCA9IHRoaXMuYWN0aXZlUGFnZUluZCArIDE7XHJcbiAgICAgICAgaWYgKG5ld1BhZ2VJbmQgPCB0aGlzLnBhZ2VzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBuZXdQYWdlSW5kO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHBhZ2VOdW1iZXIgLT0gMTtcclxuICAgICAgICBpZiAocGFnZU51bWJlciA8IHRoaXMucGFnZXMubGVuZ3RoICYmIHBhZ2VOdW1iZXIgPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBwYWdlTnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRQYWdlKHBhZ2U6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucGFnZXMucHVzaChwYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVTcGVjaWZpY1BhZ2UocGFnZTogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMucGFnZXMuaW5kZXhPZihwYWdlKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVBhZ2VJbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVBhZ2VCeUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucGFnZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVBhZ2VJbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG59XHJcbiIsIjwhLS12aWV3ID09IHJlZ3VsYXItLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJzdGVwRXhlY3V0b3JCbG9ja1wiICpuZ0lmPVwidmlldyA9PT0gJ3JlZ3VsYXInXCI+XHJcbiAgPGhlYWRlciBjbGFzcz1cInN0ZXBFeGVjdXRvckhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXBFeGVjdXRvckhlYWRlclRleHRcIj5cclxuICAgICAgPGgxIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvaDE+XHJcbiAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdGVwc1wiPlxyXG4gICAgICA8bWVmZGV2LXN0YWdlICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgcGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1JpZ2h0TW9kYWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwYWdlLnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VycmVudEV4ZWN1dG9yU3RlcF09XCJwYWdlSW5kZXggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNDb21wbGV0ZWRdPVwicGFnZS5pc0NvbXBsZXRlZFwiPlxyXG4gICAgICA8L21lZmRldi1zdGFnZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiYWN0aXZlUGFnZVwiIGNsYXNzPVwiZXhlY3V0b3JDaGFuZ2VDb250ZW50XCI+XHJcbiAgICA8ZGl2ICNjb250YWluZXI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb290ZXJCdXR0b25zXCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48IS0tdmlldyA9PSBtb2RhbC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsU3RlcEV4ZWN1dG9yXCIgKm5nSWY9XCJ2aWV3ID09PSAnbW9kYWwnXCI+XHJcblxyXG4gIDxoZWFkZXIgY2xhc3M9XCJtb2RhbEhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlck1vZGFsVGV4dFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dEFuZENsb3NlQnV0dG9uXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2gxPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJjbG9zZUJ0blwiPlxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgdmlld0JveD1cIjAgMCAxNSAxNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuMjY3MzUgNy42ODEzNUwwLjYxMDM1MiAyLjAyNDM1TDIuMDI0MzUgMC42MTAzNTJMNy42ODEzNSA2LjI2NzM1TDEzLjMzODQgMC42MTAzNTJMMTQuNzUyNCAyLjAyNDM1TDkuMDk1MzUgNy42ODEzNUwxNC43NTI0IDEzLjMzODRMMTMuMzM4NCAxNC43NTI0TDcuNjgxMzUgOS4wOTUzNUwyLjAyNDM1IDE0Ljc1MjRMMC42MTAzNTIgMTMuMzM4NEw2LjI2NzM1IDcuNjgxMzVaXCIgZmlsbD1cIiM0RDRENERcIi8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvYXJ0aWNsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsU3RlcHNcIj5cclxuICAgICAgPG1lZmRldi1zdGFnZSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgbGV0IHBhZ2VJbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNSaWdodE1vZGFsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGFnZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRFeGVjdXRvclN0ZXBdPVwicGFnZUluZGV4ICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzQ29tcGxldGVkXT1cInBhZ2UuaXNDb21wbGV0ZWRcIj5cclxuICAgICAgPC9tZWZkZXYtc3RhZ2U+XHJcbiAgICA8L2Rpdj5cclxuICA8L2hlYWRlcj5cclxuXHJcbiAgPG1haW4gKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJtb2RhbEV4ZWN1dG9yTWFpbkNvbnRlbnRcIj5cclxuICAgIDxkaXYgI2NvbnRhaW5lcj48L2Rpdj5cclxuICA8L21haW4+XHJcblxyXG4gIDxmb290ZXIgY2xhc3M9XCJtb2RhbEZvb3RlclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Zvb3Rlcj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPCEtLXZpZXcgPT0gcmlnaHQtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJyaWdodEV4ZWN1dG9yQmxvY2tcIiAqbmdJZj1cInZpZXcgPT09ICdyaWdodCdcIj5cclxuXHJcbiAgPGhlYWRlciBjbGFzcz1cInJpZ2h0RXhlY3V0b3JIZWFkZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodEV4ZWN1dG9yVGV4dEFuZENsb3NlQnV0dG9uXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS0xXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjbG9zZUJ1dHRvblwiPlxyXG4gICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTcgMTdcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTYuMDU2NiAxLjU5OTcxTDE0LjY1NjYgMC4xOTk3MDdMOC4wNTY2NCA2Ljc5OTcxTDEuNDU2NjQgMC4xOTk3MDdMMC4wNTY2NDA2IDEuNTk5NzFMNi42NTY2NCA4LjE5OTcxTDAuMDU2NjQwNiAxNC43OTk3TDEuNDU2NjQgMTYuMTk5N0w4LjA1NjY0IDkuNTk5NzFMMTQuNjU2NiAxNi4xOTk3TDE2LjA1NjYgMTQuNzk5N0w5LjQ1NjY0IDguMTk5NzFMMTYuMDU2NiAxLjU5OTcxWlwiIGZpbGw9XCIjNTI1MjUyXCIvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibGluZVwiPlxyXG4gICAgPHN2ZyB3aWR0aD1cIjM2M1wiIGhlaWdodD1cIjFcIiB2aWV3Qm94PVwiMCAwIDM2MyAxXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxsaW5lIHgxPVwiLTQuMzcxMTRlLTA4XCIgeTE9XCIwLjVcIiB4Mj1cIjM2Mi42NzRcIiB5Mj1cIjAuNDk5OTY4XCIgc3Ryb2tlPVwiIzRENEQ0RFwiLz5cclxuICAgIDwvc3ZnPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudEV4ZWN1dG9yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRDaGFuZ2VDb250ZW50XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJleGVjdXRvckNoYW5nZUNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2ICNjb250YWluZXI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRTdGVwc1wiPlxyXG4gICAgICAgIDxtZWZkZXYtc3RhZ2UgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXM7IGxldCBwYWdlSW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaXNSaWdodE1vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInBhZ2UudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRFeGVjdXRvclN0ZXBdPVwicGFnZUluZGV4ICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaXNDb21wbGV0ZWRdPVwicGFnZS5pc0NvbXBsZXRlZFwiPlxyXG4gICAgICAgIDwvbWVmZGV2LXN0YWdlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJyaWdodEZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mb290ZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuIl19
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9leGVjdXRvcnMvc3RlcC1leGVjdXRvci9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGVwLWV4ZWN1dG9yL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNZLFNBQVMsRUFDeEIsWUFBWSxFQUNaLFlBQVksRUFBRSxLQUFLLEVBQ25CLE1BQU0sRUFDTyxTQUFTLEVBQ3pCLE1BQU0sZUFBZSxDQUFDOzs7O0FBR3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQXFFVjtJQW5FcEI7Ozs7Ozs7O09BUUc7SUFDc0IsSUFBSSxDQUFTO0lBR3RDOztPQUVHO0lBQ3FCLFNBQVMsQ0FBMEI7SUFFM0Q7Ozs7Ozs7OztPQVNHO0lBQ29CLEtBQUssQ0FBb0I7SUFFaEQ7Ozs7Ozs7OztPQVNHO0lBQzBCLFdBQVcsQ0FBb0I7SUFHNUQ7Ozs7Ozs7OztPQVNHO0lBQ3FCLE1BQU0sQ0FBb0I7SUFFbEQ7Ozs7Ozs7T0FPRztJQUNPLGtCQUFrQixHQUE4QyxJQUFJLFlBQVksRUFBK0IsQ0FBQztJQUVuSCxjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBQzNCLEtBQUssR0FBa0MsRUFBRSxDQUFDO0lBRWpELFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7SUFBRyxDQUFDO0lBRTNDLElBQVcsYUFBYSxDQUFDLGdCQUF3QjtRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGdCQUFnQixD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ICAgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLCBJbnB1dCxcclxuICAgIE91dHB1dCwgUmVuZGVyZXIyLFxyXG4gICAgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9tZWZkZXYtZXhlY3V0b3ItcGFnZS9tZWZkZXYtZXhlY3V0b3ItcGFnZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIHNwZWNpZmljIGVuY2Fwc3VsYXRlZCBleGVjdXRvci5cclxuICpcclxuICogRXhhbXBsZSBvZiB1c2FnZTpcclxuICpgYGBcclxuICogPG1lZmRldi1zdGVwLWV4ZWN1dG9yICNtYWluRXhlY3V0b3IgW3ZpZXddPVwiJ3JlZ3VsYXInXCI+XHJcbiAqXHJcbiAqICA8bmctdGVtcGxhdGUgI3RpdGxlPlxyXG4gKiAgICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciB0aXRsZSAtLT5cclxuICogIDwvbmctdGVtcGxhdGU+XHJcbiAqICA8bmctdGVtcGxhdGUgI2Rlc2NyaXB0aW9uPlxyXG4gKiAgICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciBkZXNjcmlwdGlvbiAtLT5cclxuICogIDwvbmctdGVtcGxhdGU+XHJcbiAqXHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgIFt0aXRsZV09XCInRGVzY3JpcHRpb24gb2Ygc2l0dWF0aW9uIDEnXCJcclxuICogICAgIFtpc0FjdGl2ZV09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA9PT0gMFwiXHJcbiAqICAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMFwiPlxyXG4gKiAgICAgIDwhLS0gQ29udGVudCBvZiB0aGUgZmlyc3QgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgW3RpdGxlXT1cIidEZXNjcmlwdGlvbiBvZiBzaXR1YXRpb24gMidcIlxyXG4gKiAgICBbaXNBY3RpdmVdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPT09IDFcIlxyXG4gKiAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMVwiPlxyXG4gKiAgICAgPCEtLSBDb250ZW50IG9mIHRoZSBzZWNvbmQgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgW3RpdGxlXT1cIidEZXNjcmlwdGlvbiBvZiBzaXR1YXRpb24gMydcIlxyXG4gKiAgICBbaXNBY3RpdmVdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPT09IDJcIlxyXG4gKiAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMlwiPlxyXG4gKiAgICAgIDwhLS0gQ29udGVudCBvZiB0aGUgdGhpcmQgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqXHJcbiAqICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cclxuICogICAgPCEtLSBDb250ZW50IGZvciB0aGUgZXhlY3V0b3IgZm9vdGVyIC0tPlxyXG4gKiAgPG5nLXRlbXBsYXRlPlxyXG4gKlxyXG4gKiA8L21lZmRldi1zdGVwLWV4ZWN1dG9yPlxyXG4gKlxyXG4gKmBgYFxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdtZWZkZXYtc3RlcC1leGVjdXRvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1leGVjdXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGVwRXhlY3V0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hbmRhdG9yeSBpbnB1dCBwYXJhbWV0ZXIgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgdGhlIHN0ZXAtYnktc3RlcCB3aXphcmQuXHJcbiAgICAgKiBJdCBjYW4gaGF2ZSB0aHJlZSBvcHRpb25zOiByZWd1bGFyLCBtb2RhbCwgcmlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQHVzYWdlTm90ZXNcclxuICAgICAqIGBgYFxyXG4gICAgICogIDxtZWZkZXYtc3RlcC1leGVjdXRvciAjbWFpbkV4ZWN1dG9yIFt2aWV3XT1cIidyZWd1bGFyJ1wiPjwvbWVmZGV2LXN0ZXAtZXhlY3V0b3I+XHJcbiAgICAgKiBgYGBcclxuICAgICAqL1xyXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHZpZXc6IHN0cmluZztcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWaWV3Q2hpbGQgcmVmZXJlbmNlIHRvIHRoZSBob3N0IGV4ZWN1dG9yIGNvbnRlbnQuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgY29udGVudCBvZiB0aGUgZXhlY3V0b3IgdGl0bGUuXHJcbiAgICAgKlxyXG4gICAgICogQHVzYWdlTm90ZXNcclxuICAgICAqIGBgYFxyXG4gICAgICogPG5nLXRlbXBsYXRlICN0aXRsZT5cclxuICAgICAqICAgPCEtLSBDb250ZW50IGZvciB0aGUgZXhlY3V0b3IgdGl0bGUgLS0+XHJcbiAgICAgKiA8L25nLXRlbXBsYXRlPlxyXG4gICAgICogYGBgXHJcbiAgICAgKi9cclxuICAgIEBDb250ZW50Q2hpbGQoJ3RpdGxlJykgdGl0bGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIGV4ZWN1dG9yIGRlc2NyaXB0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEB1c2FnZU5vdGVzXHJcbiAgICAgKiBgYGBcclxuICAgICAqIDxuZy10ZW1wbGF0ZSAjZGVzY3JpcHRpb24+XHJcbiAgICAgKiAgPCEtLSBDb250ZW50IGZvciB0aGUgZXhlY3V0b3IgZGVzY3JpcHRpb24gLS0+XHJcbiAgICAgKiA8L25nLXRlbXBsYXRlPlxyXG4gICAgICogYGBgXHJcbiAgICAgKi9cclxuICAgIEBDb250ZW50Q2hpbGQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb246IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBjb250ZW50IG9mIHRoZSBleGVjdXRvciBmb290ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHVzYWdlTm90ZXNcclxuICAgICAqIGBgYFxyXG4gICAgICogPG5nLXRlbXBsYXRlICNmb290ZXI+XHJcbiAgICAgKiAgICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciBmb290ZXIgLS0+XHJcbiAgICAgKiA8L25nLXRlbXBsYXRlPlxyXG4gICAgICogYGBgXHJcbiAgICAgKi9cclxuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicpIGZvb3RlcjogVGVtcGxhdGVSZWY8dm9pZD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgb3V0cHV0IHBhcmFtZXRlciB0aGF0IGVtaXRzIHRoZSBjbGFzcyBvZiB0aGUgYWN0aXZlIHBhZ2UgLSBhY3RpdmUgc3RlcC5cclxuICAgICAqXHJcbiAgICAgKiBAdXNhZ2VOb3Rlc1xyXG4gICAgICogYGBgXHJcbiAgICAgKiAgPG1lZmRldi1zdGVwLWV4ZWN1dG9yICNtYWluRXhlY3V0b3IgKG9uQWN0aXZlUGFnZUNoYW5nZSk9XCJnZXRBY3RpdmVTdGVwKCRldmVudClcIj48L21lZmRldi1zdGVwLWV4ZWN1dG9yPlxyXG4gICAgICogYGBgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQ+KCk7XHJcblxyXG4gICAgcHVibGljIF9hY3RpdmVQYWdlSW5kOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHBhZ2VzOiBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2ZVBhZ2VJbmQoYWN0aXZlUGFnZU51bWJlcjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFnZUluZCA9IGFjdGl2ZVBhZ2VOdW1iZXI7XHJcbiAgICAgICAgaWYgKGFjdGl2ZVBhZ2VOdW1iZXIgPj0gMCAmJiB0aGlzLmNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmFjdGl2ZVBhZ2U/LmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQWN0aXZlUGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZXMuZmluZCgoZWw6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCkgPT4gZWwuaXNBY3RpdmUpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3RpdmVQYWdlSW5kKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhZ2VJbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFjdGl2ZVBhZ2UoKTogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGFnZUluZCA9PSAtMSA/IG51bGwgOiB0aGlzLnBhZ2VzW3RoaXMuYWN0aXZlUGFnZUluZF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5hY3RpdmVQYWdlPy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB0aGlzLm9uQWN0aXZlUGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZXMuZmluZCgoZWw6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCkgPT4gZWwuaXNBY3RpdmUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHN0ZXAgb2YgdGhlIGV4ZWN1dG9yLiBJZiB3ZSBhcmUgYXQgdGhlIGxhc3Qgc3RlcCAtIGRpc2FibGUgdGhlICduZXh0JyBidXR0b25cclxuICAgICAqL1xyXG4gICAgbmV4dEJ0bklzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhZ2VJbmQgPT09IHRoaXMucGFnZXMubGVuZ3RoIC0gMTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHN0ZXAgb2YgdGhlIGV4ZWN1dG9yLiBJZiB3ZSBhcmUgYXQgdGhlIGxhc3Qgc3RlcCAtIGRpc2FibGUgdGhlICduZXh0JyBidXR0b25cclxuICAgICAqL1xyXG4gICAgcHJldigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXdQYWdlSW5kID0gdGhpcy5hY3RpdmVQYWdlSW5kIC0gMTtcclxuICAgICAgICBpZiAobmV3UGFnZUluZCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZCA9IG5ld1BhZ2VJbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR28gYmFjayB0byB0aGUgcHJldmlvdXMgc3RlcFxyXG4gICAgICovXHJcbiAgICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gMDtcclxuICAgICAgICBjb25zdCBuZXdQYWdlSW5kID0gdGhpcy5hY3RpdmVQYWdlSW5kIC0gMTtcclxuICAgICAgICBpZiAobmV3UGFnZUluZCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZCA9IG5ld1BhZ2VJbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR28gdG8gdGhlIG5leHQgc3RlcFxyXG4gICAgICovXHJcbiAgICBuZXh0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5ld1BhZ2VJbmQgPSB0aGlzLmFjdGl2ZVBhZ2VJbmQgKyAxO1xyXG4gICAgICAgIGlmIChuZXdQYWdlSW5kIDwgdGhpcy5wYWdlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gbmV3UGFnZUluZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGEgc3BlY2lmaWMgYWN0aXZlIHBhZ2VcclxuICAgICAqL1xyXG4gICAgc2V0QWN0aXZlUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBwYWdlTnVtYmVyIC09IDE7XHJcbiAgICAgICAgaWYgKHBhZ2VOdW1iZXIgPCB0aGlzLnBhZ2VzLmxlbmd0aCAmJiBwYWdlTnVtYmVyID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gcGFnZU51bWJlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgbmV3IHBhZ2VcclxuICAgICAqL1xyXG4gICAgYWRkUGFnZShwYWdlOiBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhZ2VzLnB1c2gocGFnZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlIGEgc3BlY2lmaWMgcGFnZVxyXG4gICAgICovXHJcbiAgICByZW1vdmVTcGVjaWZpY1BhZ2UocGFnZTogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMucGFnZXMuaW5kZXhPZihwYWdlKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVBhZ2VJbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlIGEgcGFnZSBieSBpdHMgaW5kZXhcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlUGFnZUJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5wYWdlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuYWN0aXZlUGFnZUluZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuIiwiPCEtLXZpZXcgPT0gcmVndWxhci0tPlxyXG5cclxuPGRpdiBjbGFzcz1cInN0ZXBFeGVjdXRvckJsb2NrXCIgKm5nSWY9XCJ2aWV3ID09PSAncmVndWxhcidcIj5cclxuICA8aGVhZGVyIGNsYXNzPVwic3RlcEV4ZWN1dG9ySGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcEV4ZWN1dG9ySGVhZGVyVGV4dFwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9oMT5cclxuICAgICAgPHAgY2xhc3M9XCJib2R5LTVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXBzXCI+XHJcbiAgICAgIDxtZWZkZXYtc3RhZ2UgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXM7IGxldCBwYWdlSW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmlnaHRNb2RhbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInBhZ2UudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjdXJyZW50RXhlY3V0b3JTdGVwXT1cInBhZ2VJbmRleCArIDFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0NvbXBsZXRlZF09XCJwYWdlLmlzQ29tcGxldGVkXCI+XHJcbiAgICAgIDwvbWVmZGV2LXN0YWdlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJleGVjdXRvckNoYW5nZUNvbnRlbnRcIj5cclxuICAgIDxkaXYgI2NvbnRhaW5lcj48L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvbnNcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS12aWV3ID09IG1vZGFsLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwibW9kYWxTdGVwRXhlY3V0b3JcIiAqbmdJZj1cInZpZXcgPT09ICdtb2RhbCdcIj5cclxuXHJcbiAgPGhlYWRlciBjbGFzcz1cIm1vZGFsSGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyTW9kYWxUZXh0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0QW5kQ2xvc2VCdXR0b25cIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJib2R5LTVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVzY3JpcHRpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImNsb3NlQnRuXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiB2aWV3Qm94PVwiMCAwIDE1IDE1XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNi4yNjczNSA3LjY4MTM1TDAuNjEwMzUyIDIuMDI0MzVMMi4wMjQzNSAwLjYxMDM1Mkw3LjY4MTM1IDYuMjY3MzVMMTMuMzM4NCAwLjYxMDM1MkwxNC43NTI0IDIuMDI0MzVMOS4wOTUzNSA3LjY4MTM1TDE0Ljc1MjQgMTMuMzM4NEwxMy4zMzg0IDE0Ljc1MjRMNy42ODEzNSA5LjA5NTM1TDIuMDI0MzUgMTQuNzUyNEwwLjYxMDM1MiAxMy4zMzg0TDYuMjY3MzUgNy42ODEzNVpcIiBmaWxsPVwiIzRENEQ0RFwiLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9hcnRpY2xlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxTdGVwc1wiPlxyXG4gICAgICA8bWVmZGV2LXN0YWdlICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgcGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1JpZ2h0TW9kYWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwYWdlLnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VycmVudEV4ZWN1dG9yU3RlcF09XCJwYWdlSW5kZXggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNDb21wbGV0ZWRdPVwicGFnZS5pc0NvbXBsZXRlZFwiPlxyXG4gICAgICA8L21lZmRldi1zdGFnZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8bWFpbiAqbmdJZj1cImFjdGl2ZVBhZ2VcIiBjbGFzcz1cIm1vZGFsRXhlY3V0b3JNYWluQ29udGVudFwiPlxyXG4gICAgPGRpdiAjY29udGFpbmVyPjwvZGl2PlxyXG4gIDwvbWFpbj5cclxuXHJcbiAgPGZvb3RlciBjbGFzcz1cIm1vZGFsRm9vdGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZm9vdGVyPlxyXG5cclxuPC9kaXY+XHJcblxyXG48IS0tdmlldyA9PSByaWdodC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cInJpZ2h0RXhlY3V0b3JCbG9ja1wiICpuZ0lmPVwidmlldyA9PT0gJ3JpZ2h0J1wiPlxyXG5cclxuICA8aGVhZGVyIGNsYXNzPVwicmlnaHRFeGVjdXRvckhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0RXhlY3V0b3JUZXh0QW5kQ2xvc2VCdXR0b25cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LTFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHAgY2xhc3M9XCJib2R5LTVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNsb3NlQnV0dG9uXCI+XHJcbiAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNi4wNTY2IDEuNTk5NzFMMTQuNjU2NiAwLjE5OTcwN0w4LjA1NjY0IDYuNzk5NzFMMS40NTY2NCAwLjE5OTcwN0wwLjA1NjY0MDYgMS41OTk3MUw2LjY1NjY0IDguMTk5NzFMMC4wNTY2NDA2IDE0Ljc5OTdMMS40NTY2NCAxNi4xOTk3TDguMDU2NjQgOS41OTk3MUwxNC42NTY2IDE2LjE5OTdMMTYuMDU2NiAxNC43OTk3TDkuNDU2NjQgOC4xOTk3MUwxNi4wNTY2IDEuNTk5NzFaXCIgZmlsbD1cIiM1MjUyNTJcIi8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJsaW5lXCI+XHJcbiAgICA8c3ZnIHdpZHRoPVwiMzYzXCIgaGVpZ2h0PVwiMVwiIHZpZXdCb3g9XCIwIDAgMzYzIDFcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPGxpbmUgeDE9XCItNC4zNzExNGUtMDhcIiB5MT1cIjAuNVwiIHgyPVwiMzYyLjY3NFwiIHkyPVwiMC40OTk5NjhcIiBzdHJva2U9XCIjNEQ0RDREXCIvPlxyXG4gICAgPC9zdmc+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50RXhlY3V0b3JcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodENoYW5nZUNvbnRlbnRcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZVBhZ2VcIiBjbGFzcz1cImV4ZWN1dG9yQ2hhbmdlQ29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgI2NvbnRhaW5lcj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFN0ZXBzXCI+XHJcbiAgICAgICAgPG1lZmRldi1zdGFnZSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgbGV0IHBhZ2VJbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpc1JpZ2h0TW9kYWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGFnZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY3VycmVudEV4ZWN1dG9yU3RlcF09XCJwYWdlSW5kZXggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpc0NvbXBsZXRlZF09XCJwYWdlLmlzQ29tcGxldGVkXCI+XHJcbiAgICAgICAgPC9tZWZkZXYtc3RhZ2U+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGZvb3RlciBjbGFzcz1cInJpZ2h0Rm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
@@ -3821,6 +3821,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
3821
3821
  }]
3822
3822
  }] });
3823
3823
 
3824
+ /**
3825
+ * @ignore
3826
+ */
3824
3827
  class StageComponent {
3825
3828
  currentExecutorStep;
3826
3829
  isRightModal;
@@ -3842,13 +3845,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
3842
3845
  type: Input
3843
3846
  }] } });
3844
3847
 
3848
+ /**
3849
+ * Wrapper component that represents a specific encapsulated executor.
3850
+ *
3851
+ * Example of usage:
3852
+ *```
3853
+ * <mefdev-step-executor #mainExecutor [view]="'regular'">
3854
+ *
3855
+ * <ng-template #title>
3856
+ * <!-- Content for the executor title -->
3857
+ * </ng-template>
3858
+ * <ng-template #description>
3859
+ * <!-- Content for the executor description -->
3860
+ * </ng-template>
3861
+ *
3862
+ * <mefdev-executor-page
3863
+ * [title]="'Description of situation 1'"
3864
+ * [isActive]="mainExecutor.activePageInd === 0"
3865
+ * [isCompleted]="mainExecutor.activePageInd >= 0">
3866
+ * <!-- Content of the first executor step -->
3867
+ * </mefdev-executor-page>
3868
+ * <mefdev-executor-page
3869
+ * [title]="'Description of situation 2'"
3870
+ * [isActive]="mainExecutor.activePageInd === 1"
3871
+ * [isCompleted]="mainExecutor.activePageInd >= 1">
3872
+ * <!-- Content of the second executor step -->
3873
+ * </mefdev-executor-page>
3874
+ * <mefdev-executor-page
3875
+ * [title]="'Description of situation 3'"
3876
+ * [isActive]="mainExecutor.activePageInd === 2"
3877
+ * [isCompleted]="mainExecutor.activePageInd >= 2">
3878
+ * <!-- Content of the third executor step -->
3879
+ * </mefdev-executor-page>
3880
+ *
3881
+ * <ng-template #footer>
3882
+ * <!-- Content for the executor footer -->
3883
+ * <ng-template>
3884
+ *
3885
+ * </mefdev-step-executor>
3886
+ *
3887
+ *```
3888
+ */
3845
3889
  class StepExecutorComponent {
3846
3890
  renderer;
3891
+ /**
3892
+ * Mandatory input parameter that specifies the type of the step-by-step wizard.
3893
+ * It can have three options: regular, modal, right.
3894
+ *
3895
+ * @usageNotes
3896
+ * ```
3897
+ * <mefdev-step-executor #mainExecutor [view]="'regular'"></mefdev-step-executor>
3898
+ * ```
3899
+ */
3847
3900
  view;
3901
+ /**
3902
+ * ViewChild reference to the host executor content.
3903
+ */
3848
3904
  container;
3905
+ /**
3906
+ * Template for displaying the content of the executor title.
3907
+ *
3908
+ * @usageNotes
3909
+ * ```
3910
+ * <ng-template #title>
3911
+ * <!-- Content for the executor title -->
3912
+ * </ng-template>
3913
+ * ```
3914
+ */
3849
3915
  title;
3916
+ /**
3917
+ * Template for displaying the content of the executor description.
3918
+ *
3919
+ * @usageNotes
3920
+ * ```
3921
+ * <ng-template #description>
3922
+ * <!-- Content for the executor description -->
3923
+ * </ng-template>
3924
+ * ```
3925
+ */
3850
3926
  description;
3927
+ /**
3928
+ * Template for displaying the content of the executor footer.
3929
+ *
3930
+ * @usageNotes
3931
+ * ```
3932
+ * <ng-template #footer>
3933
+ * <!-- Content for the executor footer -->
3934
+ * </ng-template>
3935
+ * ```
3936
+ */
3851
3937
  footer;
3938
+ /**
3939
+ * The output parameter that emits the class of the active page - active step.
3940
+ *
3941
+ * @usageNotes
3942
+ * ```
3943
+ * <mefdev-step-executor #mainExecutor (onActivePageChange)="getActiveStep($event)"></mefdev-step-executor>
3944
+ * ```
3945
+ */
3852
3946
  onActivePageChange = new EventEmitter();
3853
3947
  _activePageInd = 0;
3854
3948
  pages = [];
@@ -3875,15 +3969,24 @@ class StepExecutorComponent {
3875
3969
  this.renderer.appendChild(this.container.nativeElement, this.activePage?.elRef.nativeElement);
3876
3970
  this.onActivePageChange.emit(this.pages.find((el) => el.isActive));
3877
3971
  }
3972
+ /**
3973
+ * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button
3974
+ */
3878
3975
  nextBtnIsDisabled() {
3879
3976
  return this._activePageInd === this.pages.length - 1;
3880
3977
  }
3978
+ /**
3979
+ * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button
3980
+ */
3881
3981
  prev() {
3882
3982
  const newPageInd = this.activePageInd - 1;
3883
3983
  if (newPageInd >= 0) {
3884
3984
  this.activePageInd = newPageInd;
3885
3985
  }
3886
3986
  }
3987
+ /**
3988
+ * Go back to the previous step
3989
+ */
3887
3990
  cancel() {
3888
3991
  this.activePageInd = 0;
3889
3992
  const newPageInd = this.activePageInd - 1;
@@ -3891,21 +3994,33 @@ class StepExecutorComponent {
3891
3994
  this.activePageInd = newPageInd;
3892
3995
  }
3893
3996
  }
3997
+ /**
3998
+ * Go to the next step
3999
+ */
3894
4000
  next() {
3895
4001
  const newPageInd = this.activePageInd + 1;
3896
4002
  if (newPageInd < this.pages.length) {
3897
4003
  this.activePageInd = newPageInd;
3898
4004
  }
3899
4005
  }
4006
+ /**
4007
+ * Set a specific active page
4008
+ */
3900
4009
  setActivePage(pageNumber) {
3901
4010
  pageNumber -= 1;
3902
4011
  if (pageNumber < this.pages.length && pageNumber >= 0) {
3903
4012
  this.activePageInd = pageNumber;
3904
4013
  }
3905
4014
  }
4015
+ /**
4016
+ * Add new page
4017
+ */
3906
4018
  addPage(page) {
3907
4019
  this.pages.push(page);
3908
4020
  }
4021
+ /**
4022
+ * Delete a specific page
4023
+ */
3909
4024
  removeSpecificPage(page) {
3910
4025
  const index = this.pages.indexOf(page);
3911
4026
  if (index !== -1) {
@@ -3915,6 +4030,9 @@ class StepExecutorComponent {
3915
4030
  }
3916
4031
  }
3917
4032
  }
4033
+ /**
4034
+ * Delete a page by its index
4035
+ */
3918
4036
  removePageByIndex(index) {
3919
4037
  if (index >= 0 && index < this.pages.length) {
3920
4038
  this.pages.splice(index, 1);
@@ -3948,12 +4066,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
3948
4066
  type: Output
3949
4067
  }] } });
3950
4068
 
4069
+ /**
4070
+ * A component that allows us to create a content page - a step in our executor.
4071
+ * Each individual step can have different styles, content and settings.
4072
+ *
4073
+ * Example of usage:
4074
+ *
4075
+ * ```
4076
+ * <mefdev-executor-page
4077
+ * [title]="'Executor title 1'"
4078
+ * [isActive]="mainExecutor.activePageInd === 0"
4079
+ * [isCompleted]="mainExecutor.activePageInd >= 0"
4080
+ * class="yourClass">
4081
+ * <!-- Content of the first executor step -->
4082
+ * </mefdev-executor-page>
4083
+ * <mefdev-executor-page
4084
+ * [title]="'Executor title 2'"
4085
+ * [isActive]="mainExecutor.activePageInd === 1"
4086
+ * [isCompleted]="mainExecutor.activePageInd >= 1"
4087
+ * class="yourClass">
4088
+ * <!-- Content of the second executor step -->
4089
+ * </mefdev-executor-page>
4090
+ * <mefdev-executor-page
4091
+ * [title]="'Executor title 3'"
4092
+ * [isActive]="mainExecutor.activePageInd === 2"
4093
+ * [isCompleted]="mainExecutor.activePageInd >= 2"
4094
+ * class="yourClass">
4095
+ * <!-- Content of the third executor step -->
4096
+ * </mefdev-executor-page>
4097
+ * ```
4098
+ *
4099
+ */
3951
4100
  class MefdevExecutorPageComponent {
3952
4101
  _mainExecutor;
3953
4102
  _elementRef;
4103
+ /**
4104
+ * The title of the step
4105
+ * @usageNotes
4106
+ * ```
4107
+ * <mefdev-executor-page [title]="'Description of situation 1'"></mefdev-executor-page>
4108
+ * ```
4109
+ */
3954
4110
  title;
4111
+ /**
4112
+ * The input parameter that corresponds to whether the current step matches the respective page.
4113
+ * The value of the active page is passed by reference from the specific component StepExecutorComponent.
4114
+ *
4115
+ * @usageNotes
4116
+ * ```
4117
+ * <mefdev-step-executor #mainExecutor>
4118
+ * <mefdev-executor-page [isActive]="mainExecutor.activePageInd === 0">
4119
+ * <mefdev-executor-page [isActive]="mainExecutor.activePageInd === 1">
4120
+ * <mefdev-executor-page [isActive]="mainExecutor.activePageInd === 2">
4121
+ * </<mefdev-step-executor>
4122
+ *
4123
+ * ```
4124
+ */
3955
4125
  isActive = false;
4126
+ /**
4127
+ * The input parameter that checks whether the step is completed.
4128
+ *
4129
+ * @usageNotes
4130
+ * ```
4131
+ * <mefdev-executor-page [isCompleted]="mainExecutor.activePageInd >= 0"></mefdev-executor-page>
4132
+ * ```
4133
+ */
3956
4134
  isCompleted = false;
4135
+ /**
4136
+ * The output parameter that emits a boolean value indicating whether our completed step has changed.
4137
+ *
4138
+ * @usageNotes
4139
+ * ```
4140
+ * <mefdev-executor-page (isCompletedChange)="onStepChanged($event)"></mefdev-executor-page>
4141
+ * ```
4142
+ */
3957
4143
  isCompletedChange = new EventEmitter();
3958
4144
  elRef;
3959
4145
  constructor(_mainExecutor, _elementRef) {