@taiga-ui/kit 3.35.0 → 3.36.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-calendar-month.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-copy.umd.js +39 -17
- package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-files.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-inline.umd.js +10 -2
- package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.js +15 -47
- package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tag.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
- package/components/input-copy/index.d.ts +1 -0
- package/components/input-copy/input-copy.component.d.ts +9 -7
- package/components/input-copy/input-copy.options.d.ts +13 -0
- package/components/input-inline/input-inline.component.d.ts +1 -1
- package/components/input-phone/input-phone.component.d.ts +2 -6
- package/esm2015/components/calendar-month/calendar-month.component.js +1 -1
- package/esm2015/components/input-copy/index.js +2 -1
- package/esm2015/components/input-copy/input-copy.component.js +18 -15
- package/esm2015/components/input-copy/input-copy.options.js +15 -0
- package/esm2015/components/input-files/input-files.directive.js +4 -4
- package/esm2015/components/input-inline/input-inline.component.js +11 -3
- package/esm2015/components/input-phone/input-phone.component.js +12 -40
- package/esm2015/components/tag/tag.component.js +1 -1
- package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
- package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-copy.js +31 -15
- package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-files.js +3 -3
- package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-inline.js +10 -2
- package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone.js +11 -39
- package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
- package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
- package/package.json +7 -7
|
@@ -110,7 +110,7 @@ export class TuiTagComponent {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
TuiTagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTagComponent, deps: [{ token: ElementRef }, { token: TUI_MODE }, { token: TUI_TAG_OPTIONS }, { token: TUI_TEXTFIELD_WATCHED_CONTROLLER }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
-
TuiTagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTagComponent, selector: "tui-tag, a[tuiTag], button[tuiTag]", inputs: { value: "value", editable: "editable", separator: "separator", maxLength: "maxLength", size: "size", showLoader: "showLoader", status: "status", hoverable: "hoverable", removable: "removable", disabled: "disabled", autoColor: "autoColor", leftContent: "leftContent" }, outputs: { edited: "edited" }, host: { listeners: { "$.data-mode.attr": "mode$", "keydown.enter": "edit($event)", "keydown.delete": "remove($event)", "keydown.backspace": "remove($event)" }, properties: { "attr.data-size": "this.size", "attr.data-status": "this.status", "class._hoverable": "this.hoverable", "class._disabled": "this.disabled", "class._autocolor": "this.autoColor", "class._editing": "this.editing" } }, providers: [TEXTFIELD_CONTROLLER_PROVIDER, MODE_PROVIDER], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"t-tag\"\n [style.backgroundColor]=\"backgroundColor\"\n (dblclick)=\"edit($event)\"\n>\n <div\n *ngIf=\"leftContent\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"leftContent as text\">\n {{ text }}\n </ng-container>\n </div>\n <span\n automation-id=\"tui-tag__text\"\n class=\"t-text\"\n [textContent]=\"displayText\"\n ></span>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-content\"\n [inheritColor]=\"true\"\n [size]=\"loaderSize\"\n ></tui-loader>\n <ng-container *ngIf=\"canRemove\">\n <tui-svg\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-tag__remove\"\n class=\"t-icon\"\n [src]=\"src\"\n (click)=\"remove($event)\"\n ></tui-svg>\n </ng-container>\n</div>\n<input\n *ngIf=\"editing\"\n #input\n automation-id=\"tui-tag__edit\"\n type=\"text\"\n class=\"t-edit\"\n [attr.maxLength]=\"maxLength\"\n [ngModel]=\"editedText\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n/>\n", styles: [":host{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-block;font:var(--tui-font-text-s);line-height:1.25rem;
|
|
113
|
+
TuiTagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTagComponent, selector: "tui-tag, a[tuiTag], button[tuiTag]", inputs: { value: "value", editable: "editable", separator: "separator", maxLength: "maxLength", size: "size", showLoader: "showLoader", status: "status", hoverable: "hoverable", removable: "removable", disabled: "disabled", autoColor: "autoColor", leftContent: "leftContent" }, outputs: { edited: "edited" }, host: { listeners: { "$.data-mode.attr": "mode$", "keydown.enter": "edit($event)", "keydown.delete": "remove($event)", "keydown.backspace": "remove($event)" }, properties: { "attr.data-size": "this.size", "attr.data-status": "this.status", "class._hoverable": "this.hoverable", "class._disabled": "this.disabled", "class._autocolor": "this.autoColor", "class._editing": "this.editing" } }, providers: [TEXTFIELD_CONTROLLER_PROVIDER, MODE_PROVIDER], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"t-tag\"\n [style.backgroundColor]=\"backgroundColor\"\n (dblclick)=\"edit($event)\"\n>\n <div\n *ngIf=\"leftContent\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"leftContent as text\">\n {{ text }}\n </ng-container>\n </div>\n <span\n automation-id=\"tui-tag__text\"\n class=\"t-text\"\n [textContent]=\"displayText\"\n ></span>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"t-content\"\n [inheritColor]=\"true\"\n [size]=\"loaderSize\"\n ></tui-loader>\n <ng-container *ngIf=\"canRemove\">\n <tui-svg\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-tag__remove\"\n class=\"t-icon\"\n [src]=\"src\"\n (click)=\"remove($event)\"\n ></tui-svg>\n </ng-container>\n</div>\n<input\n *ngIf=\"editing\"\n #input\n automation-id=\"tui-tag__edit\"\n type=\"text\"\n class=\"t-edit\"\n [attr.maxLength]=\"maxLength\"\n [ngModel]=\"editedText\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n/>\n", styles: [":host{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-block;font:var(--tui-font-text-s);line-height:1.25rem;max-width:100%;cursor:default;outline:none;text-decoration:none;padding:0;border:0}:host:after{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;width:100%;height:100%;content:\"\";box-sizing:border-box;border-radius:inherit;pointer-events:none}:host._hoverable:hover[data-status=custom]:after,:host._hoverable:active[data-status=custom]:after{background-color:var(--tui-clear)}:host:focus:after{border:2px solid var(--tui-focus)}:host[data-size=s]{font:var(--tui-font-text-xs);line-height:1.25rem;border-radius:var(--tui-radius-xs)}:host[data-size=m]{border-radius:var(--tui-radius-xs)}:host[data-size=l]{border-radius:var(--tui-radius-s)}:host[data-status=primary]{background-color:var(--tui-primary);color:var(--tui-primary-text)}:host[data-status=primary]._hoverable:hover{background-color:var(--tui-primary-hover)}:host[data-status=primary]._hoverable:active{background-color:var(--tui-primary-active)}:host[data-status=error]{background-color:var(--tui-error-bg);color:var(--tui-text-01)}:host[data-status=error]._hoverable:hover,:host[data-status=error]._hoverable:active{background-color:var(--tui-error-bg-hover)}:host[data-status=error][data-mode=onDark]{background-color:var(--tui-error-bg-night);color:var(--tui-text-01-night)}:host[data-status=error][data-mode=onDark]._hoverable:hover,:host[data-status=error][data-mode=onDark]._hoverable:active{background-color:var(--tui-error-bg-night-hover)}:host[data-status=success]{background-color:var(--tui-success-bg);color:var(--tui-text-01)}:host[data-status=success]._hoverable:hover,:host[data-status=success]._hoverable:active{background-color:var(--tui-success-bg-hover)}:host[data-status=success][data-mode=onDark]{background-color:var(--tui-success-bg-night);color:var(--tui-text-01-night)}:host[data-status=success][data-mode=onDark]._hoverable:hover,:host[data-status=success][data-mode=onDark]._hoverable:active{background-color:var(--tui-success-bg-night-hover)}:host[data-status=warning]{background-color:var(--tui-warning-bg);color:var(--tui-text-01)}:host[data-status=warning]._hoverable:hover,:host[data-status=warning]._hoverable:active{background-color:var(--tui-warning-bg-hover)}:host[data-status=warning][data-mode=onDark]{background-color:var(--tui-warning-bg-night);color:var(--tui-text-01-night)}:host[data-status=warning][data-mode=onDark]._hoverable:hover,:host[data-status=warning][data-mode=onDark]._hoverable:active{background-color:var(--tui-warning-bg-night-hover)}:host[data-status=default]{color:var(--tui-text-01-night);background-color:var(--tui-base-06)}:host[data-status=default]:not([data-mode])._hoverable:hover{background-color:var(--tui-base-07)}:host[data-status=default]:not([data-mode])._hoverable:active{background-color:var(--tui-base-08)}:host[data-status=default][data-mode=onDark]{color:var(--tui-text-01-night);background-color:var(--tui-clear-inverse)}:host[data-status=default][data-mode=onDark]._hoverable:hover{background-color:var(--tui-clear-inverse-hover)}:host[data-status=default][data-mode=onDark]._hoverable:active{background-color:var(--tui-clear-inverse-active)}:host[data-status=default][data-mode=onDark]:focus:after{border:2px solid var(--tui-base-01)}:host[data-status=default][data-mode=onLight]{background-color:var(--tui-clear);color:var(--tui-text-01)}:host[data-status=default][data-mode=onLight]._hoverable:hover{background-color:var(--tui-clear-hover)}:host[data-status=default][data-mode=onLight]._hoverable:active{background-color:var(--tui-clear-active)}:host._editing{background:transparent!important}:host._disabled{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host._hoverable{cursor:pointer}:host._autocolor{color:#000c}.t-text{white-space:pre;overflow:hidden;text-overflow:ellipsis;padding-right:.02em}.t-tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;display:flex;width:auto;align-items:center;font:inherit;border-radius:inherit}:host[data-size=s] .t-tag{height:1.25rem;padding:0 .375rem}:host[data-size=m] .t-tag{height:var(--tui-height-xs);padding:0 .5rem}:host[data-size=l] .t-tag{height:var(--tui-height-s);padding:0 .75rem}:host._editing .t-tag{visibility:hidden}.t-edit{margin:0;border:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;font:inherit;color:var(--tui-text-01);width:100%;height:100%;box-sizing:border-box;padding:0 .5rem}.t-edit:-webkit-autofill,.t-edit:-webkit-autofill:hover,.t-edit:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}:host[data-size=s] .t-edit{padding:0 .375rem}:host[data-size=m] .t-edit{padding:0 .5rem}:host[data-size=l] .t-edit{padding:0 .75rem}.t-icon{width:1rem;height:100%;cursor:pointer;pointer-events:all;opacity:var(--tui-disabled-opacity);-webkit-margin-start:.25rem;margin-inline-start:.25rem;-webkit-margin-end:-.25rem;margin-inline-end:-.25rem}.t-icon:hover{opacity:1}:host[data-size=s] .t-icon{-webkit-margin-start:0;margin-inline-start:0}:host[data-size=s] .t-icon ::ng-deep svg{transform:scale(.75)}.t-content{width:1rem;height:1rem}\n"], components: [{ type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
114
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTagComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
116
|
args: [{
|
|
@@ -153,7 +153,7 @@ class TuiCalendarMonthComponent {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
TuiCalendarMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiCalendarMonthComponent, deps: [{ token: TUI_CALENDAR_MONTHS }], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
-
TuiCalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiCalendarMonthComponent, selector: "tui-calendar-month", inputs: { value: "value", year: "year", disabledItemHandler: "disabledItemHandler", min: "min", max: "max" }, outputs: { monthClick: "monthClick", hoveredItemChange: "hoveredItemChange", yearChange: "yearChange" }, host: { properties: { "class._single": "this.isSingle" } }, ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n tuiLink\n type=\"button\"\n automation-id=\"tui-calendar-month__active-year\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:before,.t-item:after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:none;cursor:pointer;background-clip:content-box;box-sizing:border-box;border
|
|
156
|
+
TuiCalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiCalendarMonthComponent, selector: "tui-calendar-month", inputs: { value: "value", year: "year", disabledItemHandler: "disabledItemHandler", min: "min", max: "max" }, outputs: { monthClick: "monthClick", hoveredItemChange: "hoveredItemChange", yearChange: "yearChange" }, host: { properties: { "class._single": "this.isSingle" } }, ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n tuiLink\n type=\"button\"\n automation-id=\"tui-calendar-month__active-year\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:before,.t-item:after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-item:after{border-radius:.5rem}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:none;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:.125rem solid transparent}.t-cell:before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%);content:\"\";bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-01)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-.25rem;border-top-right-radius:0;border-bottom-right-radius:0}.t-cell_interval:not([data-range=\"start\"]):not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-range]>.t-item:before,.t-cell[data-range]>.t-item:after{background-color:var(--tui-primary)}.t-cell[data-range][data-state=hover]>.t-item:before,.t-cell[data-range][data-state=hover]>.t-item:after{background-color:var(--tui-primary-hover)}.t-cell[data-range][data-state=active]>.t-item:before,.t-cell[data-range][data-state=active]>.t-item:after{background-color:var(--tui-primary-active)}.t-cell[data-range=end]:before{background:var(--tui-base-02)}:host._single .t-cell[data-range=end]:before{background:var(--tui-secondary-hover)}.t-cell[data-range=end]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=end]>.t-item:before{left:.625rem;border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=end]>.t-item:after{left:-2rem;right:100%;transform:translate(1.6rem) scaleY(.83) scaleX(.5) rotate(45deg)}.t-cell[data-range=start]>.t-item:before{right:.625rem;border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]>.t-item:after{left:100%;right:-2rem;transform:translate(-1.6rem) scaleY(.83) scaleX(.5) rotate(45deg)}.t-cell[data-range=single]>.t-item:after{display:none}.t-cell[data-state=disabled]{pointer-events:none}.t-cell[data-state=disabled]>.t-item{opacity:.36}.t-cell[data-state=hover]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-state=active]:hover:not([data-range])>.t-item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.t-row{flex-wrap:wrap;margin-top:1.4375rem}.t-cell{box-sizing:content-box}.t-cell:nth-child(n + 5){margin-top:1.75rem}.t-cell_interval:nth-child(4n):before{right:0}.t-scrollbar{height:inherit;width:inherit}\n"], components: [{ type: i1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }, { type: i1.TuiPrimitiveYearPickerComponent, selector: "tui-primitive-year-picker", inputs: ["value", "initialItem", "min", "max", "disabledItemHandler"], outputs: ["yearClick"] }, { type: i1.TuiPrimitiveSpinButtonComponent, selector: "tui-primitive-spin-button", inputs: ["disabled", "mode", "leftDisabled", "rightDisabled"], outputs: ["leftClick", "rightClick"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i3.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { type: i3.TuiPressedDirective, selector: "[tuiPressedChange]", outputs: ["tuiPressedChange"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
157
157
|
__decorate([
|
|
158
158
|
tuiPure
|
|
159
159
|
], TuiCalendarMonthComponent.prototype, "calculateDisabledItemHandlerWithMinMax", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-calendar-month.js","sources":["../../../projects/kit/components/calendar-month/calendar-month.component.ts","../../../projects/kit/components/calendar-month/calendar-month.template.html","../../../projects/kit/components/calendar-month/calendar-month.module.ts","../../../projects/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiMonth,\n TuiMonthRange,\n tuiNullableSame,\n tuiPure,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState, TuiWithOptionalMinMax} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nconst TODAY = TuiDay.currentLocal();\n\n@Component({\n selector: 'tui-calendar-month',\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarMonthComponent implements TuiWithOptionalMinMax<TuiMonth> {\n @Input()\n value: TuiMonth | TuiMonthRange | null = null;\n\n @Input()\n year: TuiYear = TODAY;\n\n @Input()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n @Input()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n readonly yearChange = new EventEmitter<TuiYear>();\n\n isYearPickerShown = false;\n\n hoveredItem: TuiMonth | null = null;\n pressedItem: TuiMonth | null = null;\n\n constructor(\n @Inject(TUI_CALENDAR_MONTHS) readonly months$: Observable<readonly string[]>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiMonth || this.value.isSingleMonth)\n );\n }\n\n get previousYearDisabled(): boolean {\n return this.year.yearSameOrBefore(this.min);\n }\n\n get nextYearDisabled(): boolean {\n return this.year.yearSameOrAfter(this.max);\n }\n\n getItemState(item: TuiMonth): TuiInteractiveState | null {\n const {disabledItemHandlerWithMinMax, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandlerWithMinMax(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem?.monthSame(item)) {\n return TuiInteractiveState.Active;\n }\n\n if (hoveredItem?.monthSame(item)) {\n return TuiInteractiveState.Hover;\n }\n\n return null;\n }\n\n getItemRange(item: TuiMonth): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiMonth) {\n return value.monthSame(item) ? TuiRangeState.Single : null;\n }\n\n const theFirstOfRange = value.from.monthSame(item) && !value.isSingleMonth;\n const hoveredItemAfterFrom =\n hoveredItem?.monthAfter(value.from) &&\n value.from.monthSame(item) &&\n value.isSingleMonth;\n const hoveredItemIsCandidateToBeFrom =\n hoveredItem?.monthSame(item) &&\n hoveredItem?.monthBefore(value.from) &&\n value.isSingleMonth;\n\n if (theFirstOfRange || hoveredItemAfterFrom || hoveredItemIsCandidateToBeFrom) {\n return TuiRangeState.Start;\n }\n\n const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemBeforeTo =\n value.to.monthSame(item) &&\n hoveredItem?.monthBefore(value.to) &&\n value.isSingleMonth;\n const hoveredItemIsCandidateToBeTo =\n hoveredItem?.monthSame(item) &&\n hoveredItem?.monthAfter(value.from) &&\n value.isSingleMonth;\n\n if (theLastOfRange || hoveredItemBeforeTo || hoveredItemIsCandidateToBeTo) {\n return TuiRangeState.End;\n }\n\n return value.isSingleMonth && value.from.monthSame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n isItemInsideRange(month: TuiMonth): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiMonth) {\n return false;\n }\n\n if (!value.isSingleMonth) {\n return value.from.monthSameOrBefore(month) && value.to.monthAfter(month);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiMonthRange.sort(value.from, hoveredItem);\n\n return range.from.monthSameOrBefore(month) && range.to.monthAfter(month);\n }\n\n onPickerYearClick(year: TuiYear): void {\n this.isYearPickerShown = false;\n\n if (this.year.yearSame(year)) {\n return;\n }\n\n this.updateActiveYear(year);\n }\n\n onItemClick(month: TuiMonth): void {\n if (this.disabledItemHandlerWithMinMax(month)) {\n return;\n }\n\n this.monthClick.emit(month);\n }\n\n onYearClick(): void {\n this.isYearPickerShown = true;\n }\n\n onNextYear(): void {\n this.updateActiveYear(this.year.append({year: 1}));\n }\n\n onPreviousYear(): void {\n this.updateActiveYear(this.year.append({year: -1}));\n }\n\n onItemHovered(hovered: boolean, item: TuiMonth): void {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n onItemPressed(pressed: boolean, item: TuiMonth): void {\n this.updatePressedItem(pressed ? item : null);\n }\n\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext>,\n value: TuiMonth | TuiMonthRange | null,\n min: TuiMonth,\n max: TuiMonth,\n ): TuiBooleanHandler<TuiMonth> {\n return item =>\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item, {value});\n }\n\n private get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value,\n this.min,\n this.max,\n );\n }\n\n private updateHoveredItem(month: TuiMonth | null): void {\n if (tuiNullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updatePressedItem(item: TuiMonth | null): void {\n this.pressedItem = item;\n }\n\n private updateActiveYear(year: TuiYear): void {\n this.year = year;\n this.yearChange.emit(year);\n }\n}\n","<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n tuiLink\n type=\"button\"\n automation-id=\"tui-calendar-month__active-year\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiLinkModule,\n TuiPrimitiveSpinButtonModule,\n TuiPrimitiveYearPickerModule,\n TuiScrollbarModule,\n} from '@taiga-ui/core';\n\nimport {TuiCalendarMonthComponent} from './calendar-month.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiPrimitiveYearPickerModule,\n TuiPrimitiveSpinButtonModule,\n TuiScrollbarModule,\n TuiLinkModule,\n TuiLetModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusableModule,\n ],\n declarations: [TuiCalendarMonthComponent],\n exports: [TuiCalendarMonthComponent],\n})\nexport class TuiCalendarMonthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-calendar-month.js","sources":["../../../projects/kit/components/calendar-month/calendar-month.component.ts","../../../projects/kit/components/calendar-month/calendar-month.template.html","../../../projects/kit/components/calendar-month/calendar-month.module.ts","../../../projects/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiMonth,\n TuiMonthRange,\n tuiNullableSame,\n tuiPure,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState, TuiWithOptionalMinMax} from '@taiga-ui/core';\nimport {TuiMonthContext} from '@taiga-ui/kit/interfaces';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\nimport {TuiBooleanHandlerWithContext} from '@taiga-ui/kit/types';\nimport {Observable} from 'rxjs';\n\nconst TODAY = TuiDay.currentLocal();\n\n@Component({\n selector: 'tui-calendar-month',\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarMonthComponent implements TuiWithOptionalMinMax<TuiMonth> {\n @Input()\n value: TuiMonth | TuiMonthRange | null = null;\n\n @Input()\n year: TuiYear = TODAY;\n\n @Input()\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext> =\n ALWAYS_FALSE_HANDLER;\n\n @Input()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n readonly yearChange = new EventEmitter<TuiYear>();\n\n isYearPickerShown = false;\n\n hoveredItem: TuiMonth | null = null;\n pressedItem: TuiMonth | null = null;\n\n constructor(\n @Inject(TUI_CALENDAR_MONTHS) readonly months$: Observable<readonly string[]>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiMonth || this.value.isSingleMonth)\n );\n }\n\n get previousYearDisabled(): boolean {\n return this.year.yearSameOrBefore(this.min);\n }\n\n get nextYearDisabled(): boolean {\n return this.year.yearSameOrAfter(this.max);\n }\n\n getItemState(item: TuiMonth): TuiInteractiveState | null {\n const {disabledItemHandlerWithMinMax, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandlerWithMinMax(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem?.monthSame(item)) {\n return TuiInteractiveState.Active;\n }\n\n if (hoveredItem?.monthSame(item)) {\n return TuiInteractiveState.Hover;\n }\n\n return null;\n }\n\n getItemRange(item: TuiMonth): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiMonth) {\n return value.monthSame(item) ? TuiRangeState.Single : null;\n }\n\n const theFirstOfRange = value.from.monthSame(item) && !value.isSingleMonth;\n const hoveredItemAfterFrom =\n hoveredItem?.monthAfter(value.from) &&\n value.from.monthSame(item) &&\n value.isSingleMonth;\n const hoveredItemIsCandidateToBeFrom =\n hoveredItem?.monthSame(item) &&\n hoveredItem?.monthBefore(value.from) &&\n value.isSingleMonth;\n\n if (theFirstOfRange || hoveredItemAfterFrom || hoveredItemIsCandidateToBeFrom) {\n return TuiRangeState.Start;\n }\n\n const theLastOfRange = value.to.monthSame(item) && !value.isSingleMonth;\n const hoveredItemBeforeTo =\n value.to.monthSame(item) &&\n hoveredItem?.monthBefore(value.to) &&\n value.isSingleMonth;\n const hoveredItemIsCandidateToBeTo =\n hoveredItem?.monthSame(item) &&\n hoveredItem?.monthAfter(value.from) &&\n value.isSingleMonth;\n\n if (theLastOfRange || hoveredItemBeforeTo || hoveredItemIsCandidateToBeTo) {\n return TuiRangeState.End;\n }\n\n return value.isSingleMonth && value.from.monthSame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n isItemInsideRange(month: TuiMonth): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiMonth) {\n return false;\n }\n\n if (!value.isSingleMonth) {\n return value.from.monthSameOrBefore(month) && value.to.monthAfter(month);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiMonthRange.sort(value.from, hoveredItem);\n\n return range.from.monthSameOrBefore(month) && range.to.monthAfter(month);\n }\n\n onPickerYearClick(year: TuiYear): void {\n this.isYearPickerShown = false;\n\n if (this.year.yearSame(year)) {\n return;\n }\n\n this.updateActiveYear(year);\n }\n\n onItemClick(month: TuiMonth): void {\n if (this.disabledItemHandlerWithMinMax(month)) {\n return;\n }\n\n this.monthClick.emit(month);\n }\n\n onYearClick(): void {\n this.isYearPickerShown = true;\n }\n\n onNextYear(): void {\n this.updateActiveYear(this.year.append({year: 1}));\n }\n\n onPreviousYear(): void {\n this.updateActiveYear(this.year.append({year: -1}));\n }\n\n onItemHovered(hovered: boolean, item: TuiMonth): void {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n onItemPressed(pressed: boolean, item: TuiMonth): void {\n this.updatePressedItem(pressed ? item : null);\n }\n\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandlerWithContext<TuiMonth, TuiMonthContext>,\n value: TuiMonth | TuiMonthRange | null,\n min: TuiMonth,\n max: TuiMonth,\n ): TuiBooleanHandler<TuiMonth> {\n return item =>\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item, {value});\n }\n\n private get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value,\n this.min,\n this.max,\n );\n }\n\n private updateHoveredItem(month: TuiMonth | null): void {\n if (tuiNullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updatePressedItem(item: TuiMonth | null): void {\n this.pressedItem = item;\n }\n\n private updateActiveYear(year: TuiYear): void {\n this.year = year;\n this.yearChange.emit(year);\n }\n}\n","<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n tuiLink\n type=\"button\"\n automation-id=\"tui-calendar-month__active-year\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container *ngFor=\"let month of months$ | async; let index = index\">\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ month }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiLinkModule,\n TuiPrimitiveSpinButtonModule,\n TuiPrimitiveYearPickerModule,\n TuiScrollbarModule,\n} from '@taiga-ui/core';\n\nimport {TuiCalendarMonthComponent} from './calendar-month.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiPrimitiveYearPickerModule,\n TuiPrimitiveSpinButtonModule,\n TuiScrollbarModule,\n TuiLinkModule,\n TuiLetModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiFocusableModule,\n ],\n declarations: [TuiCalendarMonthComponent],\n exports: [TuiCalendarMonthComponent],\n})\nexport class TuiCalendarMonthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { __decorate } from 'tslib';
|
|
|
2
2
|
import * as i3 from '@angular/common';
|
|
3
3
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { ChangeDetectorRef, Component, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, Input,
|
|
5
|
+
import { InjectionToken, ChangeDetectorRef, Component, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, Input, Directive, NgModule } from '@angular/core';
|
|
6
6
|
import * as i4 from '@angular/forms';
|
|
7
7
|
import { NgControl } from '@angular/forms';
|
|
8
8
|
import { AbstractTuiControl, tuiAsFocusableItemAccessor, tuiAsControl, tuiPure } from '@taiga-ui/cdk';
|
|
@@ -16,18 +16,31 @@ import { switchMap, map, startWith } from 'rxjs/operators';
|
|
|
16
16
|
import * as i2 from '@tinkoff/ng-polymorpheus';
|
|
17
17
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
18
18
|
|
|
19
|
+
const TUI_INPUT_COPY_DEFAULT_OPTIONS = {
|
|
20
|
+
successMessage: ``,
|
|
21
|
+
messageDirection: `bottom-left`,
|
|
22
|
+
messageAppearance: ``,
|
|
23
|
+
icon: ({ $implicit }) => ($implicit === `s` ? `tuiIconCopy` : `tuiIconCopyLarge`),
|
|
24
|
+
};
|
|
25
|
+
const TUI_INPUT_COPY_OPTIONS = new InjectionToken(`[TUI_INPUT_COPY_OPTIONS]`, {
|
|
26
|
+
factory: () => TUI_INPUT_COPY_DEFAULT_OPTIONS,
|
|
27
|
+
});
|
|
28
|
+
const tuiInputCopyOptionsProvider = (options) => ({
|
|
29
|
+
provide: TUI_INPUT_COPY_OPTIONS,
|
|
30
|
+
useValue: Object.assign(Object.assign({}, TUI_INPUT_COPY_DEFAULT_OPTIONS), options),
|
|
31
|
+
});
|
|
32
|
+
|
|
19
33
|
class TuiInputCopyComponent extends AbstractTuiControl {
|
|
20
|
-
constructor(control, cdr, doc, textfieldSize, copyTexts
|
|
34
|
+
constructor(control, cdr, doc, textfieldSize, copyTexts$, options) {
|
|
21
35
|
super(control, cdr);
|
|
22
36
|
this.doc = doc;
|
|
23
37
|
this.textfieldSize = textfieldSize;
|
|
24
38
|
this.copyTexts$ = copyTexts$;
|
|
39
|
+
this.options = options;
|
|
25
40
|
this.copy$ = new Subject();
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
get hasValue() {
|
|
30
|
-
return !!this.value;
|
|
41
|
+
this.successMessage = this.options.successMessage;
|
|
42
|
+
this.messageDirection = this.options.messageDirection;
|
|
43
|
+
this.messageAppearance = this.options.messageAppearance;
|
|
31
44
|
}
|
|
32
45
|
get hintText$() {
|
|
33
46
|
return this.copyTexts$.pipe(switchMap(texts => this.copy$.pipe(switchMap(() => merge(of(this.successMessage || texts[1]), timer(3000).pipe(map(() => texts[0])))), startWith(texts[0]))));
|
|
@@ -40,8 +53,11 @@ class TuiInputCopyComponent extends AbstractTuiControl {
|
|
|
40
53
|
get focused() {
|
|
41
54
|
return !!this.textfield && this.textfield.focused;
|
|
42
55
|
}
|
|
56
|
+
get size() {
|
|
57
|
+
return this.textfieldSize.size;
|
|
58
|
+
}
|
|
43
59
|
get icon() {
|
|
44
|
-
return this.
|
|
60
|
+
return this.options.icon;
|
|
45
61
|
}
|
|
46
62
|
onValueChange(value) {
|
|
47
63
|
this.value = value;
|
|
@@ -62,12 +78,12 @@ class TuiInputCopyComponent extends AbstractTuiControl {
|
|
|
62
78
|
return '';
|
|
63
79
|
}
|
|
64
80
|
}
|
|
65
|
-
TuiInputCopyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCopyComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: DOCUMENT }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_COPY_TEXTS }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
-
TuiInputCopyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputCopyComponent, selector: "tui-input-copy", inputs: { successMessage: "successMessage", messageDirection: "messageDirection", messageAppearance: "messageAppearance" },
|
|
81
|
+
TuiInputCopyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCopyComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: DOCUMENT }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_COPY_TEXTS }, { token: TUI_INPUT_COPY_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
TuiInputCopyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputCopyComponent, selector: "tui-input-copy", inputs: { successMessage: "successMessage", messageDirection: "messageDirection", messageAppearance: "messageAppearance" }, providers: [
|
|
67
83
|
TUI_VALUE_ACCESSOR_PROVIDER,
|
|
68
84
|
tuiAsFocusableItemAccessor(TuiInputCopyComponent),
|
|
69
85
|
tuiAsControl(TuiInputCopyComponent),
|
|
70
|
-
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-primitive-textfield\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-svg\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-copy__icon\"\n class=\"t-icon\"\n [tuiHint]=\"hint\"\n [tuiHintDirection]=\"messageDirection\"\n [tuiHintAppearance]=\"messageAppearance\"\n [src]=\"
|
|
86
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-primitive-textfield\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-copy__icon\"\n class=\"t-icon\"\n [disabled]=\"!value\"\n [tuiHint]=\"hint\"\n [tuiHintDirection]=\"messageDirection\"\n [tuiHintAppearance]=\"messageAppearance\"\n [src]=\"src\"\n (click)=\"copy()\"\n ></tui-svg>\n</ng-template>\n\n<ng-template #hint>\n <ng-container *polymorpheusOutlet=\"hintText$ | async as text\">\n {{ text }}\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.t-icon{position:relative;cursor:pointer;pointer-events:auto;color:var(--tui-base-06)}.t-textfield{border-radius:inherit;text-align:inherit}\n"], components: [{ type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i1.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i1.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i1.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71
87
|
__decorate([
|
|
72
88
|
tuiPure
|
|
73
89
|
], TuiInputCopyComponent.prototype, "hintText$", null);
|
|
@@ -103,6 +119,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
103
119
|
}] }, { type: i5.Observable, decorators: [{
|
|
104
120
|
type: Inject,
|
|
105
121
|
args: [TUI_COPY_TEXTS]
|
|
122
|
+
}] }, { type: undefined, decorators: [{
|
|
123
|
+
type: Inject,
|
|
124
|
+
args: [TUI_INPUT_COPY_OPTIONS]
|
|
106
125
|
}] }]; }, propDecorators: { textfield: [{
|
|
107
126
|
type: ViewChild,
|
|
108
127
|
args: [TuiPrimitiveTextfieldComponent]
|
|
@@ -112,9 +131,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
112
131
|
type: Input
|
|
113
132
|
}], messageAppearance: [{
|
|
114
133
|
type: Input
|
|
115
|
-
}], hasValue: [{
|
|
116
|
-
type: HostBinding,
|
|
117
|
-
args: ['class._has-value']
|
|
118
134
|
}], hintText$: [] } });
|
|
119
135
|
|
|
120
136
|
class TuiInputCopyDirective extends AbstractTuiTextfieldHost {
|
|
@@ -175,5 +191,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
175
191
|
* Generated bundle index. Do not edit.
|
|
176
192
|
*/
|
|
177
193
|
|
|
178
|
-
export { TuiInputCopyComponent, TuiInputCopyDirective, TuiInputCopyModule };
|
|
194
|
+
export { TUI_INPUT_COPY_DEFAULT_OPTIONS, TUI_INPUT_COPY_OPTIONS, TuiInputCopyComponent, TuiInputCopyDirective, TuiInputCopyModule, tuiInputCopyOptionsProvider };
|
|
179
195
|
//# sourceMappingURL=taiga-ui-kit-components-input-copy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-copy.js","sources":["../../../projects/kit/components/input-copy/input-copy.component.ts","../../../projects/kit/components/input-copy/input-copy.template.html","../../../projects/kit/components/input-copy/input-copy.directive.ts","../../../projects/kit/components/input-copy/input-copy.module.ts","../../../projects/kit/components/input-copy/taiga-ui-kit-components-input-copy.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_SIZE,\n TuiHintDirection,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {TUI_VALUE_ACCESSOR_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {merge, Observable, of, Subject, timer} from 'rxjs';\nimport {map, startWith, switchMap} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-input-copy',\n templateUrl: './input-copy.template.html',\n styleUrls: ['./input-copy.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TUI_VALUE_ACCESSOR_PROVIDER,\n tuiAsFocusableItemAccessor(TuiInputCopyComponent),\n tuiAsControl(TuiInputCopyComponent),\n ],\n})\nexport class TuiInputCopyComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly copy$ = new Subject<void>();\n\n @Input()\n successMessage: PolymorpheusContent;\n\n @Input()\n messageDirection: TuiHintDirection = 'bottom-left';\n\n @Input()\n messageAppearance = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_COPY_TEXTS) private readonly copyTexts$: Observable<[string, string]>,\n ) {\n super(control, cdr);\n }\n\n @HostBinding('class._has-value')\n get hasValue(): boolean {\n return !!this.value;\n }\n\n @tuiPure\n get hintText$(): Observable<PolymorpheusContent> {\n return this.copyTexts$.pipe(\n switchMap(texts =>\n this.copy$.pipe(\n switchMap(() =>\n merge(\n of(this.successMessage || texts[1]),\n timer(3000).pipe(map(() => texts[0])),\n ),\n ),\n startWith(texts[0]),\n ),\n ),\n );\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.computedDisabled || !this.textfield\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get icon(): string {\n return this.textfieldSize.size === 's' ? 'tuiIconCopy' : 'tuiIconCopyLarge';\n }\n\n onValueChange(value: string): void {\n this.value = value;\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n copy(): void {\n if (!this.textfield?.nativeFocusableElement) {\n return;\n }\n\n this.textfield.nativeFocusableElement.select();\n this.doc.execCommand('copy');\n this.copy$.next();\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n}\n","<tui-primitive-textfield\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-svg\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-copy__icon\"\n class=\"t-icon\"\n [tuiHint]=\"hint\"\n [tuiHintDirection]=\"messageDirection\"\n [tuiHintAppearance]=\"messageAppearance\"\n [src]=\"icon\"\n (click)=\"copy()\"\n ></tui-svg>\n</ng-template>\n\n<ng-template #hint>\n <ng-container *polymorpheusOutlet=\"hintText$ | async as text\">\n {{ text }}\n </ng-container>\n</ng-template>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputCopyComponent} from './input-copy.component';\n\n@Directive({\n selector: 'tui-input-copy',\n providers: [tuiAsTextfieldHost(TuiInputCopyDirective)],\n})\nexport class TuiInputCopyDirective extends AbstractTuiTextfieldHost<TuiInputCopyComponent> {\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertModule,\n TuiHintModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputCopyComponent} from './input-copy.component';\nimport {TuiInputCopyDirective} from './input-copy.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiHintModule,\n TuiPrimitiveTextfieldModule,\n TuiAlertModule,\n TuiTextfieldControllerModule,\n ],\n declarations: [TuiInputCopyComponent, TuiInputCopyDirective],\n exports: [TuiInputCopyComponent, TuiInputCopyDirective, TuiTextfieldComponent],\n})\nexport class TuiInputCopyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-copy.js","sources":["../../../projects/kit/components/input-copy/input-copy.options.ts","../../../projects/kit/components/input-copy/input-copy.component.ts","../../../projects/kit/components/input-copy/input-copy.template.html","../../../projects/kit/components/input-copy/input-copy.directive.ts","../../../projects/kit/components/input-copy/input-copy.module.ts","../../../projects/kit/components/input-copy/taiga-ui-kit-components-input-copy.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiHintDirection, TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiInputCopyOptions {\n readonly successMessage: PolymorpheusContent;\n readonly messageDirection: TuiHintDirection;\n readonly messageAppearance: string;\n readonly icon: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL | TuiSizeS>>;\n}\n\nexport const TUI_INPUT_COPY_DEFAULT_OPTIONS: TuiInputCopyOptions = {\n successMessage: ``,\n messageDirection: `bottom-left`,\n messageAppearance: ``,\n icon: ({$implicit}) => ($implicit === `s` ? `tuiIconCopy` : `tuiIconCopyLarge`),\n};\n\nexport const TUI_INPUT_COPY_OPTIONS = new InjectionToken<TuiInputCopyOptions>(\n `[TUI_INPUT_COPY_OPTIONS]`,\n {\n factory: () => TUI_INPUT_COPY_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputCopyOptionsProvider: (\n options: Partial<TuiInputCopyOptions>,\n) => ValueProvider = (options: Partial<TuiInputCopyOptions>) => ({\n provide: TUI_INPUT_COPY_OPTIONS,\n useValue: {...TUI_INPUT_COPY_DEFAULT_OPTIONS, ...options},\n});\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_SIZE,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {TUI_VALUE_ACCESSOR_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {merge, Observable, of, Subject, timer} from 'rxjs';\nimport {map, startWith, switchMap} from 'rxjs/operators';\n\nimport {TUI_INPUT_COPY_OPTIONS, TuiInputCopyOptions} from './input-copy.options';\n\n@Component({\n selector: 'tui-input-copy',\n templateUrl: './input-copy.template.html',\n styleUrls: ['./input-copy.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TUI_VALUE_ACCESSOR_PROVIDER,\n tuiAsFocusableItemAccessor(TuiInputCopyComponent),\n tuiAsControl(TuiInputCopyComponent),\n ],\n})\nexport class TuiInputCopyComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly copy$ = new Subject<void>();\n\n @Input()\n successMessage = this.options.successMessage;\n\n @Input()\n messageDirection = this.options.messageDirection;\n\n @Input()\n messageAppearance = this.options.messageAppearance;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n @Inject(TUI_COPY_TEXTS) private readonly copyTexts$: Observable<[string, string]>,\n @Inject(TUI_INPUT_COPY_OPTIONS) private readonly options: TuiInputCopyOptions,\n ) {\n super(control, cdr);\n }\n\n @tuiPure\n get hintText$(): Observable<PolymorpheusContent> {\n return this.copyTexts$.pipe(\n switchMap(texts =>\n this.copy$.pipe(\n switchMap(() =>\n merge(\n of(this.successMessage || texts[1]),\n timer(3000).pipe(map(() => texts[0])),\n ),\n ),\n startWith(texts[0]),\n ),\n ),\n );\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.computedDisabled || !this.textfield\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return !!this.textfield && this.textfield.focused;\n }\n\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get icon(): TuiInputCopyOptions['icon'] {\n return this.options.icon;\n }\n\n onValueChange(value: string): void {\n this.value = value;\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n copy(): void {\n if (!this.textfield?.nativeFocusableElement) {\n return;\n }\n\n this.textfield.nativeFocusableElement.select();\n this.doc.execCommand('copy');\n this.copy$.next();\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n}\n","<tui-primitive-textfield\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n tuiWrapper\n appearance=\"icon\"\n automation-id=\"tui-copy__icon\"\n class=\"t-icon\"\n [disabled]=\"!value\"\n [tuiHint]=\"hint\"\n [tuiHintDirection]=\"messageDirection\"\n [tuiHintAppearance]=\"messageAppearance\"\n [src]=\"src\"\n (click)=\"copy()\"\n ></tui-svg>\n</ng-template>\n\n<ng-template #hint>\n <ng-container *polymorpheusOutlet=\"hintText$ | async as text\">\n {{ text }}\n </ng-container>\n</ng-template>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputCopyComponent} from './input-copy.component';\n\n@Directive({\n selector: 'tui-input-copy',\n providers: [tuiAsTextfieldHost(TuiInputCopyDirective)],\n})\nexport class TuiInputCopyDirective extends AbstractTuiTextfieldHost<TuiInputCopyComponent> {\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertModule,\n TuiHintModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputCopyComponent} from './input-copy.component';\nimport {TuiInputCopyDirective} from './input-copy.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiHintModule,\n TuiPrimitiveTextfieldModule,\n TuiAlertModule,\n TuiTextfieldControllerModule,\n ],\n declarations: [TuiInputCopyComponent, TuiInputCopyDirective],\n exports: [TuiInputCopyComponent, TuiInputCopyDirective, TuiTextfieldComponent],\n})\nexport class TuiInputCopyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, ElementRef, Directive, Inject, HostBinding, Pipe, EventEmitter, ChangeDetectorRef, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Self, ViewChild, ContentChild,
|
|
3
|
+
import { InjectionToken, forwardRef, ElementRef, Directive, Inject, HostBinding, Pipe, EventEmitter, ChangeDetectorRef, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Self, ViewChild, ContentChild, Input, Output, HostListener, NgModule } from '@angular/core';
|
|
4
4
|
import * as i6 from '@angular/forms';
|
|
5
5
|
import { NgControl } from '@angular/forms';
|
|
6
6
|
import * as i2 from '@taiga-ui/cdk';
|
|
@@ -66,7 +66,7 @@ class TuiInputFilesDirective {
|
|
|
66
66
|
return this.el.nativeElement;
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
TuiInputFilesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesDirective, deps: [{ token: TuiInputFilesComponent }, { token: ElementRef }, { token: TuiIdService }, { token: TUI_INPUT_FILES_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
|
|
69
|
+
TuiInputFilesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesDirective, deps: [{ token: forwardRef(() => TuiInputFilesComponent) }, { token: ElementRef }, { token: TuiIdService }, { token: TUI_INPUT_FILES_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
|
|
70
70
|
TuiInputFilesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputFilesDirective, selector: "input[tuiInputFiles]", host: { attributes: { "type": "file" }, properties: { "tabIndex": "this.tabIndex", "id": "this.id", "accept": "this.accept", "multiple": "this.multiple", "attr.capture": "this.capture" }, classAttribute: "t-native" }, ngImport: i0 });
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesDirective, decorators: [{
|
|
72
72
|
type: Directive,
|
|
@@ -79,7 +79,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
79
79
|
}]
|
|
80
80
|
}], ctorParameters: function () { return [{ type: TuiInputFilesComponent, decorators: [{
|
|
81
81
|
type: Inject,
|
|
82
|
-
args: [TuiInputFilesComponent]
|
|
82
|
+
args: [forwardRef(() => TuiInputFilesComponent)]
|
|
83
83
|
}] }, { type: i0.ElementRef, decorators: [{
|
|
84
84
|
type: Inject,
|
|
85
85
|
args: [ElementRef]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-files.js","sources":["../../../projects/kit/components/input-files/input-files.options.ts","../../../projects/kit/components/input-files/input-files.directive.ts","../../../projects/kit/components/input-files/max-size-rejection-error.pipe.ts","../../../projects/kit/components/input-files/input-files.component.ts","../../../projects/kit/components/input-files/input-files.template.html","../../../projects/kit/components/input-files/input-files.module.ts","../../../projects/kit/components/input-files/taiga-ui-kit-components-input-files.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiSizeL} from '@taiga-ui/core';\n\nexport interface TuiInputFilesOptions {\n /**\n * @description:\n * user - The user-facing camera and/or microphone should be used.\n * environment - The outward-facing camera and/or microphone should be used\n */\n capture: 'environment' | 'user' | null;\n accepts: string;\n multiple: boolean;\n size: TuiSizeL;\n maxFileSize: number;\n}\n\nexport const TUI_INPUT_FILES_DEFAULT_OPTIONS: TuiInputFilesOptions = {\n capture: null,\n accepts: ``,\n multiple: false,\n size: `m`,\n maxFileSize: 30 * 1000 * 1000, // 30 MB\n};\n\n/**\n * Default parameters for input files component\n */\nexport const TUI_INPUT_FILES_OPTIONS = new InjectionToken<TuiInputFilesOptions>(\n `[TUI_INPUT_FILES_OPTIONS]`,\n {\n factory: () => TUI_INPUT_FILES_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputFilesOptionsProvider: (\n options: Partial<TuiInputFilesOptions>,\n) => ValueProvider = (options: Partial<TuiInputFilesOptions>) => ({\n provide: TUI_INPUT_FILES_OPTIONS,\n useValue: {...TUI_INPUT_FILES_DEFAULT_OPTIONS, ...options},\n});\n","import {Directive, ElementRef, HostBinding, Inject} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiInputFilesComponent} from './input-files.component';\nimport {TUI_INPUT_FILES_OPTIONS, TuiInputFilesOptions} from './input-files.options';\n\n@Directive({\n selector: 'input[tuiInputFiles]',\n host: {\n type: 'file',\n class: 't-native',\n },\n})\nexport class TuiInputFilesDirective {\n constructor(\n @Inject(TuiInputFilesComponent) readonly host: TuiInputFilesComponent,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLInputElement>,\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n @Inject(TUI_INPUT_FILES_OPTIONS) private readonly options: TuiInputFilesOptions,\n ) {}\n\n @HostBinding('tabIndex')\n get tabIndex(): number {\n return this.host.focusable ? 0 : -1;\n }\n\n @HostBinding('id')\n get id(): string {\n return this.el.nativeElement.id || this.idService.generate();\n }\n\n @HostBinding('accept')\n get accept(): string {\n return this.el.nativeElement.accept ?? this.options.accepts;\n }\n\n @HostBinding('multiple')\n get multiple(): boolean {\n return this.el.nativeElement.multiple ?? this.options.multiple;\n }\n\n @HostBinding('attr.capture')\n get capture(): string | null {\n return this.el.nativeElement.getAttribute('capture') ?? this.options.capture;\n }\n\n get input(): HTMLInputElement {\n return this.el.nativeElement;\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TuiInjectionTokenType} from '@taiga-ui/cdk';\nimport {TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiFormatSize} from '@taiga-ui/kit/utils';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Pipe({name: `tuiMaxSizeRejectionError`})\nexport class TuiMaxSizeRejectionErrorPipe implements PipeTransform {\n constructor(\n @Inject(TUI_INPUT_FILE_TEXTS)\n private readonly inputFileTexts$: TuiInjectionTokenType<\n typeof TUI_INPUT_FILE_TEXTS\n >,\n @Inject(TUI_DIGITAL_INFORMATION_UNITS)\n private readonly units$: TuiInjectionTokenType<\n typeof TUI_DIGITAL_INFORMATION_UNITS\n >,\n ) {}\n\n transform(maxFileSize: number): Observable<string> {\n return combineLatest([this.inputFileTexts$, this.units$]).pipe(\n map(\n ([{maxSizeRejectionReason}, units]) =>\n `${maxSizeRejectionReason}${tuiFormatSize(units, maxFileSize)}`,\n ),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n EMPTY_ARRAY,\n TUI_IS_MOBILE,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TuiSizeL} from '@taiga-ui/core';\nimport {TuiFileLike} from '@taiga-ui/kit/interfaces';\nimport {TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiGetAcceptArray} from '@taiga-ui/kit/utils/files';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiInputFilesDirective} from './input-files.directive';\nimport {TUI_INPUT_FILES_OPTIONS, TuiInputFilesOptions} from './input-files.options';\n\n@Component({\n selector: 'tui-input-files',\n templateUrl: './input-files.template.html',\n styleUrls: ['./input-files.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MODE_PROVIDER, tuiAsFocusableItemAccessor(TuiInputFilesComponent)],\n})\nexport class TuiInputFilesComponent\n extends AbstractTuiNullableControl<TuiFileLike | readonly TuiFileLike[]>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('input')\n private readonly input?: ElementRef<HTMLInputElement>;\n\n private dataTransfer: DataTransfer | null = null;\n\n @ContentChild(forwardRef(() => TuiInputFilesDirective))\n readonly nativeInput?: TuiInputFilesDirective;\n\n @ContentChild(TemplateRef)\n readonly template?: TemplateRef<TuiContextWithImplicit<boolean>>;\n\n @ViewChild('formatRejection')\n readonly formatRejection!: PolymorpheusContent;\n\n @ViewChild('maxSizeRejection')\n readonly maxSizeRejection!: PolymorpheusContent;\n\n @Input()\n link: PolymorpheusContent;\n\n @Input()\n label: PolymorpheusContent;\n\n /**\n * @deprecated: use `<input tuiInputFiles accept=\"image/*\" />`\n */\n @Input()\n accept = this.options.accepts;\n\n /**\n * @deprecated: use `<input tuiInputFiles multiple />`\n */\n @Input()\n multiple = this.options.multiple;\n\n @Input()\n size: TuiSizeL = this.options.size;\n\n @Input()\n maxFileSize = this.options.maxFileSize;\n\n @Output()\n readonly reject = new EventEmitter<TuiFileLike | readonly TuiFileLike[]>();\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef)\n cdr: ChangeDetectorRef,\n @Inject(TUI_IS_MOBILE)\n readonly isMobile: boolean,\n @Inject(TUI_INPUT_FILE_TEXTS)\n readonly inputFileTexts$: Observable<\n Record<\n | 'defaultLabelMultiple'\n | 'defaultLabelSingle'\n | 'defaultLinkMultiple'\n | 'defaultLinkSingle'\n | 'drop'\n | 'dropMultiple'\n | 'formatRejectionReason'\n | 'maxSizeRejectionReason',\n string\n >\n >,\n @Inject(TUI_INPUT_FILES_OPTIONS)\n readonly options: TuiInputFilesOptions,\n ) {\n super(control, cdr);\n }\n\n get computedMultiple(): boolean {\n return this.nativeInput?.multiple ?? this.multiple;\n }\n\n get computedAccept(): string {\n return this.nativeInput?.accept ?? this.accept;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.input?.nativeElement || null;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get computedPseudoHovered(): boolean | null {\n return this.pseudoHover ?? (this.fileDragged || null);\n }\n\n get computedLink$(): Observable<PolymorpheusContent> {\n return this.computeLink$(this.fileDragged, this.computedMultiple, this.link);\n }\n\n get computedLabel$(): Observable<PolymorpheusContent> {\n return this.computeLabel$(\n this.isMobile,\n this.fileDragged,\n this.computedMultiple,\n this.label,\n );\n }\n\n get fileDragged(): boolean {\n return !!this.dataTransfer?.types.includes('Files');\n }\n\n get arrayValue(): readonly TuiFileLike[] {\n return this.getValueArray(this.value);\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n @HostListener('change')\n onFilesSelected(): void {\n const input = this.nativeInput?.input ?? this.input?.nativeElement;\n\n if (!input) {\n return;\n }\n\n this.processSelectedFiles(input.files);\n\n input.value = '';\n }\n\n onDropped(event: DataTransfer): void {\n this.processSelectedFiles(event.files);\n }\n\n onDragOver(dataTransfer: DataTransfer | null): void {\n this.dataTransfer = dataTransfer;\n }\n\n removeFile(removedFile: TuiFileLike): void {\n this.value = this.computedMultiple\n ? this.arrayValue.filter(file => file !== removedFile)\n : null;\n }\n\n @tuiPure\n private computeLink$(\n fileDragged: boolean,\n multiple: boolean,\n link: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n return fileDragged\n ? of('')\n : this.inputFileTexts$.pipe(\n map(texts =>\n multiple && !link\n ? texts.defaultLinkMultiple\n : link || texts.defaultLinkSingle,\n ),\n );\n }\n\n @tuiPure\n private computeLabel$(\n isMobile: boolean,\n fileDragged: boolean,\n multiple: boolean,\n label: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n if (isMobile) {\n return of('');\n }\n\n if (fileDragged) {\n return this.inputFileTexts$.pipe(\n map(texts => (multiple ? texts.dropMultiple : texts.drop)),\n );\n }\n\n return this.inputFileTexts$.pipe(\n map(texts =>\n multiple && !label\n ? texts.defaultLabelMultiple\n : label || texts.defaultLabelSingle,\n ),\n );\n }\n\n @tuiPure\n private getValueArray(\n value: TuiFileLike | readonly TuiFileLike[] | null,\n ): readonly TuiFileLike[] {\n if (!value) {\n return EMPTY_ARRAY;\n }\n\n return Array.isArray(value) ? value : [value];\n }\n\n private processSelectedFiles(files: FileList | null): void {\n // IE11 after selecting a file through the open dialog generates a second event passing an empty FileList.\n if (!files?.length) {\n return;\n }\n\n const errors: Record<\n 'formatRejection' | 'maxSizeRejection',\n PolymorpheusContent\n > = {\n formatRejection: this.formatRejection,\n maxSizeRejection: this.maxSizeRejection,\n };\n\n const newFiles = this.computedMultiple ? Array.from(files) : [files[0]];\n const tooBigFiles = newFiles.filter(file => file.size > this.maxFileSize);\n const wrongFormatFiles = newFiles.filter(\n file => !this.isFormatAcceptable(file) && !tooBigFiles.includes(file),\n );\n const acceptedFiles = newFiles.filter(\n file => !tooBigFiles.includes(file) && !wrongFormatFiles.includes(file),\n );\n\n if (tooBigFiles.length || wrongFormatFiles.length) {\n this.rejectFiles([\n ...tooBigFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: errors.maxSizeRejection,\n })),\n ...wrongFormatFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: errors.formatRejection,\n })),\n ]);\n }\n\n this.value = this.computedMultiple\n ? [...this.arrayValue, ...acceptedFiles]\n : acceptedFiles[0] || null;\n }\n\n private isFormatAcceptable(file: File): boolean {\n if (!this.computedAccept) {\n return true;\n }\n\n const extension = `.${(file.name.split('.').pop() || '').toLowerCase()}`;\n\n return tuiGetAcceptArray(this.computedAccept).some(\n format =>\n format === extension ||\n format === file.type ||\n (format.split('/')[1] === '*' &&\n file.type.split('/')[0] === format.split('/')[0]),\n );\n }\n\n private rejectFiles(rejectedFiles: readonly TuiFileLike[]): void {\n this.reject.emit(this.computedMultiple ? rejectedFiles : rejectedFiles[0]);\n }\n}\n","<div\n tuiWrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover || fileDragged || null\"\n [active]=\"pseudoActive\"\n [disabled]=\"computedDisabled\"\n>\n <label\n automation-id=\"tui-input-file__label\"\n class=\"t-label\"\n (tuiDroppableDropped)=\"onDropped($event)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <div class=\"t-description\">\n <ng-container *ngTemplateOutlet=\"template || null; context: {$implicit: fileDragged}\"></ng-container>\n <div *ngIf=\"!template\">\n <a tuiLink>\n <ng-container *polymorpheusOutlet=\"computedLink$ | async as text\">\n {{ text }}\n </ng-container>\n </a>\n <span\n *polymorpheusOutlet=\"computedLabel$ | async as text\"\n [textContent]=\"text\"\n ></span>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <ng-content select=\"input\"></ng-content>\n <input\n #input\n type=\"file\"\n title=\"\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n />\n </ng-container>\n </label>\n</div>\n\n<ng-template #formatRejection>\n {{ (inputFileTexts$ | async)?.formatRejectionReason || '' }}\n</ng-template>\n\n<ng-template #maxSizeRejection>\n {{ maxFileSize | tuiMaxSizeRejectionError | async }}\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiDroppableModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiItemDirective,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiGroupModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiSvgModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {\n TuiFileComponent,\n TuiFilesComponent,\n TuiFilesModule,\n} from '@taiga-ui/kit/components/files';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputFilesComponent} from './input-files.component';\nimport {TuiInputFilesDirective} from './input-files.directive';\nimport {TuiMaxSizeRejectionErrorPipe} from './max-size-rejection-error.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPressedModule,\n TuiHoveredModule,\n TuiFocusableModule,\n TuiDroppableModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiButtonModule,\n TuiGroupModule,\n TuiFilesModule,\n ],\n declarations: [\n TuiInputFilesComponent,\n TuiInputFilesDirective,\n TuiMaxSizeRejectionErrorPipe,\n ],\n exports: [\n TuiInputFilesComponent,\n TuiInputFilesDirective,\n TuiFilesComponent,\n TuiFileComponent,\n TuiItemDirective,\n ],\n})\nexport class TuiInputFilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5.TuiMaxSizeRejectionErrorPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-files.js","sources":["../../../projects/kit/components/input-files/input-files.options.ts","../../../projects/kit/components/input-files/input-files.directive.ts","../../../projects/kit/components/input-files/max-size-rejection-error.pipe.ts","../../../projects/kit/components/input-files/input-files.component.ts","../../../projects/kit/components/input-files/input-files.template.html","../../../projects/kit/components/input-files/input-files.module.ts","../../../projects/kit/components/input-files/taiga-ui-kit-components-input-files.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiSizeL} from '@taiga-ui/core';\n\nexport interface TuiInputFilesOptions {\n /**\n * @description:\n * user - The user-facing camera and/or microphone should be used.\n * environment - The outward-facing camera and/or microphone should be used\n */\n capture: 'environment' | 'user' | null;\n accepts: string;\n multiple: boolean;\n size: TuiSizeL;\n maxFileSize: number;\n}\n\nexport const TUI_INPUT_FILES_DEFAULT_OPTIONS: TuiInputFilesOptions = {\n capture: null,\n accepts: ``,\n multiple: false,\n size: `m`,\n maxFileSize: 30 * 1000 * 1000, // 30 MB\n};\n\n/**\n * Default parameters for input files component\n */\nexport const TUI_INPUT_FILES_OPTIONS = new InjectionToken<TuiInputFilesOptions>(\n `[TUI_INPUT_FILES_OPTIONS]`,\n {\n factory: () => TUI_INPUT_FILES_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputFilesOptionsProvider: (\n options: Partial<TuiInputFilesOptions>,\n) => ValueProvider = (options: Partial<TuiInputFilesOptions>) => ({\n provide: TUI_INPUT_FILES_OPTIONS,\n useValue: {...TUI_INPUT_FILES_DEFAULT_OPTIONS, ...options},\n});\n","import {Directive, ElementRef, forwardRef, HostBinding, Inject} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiInputFilesComponent} from './input-files.component';\nimport {TUI_INPUT_FILES_OPTIONS, TuiInputFilesOptions} from './input-files.options';\n\n@Directive({\n selector: 'input[tuiInputFiles]',\n host: {\n type: 'file',\n class: 't-native',\n },\n})\nexport class TuiInputFilesDirective {\n constructor(\n @Inject(forwardRef(() => TuiInputFilesComponent))\n readonly host: TuiInputFilesComponent,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLInputElement>,\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n @Inject(TUI_INPUT_FILES_OPTIONS) private readonly options: TuiInputFilesOptions,\n ) {}\n\n @HostBinding('tabIndex')\n get tabIndex(): number {\n return this.host.focusable ? 0 : -1;\n }\n\n @HostBinding('id')\n get id(): string {\n return this.el.nativeElement.id || this.idService.generate();\n }\n\n @HostBinding('accept')\n get accept(): string {\n return this.el.nativeElement.accept ?? this.options.accepts;\n }\n\n @HostBinding('multiple')\n get multiple(): boolean {\n return this.el.nativeElement.multiple ?? this.options.multiple;\n }\n\n @HostBinding('attr.capture')\n get capture(): string | null {\n return this.el.nativeElement.getAttribute('capture') ?? this.options.capture;\n }\n\n get input(): HTMLInputElement {\n return this.el.nativeElement;\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TuiInjectionTokenType} from '@taiga-ui/cdk';\nimport {TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiFormatSize} from '@taiga-ui/kit/utils';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Pipe({name: `tuiMaxSizeRejectionError`})\nexport class TuiMaxSizeRejectionErrorPipe implements PipeTransform {\n constructor(\n @Inject(TUI_INPUT_FILE_TEXTS)\n private readonly inputFileTexts$: TuiInjectionTokenType<\n typeof TUI_INPUT_FILE_TEXTS\n >,\n @Inject(TUI_DIGITAL_INFORMATION_UNITS)\n private readonly units$: TuiInjectionTokenType<\n typeof TUI_DIGITAL_INFORMATION_UNITS\n >,\n ) {}\n\n transform(maxFileSize: number): Observable<string> {\n return combineLatest([this.inputFileTexts$, this.units$]).pipe(\n map(\n ([{maxSizeRejectionReason}, units]) =>\n `${maxSizeRejectionReason}${tuiFormatSize(units, maxFileSize)}`,\n ),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n EMPTY_ARRAY,\n TUI_IS_MOBILE,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TuiSizeL} from '@taiga-ui/core';\nimport {TuiFileLike} from '@taiga-ui/kit/interfaces';\nimport {TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiGetAcceptArray} from '@taiga-ui/kit/utils/files';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiInputFilesDirective} from './input-files.directive';\nimport {TUI_INPUT_FILES_OPTIONS, TuiInputFilesOptions} from './input-files.options';\n\n@Component({\n selector: 'tui-input-files',\n templateUrl: './input-files.template.html',\n styleUrls: ['./input-files.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MODE_PROVIDER, tuiAsFocusableItemAccessor(TuiInputFilesComponent)],\n})\nexport class TuiInputFilesComponent\n extends AbstractTuiNullableControl<TuiFileLike | readonly TuiFileLike[]>\n implements TuiFocusableElementAccessor\n{\n @ViewChild('input')\n private readonly input?: ElementRef<HTMLInputElement>;\n\n private dataTransfer: DataTransfer | null = null;\n\n @ContentChild(forwardRef(() => TuiInputFilesDirective))\n readonly nativeInput?: TuiInputFilesDirective;\n\n @ContentChild(TemplateRef)\n readonly template?: TemplateRef<TuiContextWithImplicit<boolean>>;\n\n @ViewChild('formatRejection')\n readonly formatRejection!: PolymorpheusContent;\n\n @ViewChild('maxSizeRejection')\n readonly maxSizeRejection!: PolymorpheusContent;\n\n @Input()\n link: PolymorpheusContent;\n\n @Input()\n label: PolymorpheusContent;\n\n /**\n * @deprecated: use `<input tuiInputFiles accept=\"image/*\" />`\n */\n @Input()\n accept = this.options.accepts;\n\n /**\n * @deprecated: use `<input tuiInputFiles multiple />`\n */\n @Input()\n multiple = this.options.multiple;\n\n @Input()\n size: TuiSizeL = this.options.size;\n\n @Input()\n maxFileSize = this.options.maxFileSize;\n\n @Output()\n readonly reject = new EventEmitter<TuiFileLike | readonly TuiFileLike[]>();\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef)\n cdr: ChangeDetectorRef,\n @Inject(TUI_IS_MOBILE)\n readonly isMobile: boolean,\n @Inject(TUI_INPUT_FILE_TEXTS)\n readonly inputFileTexts$: Observable<\n Record<\n | 'defaultLabelMultiple'\n | 'defaultLabelSingle'\n | 'defaultLinkMultiple'\n | 'defaultLinkSingle'\n | 'drop'\n | 'dropMultiple'\n | 'formatRejectionReason'\n | 'maxSizeRejectionReason',\n string\n >\n >,\n @Inject(TUI_INPUT_FILES_OPTIONS)\n readonly options: TuiInputFilesOptions,\n ) {\n super(control, cdr);\n }\n\n get computedMultiple(): boolean {\n return this.nativeInput?.multiple ?? this.multiple;\n }\n\n get computedAccept(): string {\n return this.nativeInput?.accept ?? this.accept;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.input?.nativeElement || null;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get computedPseudoHovered(): boolean | null {\n return this.pseudoHover ?? (this.fileDragged || null);\n }\n\n get computedLink$(): Observable<PolymorpheusContent> {\n return this.computeLink$(this.fileDragged, this.computedMultiple, this.link);\n }\n\n get computedLabel$(): Observable<PolymorpheusContent> {\n return this.computeLabel$(\n this.isMobile,\n this.fileDragged,\n this.computedMultiple,\n this.label,\n );\n }\n\n get fileDragged(): boolean {\n return !!this.dataTransfer?.types.includes('Files');\n }\n\n get arrayValue(): readonly TuiFileLike[] {\n return this.getValueArray(this.value);\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n @HostListener('change')\n onFilesSelected(): void {\n const input = this.nativeInput?.input ?? this.input?.nativeElement;\n\n if (!input) {\n return;\n }\n\n this.processSelectedFiles(input.files);\n\n input.value = '';\n }\n\n onDropped(event: DataTransfer): void {\n this.processSelectedFiles(event.files);\n }\n\n onDragOver(dataTransfer: DataTransfer | null): void {\n this.dataTransfer = dataTransfer;\n }\n\n removeFile(removedFile: TuiFileLike): void {\n this.value = this.computedMultiple\n ? this.arrayValue.filter(file => file !== removedFile)\n : null;\n }\n\n @tuiPure\n private computeLink$(\n fileDragged: boolean,\n multiple: boolean,\n link: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n return fileDragged\n ? of('')\n : this.inputFileTexts$.pipe(\n map(texts =>\n multiple && !link\n ? texts.defaultLinkMultiple\n : link || texts.defaultLinkSingle,\n ),\n );\n }\n\n @tuiPure\n private computeLabel$(\n isMobile: boolean,\n fileDragged: boolean,\n multiple: boolean,\n label: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n if (isMobile) {\n return of('');\n }\n\n if (fileDragged) {\n return this.inputFileTexts$.pipe(\n map(texts => (multiple ? texts.dropMultiple : texts.drop)),\n );\n }\n\n return this.inputFileTexts$.pipe(\n map(texts =>\n multiple && !label\n ? texts.defaultLabelMultiple\n : label || texts.defaultLabelSingle,\n ),\n );\n }\n\n @tuiPure\n private getValueArray(\n value: TuiFileLike | readonly TuiFileLike[] | null,\n ): readonly TuiFileLike[] {\n if (!value) {\n return EMPTY_ARRAY;\n }\n\n return Array.isArray(value) ? value : [value];\n }\n\n private processSelectedFiles(files: FileList | null): void {\n // IE11 after selecting a file through the open dialog generates a second event passing an empty FileList.\n if (!files?.length) {\n return;\n }\n\n const errors: Record<\n 'formatRejection' | 'maxSizeRejection',\n PolymorpheusContent\n > = {\n formatRejection: this.formatRejection,\n maxSizeRejection: this.maxSizeRejection,\n };\n\n const newFiles = this.computedMultiple ? Array.from(files) : [files[0]];\n const tooBigFiles = newFiles.filter(file => file.size > this.maxFileSize);\n const wrongFormatFiles = newFiles.filter(\n file => !this.isFormatAcceptable(file) && !tooBigFiles.includes(file),\n );\n const acceptedFiles = newFiles.filter(\n file => !tooBigFiles.includes(file) && !wrongFormatFiles.includes(file),\n );\n\n if (tooBigFiles.length || wrongFormatFiles.length) {\n this.rejectFiles([\n ...tooBigFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: errors.maxSizeRejection,\n })),\n ...wrongFormatFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: errors.formatRejection,\n })),\n ]);\n }\n\n this.value = this.computedMultiple\n ? [...this.arrayValue, ...acceptedFiles]\n : acceptedFiles[0] || null;\n }\n\n private isFormatAcceptable(file: File): boolean {\n if (!this.computedAccept) {\n return true;\n }\n\n const extension = `.${(file.name.split('.').pop() || '').toLowerCase()}`;\n\n return tuiGetAcceptArray(this.computedAccept).some(\n format =>\n format === extension ||\n format === file.type ||\n (format.split('/')[1] === '*' &&\n file.type.split('/')[0] === format.split('/')[0]),\n );\n }\n\n private rejectFiles(rejectedFiles: readonly TuiFileLike[]): void {\n this.reject.emit(this.computedMultiple ? rejectedFiles : rejectedFiles[0]);\n }\n}\n","<div\n tuiWrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover || fileDragged || null\"\n [active]=\"pseudoActive\"\n [disabled]=\"computedDisabled\"\n>\n <label\n automation-id=\"tui-input-file__label\"\n class=\"t-label\"\n (tuiDroppableDropped)=\"onDropped($event)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <div class=\"t-description\">\n <ng-container *ngTemplateOutlet=\"template || null; context: {$implicit: fileDragged}\"></ng-container>\n <div *ngIf=\"!template\">\n <a tuiLink>\n <ng-container *polymorpheusOutlet=\"computedLink$ | async as text\">\n {{ text }}\n </ng-container>\n </a>\n <span\n *polymorpheusOutlet=\"computedLabel$ | async as text\"\n [textContent]=\"text\"\n ></span>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <ng-content select=\"input\"></ng-content>\n <input\n #input\n type=\"file\"\n title=\"\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n />\n </ng-container>\n </label>\n</div>\n\n<ng-template #formatRejection>\n {{ (inputFileTexts$ | async)?.formatRejectionReason || '' }}\n</ng-template>\n\n<ng-template #maxSizeRejection>\n {{ maxFileSize | tuiMaxSizeRejectionError | async }}\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiDroppableModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiItemDirective,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiGroupModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiSvgModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {\n TuiFileComponent,\n TuiFilesComponent,\n TuiFilesModule,\n} from '@taiga-ui/kit/components/files';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputFilesComponent} from './input-files.component';\nimport {TuiInputFilesDirective} from './input-files.directive';\nimport {TuiMaxSizeRejectionErrorPipe} from './max-size-rejection-error.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPressedModule,\n TuiHoveredModule,\n TuiFocusableModule,\n TuiDroppableModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiButtonModule,\n TuiGroupModule,\n TuiFilesModule,\n ],\n declarations: [\n TuiInputFilesComponent,\n TuiInputFilesDirective,\n TuiMaxSizeRejectionErrorPipe,\n ],\n exports: [\n TuiInputFilesComponent,\n TuiInputFilesDirective,\n TuiFilesComponent,\n TuiFileComponent,\n TuiItemDirective,\n ],\n})\nexport class TuiInputFilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5.TuiMaxSizeRejectionErrorPipe"],"mappings":"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"}
|