@taiga-ui/core 4.2.0 → 4.4.0-canary.6e6e993
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/components/data-list/data-list.component.d.ts +0 -1
- package/components/icon/icon.component.d.ts +5 -2
- package/components/scrollbar/scrollbar.component.d.ts +2 -1
- package/components/scrollbar/scrollbar.directive.d.ts +4 -4
- package/components/textfield/textfield.component.d.ts +1 -0
- package/directives/dropdown/dropdown-context.directive.d.ts +1 -1
- package/directives/dropdown/dropdown-open.directive.d.ts +1 -1
- package/esm2022/components/calendar/calendar-sheet.component.mjs +6 -7
- package/esm2022/components/calendar/calendar-year.component.mjs +6 -7
- package/esm2022/components/data-list/data-list.component.mjs +12 -31
- package/esm2022/components/dialog/dialog.component.mjs +8 -16
- package/esm2022/components/error/error.component.mjs +6 -9
- package/esm2022/components/expand/expand.component.mjs +10 -24
- package/esm2022/components/icon/icon.component.mjs +18 -10
- package/esm2022/components/loader/loader.component.mjs +8 -11
- package/esm2022/components/notification/notification.directive.mjs +6 -6
- package/esm2022/components/notification/notification.options.mjs +2 -2
- package/esm2022/components/root/root.component.mjs +1 -1
- package/esm2022/components/scrollbar/scroll-controls.component.mjs +3 -3
- package/esm2022/components/scrollbar/scrollbar.component.mjs +17 -18
- package/esm2022/components/scrollbar/scrollbar.directive.mjs +31 -22
- package/esm2022/components/spin-button/spin-button.component.mjs +4 -8
- package/esm2022/components/textfield/select.directive.mjs +4 -4
- package/esm2022/components/textfield/textfield.component.mjs +6 -3
- package/esm2022/directives/dropdown/dropdown-context.directive.mjs +17 -41
- package/esm2022/directives/dropdown/dropdown-hover.directive.mjs +5 -5
- package/esm2022/directives/dropdown/dropdown-open.directive.mjs +15 -23
- package/esm2022/directives/hint/hint-pointer.directive.mjs +6 -6
- package/esm2022/directives/hint/hint.component.mjs +4 -6
- package/esm2022/directives/icons/icons.directive.mjs +2 -2
- package/esm2022/pipes/month/month.pipe.mjs +2 -2
- package/esm2022/services/breakpoint.service.mjs +2 -2
- package/esm2022/services/dark-theme.service.mjs +4 -1
- package/esm2022/tokens/dark-mode.mjs +40 -0
- package/esm2022/tokens/icon-resolver.mjs +12 -10
- package/esm2022/tokens/icons.mjs +8 -4
- package/esm2022/tokens/index.mjs +2 -1
- package/esm2022/utils/format/number-to-string-without-exp.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-calendar.mjs +9 -11
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-data-list.mjs +11 -30
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-dialog.mjs +7 -15
- package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-error.mjs +5 -8
- package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-expand.mjs +9 -23
- package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-icon.mjs +17 -9
- package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-loader.mjs +7 -10
- package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-notification.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs +48 -40
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-spin-button.mjs +3 -7
- package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +8 -5
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +32 -64
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-hint.mjs +7 -9
- package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-icons.mjs +2 -2
- package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-month.mjs +1 -1
- package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-services.mjs +4 -1
- package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +57 -15
- package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-format.mjs +1 -1
- package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
- package/package.json +324 -324
- package/services/dark-theme.service.d.ts +3 -0
- package/styles/components/icon.less +1 -1
- package/styles/components/icons.less +1 -0
- package/styles/components/textfield.less +9 -11
- package/tokens/dark-mode.d.ts +6 -0
- package/tokens/icon-resolver.d.ts +4 -0
- package/tokens/icons.d.ts +4 -0
- package/tokens/index.d.ts +1 -0
|
@@ -27,7 +27,7 @@ class TuiRoot {
|
|
|
27
27
|
inject(DOCUMENT).defaultView?.document.documentElement.setAttribute('data-tui-theme', inject(TUI_THEME).toLowerCase());
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.4.0" }, listeners: { "touchstart.passive.silent": "0" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n/>\n<tui-dropdowns>\n <div class=\"t-root-content\">\n <ng-content />\n </div>\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n</tui-dropdowns>\n<ng-content select=\"tuiOverDropdowns\" />\n<tui-hints />\n<ng-content select=\"tuiOverHints\" />\n", styles: ["@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiSkeletonVibe{to{opacity:.5}}html[data-tui-theme],.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html[data-tui-theme]::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html[data-tui-theme]::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);height:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
31
31
|
}
|
|
32
32
|
export { TuiRoot };
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
|
|
@@ -22,11 +22,11 @@ class TuiScrollControls {
|
|
|
22
22
|
];
|
|
23
23
|
}
|
|
24
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiScrollControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiScrollControls, isStandalone: true, selector: "tui-scroll-controls", ngImport: i0, template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);max-width:calc(100% - 1px);max-height:calc(100% - 1px);float:left;margin-inline-end:calc(-100% + 1px);pointer-events:none}.t-bar{position:absolute;right:0;bottom:0;pointer-events:auto}.t-bar_vertical{top:0;width:.875rem}.t-bar_horizontal{left:0;height:.875rem}.t-bar_has-horizontal{bottom:.5rem}.t-bar_has-vertical{right:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{right:0;width:.75rem;min-height:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{height:.875rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: ["tuiScrollbar"] }], animations: [tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiScrollControls, isStandalone: true, selector: "tui-scroll-controls", ngImport: i0, template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);max-width:calc(100% - 1px);max-height:calc(100% - 1px);float:left;margin-inline-end:calc(-100% + 1px);pointer-events:none}.t-bar{position:absolute;right:0;bottom:0;pointer-events:auto}.t-bar_vertical{top:0;width:.875rem}.t-bar_horizontal{left:0;height:.875rem}.t-bar_has-horizontal{bottom:.5rem}.t-bar_has-vertical{right:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{right:0;width:.75rem;min-height:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{height:.875rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: ["tuiScrollbar"] }], animations: [tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
26
|
}
|
|
27
27
|
export { TuiScrollControls };
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiScrollControls, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ standalone: true, selector: 'tui-scroll-controls', imports: [NgIf, AsyncPipe, TuiScrollbarDirective], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiFadeIn], template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);max-width:calc(100% - 1px);max-height:calc(100% - 1px);float:left;margin-inline-end:calc(-100% + 1px);pointer-events:none}.t-bar{position:absolute;right:0;bottom:0;pointer-events:auto}.t-bar_vertical{top:0;width:.875rem}.t-bar_horizontal{left:0;height:.875rem}.t-bar_has-horizontal{bottom:.5rem}.t-bar_has-vertical{right:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{right:0;width:.75rem;min-height:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{height:.875rem}\n"] }]
|
|
30
|
+
args: [{ standalone: true, selector: 'tui-scroll-controls', imports: [NgIf, AsyncPipe, TuiScrollbarDirective], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiFadeIn], template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);max-width:calc(100% - 1px);max-height:calc(100% - 1px);float:left;margin-inline-end:calc(-100% + 1px);pointer-events:none}.t-bar{position:absolute;right:0;bottom:0;pointer-events:auto}.t-bar_vertical{top:0;width:.875rem}.t-bar_horizontal{left:0;height:.875rem}.t-bar_has-horizontal{bottom:.5rem}.t-bar_has-vertical{right:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{right:0;width:.75rem;min-height:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{height:.875rem}\n"] }]
|
|
31
31
|
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsLWNvbnRyb2xzLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFeEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBRTVELE1BU2EsaUJBQWlCO0lBVDlCO1FBVXFCLGNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRS9DLFlBQU8sR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQzlELGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQ3pELFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDMUIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3pCLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzlELGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNuQyxDQUFDO0tBVUw7SUFSRyxJQUFZLFVBQVU7UUFDbEIsTUFBTSxFQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFOUUsT0FBTztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUc7U0FDckQsQ0FBQztJQUNOLENBQUM7K0dBbkJRLGlCQUFpQjttR0FBakIsaUJBQWlCLCtFQ3BCOUIsb3RCQTBCQSxzckNEWmMsSUFBSSx3RkFBRSxTQUFTLDhDQUFFLHFCQUFxQix1RUFJcEMsQ0FBQyxTQUFTLENBQUM7O1NBRWQsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBVDdCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHFCQUFxQixXQUN0QixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLENBQUMsbUJBR2hDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXQV9BTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlab25lT3B0aW1pemVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpRmFkZUlufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTlNfU1BFRUQsIFRVSV9TQ1JPTExfUkVGfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlUb0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVNjcm9sbGJhckRpcmVjdGl2ZX0gZnJvbSAnLi9zY3JvbGxiYXIuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1zY3JvbGwtY29udHJvbHMnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBBc3luY1BpcGUsIFR1aVNjcm9sbGJhckRpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbC1jb250cm9scy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zY3JvbGwtY29udHJvbHMuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlGYWRlSW5dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTY3JvbGxDb250cm9scyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxSZWYgPSBpbmplY3QoVFVJX1NDUk9MTF9SRUYpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IHR1aVRvQW5pbWF0aW9uT3B0aW9ucyhpbmplY3QoVFVJX0FOSU1BVElPTlNfU1BFRUQpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVmcmVzaCQgPSBpbmplY3QoV0FfQU5JTUFUSU9OX0ZSQU1FKS5waXBlKFxuICAgICAgICB0aHJvdHRsZVRpbWUoMzAwKSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuc2Nyb2xsYmFycyksXG4gICAgICAgIHN0YXJ0V2l0aChbZmFsc2UsIGZhbHNlXSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhWzBdID09PSBiWzBdICYmIGFbMV0gPT09IGJbMV0pLFxuICAgICAgICB0dWlab25lT3B0aW1pemVkKGluamVjdChOZ1pvbmUpKSxcbiAgICApO1xuXG4gICAgcHJpdmF0ZSBnZXQgc2Nyb2xsYmFycygpOiBbYm9vbGVhbiwgYm9vbGVhbl0ge1xuICAgICAgICBjb25zdCB7Y2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQsIGNsaWVudFdpZHRoLCBzY3JvbGxXaWR0aH0gPSB0aGlzLnNjcm9sbFJlZjtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTWF0aC5jZWlsKChjbGllbnRIZWlnaHQgLyBzY3JvbGxIZWlnaHQpICogMTAwKSA8IDEwMCxcbiAgICAgICAgICAgIE1hdGguY2VpbCgoY2xpZW50V2lkdGggLyBzY3JvbGxXaWR0aCkgKiAxMDApIDwgMTAwLFxuICAgICAgICBdO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWZyZXNoJCB8IGFzeW5jIGFzIGJhcnNcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYmFyc1swXVwiXG4gICAgICAgIGNsYXNzPVwidC1iYXIgdC1iYXJfdmVydGljYWxcIlxuICAgICAgICBbQHR1aUZhZGVJbl09XCJvcHRpb25zXCJcbiAgICAgICAgW2NsYXNzLnQtYmFyX2hhcy1ob3Jpem9udGFsXT1cImJhcnNbMV1cIlxuICAgICAgICAobW91c2Vkb3duLmNhcHR1cmUucHJldmVudCk9XCIoMClcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdHVpU2Nyb2xsYmFyPVwidmVydGljYWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJiYXJzWzFdXCJcbiAgICAgICAgY2xhc3M9XCJ0LWJhciB0LWJhcl9ob3Jpem9udGFsXCJcbiAgICAgICAgW0B0dWlGYWRlSW5dPVwib3B0aW9uc1wiXG4gICAgICAgIFtjbGFzcy50LWJhcl9oYXMtdmVydGljYWxdPVwiYmFyc1swXVwiXG4gICAgICAgIChtb3VzZWRvd24uY2FwdHVyZS5wcmV2ZW50KT1cIigwKVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlTY3JvbGxiYXI9XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC10aHVtYlwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgIf } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ElementRef,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, } from '@angular/core';
|
|
3
3
|
import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
|
|
4
4
|
import { tuiGetElementOffset, tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
5
5
|
import { TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
|
|
@@ -24,25 +24,26 @@ class TuiScrollbar {
|
|
|
24
24
|
this.hidden = false;
|
|
25
25
|
}
|
|
26
26
|
get delegated() {
|
|
27
|
-
return this.
|
|
27
|
+
return this.scrollRef !== this.el;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
get scrollRef() {
|
|
30
|
+
return this.browserScrollRef.nativeElement;
|
|
31
|
+
}
|
|
32
|
+
set scrollRef(element) {
|
|
30
33
|
this.browserScrollRef.nativeElement = element;
|
|
31
34
|
}
|
|
32
35
|
scrollIntoView(detail) {
|
|
33
36
|
if (this.delegated) {
|
|
34
37
|
return;
|
|
35
38
|
}
|
|
36
|
-
const { nativeElement } = this.browserScrollRef;
|
|
37
|
-
const { offsetTop, offsetLeft } = tuiGetElementOffset(nativeElement, detail);
|
|
38
|
-
const { clientHeight, clientWidth } = nativeElement;
|
|
39
39
|
const { offsetHeight, offsetWidth } = detail;
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
|
|
40
|
+
const { offsetTop, offsetLeft } = tuiGetElementOffset(this.scrollRef, detail);
|
|
41
|
+
const scrollTop = offsetTop + offsetHeight / 2 - this.scrollRef.clientHeight / 2;
|
|
42
|
+
const scrollLeft = offsetLeft + offsetWidth / 2 - this.scrollRef.clientWidth / 2;
|
|
43
|
+
this.scrollRef.scrollTo?.(scrollLeft, scrollTop);
|
|
43
44
|
}
|
|
44
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiScrollbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiScrollbar, isStandalone: true, selector: "tui-scrollbar", inputs: { hidden: "hidden" }, host: { listeners: { "tui-scrollable.stop": "
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiScrollbar, isStandalone: true, selector: "tui-scrollbar", inputs: { hidden: "hidden" }, host: { listeners: { "tui-scrollable.stop": "scrollRef = $event.detail", "tui-scroll-into-view.stop": "scrollIntoView($event.detail)" }, properties: { "class._native-hidden": "!isIOS || hidden" } }, providers: [
|
|
46
47
|
{
|
|
47
48
|
provide: TUI_SCROLL_REF,
|
|
48
49
|
useFactory: () => inject(TuiScrollbar).browserScrollRef,
|
|
@@ -57,14 +58,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
57
58
|
provide: TUI_SCROLL_REF,
|
|
58
59
|
useFactory: () => inject(TuiScrollbar).browserScrollRef,
|
|
59
60
|
},
|
|
60
|
-
], host: {
|
|
61
|
+
], host: {
|
|
62
|
+
'[class._native-hidden]': '!isIOS || hidden',
|
|
63
|
+
[`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',
|
|
64
|
+
[`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',
|
|
65
|
+
}, template: "<tui-scroll-controls\n *ngIf=\"!hidden && !isIOS\"\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n/>\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:flex;isolation:isolate;overflow:auto}:host._native-hidden{scrollbar-width:none;-ms-overflow-style:none}:host._native-hidden::-webkit-scrollbar,:host._native-hidden::-webkit-scrollbar-thumb{display:none}:host .t-hover-mode:not(:active){transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:0}:host:hover .t-hover-mode{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:1}.t-content{isolation:isolate;flex:1;flex-basis:auto;width:100%;height:-webkit-max-content;height:max-content}.t-content_delegated{height:100%}.t-bars{color:var(--tui-text-primary)}\n"] }]
|
|
61
66
|
}], propDecorators: { hidden: [{
|
|
62
67
|
type: Input
|
|
63
|
-
}], onScrollable: [{
|
|
64
|
-
type: HostListener,
|
|
65
|
-
args: [`${TUI_SCROLLABLE}.stop`, ['$event.detail']]
|
|
66
|
-
}], scrollIntoView: [{
|
|
67
|
-
type: HostListener,
|
|
68
|
-
args: [`${TUI_SCROLL_INTO_VIEW}.stop`, ['$event.detail']]
|
|
69
68
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsYmFyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BbUJhLFlBQVk7SUFuQnpCO1FBb0JxQixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0QixZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFHdkQsV0FBTSxHQUFHLEtBQUssQ0FBQztLQTBCekI7SUF4QkcsSUFBYyxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFjLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFjLFNBQVMsQ0FBQyxPQUFvQjtRQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUNsRCxDQUFDO0lBRVMsY0FBYyxDQUFDLE1BQW1CO1FBQ3hDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUMzQyxNQUFNLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUUsTUFBTSxTQUFTLEdBQUcsU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQWpDUSxZQUFZO21HQUFaLFlBQVksaVNBWlY7WUFDUDtnQkFDSSxPQUFPLEVBQUUsY0FBYztnQkFDdkIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxnQkFBZ0I7YUFDMUQ7U0FDSiwwQkN0Q0wsdVBBV0EseXdCRGtCYyxpQkFBaUIsZ0VBQUUsSUFBSTs7U0FnQnhCLFlBQVk7NEZBQVosWUFBWTtrQkFuQnhCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGVBQWUsV0FDaEIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxnQkFBZ0I7eUJBQzFEO3FCQUNKLFFBQ0s7d0JBQ0Ysd0JBQXdCLEVBQUUsa0JBQWtCO3dCQUM1QyxDQUFDLElBQUksY0FBYyxRQUFRLENBQUMsRUFBRSwyQkFBMkI7d0JBQ3pELENBQUMsSUFBSSxvQkFBb0IsUUFBUSxDQUFDLEVBQUUsK0JBQStCO3FCQUN0RTs4QkFVTSxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9JU19JT1N9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpR2V0RWxlbWVudE9mZnNldCwgdHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcblxuaW1wb3J0IHtUdWlTY3JvbGxDb250cm9sc30gZnJvbSAnLi9zY3JvbGwtY29udHJvbHMuY29tcG9uZW50JztcbmltcG9ydCB7VFVJX1NDUk9MTEJBUl9PUFRJT05TfSBmcm9tICcuL3Njcm9sbGJhci5vcHRpb25zJztcblxuLyoqXG4gKiBBbiBldmVudCBmb3Igc2Nyb2xsaW5nIGFuIGVsZW1lbnQgaW50byB2aWV3IHdpdGhpbiB7QGxpbmsgVHVpU2Nyb2xsYmFyfS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9TQ1JPTExfSU5UT19WSUVXID0gJ3R1aS1zY3JvbGwtaW50by12aWV3JztcblxuLyoqXG4gKiBBbiBldmVudCB0byBub3RpZnkge0BsaW5rIFR1aVNjcm9sbGJhcn0gdGhhdFxuICogaXQgc2hvdWxkIGNvbnRyb2wgYSBuZXN0ZWQgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9TQ1JPTExBQkxFID0gJ3R1aS1zY3JvbGxhYmxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1zY3JvbGxiYXInLFxuICAgIGltcG9ydHM6IFtUdWlTY3JvbGxDb250cm9scywgTmdJZl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbGJhci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zY3JvbGxiYXIuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfU0NST0xMX1JFRixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGluamVjdChUdWlTY3JvbGxiYXIpLmJyb3dzZXJTY3JvbGxSZWYsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuX25hdGl2ZS1oaWRkZW5dJzogJyFpc0lPUyB8fCBoaWRkZW4nLFxuICAgICAgICBbYCgke1RVSV9TQ1JPTExBQkxFfS5zdG9wKWBdOiAnc2Nyb2xsUmVmID0gJGV2ZW50LmRldGFpbCcsXG4gICAgICAgIFtgKCR7VFVJX1NDUk9MTF9JTlRPX1ZJRVd9LnN0b3ApYF06ICdzY3JvbGxJbnRvVmlldygkZXZlbnQuZGV0YWlsKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2Nyb2xsYmFyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX1NDUk9MTEJBUl9PUFRJT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNJT1MgPSBpbmplY3QoVFVJX0lTX0lPUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGJyb3dzZXJTY3JvbGxSZWYgPSBuZXcgRWxlbWVudFJlZih0aGlzLmVsKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZGRlbiA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGdldCBkZWxlZ2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNjcm9sbFJlZiAhPT0gdGhpcy5lbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNjcm9sbFJlZigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmJyb3dzZXJTY3JvbGxSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0IHNjcm9sbFJlZihlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLmJyb3dzZXJTY3JvbGxSZWYubmF0aXZlRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNjcm9sbEludG9WaWV3KGRldGFpbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGVsZWdhdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7b2Zmc2V0SGVpZ2h0LCBvZmZzZXRXaWR0aH0gPSBkZXRhaWw7XG4gICAgICAgIGNvbnN0IHtvZmZzZXRUb3AsIG9mZnNldExlZnR9ID0gdHVpR2V0RWxlbWVudE9mZnNldCh0aGlzLnNjcm9sbFJlZiwgZGV0YWlsKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gb2Zmc2V0VG9wICsgb2Zmc2V0SGVpZ2h0IC8gMiAtIHRoaXMuc2Nyb2xsUmVmLmNsaWVudEhlaWdodCAvIDI7XG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSBvZmZzZXRMZWZ0ICsgb2Zmc2V0V2lkdGggLyAyIC0gdGhpcy5zY3JvbGxSZWYuY2xpZW50V2lkdGggLyAyO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsUmVmLnNjcm9sbFRvPy4oc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wKTtcbiAgICB9XG59XG4iLCI8dHVpLXNjcm9sbC1jb250cm9sc1xuICAgICpuZ0lmPVwiIWhpZGRlbiAmJiAhaXNJT1NcIlxuICAgIGNsYXNzPVwidC1iYXJzXCJcbiAgICBbY2xhc3MudC1ob3Zlci1tb2RlXT1cIm9wdGlvbnMubW9kZSA9PT0gJ2hvdmVyJ1wiXG4vPlxuPGRpdlxuICAgIGNsYXNzPVwidC1jb250ZW50XCJcbiAgICBbY2xhc3MudC1jb250ZW50X2RlbGVnYXRlZF09XCJkZWxlZ2F0ZWRcIlxuPlxuICAgIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -22,44 +22,53 @@ class TuiScrollbarDirective {
|
|
|
22
22
|
this.styleSub = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100)), tuiScrollFrom(this.el))
|
|
23
23
|
.pipe(tuiZonefree(inject(NgZone)), takeUntilDestroyed())
|
|
24
24
|
.subscribe(() => {
|
|
25
|
+
const dimension = {
|
|
26
|
+
scrollTop: this.el.scrollTop,
|
|
27
|
+
scrollHeight: this.el.scrollHeight,
|
|
28
|
+
clientHeight: this.el.clientHeight,
|
|
29
|
+
scrollLeft: this.el.scrollLeft,
|
|
30
|
+
scrollWidth: this.el.scrollWidth,
|
|
31
|
+
clientWidth: this.el.clientWidth,
|
|
32
|
+
};
|
|
33
|
+
const thumb = `${this.getThumb(dimension) * 100}%`;
|
|
34
|
+
const view = `${this.getView(dimension) * 100}%`;
|
|
25
35
|
if (this.tuiScrollbar === 'vertical') {
|
|
26
|
-
this.style.top =
|
|
27
|
-
this.style.height =
|
|
36
|
+
this.style.top = thumb;
|
|
37
|
+
this.style.height = view;
|
|
28
38
|
}
|
|
29
39
|
else {
|
|
30
|
-
this.style.left =
|
|
31
|
-
this.style.width =
|
|
40
|
+
this.style.left = thumb;
|
|
41
|
+
this.style.width = view;
|
|
32
42
|
}
|
|
33
43
|
});
|
|
34
44
|
this.tuiScrollbar = 'vertical';
|
|
35
45
|
}
|
|
36
|
-
|
|
37
|
-
const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = this.el;
|
|
46
|
+
getScrolled(dimension) {
|
|
38
47
|
return this.tuiScrollbar === 'vertical'
|
|
39
|
-
? scrollTop / (scrollHeight - clientHeight)
|
|
40
|
-
: scrollLeft / (scrollWidth - clientWidth);
|
|
48
|
+
? dimension.scrollTop / (dimension.scrollHeight - dimension.clientHeight)
|
|
49
|
+
: dimension.scrollLeft / (dimension.scrollWidth - dimension.clientWidth);
|
|
41
50
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
getCompensation(dimension) {
|
|
52
|
+
if (((dimension.clientHeight * dimension.clientHeight) / dimension.scrollHeight >
|
|
53
|
+
MIN_WIDTH &&
|
|
45
54
|
this.tuiScrollbar === 'vertical') ||
|
|
46
|
-
((clientWidth * clientWidth) / scrollWidth >
|
|
55
|
+
((dimension.clientWidth * dimension.clientWidth) / dimension.scrollWidth >
|
|
56
|
+
MIN_WIDTH &&
|
|
47
57
|
this.tuiScrollbar === 'horizontal')) {
|
|
48
58
|
return 0;
|
|
49
59
|
}
|
|
50
60
|
return this.tuiScrollbar === 'vertical'
|
|
51
|
-
? MIN_WIDTH / clientHeight
|
|
52
|
-
: MIN_WIDTH / clientWidth;
|
|
61
|
+
? MIN_WIDTH / dimension.clientHeight
|
|
62
|
+
: MIN_WIDTH / dimension.clientWidth;
|
|
53
63
|
}
|
|
54
|
-
|
|
55
|
-
const compensation = this.
|
|
56
|
-
return this.
|
|
64
|
+
getThumb(dimension) {
|
|
65
|
+
const compensation = this.getCompensation(dimension) || this.getView(dimension);
|
|
66
|
+
return this.getScrolled(dimension) * (1 - compensation);
|
|
57
67
|
}
|
|
58
|
-
|
|
59
|
-
const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.el;
|
|
68
|
+
getView(dimension) {
|
|
60
69
|
return this.tuiScrollbar === 'vertical'
|
|
61
|
-
? Math.ceil((clientHeight / scrollHeight) * 100) / 100
|
|
62
|
-
: Math.ceil((clientWidth / scrollWidth) * 100) / 100;
|
|
70
|
+
? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100
|
|
71
|
+
: Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;
|
|
63
72
|
}
|
|
64
73
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiScrollbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
65
74
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiScrollbarDirective, isStandalone: true, selector: "[tuiScrollbar]", inputs: { tuiScrollbar: "tuiScrollbar" }, providers: [TuiScrollbarService], ngImport: i0 }); }
|
|
@@ -75,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
75
84
|
}], propDecorators: { tuiScrollbar: [{
|
|
76
85
|
type: Input
|
|
77
86
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUV4RCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFXckIsTUFLYSxxQkFBcUI7SUFMbEM7UUFNcUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUMsVUFBSyxHQUFHLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7YUFDckQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVZLGFBQVEsR0FBRyxLQUFLLENBQy9CLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDbEQsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDekI7YUFDSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUM7YUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sU0FBUyxHQUFzQjtnQkFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUztnQkFDNUIsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWTtnQkFDbEMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWTtnQkFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVTtnQkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVztnQkFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVzthQUNuQyxDQUFDO1lBRUYsTUFBTSxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ25ELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUVqRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUM1QjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBR0EsaUJBQVksR0FBOEIsVUFBVSxDQUFDO0tBb0MvRDtJQWxDVyxXQUFXLENBQUMsU0FBNEI7UUFDNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVU7WUFDbkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDekUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQTRCO1FBQ2hELElBQ0ksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxZQUFZO1lBQ3ZFLFNBQVM7WUFDVCxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVUsQ0FBQztZQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVc7Z0JBQ3BFLFNBQVM7Z0JBQ1QsSUFBSSxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsRUFDekM7WUFDRSxPQUFPLENBQUMsQ0FBQztTQUNaO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVU7WUFDbkMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWTtZQUNwQyxDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDNUMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxTQUE0QjtRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxPQUFPLENBQUMsU0FBNEI7UUFDeEMsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVU7WUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHO1lBQzFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2pGLENBQUM7K0dBM0VRLHFCQUFxQjttR0FBckIscUJBQXFCLHVHQUZuQixDQUFDLG1CQUFtQixDQUFDOztTQUV2QixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ25DOzhCQXlDVSxZQUFZO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtXQV9BTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlTY3JvbGxGcm9tLCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7VFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge21lcmdlLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVNjcm9sbGJhclNlcnZpY2V9IGZyb20gJy4vc2Nyb2xsYmFyLnNlcnZpY2UnO1xuXG5jb25zdCBNSU5fV0lEVEggPSAyNDtcblxuaW50ZXJmYWNlIENvbXB1dGVkRGltZW5zaW9uIHtcbiAgICBzY3JvbGxUb3A6IG51bWJlcjtcbiAgICBzY3JvbGxIZWlnaHQ6IG51bWJlcjtcbiAgICBjbGllbnRIZWlnaHQ6IG51bWJlcjtcbiAgICBzY3JvbGxMZWZ0OiBudW1iZXI7XG4gICAgc2Nyb2xsV2lkdGg6IG51bWJlcjtcbiAgICBjbGllbnRXaWR0aDogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aVNjcm9sbGJhcl0nLFxuICAgIHByb3ZpZGVyczogW1R1aVNjcm9sbGJhclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTY3JvbGxiYXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3QoVFVJX1NDUk9MTF9SRUYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdHlsZSA9IHR1aUluamVjdEVsZW1lbnQoKS5zdHlsZTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxTdWIgPSBpbmplY3QoVHVpU2Nyb2xsYmFyU2VydmljZSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKFt0b3AsIGxlZnRdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGhpcy5lbC5zY3JvbGxUbyh7dG9wLCBsZWZ0fSk7XG4gICAgICAgICAgICB0aGlzLmVsLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJyc7XG4gICAgICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlU3ViID0gbWVyZ2UoXG4gICAgICAgIGluamVjdChXQV9BTklNQVRJT05fRlJBTUUpLnBpcGUodGhyb3R0bGVUaW1lKDEwMCkpLFxuICAgICAgICB0dWlTY3JvbGxGcm9tKHRoaXMuZWwpLFxuICAgIClcbiAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUoaW5qZWN0KE5nWm9uZSkpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkaW1lbnNpb246IENvbXB1dGVkRGltZW5zaW9uID0ge1xuICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogdGhpcy5lbC5zY3JvbGxUb3AsXG4gICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiB0aGlzLmVsLnNjcm9sbEhlaWdodCxcbiAgICAgICAgICAgICAgICBjbGllbnRIZWlnaHQ6IHRoaXMuZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IHRoaXMuZWwuc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICBzY3JvbGxXaWR0aDogdGhpcy5lbC5zY3JvbGxXaWR0aCxcbiAgICAgICAgICAgICAgICBjbGllbnRXaWR0aDogdGhpcy5lbC5jbGllbnRXaWR0aCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHRodW1iID0gYCR7dGhpcy5nZXRUaHVtYihkaW1lbnNpb24pICogMTAwfSVgO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGAke3RoaXMuZ2V0VmlldyhkaW1lbnNpb24pICogMTAwfSVgO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlLnRvcCA9IHRodW1iO1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gdmlldztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZS5sZWZ0ID0gdGh1bWI7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZS53aWR0aCA9IHZpZXc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHVpU2Nyb2xsYmFyOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ3ZlcnRpY2FsJztcblxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsZWQoZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBkaW1lbnNpb24uc2Nyb2xsVG9wIC8gKGRpbWVuc2lvbi5zY3JvbGxIZWlnaHQgLSBkaW1lbnNpb24uY2xpZW50SGVpZ2h0KVxuICAgICAgICAgICAgOiBkaW1lbnNpb24uc2Nyb2xsTGVmdCAvIChkaW1lbnNpb24uc2Nyb2xsV2lkdGggLSBkaW1lbnNpb24uY2xpZW50V2lkdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29tcGVuc2F0aW9uKGRpbWVuc2lvbjogQ29tcHV0ZWREaW1lbnNpb24pOiBudW1iZXIge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKGRpbWVuc2lvbi5jbGllbnRIZWlnaHQgKiBkaW1lbnNpb24uY2xpZW50SGVpZ2h0KSAvIGRpbWVuc2lvbi5zY3JvbGxIZWlnaHQgPlxuICAgICAgICAgICAgICAgIE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnKSB8fFxuICAgICAgICAgICAgKChkaW1lbnNpb24uY2xpZW50V2lkdGggKiBkaW1lbnNpb24uY2xpZW50V2lkdGgpIC8gZGltZW5zaW9uLnNjcm9sbFdpZHRoID5cbiAgICAgICAgICAgICAgICBNSU5fV0lEVEggJiZcbiAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ2hvcml6b250YWwnKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IE1JTl9XSURUSCAvIGRpbWVuc2lvbi5jbGllbnRIZWlnaHRcbiAgICAgICAgICAgIDogTUlOX1dJRFRIIC8gZGltZW5zaW9uLmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGh1bWIoZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXBlbnNhdGlvbiA9IHRoaXMuZ2V0Q29tcGVuc2F0aW9uKGRpbWVuc2lvbikgfHwgdGhpcy5nZXRWaWV3KGRpbWVuc2lvbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2Nyb2xsZWQoZGltZW5zaW9uKSAqICgxIC0gY29tcGVuc2F0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZpZXcoZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBNYXRoLmNlaWwoKGRpbWVuc2lvbi5jbGllbnRIZWlnaHQgLyBkaW1lbnNpb24uc2Nyb2xsSGVpZ2h0KSAqIDEwMCkgLyAxMDBcbiAgICAgICAgICAgIDogTWF0aC5jZWlsKChkaW1lbnNpb24uY2xpZW50V2lkdGggLyBkaW1lbnNpb24uc2Nyb2xsV2lkdGgpICogMTAwKSAvIDEwMDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncPipe, NgIf } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
3
3
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
4
4
|
import { TUI_SPIN_ICONS, TUI_SPIN_TEXTS } from '@taiga-ui/core/tokens';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -38,6 +38,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
38
38
|
type: Component,
|
|
39
39
|
args: [{ standalone: true, selector: 'tui-spin-button', imports: [TuiButton, NgIf, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
40
40
|
'(mousedown.silent.prevent)': '(0)',
|
|
41
|
+
'(keydown.arrowLeft.prevent)': 'onLeftClick()',
|
|
42
|
+
'(keydown.arrowRight.prevent)': 'onRightClick()',
|
|
41
43
|
}, template: "<ng-container *ngIf=\"spinTexts$ | async as texts\">\n <button\n appearance=\"flat\"\n automation-id=\"tui-spin-button__left\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [class.t-hidden]=\"leftComputedDisabled\"\n [iconStart]=\"icons.decrement\"\n [tabIndex]=\"focusable ? 0 : -1\"\n (click)=\"onLeftClick()\"\n >\n {{ texts[0] }}\n </button>\n <span class=\"t-content t-calendar-title\">\n <ng-content />\n </span>\n <button\n appearance=\"flat\"\n automation-id=\"tui-spin-button__right\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [class.t-hidden]=\"rightComputedDisabled\"\n [iconStart]=\"icons.increment\"\n [tabIndex]=\"focusable ? 0 : -1\"\n (click)=\"onRightClick()\"\n >\n {{ texts[1] }}\n </button>\n</ng-container>\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;font:var(--tui-font-text-l);text-align:center;font-weight:700}.t-hidden{visibility:hidden}.t-content{padding:0 .5rem}\n"] }]
|
|
42
44
|
}], propDecorators: { focusable: [{
|
|
43
45
|
type: Input
|
|
@@ -51,11 +53,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
51
53
|
type: Output
|
|
52
54
|
}], rightClick: [{
|
|
53
55
|
type: Output
|
|
54
|
-
}], onLeftClick: [{
|
|
55
|
-
type: HostListener,
|
|
56
|
-
args: ['keydown.arrowLeft.prevent']
|
|
57
|
-
}], onRightClick: [{
|
|
58
|
-
type: HostListener,
|
|
59
|
-
args: ['keydown.arrowRight.prevent']
|
|
60
56
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NwaW4tYnV0dG9uL3NwaW4tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcGluLWJ1dHRvbi9zcGluLWJ1dHRvbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQUVyRSxNQWFhLGFBQWE7SUFiMUI7UUFjdUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBR2hELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUdiLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3JDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBcUJ6RDtJQW5CVSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsSUFBYyxvQkFBb0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQWMscUJBQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7K0dBeENRLGFBQWE7bUdBQWIsYUFBYSw0WkN6QjFCLGs1QkErQkEscVBEaEJjLFNBQVMsb0lBQUUsSUFBSSx3RkFBRSxTQUFTOztTQVUzQixhQUFhOzRGQUFiLGFBQWE7a0JBYnpCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixXQUNsQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLDRCQUE0QixFQUFFLEtBQUs7d0JBQ25DLDZCQUE2QixFQUFFLGVBQWU7d0JBQzlDLDhCQUE4QixFQUFFLGdCQUFnQjtxQkFDbkQ7OEJBT00sU0FBUztzQkFEZixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSVUsU0FBUztzQkFEeEIsTUFBTTtnQkFJUyxVQUFVO3NCQUR6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUVUlfU1BJTl9JQ09OUywgVFVJX1NQSU5fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktc3Bpbi1idXR0b24nLFxuICAgIGltcG9ydHM6IFtUdWlCdXR0b24sIE5nSWYsIEFzeW5jUGlwZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaW4tYnV0dG9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NwaW4tYnV0dG9uLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICcobW91c2Vkb3duLnNpbGVudC5wcmV2ZW50KSc6ICcoMCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dMZWZ0LnByZXZlbnQpJzogJ29uTGVmdENsaWNrKCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dSaWdodC5wcmV2ZW50KSc6ICdvblJpZ2h0Q2xpY2soKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU3BpbkJ1dHRvbiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25zID0gaW5qZWN0KFRVSV9TUElOX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3BpblRleHRzJCA9IGluamVjdChUVUlfU1BJTl9URVhUUyk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxlZnREaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmlnaHREaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGxlZnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSByaWdodENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHVibGljIG9uTGVmdENsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubGVmdENvbXB1dGVkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGVmdENsaWNrLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblJpZ2h0Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yaWdodENvbXB1dGVkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmlnaHRDbGljay5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGxlZnRDb21wdXRlZERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxlZnREaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJpZ2h0Q29tcHV0ZWREaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yaWdodERpc2FibGVkO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzcGluVGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1zcGluLWJ1dHRvbl9fbGVmdFwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtjbGFzcy50LWhpZGRlbl09XCJsZWZ0Q29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuZGVjcmVtZW50XCJcbiAgICAgICAgW3RhYkluZGV4XT1cImZvY3VzYWJsZSA/IDAgOiAtMVwiXG4gICAgICAgIChjbGljayk9XCJvbkxlZnRDbGljaygpXCJcbiAgICA+XG4gICAgICAgIHt7IHRleHRzWzBdIH19XG4gICAgPC9idXR0b24+XG4gICAgPHNwYW4gY2xhc3M9XCJ0LWNvbnRlbnQgdC1jYWxlbmRhci10aXRsZVwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1zcGluLWJ1dHRvbl9fcmlnaHRcIlxuICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbY2xhc3MudC1oaWRkZW5dPVwicmlnaHRDb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5pbmNyZW1lbnRcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmlnaHRDbGljaygpXCJcbiAgICA+XG4gICAgICAgIHt7IHRleHRzWzFdIH19XG4gICAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -27,18 +27,18 @@ class TuiSelect extends TuiTextfieldBase {
|
|
|
27
27
|
this.el.classList.remove('_ios-fix');
|
|
28
28
|
}
|
|
29
29
|
get value() {
|
|
30
|
-
return this.textfield.stringify(this.control.value);
|
|
30
|
+
return this.textfield.stringify(this.control.value ?? '');
|
|
31
31
|
}
|
|
32
32
|
async onCopy() {
|
|
33
33
|
await this.nav.clipboard.writeText(this.value);
|
|
34
34
|
}
|
|
35
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelect, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelect, isStandalone: true, selector: "select[tuiTextfield]", inputs: { placeholder: "placeholder" }, host: { listeners: { "input": "0", "focusin": "0", "focusout": "0", "keydown.space.prevent": "0", "keydown.enter.prevent": "0", "keydown.backspace": "setValue(\"\")", "mousedown.prevent": "focus()", "keydown.control.c": "onCopy()", "keydown.meta.c": "onCopy()" }, properties: { "id": "el.id || id", "attr.data-mode": "mode", "class._empty": "value === \"\"" } }, providers: [tuiProvide(TuiTextfieldDirective, TuiSelect)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiNativeValidator }, { directive: i2.TuiAppearance }], ngImport: i0, template: "<option\n *ngIf=\"placeholder && !value; else selected\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder }}\n</option>\n<ng-template #selected>\n <option\n *ngFor=\"let item of [value]\"\n selected\n >\n {{ item }}\n </option>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelect, isStandalone: true, selector: "select[tuiTextfield]", inputs: { placeholder: "placeholder" }, host: { listeners: { "input": "0", "focusin": "0", "focusout": "0", "keydown.space.prevent": "0", "keydown.enter.prevent": "0", "keydown.backspace": "setValue(\"\")", "mousedown.prevent": "focus()", "keydown.control.c": "onCopy()", "keydown.meta.c": "onCopy()" }, properties: { "id": "el.id || id", "attr.data-mode": "mode", "class._empty": "value === \"\"" } }, providers: [tuiProvide(TuiTextfieldDirective, TuiSelect)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiNativeValidator }, { directive: i2.TuiAppearance }], ngImport: i0, template: "<option\n *ngIf=\"placeholder && !value; else selected\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder }}\n</option>\n<ng-template #selected>\n <option\n *ngFor=\"let item of [value]\"\n selected\n >\n {{ item }}\n </option>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
37
37
|
}
|
|
38
38
|
export { TuiSelect };
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelect, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
|
-
args: [{ standalone: true, selector: 'select[tuiTextfield]', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.
|
|
41
|
+
args: [{ standalone: true, selector: 'select[tuiTextfield]', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.Default, providers: [tuiProvide(TuiTextfieldDirective, TuiSelect)], hostDirectives: [TuiNativeValidator, TuiAppearance], host: {
|
|
42
42
|
'[id]': 'el.id || id',
|
|
43
43
|
'[attr.data-mode]': 'mode',
|
|
44
44
|
'[class._empty]': 'value === ""',
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
55
55
|
}], propDecorators: { placeholder: [{
|
|
56
56
|
type: Input
|
|
57
57
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQvc2VsZWN0LmRpcmVjdGl2ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQvc2VsZWN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBRTlFLE1BeUJhLFNBQVUsU0FBUSxnQkFBZ0I7SUF6Qi9DOztRQTBCcUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBR3RDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO0tBb0IzQjtJQWxCbUIsUUFBUSxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQWMsS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLEtBQUssQ0FBQyxNQUFNO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQXhCUSxTQUFTO21HQUFULFNBQVMsc2RBakJQLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFDLDBJQ2xCN0QsMFNBZ0JBLDJDREhjLFlBQVk7O1NBc0JiLFNBQVM7NEZBQVQsU0FBUztrQkF6QnJCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHNCQUFzQixXQUN2QixDQUFDLFlBQVksQ0FBQyxtQkFJTix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsVUFBVSxDQUFDLHFCQUFxQixZQUFZLENBQUMsa0JBQ3pDLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFFBQzdDO3dCQUNGLE1BQU0sRUFBRSxhQUFhO3dCQUNyQixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQixnQkFBZ0IsRUFBRSxjQUFjO3dCQUNoQyxTQUFTLEVBQUUsR0FBRzt3QkFDZCxXQUFXLEVBQUUsR0FBRzt3QkFDaEIsWUFBWSxFQUFFLEdBQUc7d0JBQ2pCLHlCQUF5QixFQUFFLEdBQUc7d0JBQzlCLHlCQUF5QixFQUFFLEdBQUc7d0JBQzlCLHFCQUFxQixFQUFFLGNBQWM7d0JBQ3JDLHFCQUFxQixFQUFFLFNBQVM7d0JBQ2hDLHFCQUFxQixFQUFFLFVBQVU7d0JBQ2pDLGtCQUFrQixFQUFFLFVBQVU7cUJBQ2pDOzhCQU9NLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtXQV9OQVZJR0FUT1J9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtUdWlOYXRpdmVWYWxpZGF0b3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9uYXRpdmUtdmFsaWRhdG9yJztcbmltcG9ydCB7dHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpQXBwZWFyYW5jZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9hcHBlYXJhbmNlJztcblxuaW1wb3J0IHtUdWlUZXh0ZmllbGRCYXNlLCBUdWlUZXh0ZmllbGREaXJlY3RpdmV9IGZyb20gJy4vdGV4dGZpZWxkLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzZWxlY3RbdHVpVGV4dGZpZWxkXScsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC50ZW1wbGF0ZS5odG1sJyxcbiAgICAvLyBXZSB3YW50IHRoaXMgdGVtcGxhdGUgdG8gZm9sbG93IGNoYW5nZSBkZXRlY3Rpb24gdG8gcGFyZW50IHRleHRmaWVsZC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3ByZWZlci1vbi1wdXNoLWNvbXBvbmVudC1jaGFuZ2UtZGV0ZWN0aW9uXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIHByb3ZpZGVyczogW3R1aVByb3ZpZGUoVHVpVGV4dGZpZWxkRGlyZWN0aXZlLCBUdWlTZWxlY3QpXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aU5hdGl2ZVZhbGlkYXRvciwgVHVpQXBwZWFyYW5jZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2lkXSc6ICdlbC5pZCB8fCBpZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLW1vZGVdJzogJ21vZGUnLFxuICAgICAgICAnW2NsYXNzLl9lbXB0eV0nOiAndmFsdWUgPT09IFwiXCInLFxuICAgICAgICAnKGlucHV0KSc6ICcwJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICcwJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnMCcsXG4gICAgICAgICcoa2V5ZG93bi5zcGFjZS5wcmV2ZW50KSc6ICcwJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyLnByZXZlbnQpJzogJzAnLFxuICAgICAgICAnKGtleWRvd24uYmFja3NwYWNlKSc6ICdzZXRWYWx1ZShcIlwiKScsXG4gICAgICAgICcobW91c2Vkb3duLnByZXZlbnQpJzogJ2ZvY3VzKCknLFxuICAgICAgICAnKGtleWRvd24uY29udHJvbC5jKSc6ICdvbkNvcHkoKScsXG4gICAgICAgICcoa2V5ZG93bi5tZXRhLmMpJzogJ29uQ29weSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3QgZXh0ZW5kcyBUdWlUZXh0ZmllbGRCYXNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdiA9IGluamVjdChXQV9OQVZJR0FUT1IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0Jywge2J1YmJsZXM6IHRydWV9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoJ19pb3MtZml4Jyk7XG4gICAgICAgIHRoaXMuZWwuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCdfaW9zLWZpeCcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkLnN0cmluZ2lmeSh0aGlzLmNvbnRyb2wudmFsdWUgPz8gJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBvbkNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMubmF2LmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSk7XG4gICAgfVxufVxuIiwiPG9wdGlvblxuICAgICpuZ0lmPVwicGxhY2Vob2xkZXIgJiYgIXZhbHVlOyBlbHNlIHNlbGVjdGVkXCJcbiAgICBkaXNhYmxlZFxuICAgIHNlbGVjdGVkXG4gICAgdmFsdWU9XCJcIlxuPlxuICAgIHt7IHBsYWNlaG9sZGVyIH19XG48L29wdGlvbj5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWQ+XG4gICAgPG9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBbdmFsdWVdXCJcbiAgICAgICAgc2VsZWN0ZWRcbiAgICA+XG4gICAgICAgIHt7IGl0ZW0gfX1cbiAgICA8L29wdGlvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|