@taiga-ui/addon-mobile 4.43.0 → 4.44.0-canary.0bcf1bf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/components/mobile-calendar/mobile-calendar.providers.d.ts +2 -1
  2. package/components/mobile-dialog/mobile-dialog.options.d.ts +2 -1
  3. package/components/pull-to-refresh/pull-to-refresh.providers.d.ts +4 -3
  4. package/components/sheet-dialog/sheet-dialog.options.d.ts +2 -1
  5. package/directives/dropdown-mobile/dropdown-mobile.component.d.ts +1 -1
  6. package/directives/dropdown-mobile/index.d.ts +0 -1
  7. package/esm2022/components/bottom-sheet/bottom-sheet.component.mjs +3 -3
  8. package/esm2022/components/mobile-calendar/mobile-calendar.component.mjs +3 -3
  9. package/esm2022/components/mobile-calendar/mobile-calendar.providers.mjs +3 -4
  10. package/esm2022/components/mobile-dialog/mobile-dialog.component.mjs +3 -3
  11. package/esm2022/components/mobile-dialog/mobile-dialog.options.mjs +6 -3
  12. package/esm2022/components/pull-to-refresh/loader-android/loader-android.component.mjs +3 -3
  13. package/esm2022/components/pull-to-refresh/loader-ios/loader-ios.component.mjs +3 -3
  14. package/esm2022/components/pull-to-refresh/pull-to-refresh.providers.mjs +11 -6
  15. package/esm2022/components/sheet-dialog/sheet-dialog.options.mjs +6 -3
  16. package/esm2022/components/tab-bar/tab-bar.component.mjs +3 -3
  17. package/esm2022/directives/dropdown-mobile/dropdown-mobile.component.mjs +4 -6
  18. package/esm2022/directives/dropdown-mobile/dropdown-mobile.directive.mjs +1 -20
  19. package/esm2022/directives/dropdown-mobile/index.mjs +1 -2
  20. package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs +2 -2
  21. package/fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs +5 -5
  23. package/fesm2022/taiga-ui-addon-mobile-components-mobile-calendar.mjs.map +1 -1
  24. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs +7 -5
  25. package/fesm2022/taiga-ui-addon-mobile-components-mobile-dialog.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs +15 -9
  27. package/fesm2022/taiga-ui-addon-mobile-components-pull-to-refresh.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs +5 -3
  29. package/fesm2022/taiga-ui-addon-mobile-components-sheet-dialog.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs +2 -2
  31. package/fesm2022/taiga-ui-addon-mobile-components-tab-bar.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs +8 -63
  33. package/fesm2022/taiga-ui-addon-mobile-directives-dropdown-mobile.mjs.map +1 -1
  34. package/package.json +11 -11
  35. package/styles/android/checkbox.less +2 -5
  36. package/styles/android/switch.less +2 -2
  37. package/styles/common/block-status.less +6 -6
  38. package/styles/ios/checkbox.less +2 -5
  39. package/styles/ios/switch.less +2 -2
  40. package/directives/dropdown-mobile/option-mobile/option-mobile.component.d.ts +0 -13
  41. package/esm2022/directives/dropdown-mobile/option-mobile/option-mobile.component.mjs +0 -42
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-mobile",
3
- "version": "4.43.0",
3
+ "version": "4.44.0-canary.0bcf1bf",
4
4
  "description": "Extension package for Taiga UI that adds support for mobile specific behaviors such as custom data pickers, dropdowns, etc.",
5
5
  "keywords": [
6
6
  "angular",
@@ -39,6 +39,12 @@
39
39
  "esm": "./esm2022/services/taiga-ui-addon-mobile-services.mjs",
40
40
  "default": "./fesm2022/taiga-ui-addon-mobile-services.mjs"
41
41
  },
42
+ "./components/bottom-sheet": {
43
+ "types": "./components/bottom-sheet/index.d.ts",
44
+ "esm2022": "./esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs",
45
+ "esm": "./esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs",
46
+ "default": "./fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs"
47
+ },
42
48
  "./components/mobile-calendar": {
43
49
  "types": "./components/mobile-calendar/index.d.ts",
44
50
  "esm2022": "./esm2022/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.mjs",
@@ -51,12 +57,6 @@
51
57
  "esm": "./esm2022/components/mobile-calendar-dropdown/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs",
52
58
  "default": "./fesm2022/taiga-ui-addon-mobile-components-mobile-calendar-dropdown.mjs"
53
59
  },
54
- "./components/bottom-sheet": {
55
- "types": "./components/bottom-sheet/index.d.ts",
56
- "esm2022": "./esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs",
57
- "esm": "./esm2022/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.mjs",
58
- "default": "./fesm2022/taiga-ui-addon-mobile-components-bottom-sheet.mjs"
59
- },
60
60
  "./components/mobile-calendar-sheet": {
61
61
  "types": "./components/mobile-calendar-sheet/index.d.ts",
62
62
  "esm2022": "./esm2022/components/mobile-calendar-sheet/taiga-ui-addon-mobile-components-mobile-calendar-sheet.mjs",
@@ -135,10 +135,10 @@
135
135
  "@angular/common": ">=16.0.0",
136
136
  "@angular/core": ">=16.0.0",
137
137
  "@ng-web-apis/common": "^4.12.0",
138
- "@taiga-ui/cdk": "^4.43.0",
139
- "@taiga-ui/core": "^4.43.0",
140
- "@taiga-ui/kit": "^4.43.0",
141
- "@taiga-ui/layout": "^4.43.0",
138
+ "@taiga-ui/cdk": "^4.44.0",
139
+ "@taiga-ui/core": "^4.44.0",
140
+ "@taiga-ui/kit": "^4.44.0",
141
+ "@taiga-ui/layout": "^4.44.0",
142
142
  "@taiga-ui/polymorpheus": "^4.9.0",
143
143
  "rxjs": ">=7.0.0"
144
144
  },
@@ -30,6 +30,8 @@ input[tuiCheckbox] {
30
30
  }
31
31
 
32
32
  &::before {
33
+ inline-size: 1rem;
34
+ block-size: 1rem;
33
35
  mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 13L1 8.19231L2.4 6.84615L6 10.3077L13.6 3L15 4.34615L6 13Z" fill="black"/></svg>');
34
36
  transition:
35
37
  clip-path var(--tui-duration) ease-in-out,
@@ -44,9 +46,4 @@ input[tuiCheckbox] {
44
46
  &:invalid {
45
47
  outline-color: var(--tui-status-negative-pale-hover);
46
48
  }
47
-
48
- &[data-size='s']::before {
49
- inline-size: 1rem;
50
- block-size: 1rem;
51
- }
52
49
  }
@@ -30,7 +30,7 @@ input[tuiSwitch] {
30
30
  content: '';
31
31
  position: absolute;
32
32
  top: 0;
33
- left: 0;
33
+ inset-inline-start: 0;
34
34
  inline-size: 1.25rem;
35
35
  block-size: 1.25rem;
36
36
  border-radius: 100%;
@@ -49,7 +49,7 @@ input[tuiSwitch] {
49
49
 
50
50
  &::after {
51
51
  background: currentColor;
52
- transform: translateX(1.25rem);
52
+ transform: translateX(calc(1.25rem * var(--t-inline)));
53
53
  }
54
54
  }
55
55
 
@@ -2,19 +2,19 @@ tui-block-status {
2
2
  padding: 2rem;
3
3
 
4
4
  .t-block-image:not(:empty) {
5
- margin-bottom: 1.5rem;
5
+ margin-block-end: 1.5rem;
6
6
  }
7
7
 
8
8
  .t-block-actions:not(:empty) {
9
- margin-top: 1.5rem;
9
+ margin-block-start: 1.5rem;
10
10
  }
11
11
 
12
12
  &._card {
13
13
  padding: 1.25rem;
14
14
 
15
15
  & .t-block-image {
16
- margin-top: 0.75rem;
17
- margin-bottom: 1rem;
16
+ margin-block-start: 0.75rem;
17
+ margin-block-end: 1rem;
18
18
  }
19
19
  }
20
20
 
@@ -27,7 +27,7 @@ tui-block-status {
27
27
  font: var(--tui-font-heading-5);
28
28
 
29
29
  & ~ .t-block-text:not(:empty) {
30
- margin-top: 0.5rem;
30
+ margin-block-start: 0.5rem;
31
31
  }
32
32
  }
33
33
 
@@ -38,6 +38,6 @@ tui-block-status {
38
38
 
39
39
  a:not(:last-child),
40
40
  button:not(:last-child) {
41
- margin-bottom: 0.5rem;
41
+ margin-block-end: 0.5rem;
42
42
  }
43
43
  }
@@ -35,6 +35,8 @@ input[tuiRadio] {
35
35
  --t-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" preserveAspectRatio="xMidYMid meet" height="100%" width="100%"><path d="M12.3368 4.33683C12.7859 3.88772 13.5141 3.88772 13.9632 4.33683C14.4123 4.78593 14.4123 5.51407 13.9632 5.96317L6.96317 12.9632C6.51407 13.4123 5.78593 13.4123 5.33683 12.9632L2.33683 9.96317C1.88772 9.51407 1.88772 8.78593 2.33683 8.33683C2.78593 7.88772 3.51407 7.88772 3.96317 8.33683L6.15 10.5237L12.3368 4.33683Z" fill="black"/></svg>');
36
36
 
37
37
  display: none;
38
+ inline-size: 1rem;
39
+ block-size: 1rem;
38
40
  }
39
41
 
40
42
  &:not([tuiRadio]):indeterminate::before {
@@ -44,9 +46,4 @@ input[tuiRadio] {
44
46
  &:invalid {
45
47
  outline-color: var(--tui-status-negative-pale-hover);
46
48
  }
47
-
48
- &[data-size='s']::before {
49
- inline-size: 1rem;
50
- block-size: 1rem;
51
- }
52
49
  }
@@ -41,11 +41,11 @@ input[tuiSwitch] {
41
41
  }
42
42
 
43
43
  &::after {
44
- transform: scale(0.871) translateX(1.44rem);
44
+ transform: scale(0.871) translateX(calc(1.44rem * var(--t-inline)));
45
45
  }
46
46
 
47
47
  &:active::after {
48
- transform: scale(0.871) translateX(1.0775rem);
48
+ transform: scale(0.871) translateX(calc(1.0775rem * var(--t-inline)));
49
49
  }
50
50
  }
51
51
  }
@@ -1,13 +0,0 @@
1
- import { TuiControl } from '@taiga-ui/cdk/classes';
2
- import * as i0 from "@angular/core";
3
- export declare class TuiOptionMobile<T> {
4
- private readonly host;
5
- private readonly itemsHandlers;
6
- private readonly option;
7
- private readonly control;
8
- protected readonly select: import("@angular/core").Signal<TuiControl<T> | null>;
9
- protected readonly selected: import("@angular/core").Signal<boolean>;
10
- protected onClick(): void;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiOptionMobile<any>, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiOptionMobile<any>, "ng-component", never, {}, {}, never, never, true, never>;
13
- }
@@ -1,42 +0,0 @@
1
- import { NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { TuiControl } from '@taiga-ui/cdk/classes';
5
- import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
6
- import { TUI_DATA_LIST_HOST, TuiOptionWithValue, } from '@taiga-ui/core/components/data-list';
7
- import { tuiInjectAuxiliary } from '@taiga-ui/core/components/textfield';
8
- import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
9
- import { TuiRadio } from '@taiga-ui/kit/components/radio';
10
- import { TuiSelectDirective } from '@taiga-ui/kit/components/select';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@taiga-ui/kit/components/radio";
13
- class TuiOptionMobile {
14
- constructor() {
15
- this.host = inject(TUI_DATA_LIST_HOST);
16
- this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
17
- this.option = inject(TuiOptionWithValue, {
18
- optional: true,
19
- });
20
- this.control = tuiInjectAuxiliary((x) => x instanceof TuiControl);
21
- this.select = tuiInjectAuxiliary((x) => x instanceof TuiSelectDirective);
22
- this.selected = computed((controlValue = this.control()?.value(), optionValue = this.option?.value()) => tuiIsPresent(optionValue) &&
23
- tuiIsPresent(controlValue) &&
24
- this.itemsHandlers.identityMatcher()(controlValue, optionValue));
25
- }
26
- onClick() {
27
- const value = this.option?.value();
28
- if (this.host?.handleOption && value !== undefined) {
29
- this.host.handleOption(value);
30
- }
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiOptionMobile, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiOptionMobile, isStandalone: true, selector: "ng-component", host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<input\n *ngIf=\"select()\"\n tuiRadio\n type=\"radio\"\n class=\"t-checked-indicator\"\n [checked]=\"selected()\"\n/>\n", styles: [".t-checked-indicator{order:1;margin-inline-start:auto;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.TuiRadioComponent, selector: "input[type=\"radio\"][tuiRadio]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
- }
35
- export { TuiOptionMobile };
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiOptionMobile, decorators: [{
37
- type: Component,
38
- args: [{ standalone: true, imports: [FormsModule, NgIf, TuiRadio], changeDetection: ChangeDetectionStrategy.OnPush, host: {
39
- '(click)': 'onClick()',
40
- }, template: "<input\n *ngIf=\"select()\"\n tuiRadio\n type=\"radio\"\n class=\"t-checked-indicator\"\n [checked]=\"selected()\"\n/>\n", styles: [".t-checked-indicator{order:1;margin-inline-start:auto;pointer-events:none}\n"] }]
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvZGlyZWN0aXZlcy9kcm9wZG93bi1tb2JpbGUvb3B0aW9uLW1vYmlsZS9vcHRpb24tbW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9kaXJlY3RpdmVzL2Ryb3Bkb3duLW1vYmlsZS9vcHRpb24tbW9iaWxlL29wdGlvbi1tb2JpbGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsa0JBQWtCLEdBQ3JCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFbkUsTUFVYSxlQUFlO0lBVjVCO1FBV3FCLFNBQUksR0FBRyxNQUFNLENBQXFCLGtCQUFrQixDQUFDLENBQUM7UUFDdEQsa0JBQWEsR0FBd0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsV0FBTSxHQUFHLE1BQU0sQ0FBd0Isa0JBQWtCLEVBQUU7WUFDeEUsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRWMsWUFBTyxHQUFHLGtCQUFrQixDQUN6QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLFVBQVUsQ0FDakMsQ0FBQztRQUVpQixXQUFNLEdBQUcsa0JBQWtCLENBQzFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksa0JBQWtCLENBQ3pDLENBQUM7UUFFaUIsYUFBUSxHQUFHLFFBQVEsQ0FDbEMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDM0UsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUN6QixZQUFZLENBQUMsWUFBWSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUN0RSxDQUFDO0tBU0w7SUFQYSxPQUFPO1FBQ2IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDOytHQTVCUSxlQUFlO21HQUFmLGVBQWUsdUhDMUI1Qix5SUFPQSxxSURXYyxXQUFXLCtCQUFFLElBQUk7O1NBUWxCLGVBQWU7NEZBQWYsZUFBZTtrQkFWM0IsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixTQUFTLEVBQUUsV0FBVztxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHt0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7VHVpRGF0YUxpc3RIb3N0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRBX0xJU1RfSE9TVCxcbiAgICBUdWlPcHRpb25XaXRoVmFsdWUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7dHVpSW5qZWN0QXV4aWxpYXJ5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQgdHlwZSB7VHVpSXRlbXNIYW5kbGVyc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pdGVtcy1oYW5kbGVycyc7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pdGVtcy1oYW5kbGVycyc7XG5pbXBvcnQge1R1aVJhZGlvfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFkaW8nO1xuaW1wb3J0IHtUdWlTZWxlY3REaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgTmdJZiwgVHVpUmFkaW9dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcHRpb24tbW9iaWxlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL29wdGlvbi1tb2JpbGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnb25DbGljaygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlPcHRpb25Nb2JpbGU8VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdDxUdWlEYXRhTGlzdEhvc3Q8VD4+KFRVSV9EQVRBX0xJU1RfSE9TVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0hhbmRsZXJzOiBUdWlJdGVtc0hhbmRsZXJzPFQ+ID0gaW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb24gPSBpbmplY3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PihUdWlPcHRpb25XaXRoVmFsdWUsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2wgPSB0dWlJbmplY3RBdXhpbGlhcnk8VHVpQ29udHJvbDxUPj4oXG4gICAgICAgICh4KSA9PiB4IGluc3RhbmNlb2YgVHVpQ29udHJvbCxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdCA9IHR1aUluamVjdEF1eGlsaWFyeTxUdWlDb250cm9sPFQ+PihcbiAgICAgICAgKHgpID0+IHggaW5zdGFuY2VvZiBUdWlTZWxlY3REaXJlY3RpdmUsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKFxuICAgICAgICAoY29udHJvbFZhbHVlID0gdGhpcy5jb250cm9sKCk/LnZhbHVlKCksIG9wdGlvblZhbHVlID0gdGhpcy5vcHRpb24/LnZhbHVlKCkpID0+XG4gICAgICAgICAgICB0dWlJc1ByZXNlbnQob3B0aW9uVmFsdWUpICYmXG4gICAgICAgICAgICB0dWlJc1ByZXNlbnQoY29udHJvbFZhbHVlKSAmJlxuICAgICAgICAgICAgdGhpcy5pdGVtc0hhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcigpKGNvbnRyb2xWYWx1ZSwgb3B0aW9uVmFsdWUpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm9wdGlvbj8udmFsdWUoKTtcblxuICAgICAgICBpZiAodGhpcy5ob3N0Py5oYW5kbGVPcHRpb24gJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5ob3N0LmhhbmRsZU9wdGlvbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8aW5wdXRcbiAgICAqbmdJZj1cInNlbGVjdCgpXCJcbiAgICB0dWlSYWRpb1xuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJ0LWNoZWNrZWQtaW5kaWNhdG9yXCJcbiAgICBbY2hlY2tlZF09XCJzZWxlY3RlZCgpXCJcbi8+XG4iXX0=