@taiga-ui/kit 2.79.0 → 2.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-kit-components-input-count.umd.js +22 -2
- package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +29 -12
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
- package/components/input-count/input-count.component.d.ts +2 -0
- package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
- package/components/input-phone-international/input-phone-international.component.d.ts +12 -4
- package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
- package/esm2015/components/input-count/input-count.component.js +20 -4
- package/esm2015/components/input-phone-international/const/countries.js +9 -1
- package/esm2015/components/input-phone-international/input-phone-international.component.js +22 -13
- package/esm2015/components/input-phone-international/input-phone-international.module.js +4 -4
- package/esm5/components/input-count/input-count.component.js +24 -4
- package/esm5/components/input-phone-international/const/countries.js +9 -1
- package/esm5/components/input-phone-international/input-phone-international.component.js +22 -13
- package/esm5/components/input-phone-international/input-phone-international.module.js +4 -4
- package/fesm2015/taiga-ui-kit-components-input-count.js +19 -3
- package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js +31 -14
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-count.js +23 -3
- package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-phone-international.js +31 -14
- package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"TuiInputCountComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiNullableControl","line":65,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"tui-input-count","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":21},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":55,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputCountComponent"}},{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiControl","line":59,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputCountComponent"}}],"template":"<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldAutocomplete=\"off\"\n tuiTextfieldInputMode=\"numeric\"\n class=\"t-textfield\"\n [tuiTextfieldMaxLength]=\"18\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"getMask(min < 0)\"\n [invalid]=\"computedInvalid\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange()\"\n (keydown)=\"onKeydown($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n<ng-container *ngIf=\"!buttonsHidden\">\n <ng-container *ngIf=\"minusTexts$ | async as texts\">\n <section class=\"t-buttons\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__plus-button\"\n size=\"s\"\n class=\"t-button t-button_plus\"\n [icon]=\"iconUp\"\n [appearance]=\"options.appearance\"\n [title]=\"texts[0]\"\n [disabled]=\"plusButtonDisabled\"\n [focusable]=\"false\"\n (mousedown)=\"onButtonMouseDown($event, plusButtonDisabled)\"\n (click)=\"increaseValue()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__minus-button\"\n size=\"s\"\n class=\"t-button t-button_minus\"\n [icon]=\"iconDown\"\n [appearance]=\"options.appearance\"\n [disabled]=\"minusButtonDisabled\"\n [focusable]=\"false\"\n [title]=\"texts[1]\"\n (mousedown)=\"onButtonMouseDown($event, minusButtonDisabled)\"\n (click)=\"decreaseValue()\"\n ></button>\n </section>\n </ng-container>\n</ng-container>\n","styles":[":host{display:flex;font:var(--tui-font-text-s);border-radius:var(--tui-radius-m);height:var(--tui-height-m);color:var(--tui-text-01);text-align:left}:host._disabled{pointer-events:none}:host[data-size='l']{font:var(--tui-font-text-m);height:var(--tui-height-l)}.t-textfield{position:relative;border-radius:inherit;text-align:inherit;flex-grow:1;min-width:0}:host:not(._hide-buttons) .t-textfield{border-top-right-radius:0;border-bottom-right-radius:0}.t-buttons{display:flex;flex-direction:column;margin-left:.125rem;height:100%}.t-buttons .t-button{display:flex;width:calc(var(--tui-height-m) * .75);height:calc(50% - .0625rem)}.t-buttons .t-button_plus{margin-bottom:.125rem;border-radius:0 var(--tui-radius-m) 0 0}.t-buttons .t-button_minus{border-radius:0 0 var(--tui-radius-m)}:host[data-size='l'] .t-buttons .t-button{width:calc(var(--tui-height-l) * .75)}"]}]}],"members":{"primitiveTextfield":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":68,"character":5},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldComponent","line":68,"character":15}]}]}],"step":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":72,"character":5}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":76,"character":5}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":80,"character":5}}]}],"hideButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":83,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":84,"character":5}}]}],"prefix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":88,"character":5}}]}],"postfix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":91,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":92,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":96,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":97,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":98,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":98,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":100,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":100,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":101,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_TEXTFIELD_APPEARANCE","line":101,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":103,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_TEXTFIELD_SIZE","line":103,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":105,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_PLUS_MINUS_TEXTS","line":105,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":107,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_IS_MOBILE","line":107,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":108,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_INPUT_COUNT_OPTIONS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":110,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_NUMBER_FORMAT","line":110,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":99,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":100,"character":54},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldSizeDirective","line":104,"character":40},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":106,"character":41,"module":"./input-count.component"}]},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"TuiInputCountOptions"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiNumberFormatSettings","line":111,"character":39}]}],"getMask":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":116,"character":5}]}],"buttonsHidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":129,"character":5},"arguments":["class._hide-buttons"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":148,"character":5},"arguments":["attr.data-size"]}]}],"onButtonMouseDown":[{"__symbolic":"method"}],"onFocused":[{"__symbolic":"method"}],"onHovered":[{"__symbolic":"method"}],"onPressed":[{"__symbolic":"method"}],"onValueChange":[{"__symbolic":"method"}],"decreaseValue":[{"__symbolic":"method"}],"increaseValue":[{"__symbolic":"method"}],"onKeydown":[{"__symbolic":"method"}],"safeUpdateValue":[{"__symbolic":"method"}],"capValue":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method"}],"formatNumber":[{"__symbolic":"method"}],"isNotNumber":[{"__symbolic":"method"}]}},"TuiInputCountDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiAbstractTextfieldHost","line":14,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"tui-input-count","providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_TEXTFIELD_HOST","line":9,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputCountDirective"}}]}]}],"members":{"onValueChange":[{"__symbolic":"method"}],"process":[{"__symbolic":"method"}]}},"TuiInputCountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":8},{"__symbolic":"reference","module":"angular2-text-mask","name":"TextMaskModule","line":18,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiButtonModule","line":19,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldModule","line":20,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldControllerModule","line":21,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/directives","name":"TuiValueAccessorModule","line":22,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":23,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiInputCountComponent"},{"__symbolic":"reference","name":"TuiInputCountDirective"}],"exports":[{"__symbolic":"reference","name":"TuiInputCountComponent"},{"__symbolic":"reference","name":"TuiInputCountDirective"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldComponent","line":26,"character":62}]}]}],"members":{}},"TuiInputCountOptions":{"__symbolic":"interface"},"InputCountOptions":{"__symbolic":"interface"},"PASSWORD_ICON_UP":"tuiIconPlus","PASSWORD_ICON_DOWN":"tuiIconMinus","TUI_INPUT_COUNT_DEFAULT_OPTIONS":{"icons":{"up":{"__symbolic":"reference","name":"PASSWORD_ICON_UP"},"down":{"__symbolic":"reference","name":"PASSWORD_ICON_DOWN"}},"appearance":"textfield","hideButtons":false,"min":0,"max":{"__symbolic":"reference","name":"Infinity"},"step":1,"postfix":""},"TUI_INPUT_COUNT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":40,"character":43},"arguments":["Default parameters for input count component",{"__symbolic":"error","message":"Lambda not supported","line":43,"character":17,"module":"./input-count-options"}]},"tuiInputCountOptionsProvider":{"__symbolic":"error","message":"Lambda not supported","line":49,"character":21,"module":"./input-count-options"}},"origins":{"TuiInputCountComponent":"./input-count.component","TuiInputCountDirective":"./input-count.directive","TuiInputCountModule":"./input-count.module","TuiInputCountOptions":"./input-count-options","InputCountOptions":"./input-count-options","PASSWORD_ICON_UP":"./input-count-options","PASSWORD_ICON_DOWN":"./input-count-options","TUI_INPUT_COUNT_DEFAULT_OPTIONS":"./input-count-options","TUI_INPUT_COUNT_OPTIONS":"./input-count-options","tuiInputCountOptionsProvider":"./input-count-options"},"importAs":"@taiga-ui/kit/components/input-count"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"TuiInputCountComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiNullableControl","line":66,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":49,"character":1},"arguments":[{"selector":"tui-input-count","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":53,"character":21},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":56,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputCountComponent"}},{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiControl","line":60,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputCountComponent"}}],"template":"<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldAutocomplete=\"off\"\n tuiTextfieldInputMode=\"numeric\"\n class=\"t-textfield\"\n [tuiTextfieldMaxLength]=\"18\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"getMask(min < 0)\"\n [invalid]=\"computedInvalid\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange()\"\n (keydown)=\"onKeydown($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n<ng-container *ngIf=\"!buttonsHidden\">\n <ng-container *ngIf=\"minusTexts$ | async as texts\">\n <section class=\"t-buttons\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__plus-button\"\n size=\"s\"\n class=\"t-button t-button_plus\"\n [icon]=\"iconUp\"\n [appearance]=\"options.appearance\"\n [title]=\"texts[0]\"\n [disabled]=\"plusButtonDisabled\"\n [focusable]=\"false\"\n (mousedown)=\"onButtonMouseDown($event, plusButtonDisabled)\"\n (click)=\"increaseValue()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__minus-button\"\n size=\"s\"\n class=\"t-button t-button_minus\"\n [icon]=\"iconDown\"\n [appearance]=\"options.appearance\"\n [disabled]=\"minusButtonDisabled\"\n [focusable]=\"false\"\n [title]=\"texts[1]\"\n (mousedown)=\"onButtonMouseDown($event, minusButtonDisabled)\"\n (click)=\"decreaseValue()\"\n ></button>\n </section>\n </ng-container>\n</ng-container>\n","styles":[":host{display:flex;font:var(--tui-font-text-s);border-radius:var(--tui-radius-m);height:var(--tui-height-m);color:var(--tui-text-01);text-align:left}:host._disabled{pointer-events:none}:host[data-size='l']{font:var(--tui-font-text-m);height:var(--tui-height-l)}.t-textfield{position:relative;border-radius:inherit;text-align:inherit;flex-grow:1;min-width:0}:host:not(._hide-buttons) .t-textfield{border-top-right-radius:0;border-bottom-right-radius:0}.t-buttons{display:flex;flex-direction:column;margin-left:.125rem;height:100%}.t-buttons .t-button{display:flex;width:calc(var(--tui-height-m) * .75);height:calc(50% - .0625rem)}.t-buttons .t-button_plus{margin-bottom:.125rem;border-radius:0 var(--tui-radius-m) 0 0}.t-buttons .t-button_minus{border-radius:0 0 var(--tui-radius-m)}:host[data-size='l'] .t-buttons .t-button{width:calc(var(--tui-height-l) * .75)}"]}]}],"members":{"primitiveTextfield":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":69,"character":5},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldComponent","line":69,"character":15}]}]}],"step":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":75,"character":5}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":79,"character":5}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":83,"character":5}}]}],"hideButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":87,"character":5}}]}],"prefix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":91,"character":5}}]}],"postfix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":95,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":99,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":100,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":101,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":101,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":103,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":104,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_TEXTFIELD_APPEARANCE","line":104,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":106,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_TEXTFIELD_SIZE","line":106,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":108,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_PLUS_MINUS_TEXTS","line":108,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":110,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_IS_MOBILE","line":110,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":111,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_INPUT_COUNT_OPTIONS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":113,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_NUMBER_FORMAT","line":113,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":102,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":54},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldSizeDirective","line":107,"character":40},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":109,"character":41,"module":"./input-count.component"}]},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"TuiInputCountOptions"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiNumberFormatSettings","line":114,"character":39}]}],"getMask":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":119,"character":5}]}],"buttonsHidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":132,"character":5},"arguments":["class._hide-buttons"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":151,"character":5},"arguments":["attr.data-size"]}]}],"onButtonMouseDown":[{"__symbolic":"method"}],"onFocused":[{"__symbolic":"method"}],"onHovered":[{"__symbolic":"method"}],"onPressed":[{"__symbolic":"method"}],"onValueChange":[{"__symbolic":"method"}],"decreaseValue":[{"__symbolic":"method"}],"increaseValue":[{"__symbolic":"method"}],"onKeydown":[{"__symbolic":"method"}],"safeUpdateValue":[{"__symbolic":"method"}],"capValue":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method"}],"formatNumber":[{"__symbolic":"method"}],"isNotNumber":[{"__symbolic":"method"}]}},"TuiInputCountDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiAbstractTextfieldHost","line":14,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"tui-input-count","providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_TEXTFIELD_HOST","line":9,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputCountDirective"}}]}]}],"members":{"onValueChange":[{"__symbolic":"method"}],"process":[{"__symbolic":"method"}]}},"TuiInputCountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":8},{"__symbolic":"reference","module":"angular2-text-mask","name":"TextMaskModule","line":18,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiButtonModule","line":19,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldModule","line":20,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldControllerModule","line":21,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/directives","name":"TuiValueAccessorModule","line":22,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":23,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiInputCountComponent"},{"__symbolic":"reference","name":"TuiInputCountDirective"}],"exports":[{"__symbolic":"reference","name":"TuiInputCountComponent"},{"__symbolic":"reference","name":"TuiInputCountDirective"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldComponent","line":26,"character":62}]}]}],"members":{}},"TuiInputCountOptions":{"__symbolic":"interface"},"InputCountOptions":{"__symbolic":"interface"},"PASSWORD_ICON_UP":"tuiIconPlus","PASSWORD_ICON_DOWN":"tuiIconMinus","TUI_INPUT_COUNT_DEFAULT_OPTIONS":{"icons":{"up":{"__symbolic":"reference","name":"PASSWORD_ICON_UP"},"down":{"__symbolic":"reference","name":"PASSWORD_ICON_DOWN"}},"appearance":"textfield","hideButtons":false,"min":0,"max":{"__symbolic":"reference","name":"Infinity"},"step":1,"postfix":""},"TUI_INPUT_COUNT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":40,"character":43},"arguments":["Default parameters for input count component",{"__symbolic":"error","message":"Lambda not supported","line":43,"character":17,"module":"./input-count-options"}]},"tuiInputCountOptionsProvider":{"__symbolic":"error","message":"Lambda not supported","line":49,"character":21,"module":"./input-count-options"}},"origins":{"TuiInputCountComponent":"./input-count.component","TuiInputCountDirective":"./input-count.directive","TuiInputCountModule":"./input-count.module","TuiInputCountOptions":"./input-count-options","InputCountOptions":"./input-count-options","PASSWORD_ICON_UP":"./input-count-options","PASSWORD_ICON_DOWN":"./input-count-options","TUI_INPUT_COUNT_DEFAULT_OPTIONS":"./input-count-options","TUI_INPUT_COUNT_OPTIONS":"./input-count-options","tuiInputCountOptionsProvider":"./input-count-options"},"importAs":"@taiga-ui/kit/components/input-count"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, EventEmitter } from '@angular/core';
|
|
2
2
|
import { NgControl } from '@angular/forms';
|
|
3
|
-
import { AbstractTuiControl, TuiContextWithImplicit, TuiFocusableElementAccessor, TuiMapper
|
|
4
|
-
import { TuiSizeL, TuiSizeM, TuiSizeS } from '@taiga-ui/core';
|
|
3
|
+
import { AbstractTuiControl, TuiContextWithImplicit, TuiFocusableElementAccessor, TuiMapper } from '@taiga-ui/cdk';
|
|
4
|
+
import { TuiFlagPipe, TuiSizeL, TuiSizeM, TuiSizeS } from '@taiga-ui/core';
|
|
5
5
|
import { TuiCountryIsoCode } from '@taiga-ui/i18n';
|
|
6
6
|
import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
@@ -10,23 +10,31 @@ export declare class TuiInputPhoneInternationalComponent extends AbstractTuiCont
|
|
|
10
10
|
readonly countriesNames$: Observable<Record<TuiCountryIsoCode, string>>;
|
|
11
11
|
readonly countriesMasks: Record<TuiCountryIsoCode, string>;
|
|
12
12
|
private readonly options;
|
|
13
|
+
private readonly flagPipe;
|
|
13
14
|
private readonly inputPhoneComponent?;
|
|
14
15
|
private readonly primitiveTextfield?;
|
|
15
|
-
private readonly staticPath;
|
|
16
16
|
set isoCode(code: TuiCountryIsoCode);
|
|
17
17
|
countries: readonly TuiCountryIsoCode[];
|
|
18
18
|
readonly countryIsoCodeChange: EventEmitter<TuiCountryIsoCode>;
|
|
19
19
|
countryIsoCode: TuiCountryIsoCode;
|
|
20
20
|
open: boolean;
|
|
21
21
|
readonly arrow: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>>;
|
|
22
|
-
constructor(control: NgControl | null, changeDetectorRef: ChangeDetectorRef,
|
|
22
|
+
constructor(control: NgControl | null, changeDetectorRef: ChangeDetectorRef, countriesNames$: Observable<Record<TuiCountryIsoCode, string>>, countriesMasks: Record<TuiCountryIsoCode, string>, options: TuiInputPhoneInternationalOptions, flagPipe: TuiFlagPipe);
|
|
23
23
|
get nativeFocusableElement(): HTMLElement | null;
|
|
24
24
|
get focused(): boolean;
|
|
25
25
|
get inputPhoneCountryCode(): string;
|
|
26
26
|
get phoneMaskAfterCountryCode(): string;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated use `<img [src]="countryIsoCode | tuiFlagPipe" />`
|
|
29
|
+
* TODO drop in v4.0
|
|
30
|
+
*/
|
|
27
31
|
get countryFlagPath(): string;
|
|
28
32
|
onPaste(event: ClipboardEvent | DragEvent): void;
|
|
29
33
|
readonly isoToCountryCodeMapper: TuiMapper<TuiCountryIsoCode, string>;
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated use `<img [src]="countryIsoCode | tuiFlagPipe" />`
|
|
36
|
+
* TODO drop in v4.0
|
|
37
|
+
*/
|
|
30
38
|
getFlagPath(code: TuiCountryIsoCode): string;
|
|
31
39
|
onItemClick(isoCode: TuiCountryIsoCode): void;
|
|
32
40
|
setDisabledState(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"COUNTRIES":{"__symbolic":"error","message":"Expression form not supported","line":14,"character":4,"module":"./const/countries"},"countriesMasksReducer":{"__symbolic":"function"},"COUNTRIES_MASKS":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"entries"},"arguments":[{"__symbolic":"reference","name":"COUNTRIES"}]},"member":"reduce"},"arguments":[{"__symbolic":"reference","name":"countriesMasksReducer"},{}]},"MASK_AFTER_CODE_REGEXP":{"__symbolic":"error","message":"Expression form not supported","line":268,"character":38,"module":"./const/countries"},"TuiCountryIsoCode":{"AD":"AD","AE":"AE","AF":"AF","AG":"AG","AI":"AI","AL":"AL","AM":"AM","AN":"AN","AO":"AO","AR":"AR","AT":"AT","AU":"AU","AW":"AW","AZ":"AZ","BA":"BA","BB":"BB","BD":"BD","BE":"BE","BF":"BF","BG":"BG","BH":"BH","BI":"BI","BJ":"BJ","BM":"BM","BN":"BN","BO":"BO","BR":"BR","BS":"BS","BT":"BT","BW":"BW","BY":"BY","BZ":"BZ","CD":"CD","CF":"CF","CG":"CG","CH":"CH","CI":"CI","CL":"CL","CM":"CM","CN":"CN","CO":"CO","CR":"CR","CU":"CU","CV":"CV","CY":"CY","CZ":"CZ","DE":"DE","DJ":"DJ","DK":"DK","DM":"DM","DO":"DO","DZ":"DZ","EC":"EC","EE":"EE","EG":"EG","ER":"ER","ES":"ES","ET":"ET","FI":"FI","FJ":"FJ","FK":"FK","FM":"FM","FR":"FR","GA":"GA","GB":"GB","GD":"GD","GE":"GE","GH":"GH","GI":"GI","GL":"GL","GM":"GM","GN":"GN","GQ":"GQ","GR":"GR","GT":"GT","GW":"GW","GY":"GY","HK":"HK","HN":"HN","HR":"HR","HT":"HT","HU":"HU","ID":"ID","IE":"IE","IL":"IL","IN":"IN","IQ":"IQ","IR":"IR","IS":"IS","IT":"IT","JM":"JM","JO":"JO","JP":"JP","KE":"KE","KG":"KG","KH":"KH","KM":"KM","KN":"KN","KP":"KP","KR":"KR","KW":"KW","KY":"KY","KZ":"KZ","LA":"LA","LB":"LB","LC":"LC","LI":"LI","LK":"LK","LR":"LR","LS":"LS","LT":"LT","LU":"LU","LV":"LV","LY":"LY","MA":"MA","MC":"MC","MD":"MD","ME":"ME","MG":"MG","MK":"MK","ML":"ML","MM":"MM","MN":"MN","MO":"MO","MR":"MR","MS":"MS","MT":"MT","MU":"MU","MV":"MV","MW":"MW","MX":"MX","MY":"MY","MZ":"MZ","NA":"NA","NE":"NE","NG":"NG","NI":"NI","NL":"NL","NO":"NO","NP":"NP","NZ":"NZ","OM":"OM","PA":"PA","PE":"PE","PF":"PF","PG":"PG","PH":"PH","PK":"PK","PL":"PL","PT":"PT","PW":"PW","PY":"PY","QA":"QA","RO":"RO","RS":"RS","RU":"RU","RW":"RW","SA":"SA","SB":"SB","SC":"SC","SD":"SD","SE":"SE","SG":"SG","SH":"SH","SI":"SI","SK":"SK","SL":"SL","SM":"SM","SN":"SN","SO":"SO","SR":"SR","ST":"ST","SV":"SV","SY":"SY","SZ":"SZ","TC":"TC","TD":"TD","TG":"TG","TH":"TH","TJ":"TJ","TL":"TL","TM":"TM","TN":"TN","TO":"TO","TR":"TR","TT":"TT","TW":"TW","TZ":"TZ","UA":"UA","UG":"UG","UY":"UY","UZ":"UZ","VC":"VC","VE":"VE","VG":"VG","VN":"VN","VU":"VU","WS":"WS","YE":"YE","ZA":"ZA","ZM":"ZM","ZW":"ZW","US":"US","CA":"CA"},"TuiInputPhoneInternationalComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiControl","line":67,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":53,"character":1},"arguments":[{"selector":"tui-input-phone-international","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":57,"character":21},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":60,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputPhoneInternationalComponent"}},{"__symbolic":"reference","module":"@taiga-ui/kit/providers","name":"FIXED_DROPDOWN_CONTROLLER_PROVIDER","line":63,"character":8}],"template":"<tui-hosted-dropdown\n *tuiLet=\"countriesNames$ | async as countriesNames\"\n class=\"t-hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHostedDropdownHost\n class=\"t-country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [iconContent]=\"arrow\"\n [pseudoFocused]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiHintContent]=\"null\"\n ></tui-primitive-textfield>\n <tui-input-phone\n tuiTextfieldAutocomplete=\"off\"\n class=\"t-input-phone tui-group__auto-width-item\"\n [ngModel]=\"value\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ng-content></ng-content>\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n alt=\"\"\n class=\"t-country-item-flag\"\n [src]=\"getFlagPath(item)\"\n />\n <span class=\"t-country-item-name\">\n {{ countriesNames[item] }}\n </span>\n <span class=\"t-country-item-code\">\n {{ item | tuiMapper: isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"t-flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryFlagPath\"\n />\n </ng-template>\n</tui-hosted-dropdown>\n","styles":[":host{display:block}:host._disabled{pointer-events:none}.t-hosted-dropdown{display:block}.t-country-select{width:5.625rem}.t-country-select:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}.t-country-select._readonly ::ng-deep input{cursor:default}.t-arrow-icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.t-arrow-icon:hover{color:var(--tui-text-02)}:host._disabled .t-arrow-icon,:host._readonly .t-arrow-icon{pointer-events:none}:host[data-mode=onDark] .t-arrow-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow-icon:hover{color:var(--tui-text-01-night)}.t-arrow-icon_open{transform:rotate(180deg)}.t-input-phone{flex:1}.t-flag{width:1.75rem;height:1.25rem;margin-left:-.5rem}.t-country-item-flag{width:1.75rem;height:1.25rem}.t-country-item-name{margin-left:.75rem;margin-right:auto}.t-country-item-code{color:var(--tui-text-02);margin-right:.25rem}"]}]}],"members":{"inputPhoneComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":70,"character":5},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/components/input-phone","name":"TuiInputPhoneComponent","line":70,"character":15}]}]}],"primitiveTextfield":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":73,"character":5},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldComponent","line":73,"character":15}]}]}],"isoCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":5},"arguments":["countryIsoCode"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":79,"character":5}}]}],"countries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":5}}]}],"countryIsoCodeChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":88,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":100,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":101,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":102,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":102,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":104,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":104,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":105,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_ICONS_PATH","line":105,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":107,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_COUNTRIES","line":107,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_COUNTRIES_MASKS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":111,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":103,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":104,"character":54},{"__symbolic":"reference","name":"TuiStringHandler","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":108,"character":45,"context":{"typeName":"Record"},"module":"./input-phone-international.component"}]},{"__symbolic":"error","message":"Could not resolve type","line":110,"character":33,"context":{"typeName":"Record"},"module":"./input-phone-international.component"},{"__symbolic":"reference","name":"TuiInputPhoneInternationalOptions"}]}],"onPaste":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":149,"character":5},"arguments":["paste.capture.prevent.stop",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":150,"character":5},"arguments":["drop.capture.prevent.stop",["$event"]]}]}],"getFlagPath":[{"__symbolic":"method"}],"onItemClick":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"isoToCountryCode":[{"__symbolic":"method"}],"onModelChange":[{"__symbolic":"method"}],"onActiveZone":[{"__symbolic":"method"}],"getFallbackValue":[{"__symbolic":"method"}],"calculateMaskAfterCountryCode":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":218,"character":5}]}],"close":[{"__symbolic":"method"}],"getMaxAllowedLength":[{"__symbolic":"method"}],"updateCountryIsoCode":[{"__symbolic":"method"}],"extractCountryCode":[{"__symbolic":"method"}]}},"TuiInputPhoneInternationalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":21,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":22,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":23,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiSvgModule","line":24,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/input-phone","name":"TuiInputPhoneModule","line":25,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiGroupModule","line":26,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldModule","line":27,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldControllerModule","line":28,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiHintControllerModule","line":29,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiHostedDropdownModule","line":30,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiDataListModule","line":31,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/arrow","name":"TuiArrowModule","line":32,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":33,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiMapperPipeModule","line":34,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiActiveZoneModule","line":35,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiInputPhoneInternationalComponent"}],"exports":[{"__symbolic":"reference","name":"TuiInputPhoneInternationalComponent"}]}]}],"members":{}},"TuiInputPhoneInternationalOptions":{"__symbolic":"interface"},"TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS":{"countries":[],"countryIsoCode":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@taiga-ui/i18n","name":"TuiCountryIsoCode","line":11,"character":24},"member":"RU"}},"TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["Default parameters for input phone international component",{"__symbolic":"error","message":"Lambda not supported","line":18,"character":21,"module":"./input-phone-international.options"}]},"tuiInputPhoneInternationalOptionsProvider":{"__symbolic":"error","message":"Lambda not supported","line":24,"character":21,"module":"./input-phone-international.options"},"Country":{"__symbolic":"interface"},"TUI_COUNTRIES_MASKS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":8},"arguments":["Countries masks",{"__symbolic":"error","message":"Lambda not supported","line":7,"character":17,"module":"./tokens/countries-masks"}]},"extractValueFromEvent":{"__symbolic":"function","parameters":["event"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"event"},"right":{"__symbolic":"reference","name":"DragEvent"}},"thenExpression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"dataTransfer"},"member":"getData"},"arguments":["text/plain"]},"right":""},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"getClipboardDataText","line":10,"character":10},"arguments":[{"__symbolic":"reference","name":"event"}]}}},"tuiExtractValueFromEvent":{"__symbolic":"reference","name":"extractValueFromEvent"}},"origins":{"COUNTRIES":"./const/countries","countriesMasksReducer":"./const/countries","COUNTRIES_MASKS":"./const/countries","MASK_AFTER_CODE_REGEXP":"./const/countries","TuiCountryIsoCode":"./country-iso-code","TuiInputPhoneInternationalComponent":"./input-phone-international.component","TuiInputPhoneInternationalModule":"./input-phone-international.module","TuiInputPhoneInternationalOptions":"./input-phone-international.options","TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS":"./input-phone-international.options","TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS":"./input-phone-international.options","tuiInputPhoneInternationalOptionsProvider":"./input-phone-international.options","Country":"./interfaces/country","TUI_COUNTRIES_MASKS":"./tokens/countries-masks","extractValueFromEvent":"./utils/extract-value-from-event","tuiExtractValueFromEvent":"./utils/extract-value-from-event"},"importAs":"@taiga-ui/kit/components/input-phone-international"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"COUNTRIES":{"__symbolic":"error","message":"Expression form not supported","line":14,"character":4,"module":"./const/countries"},"countriesMasksReducer":{"__symbolic":"function"},"COUNTRIES_MASKS":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"entries"},"arguments":[{"__symbolic":"reference","name":"COUNTRIES"}]},"member":"reduce"},"arguments":[{"__symbolic":"reference","name":"countriesMasksReducer"},{}]},"MASK_AFTER_CODE_REGEXP":{"__symbolic":"error","message":"Expression form not supported","line":276,"character":38,"module":"./const/countries"},"TuiCountryIsoCode":{"AD":"AD","AE":"AE","AF":"AF","AG":"AG","AI":"AI","AL":"AL","AM":"AM","AN":"AN","AO":"AO","AR":"AR","AT":"AT","AU":"AU","AW":"AW","AZ":"AZ","BA":"BA","BB":"BB","BD":"BD","BE":"BE","BF":"BF","BG":"BG","BH":"BH","BI":"BI","BJ":"BJ","BM":"BM","BN":"BN","BO":"BO","BR":"BR","BS":"BS","BT":"BT","BW":"BW","BY":"BY","BZ":"BZ","CD":"CD","CF":"CF","CG":"CG","CH":"CH","CI":"CI","CL":"CL","CM":"CM","CN":"CN","CO":"CO","CR":"CR","CU":"CU","CV":"CV","CY":"CY","CZ":"CZ","DE":"DE","DJ":"DJ","DK":"DK","DM":"DM","DO":"DO","DZ":"DZ","EC":"EC","EE":"EE","EG":"EG","ER":"ER","ES":"ES","ET":"ET","FI":"FI","FJ":"FJ","FK":"FK","FM":"FM","FR":"FR","GA":"GA","GB":"GB","GD":"GD","GE":"GE","GH":"GH","GI":"GI","GL":"GL","GM":"GM","GN":"GN","GQ":"GQ","GR":"GR","GT":"GT","GW":"GW","GY":"GY","HK":"HK","HN":"HN","HR":"HR","HT":"HT","HU":"HU","ID":"ID","IE":"IE","IL":"IL","IN":"IN","IQ":"IQ","IR":"IR","IS":"IS","IT":"IT","JM":"JM","JO":"JO","JP":"JP","KE":"KE","KG":"KG","KH":"KH","KM":"KM","KN":"KN","KP":"KP","KR":"KR","KW":"KW","KY":"KY","KZ":"KZ","LA":"LA","LB":"LB","LC":"LC","LI":"LI","LK":"LK","LR":"LR","LS":"LS","LT":"LT","LU":"LU","LV":"LV","LY":"LY","MA":"MA","MC":"MC","MD":"MD","ME":"ME","MG":"MG","MK":"MK","ML":"ML","MM":"MM","MN":"MN","MO":"MO","MR":"MR","MS":"MS","MT":"MT","MU":"MU","MV":"MV","MW":"MW","MX":"MX","MY":"MY","MZ":"MZ","NA":"NA","NE":"NE","NG":"NG","NI":"NI","NL":"NL","NO":"NO","NP":"NP","NZ":"NZ","OM":"OM","PA":"PA","PE":"PE","PF":"PF","PG":"PG","PH":"PH","PK":"PK","PL":"PL","PT":"PT","PW":"PW","PY":"PY","QA":"QA","RO":"RO","RS":"RS","RU":"RU","RW":"RW","SA":"SA","SB":"SB","SC":"SC","SD":"SD","SE":"SE","SG":"SG","SH":"SH","SI":"SI","SK":"SK","SL":"SL","SM":"SM","SN":"SN","SO":"SO","SR":"SR","ST":"ST","SV":"SV","SY":"SY","SZ":"SZ","TC":"TC","TD":"TD","TG":"TG","TH":"TH","TJ":"TJ","TL":"TL","TM":"TM","TN":"TN","TO":"TO","TR":"TR","TT":"TT","TW":"TW","TZ":"TZ","UA":"UA","UG":"UG","UY":"UY","UZ":"UZ","VC":"VC","VE":"VE","VG":"VG","VN":"VN","VU":"VU","WS":"WS","YE":"YE","ZA":"ZA","ZM":"ZM","ZW":"ZW","US":"US","CA":"CA"},"TuiInputPhoneInternationalComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiControl","line":68,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":52,"character":1},"arguments":[{"selector":"tui-input-phone-international","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":56,"character":21},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":59,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputPhoneInternationalComponent"}},{"__symbolic":"reference","module":"@taiga-ui/kit/providers","name":"FIXED_DROPDOWN_CONTROLLER_PROVIDER","line":62,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiFlagPipe","line":64,"character":8}],"template":"<tui-hosted-dropdown\n *ngIf=\"countriesNames$ | async as countriesNames\"\n class=\"t-hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHostedDropdownHost\n class=\"t-country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [iconContent]=\"arrow\"\n [pseudoFocused]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiHintContent]=\"null\"\n ></tui-primitive-textfield>\n <tui-input-phone\n tuiTextfieldAutocomplete=\"off\"\n class=\"t-input-phone tui-group__auto-width-item\"\n [ngModel]=\"value\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ng-content></ng-content>\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let isoCode of countries\"\n tuiOption\n (click)=\"onItemClick(isoCode)\"\n >\n <img\n alt=\"\"\n class=\"t-country-item-flag\"\n [src]=\"getFlagPath(isoCode)\"\n />\n <span class=\"t-country-item-name\">\n {{ countriesNames[isoCode] }}\n </span>\n <span class=\"t-country-item-code\">\n {{ isoCode | tuiMapper: isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"t-flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryFlagPath\"\n />\n </ng-template>\n</tui-hosted-dropdown>\n","styles":[":host{display:block}:host._disabled{pointer-events:none}.t-hosted-dropdown{display:block}.t-country-select{width:5.625rem}.t-country-select:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}.t-country-select._readonly ::ng-deep input{cursor:default}.t-arrow-icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.t-arrow-icon:hover{color:var(--tui-text-02)}:host._disabled .t-arrow-icon,:host._readonly .t-arrow-icon{pointer-events:none}:host[data-mode=onDark] .t-arrow-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow-icon:hover{color:var(--tui-text-01-night)}.t-arrow-icon_open{transform:rotate(180deg)}.t-input-phone{flex:1}.t-flag{width:1.75rem;height:1.25rem;margin-left:-.5rem}.t-country-item-flag{width:1.75rem;height:1.25rem}.t-country-item-name{margin-left:.75rem;margin-right:auto}.t-country-item-code{color:var(--tui-text-02);margin-right:.25rem}"]}]}],"members":{"inputPhoneComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":5},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/components/input-phone","name":"TuiInputPhoneComponent","line":71,"character":15}]}]}],"primitiveTextfield":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":74,"character":5},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldComponent","line":74,"character":15}]}]}],"isoCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5},"arguments":["countryIsoCode"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":78,"character":5}}]}],"countries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":5}}]}],"countryIsoCodeChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":87,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":99,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":100,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":101,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":101,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":103,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":104,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_COUNTRIES","line":104,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":106,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_COUNTRIES_MASKS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":108,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":110,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiFlagPipe","line":110,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":102,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":54},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":105,"character":45,"context":{"typeName":"Record"},"module":"./input-phone-international.component"}]},{"__symbolic":"error","message":"Could not resolve type","line":107,"character":33,"context":{"typeName":"Record"},"module":"./input-phone-international.component"},{"__symbolic":"reference","name":"TuiInputPhoneInternationalOptions"},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiFlagPipe","line":111,"character":35}]}],"onPaste":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":150,"character":5},"arguments":["paste.capture.prevent.stop",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":151,"character":5},"arguments":["drop.capture.prevent.stop",["$event"]]}]}],"getFlagPath":[{"__symbolic":"method"}],"onItemClick":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"isoToCountryCode":[{"__symbolic":"method"}],"onModelChange":[{"__symbolic":"method"}],"onActiveZone":[{"__symbolic":"method"}],"getFallbackValue":[{"__symbolic":"method"}],"calculateMaskAfterCountryCode":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":223,"character":5}]}],"close":[{"__symbolic":"method"}],"getMaxAllowedLength":[{"__symbolic":"method"}],"updateCountryIsoCode":[{"__symbolic":"method"}],"extractCountryCode":[{"__symbolic":"method"}]}},"TuiInputPhoneInternationalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":20,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":22,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":23,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":24,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiSvgModule","line":25,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/input-phone","name":"TuiInputPhoneModule","line":26,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiGroupModule","line":27,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiPrimitiveTextfieldModule","line":28,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiTextfieldControllerModule","line":29,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiHintControllerModule","line":30,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiHostedDropdownModule","line":31,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiDataListModule","line":32,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/arrow","name":"TuiArrowModule","line":33,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiFlagPipeModule","line":34,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiMapperPipeModule","line":35,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiActiveZoneModule","line":36,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiInputPhoneInternationalComponent"}],"exports":[{"__symbolic":"reference","name":"TuiInputPhoneInternationalComponent"}]}]}],"members":{}},"TuiInputPhoneInternationalOptions":{"__symbolic":"interface"},"TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS":{"countries":[],"countryIsoCode":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@taiga-ui/i18n","name":"TuiCountryIsoCode","line":11,"character":24},"member":"RU"}},"TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["Default parameters for input phone international component",{"__symbolic":"error","message":"Lambda not supported","line":18,"character":21,"module":"./input-phone-international.options"}]},"tuiInputPhoneInternationalOptionsProvider":{"__symbolic":"error","message":"Lambda not supported","line":24,"character":21,"module":"./input-phone-international.options"},"Country":{"__symbolic":"interface"},"TUI_COUNTRIES_MASKS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":8},"arguments":["Countries masks",{"__symbolic":"error","message":"Lambda not supported","line":7,"character":17,"module":"./tokens/countries-masks"}]},"extractValueFromEvent":{"__symbolic":"function","parameters":["event"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"event"},"right":{"__symbolic":"reference","name":"DragEvent"}},"thenExpression":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"event"},"member":"dataTransfer"},"member":"getData"},"arguments":["text/plain"]},"right":""},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"getClipboardDataText","line":10,"character":10},"arguments":[{"__symbolic":"reference","name":"event"}]}}},"tuiExtractValueFromEvent":{"__symbolic":"reference","name":"extractValueFromEvent"}},"origins":{"COUNTRIES":"./const/countries","countriesMasksReducer":"./const/countries","COUNTRIES_MASKS":"./const/countries","MASK_AFTER_CODE_REGEXP":"./const/countries","TuiCountryIsoCode":"./country-iso-code","TuiInputPhoneInternationalComponent":"./input-phone-international.component","TuiInputPhoneInternationalModule":"./input-phone-international.module","TuiInputPhoneInternationalOptions":"./input-phone-international.options","TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS":"./input-phone-international.options","TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS":"./input-phone-international.options","tuiInputPhoneInternationalOptionsProvider":"./input-phone-international.options","Country":"./interfaces/country","TUI_COUNTRIES_MASKS":"./tokens/countries-masks","extractValueFromEvent":"./utils/extract-value-from-event","tuiExtractValueFromEvent":"./utils/extract-value-from-event"},"importAs":"@taiga-ui/kit/components/input-phone-international"}
|
|
@@ -3,7 +3,7 @@ import { __decorate, __param } from "tslib";
|
|
|
3
3
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostBinding, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
|
|
4
4
|
import { NgControl } from '@angular/forms';
|
|
5
5
|
import { AbstractTuiControl, AbstractTuiNullableControl, clamp, isNativeFocused, isPresent, setNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
|
|
6
|
-
import { formatNumber, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TUI_TEXTFIELD_SIZE, tuiCreateNumberMask, TuiNumberFormatSettings, TuiPrimitiveTextfieldComponent, TuiSizeL, TuiSizeS, TuiTextfieldSizeDirective, TuiTextMaskOptions, TuiWithOptionalMinMax, } from '@taiga-ui/core';
|
|
6
|
+
import { formatNumber, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TUI_TEXTFIELD_SIZE, tuiCreateNumberMask, tuiMaskedNumberStringToNumber, TuiNumberFormatSettings, TuiPrimitiveTextfieldComponent, TuiSizeL, TuiSizeS, TuiTextfieldSizeDirective, TuiTextMaskOptions, TuiWithOptionalMinMax, } from '@taiga-ui/core';
|
|
7
7
|
import { TUI_PLUS_MINUS_TEXTS } from '@taiga-ui/kit/tokens';
|
|
8
8
|
import { Observable } from 'rxjs';
|
|
9
9
|
import { TUI_INPUT_COUNT_OPTIONS } from './input-count-options';
|
|
@@ -17,6 +17,7 @@ let TuiInputCountComponent = TuiInputCountComponent_1 = class TuiInputCountCompo
|
|
|
17
17
|
this.isMobile = isMobile;
|
|
18
18
|
this.options = options;
|
|
19
19
|
this.numberFormat = numberFormat;
|
|
20
|
+
this.unfinishedValue = '';
|
|
20
21
|
this.step = this.options.step;
|
|
21
22
|
this.min = this.options.min;
|
|
22
23
|
this.max = this.options.max;
|
|
@@ -87,6 +88,11 @@ let TuiInputCountComponent = TuiInputCountComponent_1 = class TuiInputCountCompo
|
|
|
87
88
|
this.updatePressed(pressed);
|
|
88
89
|
}
|
|
89
90
|
onValueChange() {
|
|
91
|
+
if (this.isNativeValueNotFinished) {
|
|
92
|
+
this.unfinishedValue = this.nativeValue;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.unfinishedValue = null;
|
|
90
96
|
const capped = this.capValue(this.nativeNumberValue);
|
|
91
97
|
if (this.isNotNumber(capped)) {
|
|
92
98
|
this.updateValue(null);
|
|
@@ -150,11 +156,15 @@ let TuiInputCountComponent = TuiInputCountComponent_1 = class TuiInputCountCompo
|
|
|
150
156
|
return Number.isNaN(capped) || capped < this.min ? null : capped;
|
|
151
157
|
}
|
|
152
158
|
onBlur() {
|
|
153
|
-
|
|
159
|
+
const nativeNumberValue = this.unfinishedValue
|
|
160
|
+
? tuiMaskedNumberStringToNumber(this.unfinishedValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator)
|
|
161
|
+
: this.nativeNumberValue;
|
|
162
|
+
this.unfinishedValue = null;
|
|
163
|
+
if (this.isNotNumber(nativeNumberValue)) {
|
|
154
164
|
this.updateValue(null);
|
|
155
165
|
return;
|
|
156
166
|
}
|
|
157
|
-
const value = Math.max(
|
|
167
|
+
const value = Math.max(nativeNumberValue || 0, this.min);
|
|
158
168
|
const formattedValue = this.formatNumber(value);
|
|
159
169
|
this.nativeValue = formattedValue;
|
|
160
170
|
this.updateValue(value);
|
|
@@ -170,6 +180,12 @@ let TuiInputCountComponent = TuiInputCountComponent_1 = class TuiInputCountCompo
|
|
|
170
180
|
isNotNumber(value) {
|
|
171
181
|
return !isPresent(value) || Number.isNaN(value);
|
|
172
182
|
}
|
|
183
|
+
get isNativeValueNotFinished() {
|
|
184
|
+
const { nativeNumberValue } = this;
|
|
185
|
+
return nativeNumberValue < 0
|
|
186
|
+
? nativeNumberValue > this.max
|
|
187
|
+
: nativeNumberValue < this.min;
|
|
188
|
+
}
|
|
173
189
|
};
|
|
174
190
|
TuiInputCountComponent.ctorParameters = () => [
|
|
175
191
|
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
|
|
@@ -246,4 +262,4 @@ TuiInputCountComponent = TuiInputCountComponent_1 = __decorate([
|
|
|
246
262
|
__param(7, Inject(TUI_NUMBER_FORMAT))
|
|
247
263
|
], TuiInputCountComponent);
|
|
248
264
|
export { TuiInputCountComponent };
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNvdW50LyIsInNvdXJjZXMiOlsiaW5wdXQtY291bnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsY0FBYyxFQUVkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsWUFBWSxFQUNaLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsOEJBQThCLEVBQzlCLFFBQVEsRUFDUixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBQyx1QkFBdUIsRUFBdUIsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixXQUFXO0FBaUJYLElBQWEsc0JBQXNCLDhCQUFuQyxNQUFhLHNCQUNULFNBQVEsMEJBQWtDO0lBOEIxQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLFVB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U0E3UFksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIGNsYW1wLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBpc1ByZXNlbnQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIGZvcm1hdE51bWJlcixcbiAgICBUVUlfTlVNQkVSX0ZPUk1BVCxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIHR1aUNyZWF0ZU51bWJlck1hc2ssXG4gICAgVHVpTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfUExVU19NSU5VU19URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtUZXh0TWFza0NvbmZpZ30gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0NPVU5UX09QVElPTlMsIFR1aUlucHV0Q291bnRPcHRpb25zfSBmcm9tICcuL2lucHV0LWNvdW50LW9wdGlvbnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtY291bnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jb3VudC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jb3VudC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0Q291bnRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dENvdW50Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENvdW50Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RlcCA9IHRoaXMub3B0aW9ucy5zdGVwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoaWRlQnV0dG9ucyA9IHRoaXMub3B0aW9ucy5oaWRlQnV0dG9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gdGhpcy5vcHRpb25zLnBvc3RmaXg7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQVBQRUFSQU5DRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BMVVNfTUlOVVNfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IG1pbnVzVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0NPVU5UX09QVElPTlMpXG4gICAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0Q291bnRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9OVU1CRVJfRk9STUFUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG51bWJlckZvcm1hdDogVHVpTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldE1hc2soYWxsb3dOZWdhdGl2ZTogYm9vbGVhbik6IFRleHRNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hc2s6IHR1aUNyZWF0ZU51bWJlck1hc2soe1xuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmUsXG4gICAgICAgICAgICAgICAgZGVjaW1hbFN5bWJvbDogdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICB0aG91c2FuZFN5bWJvbDogdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgfSBhcyBUdWlUZXh0TWFza09wdGlvbnMgYXMgdW5rbm93biBhcyBUZXh0TWFza0NvbmZpZztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiAzLjAgUmVtb3ZlIGluIHYuM1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGUtYnV0dG9ucycpXG4gICAgZ2V0IGJ1dHRvbnNIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGVCdXR0b25zIHx8IHRoaXMuYXBwZWFyYW5jZSA9PT0gJ3RhYmxlJztcbiAgICB9XG5cbiAgICBnZXQgaWNvblVwKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29ucy51cDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkRvd24oKTogUG9seW1vcnBoZXVzQ29udGVudDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb25zLmRvd247XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkIHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBleGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkID8gdGhpcy5uYXRpdmVWYWx1ZSA6IHRoaXMuZm9ybWF0TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBtaW51c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgfHwgKGlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlIDw9IHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgcGx1c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgfHwgKGlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlID49IHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uQmx1cigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBWYWx1ZSh0aGlzLm5hdGl2ZU51bWJlclZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5pc05vdE51bWJlcihjYXBwZWQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGNhcHBlZCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgZGVjcmVhc2VWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHRoaXMudmFsdWUgfHwgMCkgLSB0aGlzLnN0ZXA7XG5cbiAgICAgICAgdGhpcy5zYWZlVXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGluY3JlYXNlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9ICh0aGlzLnZhbHVlIHx8IDApICsgdGhpcy5zdGVwO1xuXG4gICAgICAgIHRoaXMuc2FmZVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZWFzZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVOdW1iZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yKS5qb2luKCcnKSxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVVcGRhdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY2xhbXAobmV3VmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXBWYWx1ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGgubWluKHZhbHVlLCB0aGlzLm1heCk7XG5cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihjYXBwZWQpIHx8IGNhcHBlZCA8IHRoaXMubWluID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3ROdW1iZXIodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5tYXgodGhpcy5uYXRpdmVOdW1iZXJWYWx1ZSB8fCAwLCB0aGlzLm1pbik7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc05vdE51bWJlcih2YWx1ZSlcbiAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgIDogZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb3ROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiB2YWx1ZSBpcyBudWxsIHtcbiAgICAgICAgcmV0dXJuICFpc1ByZXNlbnQodmFsdWUpIHx8IE51bWJlci5pc05hTih2YWx1ZSk7XG4gICAgfVxufVxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNvdW50LyIsInNvdXJjZXMiOlsiaW5wdXQtY291bnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsY0FBYyxFQUVkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsWUFBWSxFQUNaLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQiw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHMUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUMsdUJBQXVCLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFFcEYsV0FBVztBQWlCWCxJQUFhLHNCQUFzQiw4QkFBbkMsTUFBYSxzQkFDVCxTQUFRLDBCQUFrQztJQWdDMUMsWUFJSSxPQUF5QixFQUNFLGlC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UyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBc0IsQ0FBQzthQUN4RDtZQUNEO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXNCLENBQUM7YUFDeEQ7U0FDSjs7S0FDSixDQUFDO0lBbUNPLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN6QixXQUFBLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0lBRWhDLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFFMUIsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUU1QixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNyQixXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBRS9CLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7R0FoRHJCLHNCQUFzQixDQXlSbEM7U0F6Ulksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIGNsYW1wLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBpc1ByZXNlbnQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIGZvcm1hdE51bWJlcixcbiAgICBUVUlfTlVNQkVSX0ZPUk1BVCxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIHR1aUNyZWF0ZU51bWJlck1hc2ssXG4gICAgdHVpTWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIsXG4gICAgVHVpTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfUExVU19NSU5VU19URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtUZXh0TWFza0NvbmZpZ30gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0NPVU5UX09QVElPTlMsIFR1aUlucHV0Q291bnRPcHRpb25zfSBmcm9tICcuL2lucHV0LWNvdW50LW9wdGlvbnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtY291bnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jb3VudC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jb3VudC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0Q291bnRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dENvdW50Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENvdW50Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHVuZmluaXNoZWRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0ZXAgPSB0aGlzLm9wdGlvbnMuc3RlcDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaGlkZUJ1dHRvbnMgPSB0aGlzLm9wdGlvbnMuaGlkZUJ1dHRvbnM7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9IHRoaXMub3B0aW9ucy5wb3N0Zml4O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwZWFyYW5jZTogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9QTFVTX01JTlVTX1RFWFRTKVxuICAgICAgICByZWFkb25seSBtaW51c1RleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9DT1VOVF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dENvdW50T3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1iZXJGb3JtYXQ6IFR1aU51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRNYXNrKGFsbG93TmVnYXRpdmU6IGJvb2xlYW4pOiBUZXh0TWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXNrOiB0dWlDcmVhdGVOdW1iZXJNYXNrKHtcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlLFxuICAgICAgICAgICAgICAgIGRlY2ltYWxTeW1ib2w6IHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgdGhvdXNhbmRTeW1ib2w6IHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH0gYXMgVHVpVGV4dE1hc2tPcHRpb25zIGFzIHVua25vd24gYXMgVGV4dE1hc2tDb25maWc7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogMy4wIFJlbW92ZSBpbiB2LjNcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oaWRlLWJ1dHRvbnMnKVxuICAgIGdldCBidXR0b25zSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRlQnV0dG9ucyB8fCB0aGlzLmFwcGVhcmFuY2UgPT09ICd0YWJsZSc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25VcCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbnMudXA7XG4gICAgfVxuXG4gICAgZ2V0IGljb25Eb3duKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29ucy5kb3duO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRTaXplLnNpemU7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgZXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLm1pbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNlZCA/IHRoaXMubmF0aXZlVmFsdWUgOiB0aGlzLmZvcm1hdE51bWJlcih0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgbWludXNCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmludGVyYWN0aXZlIHx8IChpc1ByZXNlbnQodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZSA8PSB0aGlzLm1pbik7XG4gICAgfVxuXG4gICAgZ2V0IHBsdXNCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmludGVyYWN0aXZlIHx8IChpc1ByZXNlbnQodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZSA+PSB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgb25CdXR0b25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQsIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpc2FibGVkIHx8ICF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5vbkJsdXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTmF0aXZlVmFsdWVOb3RGaW5pc2hlZCkge1xuICAgICAgICAgICAgdGhpcy51bmZpbmlzaGVkVmFsdWUgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVuZmluaXNoZWRWYWx1ZSA9IG51bGw7XG5cbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBWYWx1ZSh0aGlzLm5hdGl2ZU51bWJlclZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5pc05vdE51bWJlcihjYXBwZWQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGNhcHBlZCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgZGVjcmVhc2VWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHRoaXMudmFsdWUgfHwgMCkgLSB0aGlzLnN0ZXA7XG5cbiAgICAgICAgdGhpcy5zYWZlVXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGluY3JlYXNlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9ICh0aGlzLnZhbHVlIHx8IDApICsgdGhpcy5zdGVwO1xuXG4gICAgICAgIHRoaXMuc2FmZVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZWFzZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVOdW1iZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yKS5qb2luKCcnKSxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVVcGRhdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY2xhbXAobmV3VmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXBWYWx1ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGgubWluKHZhbHVlLCB0aGlzLm1heCk7XG5cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihjYXBwZWQpIHx8IGNhcHBlZCA8IHRoaXMubWluID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmF0aXZlTnVtYmVyVmFsdWUgPSB0aGlzLnVuZmluaXNoZWRWYWx1ZVxuICAgICAgICAgICAgPyB0dWlNYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcihcbiAgICAgICAgICAgICAgICAgIHRoaXMudW5maW5pc2hlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMubmF0aXZlTnVtYmVyVmFsdWU7XG5cbiAgICAgICAgdGhpcy51bmZpbmlzaGVkVmFsdWUgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTm90TnVtYmVyKG5hdGl2ZU51bWJlclZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLm1heChuYXRpdmVOdW1iZXJWYWx1ZSB8fCAwLCB0aGlzLm1pbik7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc05vdE51bWJlcih2YWx1ZSlcbiAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgIDogZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb3ROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiB2YWx1ZSBpcyBudWxsIHtcbiAgICAgICAgcmV0dXJuICFpc1ByZXNlbnQodmFsdWUpIHx8IE51bWJlci5pc05hTih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNOYXRpdmVWYWx1ZU5vdEZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7bmF0aXZlTnVtYmVyVmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gbmF0aXZlTnVtYmVyVmFsdWUgPCAwXG4gICAgICAgICAgICA/IG5hdGl2ZU51bWJlclZhbHVlID4gdGhpcy5tYXhcbiAgICAgICAgICAgIDogbmF0aXZlTnVtYmVyVmFsdWUgPCB0aGlzLm1pbjtcbiAgICB9XG59XG4iXX0=
|