@taiga-ui/kit 4.50.0-canary.77bd154 → 4.50.0-canary.a980fc3
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/index.d.ts +1 -0
- package/components/input-number/quantum.directive.d.ts +9 -2
- package/components/input-range/index.d.ts +2 -0
- package/components/input-range/input-range.component.d.ts +75 -0
- package/components/input-range/input-range.d.ts +3 -0
- package/components/range/range.component.d.ts +6 -0
- package/components/slider/helpers/slider-key-steps.directive.d.ts +2 -1
- package/esm2022/components/combo-box/combo-box.directive.mjs +7 -3
- package/esm2022/components/confirm/confirm.component.mjs +3 -3
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/input-date-time/input-date-time.directive.mjs +7 -3
- package/esm2022/components/input-number/input-number.directive.mjs +8 -4
- package/esm2022/components/input-number/quantum.directive.mjs +23 -11
- package/esm2022/components/input-range/index.mjs +3 -0
- package/esm2022/components/input-range/input-range.component.mjs +166 -0
- package/esm2022/components/input-range/input-range.mjs +4 -0
- package/esm2022/components/input-range/taiga-ui-kit-components-input-range.mjs +5 -0
- package/esm2022/components/input-time/input-time.directive.mjs +7 -3
- package/esm2022/components/range/range.component.mjs +18 -7
- package/esm2022/components/slider/helpers/slider-key-steps.directive.mjs +3 -2
- package/esm2022/components/textarea/textarea.component.mjs +3 -3
- package/esm2022/directives/skeleton/skeleton.directive.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs +6 -2
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-confirm.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +6 -2
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-number.mjs +28 -13
- package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-range.mjs +175 -0
- package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-input-time.mjs +6 -2
- package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-range.mjs +17 -6
- package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs +2 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-textarea.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components.mjs +1 -0
- package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +1 -1
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
- package/package.json +7 -1
|
@@ -28,7 +28,8 @@ class TuiSliderKeyStepsBase {
|
|
|
28
28
|
this.max = steps?.[steps.length - 1]?.[1];
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* TODO(v5): standardize logic between `TuiSlider` & `TuiInputSlider`
|
|
31
|
+
* TODO(v5): standardize logic between `TuiSlider` & `TuiInputSlider` & `Range` & `InputRange`
|
|
32
|
+
* For non-linear slider (with `[keySteps]` property) `step` means percentage
|
|
32
33
|
* Add these host-bindings to `TuiSliderKeyStepsBase`:
|
|
33
34
|
* ```
|
|
34
35
|
* host: {
|
|
@@ -106,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
106
107
|
}], propDecorators: { keySteps: [{
|
|
107
108
|
type: Input
|
|
108
109
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zbGlkZXIvaGVscGVycy9zbGlkZXIta2V5LXN0ZXBzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBMkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyw0QkFBNEIsRUFBbUIsTUFBTSxhQUFhLENBQUM7O0FBRTNFLE1BU2EscUJBQXFCO0lBVGxDO1FBVXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBTXBFLFNBQUksR0FBa0IsQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsTUFBTSxDQUE2QyxJQUFJ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LElBQUk7b0JBQ2hCLFFBQVEsRUFDSix5SEFBeUg7b0JBQzdILFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLEVBQUU7d0JBQ0YsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLFlBQVksRUFBRSxZQUFZO3dCQUMxQixRQUFRLEVBQUUsYUFBYTt3QkFDdkIsU0FBUyxFQUFFLCtCQUErQjt3QkFDMUMsVUFBVSxFQUFFLCtCQUErQjtxQkFDOUM7aUJBQ0o7OEJBT2MsUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QsIElOSkVDVE9SLCBJbnB1dCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1R1aUNvbnRyb2wsIHR5cGUgVHVpVmFsdWVUcmFuc2Zvcm1lcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7dHVpQ29udHJvbFZhbHVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3N3aXRjaE1hcCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVNsaWRlckNvbXBvbmVudH0gZnJvbSAnLi4vc2xpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge3R1aUNyZWF0ZUtleVN0ZXBzVHJhbnNmb3JtZXIsIHR5cGUgVHVpS2V5U3RlcHN9IGZyb20gJy4va2V5LXN0ZXBzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICdtaW4nLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAnbWF4JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVub3ddJzogJ3ZhbHVlKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzQmFzZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJTkpFQ1RPUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICBwcm90ZWN0ZWQgbWluPzogbnVtYmVyO1xuICAgIHByb3RlY3RlZCBtYXg/OiBudW1iZXI7XG5cbiAgICBASW5wdXQoe3RyYW5zZm9ybTogKHg6IG51bWJlciB8ICdhbnknKSA9PiAoeCA9PT0gJ2FueScgPyBudWxsIDogeCl9KVxuICAgIHB1YmxpYyBzdGVwOiBudW1iZXIgfCBudWxsID0gMTtcblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1lciA9IHNpZ25hbDxUdWlWYWx1ZVRyYW5zZm9ybWVyPG51bWJlciwgbnVtYmVyPiB8IG51bGw+KG51bGwpO1xuICAgIHB1YmxpYyB2YWx1ZSA9IHRvU2lnbmFsKFxuICAgICAgICB0aW1lcigwKSAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81NDQxOFxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHR1aUNvbnRyb2xWYWx1ZTxudW1iZXI+KHRoaXMuY29udHJvbCkpKSxcbiAgICApO1xuXG4gICAgQHR1aVB1cmVcbiAgICBwdWJsaWMgZ2V0IHNsaWRlcigpOiBUdWlTbGlkZXJDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoVHVpU2xpZGVyQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQga2V5U3RlcHMoc3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnRyYW5zZm9ybWVyLnNldChzdGVwcyAmJiB0dWlDcmVhdGVLZXlTdGVwc1RyYW5zZm9ybWVyKHN0ZXBzLCB0aGlzLnNsaWRlcikpO1xuICAgICAgICB0aGlzLm1pbiA9IHN0ZXBzPy5bMF1bMV07XG4gICAgICAgIHRoaXMubWF4ID0gc3RlcHM/LltzdGVwcy5sZW5ndGggLSAxXT8uWzFdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRPRE8odjUpOiBzdGFuZGFyZGl6ZSBsb2dpYyBiZXR3ZWVuIGBUdWlTbGlkZXJgICYgYFR1aUlucHV0U2xpZGVyYCAmIGBSYW5nZWAgJiBgSW5wdXRSYW5nZWBcbiAgICAgKiBGb3Igbm9uLWxpbmVhciBzbGlkZXIgKHdpdGggYFtrZXlTdGVwc11gIHByb3BlcnR5KSBgc3RlcGAgbWVhbnMgcGVyY2VudGFnZVxuICAgICAqIEFkZCB0aGVzZSBob3N0LWJpbmRpbmdzIHRvIGBUdWlTbGlkZXJLZXlTdGVwc0Jhc2VgOlxuICAgICAqIGBgYFxuICAgICAqIGhvc3Q6IHtcbiAgICAgKiAgICAgJ1thdHRyLm1pbl0nOiAnMCcsXG4gICAgICogICAgICdbYXR0ci5zdGVwXSc6ICcxJyxcbiAgICAgKiAgICAgJ1thdHRyLm1heF0nOiAndG90YWxTdGVwcycsXG4gICAgICogfSxcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdGFsU3RlcHMoKTogbnVtYmVyIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vdC1pbnRlZ2VyIGFtb3VudCBvZiBzdGVwcyBpcyBpbnZhbGlkIHVzYWdlIG9mIG5hdGl2ZSBzbGlkZXJzXG4gICAgICAgICAqIGBgYGh0bWxcbiAgICAgICAgICogPGlucHV0IHR5cGU9XCJyYW5nZVwiIFttYXhdPVwiMTAwXCIgW3N0ZXBdPVwiMy4zM1wiIC8+XG4gICAgICAgICAqIGBgYFxuICAgICAgICAgKiAoaW1wb3NzaWJsZSB0byBzZWxlY3QgMTAwOyA5OS45IGlzIG1heCBhbGxvd2VkIHZhbHVlKVxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcCA/IE1hdGgucm91bmQoMTAwIC8gdGhpcy5zdGVwKSA6IEluZmluaXR5O1xuICAgIH1cblxuICAgIHB1YmxpYyB0YWtlU3RlcChjb2VmZmljaWVudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNsaWRlci52YWx1ZSArIGNvZWZmaWNpZW50O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVyKCk/LnRvQ29udHJvbFZhbHVlKHRoaXMuc2xpZGVyLnZhbHVlICsgY29lZmZpY2llbnQpID8/XG4gICAgICAgICAgICBuZXdWYWx1ZVxuICAgICAgICApO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ2lucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdW25nTW9kZWxdLGlucHV0W3R1aVNsaWRlcl1ba2V5U3RlcHNdW2Zvcm1Db250cm9sXSxpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXVtmb3JtQ29udHJvbE5hbWVdJyxcbiAgICBwcm92aWRlcnM6IFt0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXIoMCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1t2YWx1ZV0nOiAndmFsdWUoKScsXG4gICAgICAgICdbZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnb25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSknLFxuICAgICAgICAnKGNoYW5nZSknOiAnb25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzIGV4dGVuZHMgVHVpQ29udHJvbDxudW1iZXI+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsaWRlciA9IGluamVjdDxUdWlTbGlkZXJDb21wb25lbnQ+KFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IFR1aVNsaWRlckNvbXBvbmVudCksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBrZXlTdGVwcyhzdGVwczogVHVpS2V5U3RlcHMpIHtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lciA9IHR1aUNyZWF0ZUtleVN0ZXBzVHJhbnNmb3JtZXIoc3RlcHMsIHRoaXMuc2xpZGVyKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -30,7 +30,7 @@ class TuiTextarea {
|
|
|
30
30
|
this.text?.nativeElement.scrollTo({ top: this.el.scrollTop });
|
|
31
31
|
}
|
|
32
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTextarea, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiTextarea, isStandalone: true, selector: "textarea[tuiTextarea]", inputs: { min: "min", max: "max", content: "content" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "scroll.zoneless": "onScroll()", "scroll.once": "onScroll()" }, properties: { "class._mobile": "isMobile" } }, providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "text", first: true, predicate: ["text"], descendants: true }], hostDirectives: [{ directive: i1.TuiWithTextfield }], ngImport: i0, template: "<ng-template #template>\n <tui-scroll-controls\n *ngIf=\"!isMobile\"\n class=\"t-scroll\"\n />\n <span\n #text\n aria-hidden=\"true\"\n class=\"t-ghost\"\n [style.max-height.em]=\"1.25 * max\"\n [style.min-height.em]=\"1.25 * min\"\n >\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: el.value}\">{{ text }}</ng-container>\n </span>\n <span class=\"t-hack\"></span>\n</ng-template>\n", styles: [":host-context(tui-textfield._with-label[data-size=\"m\"]){border-block-start-width:calc(.5rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield._with-label[data-size=\"l\"]){border-block-start-width:calc(.625rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield[data-size=\"s\"]){padding-block-start:.5rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"m\"]){padding-block-start:.875rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"l\"]){padding-block-start:1.125rem;padding-block-end:.375rem}:host{word-break:break-word;border:0 solid transparent}:host[data-appearance=table]{border-block-start:1px solid transparent;border-block-end:none!important}:host:not(._mobile){scrollbar-width:none;-ms-overflow-style:none}:host:not(._mobile)::-webkit-scrollbar,:host:not(._mobile)::-webkit-scrollbar-thumb{display:none}.t-scroll{position:absolute;top:0;left:0;bottom:0;right:0;top:.25rem;bottom:.25rem;min-block-size:0}::ng-deep tui-textfield._with-label[data-size=m] .t-scroll{top:calc(.5rem + var(--t-height) / 3)}::ng-deep tui-textfield._with-label[data-size=l] .t-scroll{top:calc(.625rem + var(--t-height) / 3)}.t-ghost{position:relative;z-index:1;order:1;inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;padding-inline-start:var(--t-start);padding-inline-end:calc(var(--t-end) + var(--t-side));pointer-events:none;box-sizing:content-box;overflow:hidden;color:transparent}.t-ghost:after{content:\" \"}::ng-deep tui-textfield._with-label[data-size=m] textarea~.t-ghost{margin-block-start:-1.375rem;padding-block-end:.3125rem}::ng-deep tui-textfield._with-label[data-size=l] textarea~.t-ghost{margin-block-start:-1.75rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=s] textarea~.t-ghost{margin-block-start:-1.5rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=m] textarea~.t-ghost{margin-block-start:-2rem;padding-block-end:.875rem}::ng-deep tui-textfield[data-size=l] textarea~.t-ghost{margin-block-start:-2.5rem;padding-block-end:1rem}.t-hack{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px transparent}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiTextarea, isStandalone: true, selector: "textarea[tuiTextarea]", inputs: { min: "min", max: "max", content: "content" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "scroll.zoneless": "onScroll()", "scroll.once": "onScroll()" }, properties: { "class._mobile": "isMobile" } }, providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "text", first: true, predicate: ["text"], descendants: true }], hostDirectives: [{ directive: i1.TuiWithTextfield }], ngImport: i0, template: "<ng-template #template>\n <tui-scroll-controls\n *ngIf=\"!isMobile\"\n class=\"t-scroll\"\n (click.prevent)=\"(0)\"\n />\n <span\n #text\n aria-hidden=\"true\"\n class=\"t-ghost\"\n [style.max-height.em]=\"1.25 * max\"\n [style.min-height.em]=\"1.25 * min\"\n >\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: el.value}\">{{ text }}</ng-container>\n </span>\n <span class=\"t-hack\"></span>\n</ng-template>\n", styles: [":host-context(tui-textfield._with-label[data-size=\"m\"]._with-label[data-size=\"m\"]){border-block-start-width:calc(.5rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield._with-label[data-size=\"l\"]._with-label[data-size=\"l\"]){border-block-start-width:calc(.625rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield[data-size=\"s\"]){padding-block-start:.5rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"m\"]){padding-block-start:.875rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"l\"]){padding-block-start:1.125rem;padding-block-end:.375rem}:host{word-break:break-word;border:0 solid transparent}:host[data-appearance=table]{border-block-start:1px solid transparent;border-block-end:none!important}:host:not(._mobile){scrollbar-width:none;-ms-overflow-style:none}:host:not(._mobile)::-webkit-scrollbar,:host:not(._mobile)::-webkit-scrollbar-thumb{display:none}.t-scroll{position:absolute;top:0;left:0;bottom:0;right:0;top:.25rem;bottom:.25rem;min-block-size:0}::ng-deep tui-textfield._with-label[data-size=m] .t-scroll{top:calc(.5rem + var(--t-height) / 3)}::ng-deep tui-textfield._with-label[data-size=l] .t-scroll{top:calc(.625rem + var(--t-height) / 3)}.t-ghost{position:relative;z-index:1;order:1;inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;padding-inline-start:var(--t-start);padding-inline-end:calc(var(--t-end) + var(--t-side));pointer-events:none;box-sizing:content-box;overflow:hidden;color:transparent}.t-ghost:after{content:\" \"}::ng-deep tui-textfield._with-label[data-size=m] textarea~.t-ghost{margin-block-start:-1.375rem;padding-block-end:.3125rem}::ng-deep tui-textfield._with-label[data-size=l] textarea~.t-ghost{margin-block-start:-1.75rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=s] textarea~.t-ghost{margin-block-start:-1.5rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=m] textarea~.t-ghost{margin-block-start:-2rem;padding-block-end:.875rem}::ng-deep tui-textfield[data-size=l] textarea~.t-ghost{margin-block-start:-2.5rem;padding-block-end:1rem}.t-hack{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px transparent}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
34
|
}
|
|
35
35
|
export { TuiTextarea };
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTextarea, decorators: [{
|
|
@@ -41,7 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
41
41
|
'(scroll.zoneless)': 'onScroll()',
|
|
42
42
|
// To trigger CD for #text
|
|
43
43
|
'(scroll.once)': 'onScroll()',
|
|
44
|
-
}, template: "<ng-template #template>\n <tui-scroll-controls\n *ngIf=\"!isMobile\"\n class=\"t-scroll\"\n />\n <span\n #text\n aria-hidden=\"true\"\n class=\"t-ghost\"\n [style.max-height.em]=\"1.25 * max\"\n [style.min-height.em]=\"1.25 * min\"\n >\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: el.value}\">{{ text }}</ng-container>\n </span>\n <span class=\"t-hack\"></span>\n</ng-template>\n", styles: [":host-context(tui-textfield._with-label[data-size=\"m\"]){border-block-start-width:calc(.5rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield._with-label[data-size=\"l\"]){border-block-start-width:calc(.625rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield[data-size=\"s\"]){padding-block-start:.5rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"m\"]){padding-block-start:.875rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"l\"]){padding-block-start:1.125rem;padding-block-end:.375rem}:host{word-break:break-word;border:0 solid transparent}:host[data-appearance=table]{border-block-start:1px solid transparent;border-block-end:none!important}:host:not(._mobile){scrollbar-width:none;-ms-overflow-style:none}:host:not(._mobile)::-webkit-scrollbar,:host:not(._mobile)::-webkit-scrollbar-thumb{display:none}.t-scroll{position:absolute;top:0;left:0;bottom:0;right:0;top:.25rem;bottom:.25rem;min-block-size:0}::ng-deep tui-textfield._with-label[data-size=m] .t-scroll{top:calc(.5rem + var(--t-height) / 3)}::ng-deep tui-textfield._with-label[data-size=l] .t-scroll{top:calc(.625rem + var(--t-height) / 3)}.t-ghost{position:relative;z-index:1;order:1;inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;padding-inline-start:var(--t-start);padding-inline-end:calc(var(--t-end) + var(--t-side));pointer-events:none;box-sizing:content-box;overflow:hidden;color:transparent}.t-ghost:after{content:\" \"}::ng-deep tui-textfield._with-label[data-size=m] textarea~.t-ghost{margin-block-start:-1.375rem;padding-block-end:.3125rem}::ng-deep tui-textfield._with-label[data-size=l] textarea~.t-ghost{margin-block-start:-1.75rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=s] textarea~.t-ghost{margin-block-start:-1.5rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=m] textarea~.t-ghost{margin-block-start:-2rem;padding-block-end:.875rem}::ng-deep tui-textfield[data-size=l] textarea~.t-ghost{margin-block-start:-2.5rem;padding-block-end:1rem}.t-hack{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px transparent}\n"] }]
|
|
44
|
+
}, template: "<ng-template #template>\n <tui-scroll-controls\n *ngIf=\"!isMobile\"\n class=\"t-scroll\"\n (click.prevent)=\"(0)\"\n />\n <span\n #text\n aria-hidden=\"true\"\n class=\"t-ghost\"\n [style.max-height.em]=\"1.25 * max\"\n [style.min-height.em]=\"1.25 * min\"\n >\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: el.value}\">{{ text }}</ng-container>\n </span>\n <span class=\"t-hack\"></span>\n</ng-template>\n", styles: [":host-context(tui-textfield._with-label[data-size=\"m\"]._with-label[data-size=\"m\"]){border-block-start-width:calc(.5rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield._with-label[data-size=\"l\"]._with-label[data-size=\"l\"]){border-block-start-width:calc(.625rem + var(--t-height) / 3);padding-block-start:0}:host-context(tui-textfield[data-size=\"s\"]){padding-block-start:.5rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"m\"]){padding-block-start:.875rem;padding-block-end:.25rem}:host-context(tui-textfield[data-size=\"l\"]){padding-block-start:1.125rem;padding-block-end:.375rem}:host{word-break:break-word;border:0 solid transparent}:host[data-appearance=table]{border-block-start:1px solid transparent;border-block-end:none!important}:host:not(._mobile){scrollbar-width:none;-ms-overflow-style:none}:host:not(._mobile)::-webkit-scrollbar,:host:not(._mobile)::-webkit-scrollbar-thumb{display:none}.t-scroll{position:absolute;top:0;left:0;bottom:0;right:0;top:.25rem;bottom:.25rem;min-block-size:0}::ng-deep tui-textfield._with-label[data-size=m] .t-scroll{top:calc(.5rem + var(--t-height) / 3)}::ng-deep tui-textfield._with-label[data-size=l] .t-scroll{top:calc(.625rem + var(--t-height) / 3)}.t-ghost{position:relative;z-index:1;order:1;inline-size:-webkit-fill-available;inline-size:-moz-available;inline-size:stretch;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;padding-inline-start:var(--t-start);padding-inline-end:calc(var(--t-end) + var(--t-side));pointer-events:none;box-sizing:content-box;overflow:hidden;color:transparent}.t-ghost:after{content:\" \"}::ng-deep tui-textfield._with-label[data-size=m] textarea~.t-ghost{margin-block-start:-1.375rem;padding-block-end:.3125rem}::ng-deep tui-textfield._with-label[data-size=l] textarea~.t-ghost{margin-block-start:-1.75rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=s] textarea~.t-ghost{margin-block-start:-1.5rem;padding-block-end:.5rem}::ng-deep tui-textfield[data-size=m] textarea~.t-ghost{margin-block-start:-2rem;padding-block-end:.875rem}::ng-deep tui-textfield[data-size=l] textarea~.t-ghost{margin-block-start:-2.5rem;padding-block-end:1rem}.t-hack{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px transparent}\n"] }]
|
|
45
45
|
}], propDecorators: { template: [{
|
|
46
46
|
type: ViewChild,
|
|
47
47
|
args: [TemplateRef]
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
55
55
|
}], content: [{
|
|
56
56
|
type: Input
|
|
57
57
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGdCQUFnQixHQUNuQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQTBCLE1BQU0sb0JBQW9CLENBQUM7OztBQUVqRixNQWlCYSxXQUFXO0lBakJ4QjtRQXFCcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZDLFFBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUs3QixPQUFFLEdBQUcsZ0JBQWdCLEVBQXVCLENBQUM7UUFDN0MsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFBLHFCQUE2QixDQUFBLENBQUMsQ0FBQztRQUNsRCxhQUFRLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRzdDLFFBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUd2QixRQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFHdkIsWUFBTyxHQUFrQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztLQVd4RTtJQVRVLGVBQWU7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUM7SUFDTCxDQUFDO0lBRVMsUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQzsrR0EvQlEsV0FBVzttR0FBWCxXQUFXLDJTQVZULENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxvRUFXeEMsV0FBVyxxTEMzQzFCLHVnQkFpQkEsZytFRFdjLElBQUksNkZBQUUsa0JBQWtCLDhIQUFFLGlCQUFpQjs7U0FjNUMsV0FBVzs0RkFBWCxXQUFXO2tCQWpCdkIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sdUJBQXVCLFdBQ3hCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLG1CQUdyQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxrQkFDbkMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUM1Qjt3QkFDRixlQUFlLEVBQUUsTUFBTTt3QkFDdkIsaUJBQWlCLEVBQUUsVUFBVTt3QkFDN0IsbUJBQW1CLEVBQUUsWUFBWTt3QkFDakMsMEJBQTBCO3dCQUMxQixlQUFlLEVBQUUsWUFBWTtxQkFDaEM7OEJBSWdCLFFBQVE7c0JBRHhCLFNBQVM7dUJBQUMsV0FBVztnQkFPSCxJQUFJO3NCQUR0QixTQUFTO3VCQUFDLE1BQU07Z0JBUVYsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpU2Nyb2xsQ29udHJvbHN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsYmFyJztcbmltcG9ydCB7XG4gICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVdpdGhUZXh0ZmllbGQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7VFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VFVJX1RFWFRBUkVBX09QVElPTlMsIHR5cGUgVHVpVGV4dGFyZWFPcHRpb25zfSBmcm9tICcuL3RleHRhcmVhLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndGV4dGFyZWFbdHVpVGV4dGFyZWFdJyxcbiAgICBpbXBvcnRzOiBbTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlTY3JvbGxDb250cm9sc10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RleHRhcmVhLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt0dWlQcm92aWRlKFRVSV9TQ1JPTExfUkVGLCBFbGVtZW50UmVmKV0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlXaXRoVGV4dGZpZWxkXSxcbiAgICBob3N0OiB7XG4gICAgICAgIG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLl9tb2JpbGVdJzogJ2lzTW9iaWxlJyxcbiAgICAgICAgJyhzY3JvbGwuem9uZWxlc3MpJzogJ29uU2Nyb2xsKCknLFxuICAgICAgICAvLyBUbyB0cmlnZ2VyIENEIGZvciAjdGV4dFxuICAgICAgICAnKHNjcm9sbC5vbmNlKSc6ICdvblNjcm9sbCgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUZXh0YXJlYSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX1RFWFRBUkVBX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgQFZpZXdDaGlsZCgndGV4dCcpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRleHQ/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4oKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dGZpZWxkID0gaW5qZWN0KFR1aVRleHRmaWVsZENvbXBvbmVudDxzdHJpbmc+KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW4gPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRlbnQ6IFR1aVRleHRhcmVhT3B0aW9uc1snY29udGVudCddID0gdGhpcy5vcHRpb25zLmNvbnRlbnQ7XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRleHQ/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe3RvcDogdGhpcy5lbC5zY3JvbGxUb3B9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDx0dWktc2Nyb2xsLWNvbnRyb2xzXG4gICAgICAgICpuZ0lmPVwiIWlzTW9iaWxlXCJcbiAgICAgICAgY2xhc3M9XCJ0LXNjcm9sbFwiXG4gICAgICAgIChjbGljay5wcmV2ZW50KT1cIigwKVwiXG4gICAgLz5cbiAgICA8c3BhblxuICAgICAgICAjdGV4dFxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBjbGFzcz1cInQtZ2hvc3RcIlxuICAgICAgICBbc3R5bGUubWF4LWhlaWdodC5lbV09XCIxLjI1ICogbWF4XCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQuZW1dPVwiMS4yNSAqIG1pblwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsLnZhbHVlfVwiPnt7IHRleHQgfX08L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJ0LWhhY2tcIj48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -27,7 +27,7 @@ class TuiSkeleton {
|
|
|
27
27
|
ngOnChanges({ tuiSkeleton }) {
|
|
28
28
|
this.animation?.cancel();
|
|
29
29
|
if (!tuiSkeleton?.currentValue && !tuiSkeleton?.firstChange) {
|
|
30
|
-
this.animation = this.el.animate(FADE, this.duration);
|
|
30
|
+
this.animation = this.el.animate?.(FADE, this.duration);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
getPlaceholder(value) {
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
66
66
|
function getLength() {
|
|
67
67
|
return Math.floor(Math.random() * (15 - 5 + 1)) + 5;
|
|
68
68
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2RpcmVjdGl2ZXMvc2tlbGV0b24vc2tlbGV0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFHTCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7O0FBRWxFLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQUU3QyxNQVVNLGlCQUFpQjsrR0FBakIsaUJBQWlCO21HQUFqQixpQkFBaUIseUhBUlQsRUFBRTs7NEZBUVYsaUJBQWlCO2tCQVZ0QixTQUFTO2lDQUNNLElBQUksWUFDTixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLHFCQUFxQjtxQkFDL0I7O0FBSUwsTUFTYSxXQUFXO0lBVHhCO1FBV3FCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFMUQsWUFBTyxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3ZELGdCQUFXLEdBQThCLEtBQUssQ0FBQztLQXVCekQ7SUFyQlUsV0FBVyxDQUFDLEVBQUMsV0FBVyxFQUFnQjtRQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRTtZQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFHUyxjQUFjLENBQUMsS0FBZ0M7UUFDckQsUUFBUSxPQUFPLEtBQUssRUFBRTtZQUNsQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDO3FCQUM3QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7cUJBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxLQUFLLENBQUM7WUFDakI7Z0JBQ0ksT0FBTyxJQUFJLENBQUM7U0FDbkI7SUFDTCxDQUFDOytHQTlCUSxXQUFXO21HQUFYLFdBQVc7O0FBbUJWO0lBRFQsT0FBTztpREFZUDtTQTlCUSxXQUFXOzRGQUFYLFdBQVc7a0JBVHZCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0YsV0FBVyxFQUFFLEVBQUU7d0JBQ2YsbUJBQW1CLEVBQUUsYUFBYTt3QkFDbEMsMEJBQTBCLEVBQUUsNkJBQTZCO3FCQUM1RDtpQkFDSjs4QkFTVSxXQUFXO3NCQURqQixLQUFLO2dCQVlJLGNBQWM7QUFjNUIsU0FBUyxTQUFTO0lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgdHlwZSBPbkNoYW5nZXMsXG4gICAgdHlwZSBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q0hBUl9OT19CUkVBS19TUEFDRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aVB1cmUsIHR1aVdpdGhTdHlsZXN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9BTklNQVRJT05TX1NQRUVEfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlHZXREdXJhdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbmNvbnN0IEZBREUgPSBbe29wYWNpdHk6IDAuMDZ9LCB7b3BhY2l0eTogMX1dO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZVVybHM6IFsnLi9za2VsZXRvbi5zdHlsZS5sZXNzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndHVpLXNrZWxldG9uLXN0eWxlcycsXG4gICAgfSxcbn0pXG5jbGFzcyBUdWlTa2VsZXRvblN0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aVNrZWxldG9uXScsXG4gICAgaG9zdDoge1xuICAgICAgICB0dWlTa2VsZXRvbjogJycsXG4gICAgICAgICdbY2xhc3MuX3NrZWxldG9uXSc6ICd0dWlTa2VsZXRvbicsXG4gICAgICAgICdbYXR0ci5kYXRhLXR1aS1za2VsZXRvbl0nOiAnZ2V0UGxhY2Vob2xkZXIodHVpU2tlbGV0b24pJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTa2VsZXRvbiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSBhbmltYXRpb24/OiBBbmltYXRpb247XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGR1cmF0aW9uID0gdHVpR2V0RHVyYXRpb24oaW5qZWN0KFRVSV9BTklNQVRJT05TX1NQRUVEKSkgKiAyO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGhpbmcgPSB0dWlXaXRoU3R5bGVzKFR1aVNrZWxldG9uU3R5bGVzKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR1aVNrZWxldG9uOiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoe3R1aVNrZWxldG9ufTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbj8uY2FuY2VsKCk7XG5cbiAgICAgICAgaWYgKCF0dWlTa2VsZXRvbj8uY3VycmVudFZhbHVlICYmICF0dWlTa2VsZXRvbj8uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gdGhpcy5lbC5hbmltYXRlPy4oRkFERSwgdGhpcy5kdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByb3RlY3RlZCBnZXRQbGFjZWhvbGRlcih2YWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOiB2YWx1ZX0pXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKCkgPT4gQ0hBUl9OT19CUkVBS19TUEFDRS5yZXBlYXQoZ2V0TGVuZ3RoKCkpKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignICcpO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDE1IC0gNSArIDEpKSArIDU7XG59XG4iXX0=
|
|
@@ -78,8 +78,12 @@ class TuiComboBox extends TuiControl {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
writeValue(value) {
|
|
81
|
-
|
|
82
|
-
untracked(() => this.
|
|
81
|
+
const reset = this.control.pristine && this.control.untouched && !value;
|
|
82
|
+
const changed = untracked(() => value !== this.value());
|
|
83
|
+
if (changed || reset) {
|
|
84
|
+
super.writeValue(value);
|
|
85
|
+
untracked(() => this.textfield.value.set(this.stringify(value)));
|
|
86
|
+
}
|
|
83
87
|
}
|
|
84
88
|
toggleDropdown(open = !this.open()) {
|
|
85
89
|
if (this.dropdownEnabled() && this.dropdown._content()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-combo-box.mjs","sources":["../../../projects/kit/components/combo-box/combo-box.directive.ts","../../../projects/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n isSignal,\n signal,\n untracked,\n} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES, TUI_STRICT_MATCHER} from '@taiga-ui/cdk/constants';\nimport {type TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {\n tuiAsOptionContent,\n type TuiDataListAccessor,\n} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n tuiInjectAuxiliary,\n type TuiTextfieldAccessor,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiComboBox]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsTextfieldAccessor(TuiComboBox),\n tuiAsControl(TuiComboBox),\n ],\n hostDirectives: [TuiWithTextfield],\n host: {\n '[disabled]': 'disabled()',\n '(click)': 'toggleDropdown()',\n '(input)': 'toggleDropdown(true)',\n '(keydown.enter)': 'keydownEnter($event)',\n },\n})\nexport class TuiComboBox<T>\n extends TuiControl<T | string | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly host: TuiTextfieldComponent<T> = inject(TuiTextfieldComponent);\n private readonly textfield: TuiTextfieldDirective<T> = inject(TuiTextfieldDirective);\n private readonly open = tuiDropdownOpen();\n private readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n private readonly dropdown = inject(TuiDropdownDirective);\n private readonly handlers: TuiItemsHandlers<T | string> = inject(TUI_ITEMS_HANDLERS);\n\n private readonly matcher = signal<TuiStringMatcher<T> | null>(TUI_STRICT_MATCHER);\n private readonly strict = signal(true);\n private readonly datalist = tuiInjectAuxiliary<TuiDataListAccessor<T>>(\n (x) => x !== this && 'options' in x && isSignal(x.options),\n );\n\n private readonly options = computed(\n () =>\n this.datalist()\n ?.options?.() // TODO(v5): remove optional call `?.()`\n .filter((x) => !this.handlers.disabledItemHandler()(x)) ?? [],\n );\n\n protected readonly nonStrictControlEffect = effect(() => {\n if (\n !this.options().length &&\n !this.strict() &&\n this.stringify(this.value()) !== this.textfield.value()\n ) {\n this.onChange(this.textfield.value() || null);\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly matchingEffect = effect(() => {\n const options = this.options();\n const matcher = this.matcher();\n\n if (!options.length || !matcher) {\n return;\n }\n\n const textfieldValue = this.textfield.value();\n const selectedOption = options.find((x) =>\n matcher(x, textfieldValue, this.handlers.stringify()),\n );\n const value = untracked(() => this.value());\n const unchanged = this.stringify(value) === textfieldValue;\n const fallback = this.strict() || !textfieldValue ? null : textfieldValue;\n\n this.onChange(\n selectedOption ??\n /**\n * Don't clear already not-null form control value on new `this.options()` array.\n * Otherwise, `ComboBox` becomes incompatible with virtual scroll\n * (which displays large lists of elements by only rendering the items that fit on-screen).\n * Users can still able to patch form value with `null` on new items if they wish the such behavior.\n */\n (unchanged ? value : fallback),\n );\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly newValueEffect = effect(() => {\n const stringified = this.stringify(this.value());\n\n this.textfield.value.update((x) => stringified || x);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly blurEffect = effect(() => {\n const incomplete = untracked(() => this.strict() && this.value() === null);\n\n if (!this.host.focused() && incomplete) {\n this.textfield.value.set('');\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO(v5): use signal input\n @Input('strict')\n public set strictSetter(x: boolean) {\n this.strict.set(x);\n }\n\n // TODO(v5): use signal input\n @Input('matcher')\n public set matcherSetter(x: TuiStringMatcher<T> | null) {\n this.matcher.set(x);\n }\n\n public setValue(value: T | null): void {\n this.textfield.setValue(value);\n this.onChange(value);\n\n if (!value) {\n this.toggleDropdown(true);\n }\n }\n\n public override writeValue(value: T | string | null): void {\n super.writeValue(value);\n untracked(() => this.textfield.value.set(this.stringify(value)));\n }\n\n protected toggleDropdown(open = !this.open()): void {\n if (this.dropdownEnabled() && this.dropdown._content()) {\n this.open.set(open);\n }\n }\n\n protected keydownEnter(event: KeyboardEvent): void {\n if (!this.open()) {\n return;\n }\n\n event.preventDefault();\n\n const options = this.options();\n\n if (options.length === 1 && options[0]) {\n this.setValue(options[0]);\n this.toggleDropdown(false);\n }\n }\n\n private stringify(value?: T | string | null): string {\n return value != null ? this.handlers.stringify()(value) : '';\n }\n}\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-combo-box.mjs","sources":["../../../projects/kit/components/combo-box/combo-box.directive.ts","../../../projects/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n isSignal,\n signal,\n untracked,\n} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES, TUI_STRICT_MATCHER} from '@taiga-ui/cdk/constants';\nimport {type TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {\n tuiAsOptionContent,\n type TuiDataListAccessor,\n} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n tuiInjectAuxiliary,\n type TuiTextfieldAccessor,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiComboBox]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsTextfieldAccessor(TuiComboBox),\n tuiAsControl(TuiComboBox),\n ],\n hostDirectives: [TuiWithTextfield],\n host: {\n '[disabled]': 'disabled()',\n '(click)': 'toggleDropdown()',\n '(input)': 'toggleDropdown(true)',\n '(keydown.enter)': 'keydownEnter($event)',\n },\n})\nexport class TuiComboBox<T>\n extends TuiControl<T | string | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly host: TuiTextfieldComponent<T> = inject(TuiTextfieldComponent);\n private readonly textfield: TuiTextfieldDirective<T> = inject(TuiTextfieldDirective);\n private readonly open = tuiDropdownOpen();\n private readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n private readonly dropdown = inject(TuiDropdownDirective);\n private readonly handlers: TuiItemsHandlers<T | string> = inject(TUI_ITEMS_HANDLERS);\n\n private readonly matcher = signal<TuiStringMatcher<T> | null>(TUI_STRICT_MATCHER);\n private readonly strict = signal(true);\n private readonly datalist = tuiInjectAuxiliary<TuiDataListAccessor<T>>(\n (x) => x !== this && 'options' in x && isSignal(x.options),\n );\n\n private readonly options = computed(\n () =>\n this.datalist()\n ?.options?.() // TODO(v5): remove optional call `?.()`\n .filter((x) => !this.handlers.disabledItemHandler()(x)) ?? [],\n );\n\n protected readonly nonStrictControlEffect = effect(() => {\n if (\n !this.options().length &&\n !this.strict() &&\n this.stringify(this.value()) !== this.textfield.value()\n ) {\n this.onChange(this.textfield.value() || null);\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly matchingEffect = effect(() => {\n const options = this.options();\n const matcher = this.matcher();\n\n if (!options.length || !matcher) {\n return;\n }\n\n const textfieldValue = this.textfield.value();\n const selectedOption = options.find((x) =>\n matcher(x, textfieldValue, this.handlers.stringify()),\n );\n const value = untracked(() => this.value());\n const unchanged = this.stringify(value) === textfieldValue;\n const fallback = this.strict() || !textfieldValue ? null : textfieldValue;\n\n this.onChange(\n selectedOption ??\n /**\n * Don't clear already not-null form control value on new `this.options()` array.\n * Otherwise, `ComboBox` becomes incompatible with virtual scroll\n * (which displays large lists of elements by only rendering the items that fit on-screen).\n * Users can still able to patch form value with `null` on new items if they wish the such behavior.\n */\n (unchanged ? value : fallback),\n );\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly newValueEffect = effect(() => {\n const stringified = this.stringify(this.value());\n\n this.textfield.value.update((x) => stringified || x);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly blurEffect = effect(() => {\n const incomplete = untracked(() => this.strict() && this.value() === null);\n\n if (!this.host.focused() && incomplete) {\n this.textfield.value.set('');\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO(v5): use signal input\n @Input('strict')\n public set strictSetter(x: boolean) {\n this.strict.set(x);\n }\n\n // TODO(v5): use signal input\n @Input('matcher')\n public set matcherSetter(x: TuiStringMatcher<T> | null) {\n this.matcher.set(x);\n }\n\n public setValue(value: T | null): void {\n this.textfield.setValue(value);\n this.onChange(value);\n\n if (!value) {\n this.toggleDropdown(true);\n }\n }\n\n public override writeValue(value: T | string | null): void {\n const reset = this.control.pristine && this.control.untouched && !value;\n const changed = untracked(() => value !== this.value());\n\n if (changed || reset) {\n super.writeValue(value);\n untracked(() => this.textfield.value.set(this.stringify(value)));\n }\n }\n\n protected toggleDropdown(open = !this.open()): void {\n if (this.dropdownEnabled() && this.dropdown._content()) {\n this.open.set(open);\n }\n }\n\n protected keydownEnter(event: KeyboardEvent): void {\n if (!this.open()) {\n return;\n }\n\n event.preventDefault();\n\n const options = this.options();\n\n if (options.length === 1 && options[0]) {\n this.setValue(options[0]);\n this.toggleDropdown(false);\n }\n }\n\n private stringify(value?: T | string | null): string {\n return value != null ? this.handlers.stringify()(value) : '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,11 @@ class TuiConfirm {
|
|
|
21
21
|
return this.isMobile ? 'secondary' : 'flat';
|
|
22
22
|
}
|
|
23
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [".t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ standalone: true, selector: 'tui-confirm', imports: [CommonModule, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [".t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}\n"] }]
|
|
28
|
+
args: [{ standalone: true, selector: 'tui-confirm', imports: [CommonModule, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}\n"] }]
|
|
29
29
|
}] });
|
|
30
30
|
const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);
|
|
31
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n// TODO: Remove selector in v5\n@Component({\n standalone: true,\n selector: 'tui-confirm',\n imports: [CommonModule, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n public readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\n","<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm(\n options: Partial<TuiDialogOptions<TuiConfirmData>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(TUI_CONFIRM, {\n size: 's',\n ...options,\n })\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAqBA;AACA,MAQa,UAAU,CAAA;AARvB,IAAA,WAAA,GAAA;AASqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEtC,IAAO,CAAA,OAAA,GACnB,aAAa,EAAyD,CAAC;AAK9E,KAAA;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;KAC/C;+GATQ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BvB,swBA+BA,EDNc,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n// TODO: Remove selector in v5\n@Component({\n standalone: true,\n selector: 'tui-confirm',\n imports: [CommonModule, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n public readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\n","<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm(\n options: Partial<TuiDialogOptions<TuiConfirmData>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(TUI_CONFIRM, {\n size: 's',\n ...options,\n })\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAqBA;AACA,MAQa,UAAU,CAAA;AARvB,IAAA,WAAA,GAAA;AASqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEtC,IAAO,CAAA,OAAA,GACnB,aAAa,EAAyD,CAAC;AAK9E,KAAA;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;KAC/C;+GATQ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BvB,swBA+BA,EDNc,MAAA,EAAA,CAAA,2gBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wLAAE,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAK1D,UAAU,EAAA,UAAA,EAAA,CAAA;kBARtB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,aAAa,EACd,OAAA,EAAA,CAAC,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,EAGnD,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,swBAAA,EAAA,MAAA,EAAA,CAAA,2gBAAA,CAAA,EAAA,CAAA;;MActC,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU;;AEpC/D,MACa,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5C,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAsBzB,KAAA;IApBU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAEM,IAAA,WAAW,CACd,OAAkD,EAAA;AAElD,QAAA,OAAO,KAAK,CAAC,MACT,IAAI,CAAC,KAAK;cACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAU,WAAW,EAAE;AACpC,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,GAAG,OAAO;aACb,CAAC;AACJ,cAAE,EAAE,CAAC,IAAI,CAAC,CACjB,CAAC;KACL;+GAvBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACNX;;AAEG;;;;"}
|
|
@@ -91,8 +91,12 @@ class TuiInputDateTimeDirective extends TuiInputDateBase {
|
|
|
91
91
|
setTimeout((caretIndex = DATE_FILLER_LENGTH + this.options.dateTimeSeparator.length) => this.el.setSelectionRange(caretIndex, caretIndex));
|
|
92
92
|
}
|
|
93
93
|
writeValue(value) {
|
|
94
|
-
|
|
95
|
-
untracked(() =>
|
|
94
|
+
const reset = this.control.pristine && this.control.untouched && !value;
|
|
95
|
+
const changed = untracked(() => value !== this.value());
|
|
96
|
+
if (changed || reset) {
|
|
97
|
+
super.writeValue(value);
|
|
98
|
+
untracked(() => this.textfield.value.set(this.stringify(this.value())));
|
|
99
|
+
}
|
|
96
100
|
}
|
|
97
101
|
processCalendar(calendar) {
|
|
98
102
|
super.processCalendar(calendar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-date-time.mjs","sources":["../../../projects/kit/components/input-date-time/input-date-time.options.ts","../../../projects/kit/components/input-date-time/input-date-time.directive.ts","../../../projects/kit/components/input-date-time/input-date-time.component.ts","../../../projects/kit/components/input-date-time/input-date-time.template.html","../../../projects/kit/components/input-date-time/input-date-time.ts","../../../projects/kit/components/input-date-time/taiga-ui-kit-components-input-date-time.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {type MaskitoTimeMode} from '@maskito/kit';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiDay, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n TUI_INPUT_DATE_OPTIONS_NEW,\n type TuiInputDateOptionsNew,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateTimeOptions\n extends Omit<TuiInputDateOptionsNew, 'valueTransformer'> {\n readonly timeMode: MaskitoTimeMode;\n readonly dateTimeSeparator: string;\n readonly valueTransformer: TuiValueTransformer<[TuiDay, TuiTime | null] | null, any>;\n}\n\nexport const TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS = {\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n timeMode: 'HH:MM',\n dateTimeSeparator: ', ',\n} as const;\n\nexport const TUI_INPUT_DATE_TIME_OPTIONS = new InjectionToken<TuiInputDateTimeOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_TIME_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS_NEW),\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n }),\n },\n);\n\nexport const tuiInputDateTimeOptionsProvider = (\n options: Partial<TuiInputDateTimeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(TUI_INPUT_DATE_TIME_OPTIONS, options, {\n ...TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n });\n","import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n signal,\n untracked,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {\n maskitoDateTimeOptionsGenerator,\n type MaskitoDateTimeParams,\n maskitoSelectionChangeHandler,\n type MaskitoTimeMode,\n} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_FILLER_LENGTH,\n MILLISECONDS_IN_DAY,\n TuiDay,\n TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiClamp, tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownAuto} from '@taiga-ui/core/directives/dropdown';\nimport {TuiItemsHandlersValidator} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TUI_DATE_ADAPTER,\n TuiInputDateBase,\n tuiWithDateFiller,\n} from '@taiga-ui/kit/components/input-date';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\nimport {noop} from 'rxjs';\n\nimport {TUI_INPUT_DATE_TIME_OPTIONS} from './input-date-time.options';\n\nconst MIN_TIME = new TuiTime(0, 0);\nconst MAX_TIME = TuiTime.fromAbsoluteMilliseconds(MILLISECONDS_IN_DAY - 1);\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputDateTime]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsControl(TuiInputDateTimeDirective),\n tuiAsTextfieldAccessor(TuiInputDateTimeDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_TIME_OPTIONS),\n ],\n hostDirectives: [\n MaskitoDirective,\n TuiDropdownAuto,\n TuiItemsHandlersValidator,\n TuiWithTextfield,\n ],\n})\nexport class TuiInputDateTimeDirective\n extends TuiInputDateBase<readonly [TuiDay, TuiTime | null]>\n implements TuiTextfieldAccessor<readonly [TuiDay, TuiTime | null]>\n{\n private readonly timeFillers = toSignal(inject(TUI_TIME_TEXTS));\n\n protected override readonly options = inject(TUI_INPUT_DATE_TIME_OPTIONS);\n\n protected override readonly filler = tuiWithDateFiller((date) => {\n const time = this.timeFillers()?.[this.timeMode()] ?? '';\n\n return `${date}${this.options.dateTimeSeparator}${time}`;\n });\n\n protected override valueEffect = effect(noop);\n\n protected readonly identity = this.handlers.identityMatcher.set(\n (a, b) => tuiSum(...a.map(Number)) === tuiSum(...b.map(Number)),\n );\n\n protected readonly disabledItemHandler = tuiDirectiveBinding(\n TuiItemsHandlersValidator,\n 'disabledItemHandler',\n (value: readonly [TuiDay, TuiTime | null] | null) =>\n Boolean(value && this.handlers.disabledItemHandler()(value)),\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n this.computeMask({\n dateMode: TUI_DATE_ADAPTER[this.format().mode],\n timeMode: this.timeMode(),\n min: this.toNativeDate([this.min(), this.minTime()]),\n max: this.toNativeDate([this.max(), this.maxTime()]),\n dateSeparator: this.format().separator,\n dateTimeSeparator: this.options.dateTimeSeparator,\n }),\n ),\n );\n\n public readonly timeMode = signal(this.options.timeMode);\n public readonly minTime = signal(MIN_TIME);\n public readonly maxTime = signal(MAX_TIME);\n\n // TODO(v5): use signal inputs\n @Input('timeMode')\n public set timeModeSetter(x: MaskitoTimeMode) {\n this.timeMode.set(x);\n }\n\n @Input('min')\n public override set minSetter(\n min: TuiDay | readonly [TuiDay, TuiTime | null] | null,\n ) {\n const [date, time] = Array.isArray(min) ? min : [min, null];\n\n this.min.set(date || this.options.min);\n this.minTime.set(time ?? MIN_TIME);\n }\n\n @Input('max')\n public override set maxSetter(\n max: TuiDay | readonly [TuiDay, TuiTime | null] | null,\n ) {\n const [date, time] = Array.isArray(max) ? max : [max, null];\n\n this.max.set(date || this.options.max);\n this.maxTime.set(time ?? MAX_TIME);\n }\n\n public setValue(value: readonly [TuiDay, TuiTime | null] | null): void {\n this.onChange(value);\n this.textfield.value.set(this.stringify(value));\n }\n\n public override setDate(newDate: TuiDay): void {\n const [date, time] = this.clampTime([newDate, this.value()?.[1] ?? null]);\n\n this.setValue([date, time]);\n this.open.set(false);\n setTimeout(\n (caretIndex = DATE_FILLER_LENGTH + this.options.dateTimeSeparator.length) =>\n this.el.setSelectionRange(caretIndex, caretIndex),\n );\n }\n\n public override writeValue(value: [TuiDay, TuiTime | null] | null): void {\n super.writeValue(value);\n untracked(() => this.textfield.value.set(this.stringify(this.value())));\n }\n\n protected override processCalendar(calendar: TuiCalendar): void {\n super.processCalendar(calendar);\n calendar.disabledItemHandler = (day: TuiDay) =>\n this.handlers.disabledItemHandler()([day, null]);\n }\n\n protected override onValueChange(value: string): void {\n this.textfield.value.set(value);\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n\n const [date = '', time = ''] = value.split(this.options.dateTimeSeparator);\n const parsedDate =\n date.length >= DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(date, this.format().mode)\n : null;\n const parsedTime =\n time.length === this.timeMode().length ? TuiTime.fromString(time) : null;\n\n if (!parsedDate || (time && !parsedTime)) {\n return this.onChange(null);\n }\n\n const [prevDate, prevTime = null] = this.value() ?? [];\n\n if (!prevDate?.daySame(parsedDate) || Number(parsedTime) !== Number(prevTime)) {\n this.onChange([parsedDate, parsedTime]);\n }\n }\n\n protected override stringify(\n value: readonly [TuiDay, TuiTime | null] | null,\n ): string {\n const [date, time] = value ?? [];\n\n const dateString =\n date?.toString(this.format().mode, this.format().separator) ?? '';\n const timeString = time?.toString(this.timeMode());\n\n return timeString\n ? `${dateString}${this.options.dateTimeSeparator}${timeString}`\n : dateString;\n }\n\n private clampTime([date, time]: [TuiDay, TuiTime | null]): [TuiDay, TuiTime | null] {\n const min = date.daySame(this.min())\n ? this.minTime().toAbsoluteMilliseconds()\n : -Infinity;\n const max = date.daySame(this.max())\n ? this.maxTime().toAbsoluteMilliseconds()\n : Infinity;\n\n return [\n date,\n time &&\n TuiTime.fromAbsoluteMilliseconds(\n tuiClamp(time.toAbsoluteMilliseconds(), min, max),\n ),\n ];\n }\n\n private computeMask(\n params: Omit<Required<MaskitoDateTimeParams>, 'timeStep'>,\n ): MaskitoOptions {\n const options = maskitoDateTimeOptionsGenerator(params);\n const {timeMode, dateMode, dateTimeSeparator} = params;\n const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n element.inputMode =\n element.selectionStart! >=\n dateMode.length + dateTimeSeparator.length + timeMode.indexOf(' AA')\n ? 'text'\n : 'numeric';\n });\n\n return {\n ...options,\n plugins: options.plugins.concat(\n timeMode.includes('AA') ? inputModeSwitchPlugin : [],\n ),\n };\n }\n\n private toNativeDate([{year, month, day}, {hours, minutes, seconds, ms}]: readonly [\n TuiDay,\n TuiTime,\n ]): Date {\n return new Date(year, month, day, hours, minutes, seconds, ms);\n }\n}\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiDay, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiNativeTimePicker} from '@taiga-ui/kit/components/input-time';\n\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputDateTime][type=\"datetime-local\"]',\n imports: [NgIf, TuiTextfieldContent],\n templateUrl: './input-date-time.template.html',\n styleUrls: ['./input-date-time.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {ngSkipHydration: 'true'},\n})\nexport class TuiInputDateTimeComponent extends TuiNativeTimePicker {\n protected readonly host = inject(TuiInputDateTimeDirective);\n protected readonly step = computed(() => this.getStep(this.host.timeMode()));\n protected readonly value = computed(() => this.toISOString(this.host.value()));\n\n protected min = computed(() =>\n this.toISOString([this.host.min(), this.host.minTime()]),\n );\n\n protected max = computed(() =>\n this.toISOString([this.host.max(), this.host.maxTime()]),\n );\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.setValue(null);\n }\n\n const date = new Date(value);\n const day = TuiDay.fromLocalNativeDate(date);\n const time = TuiTime.fromLocalNativeDate(date);\n\n this.host.setValue([day, time]);\n }\n}\n","<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\n\nimport {TuiInputDateTimeComponent} from './input-date-time.component';\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\nexport const TuiInputDateTime = [\n TuiInputDateTimeDirective,\n TuiInputDateTimeComponent,\n TuiCalendar,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-date-time.mjs","sources":["../../../projects/kit/components/input-date-time/input-date-time.options.ts","../../../projects/kit/components/input-date-time/input-date-time.directive.ts","../../../projects/kit/components/input-date-time/input-date-time.component.ts","../../../projects/kit/components/input-date-time/input-date-time.template.html","../../../projects/kit/components/input-date-time/input-date-time.ts","../../../projects/kit/components/input-date-time/taiga-ui-kit-components-input-date-time.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {type MaskitoTimeMode} from '@maskito/kit';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiDay, type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n TUI_INPUT_DATE_OPTIONS_NEW,\n type TuiInputDateOptionsNew,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateTimeOptions\n extends Omit<TuiInputDateOptionsNew, 'valueTransformer'> {\n readonly timeMode: MaskitoTimeMode;\n readonly dateTimeSeparator: string;\n readonly valueTransformer: TuiValueTransformer<[TuiDay, TuiTime | null] | null, any>;\n}\n\nexport const TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS = {\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n timeMode: 'HH:MM',\n dateTimeSeparator: ', ',\n} as const;\n\nexport const TUI_INPUT_DATE_TIME_OPTIONS = new InjectionToken<TuiInputDateTimeOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_TIME_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS_NEW),\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n }),\n },\n);\n\nexport const tuiInputDateTimeOptionsProvider = (\n options: Partial<TuiInputDateTimeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(TUI_INPUT_DATE_TIME_OPTIONS, options, {\n ...TUI_INPUT_DATE_DEFAULT_OPTIONS_NEW,\n ...TUI_INPUT_DATE_TIME_DEFAULT_OPTIONS,\n });\n","import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n signal,\n untracked,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {\n maskitoDateTimeOptionsGenerator,\n type MaskitoDateTimeParams,\n maskitoSelectionChangeHandler,\n type MaskitoTimeMode,\n} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_FILLER_LENGTH,\n MILLISECONDS_IN_DAY,\n TuiDay,\n TuiTime,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiClamp, tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownAuto} from '@taiga-ui/core/directives/dropdown';\nimport {TuiItemsHandlersValidator} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TUI_DATE_ADAPTER,\n TuiInputDateBase,\n tuiWithDateFiller,\n} from '@taiga-ui/kit/components/input-date';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\nimport {noop} from 'rxjs';\n\nimport {TUI_INPUT_DATE_TIME_OPTIONS} from './input-date-time.options';\n\nconst MIN_TIME = new TuiTime(0, 0);\nconst MAX_TIME = TuiTime.fromAbsoluteMilliseconds(MILLISECONDS_IN_DAY - 1);\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputDateTime]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsControl(TuiInputDateTimeDirective),\n tuiAsTextfieldAccessor(TuiInputDateTimeDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_TIME_OPTIONS),\n ],\n hostDirectives: [\n MaskitoDirective,\n TuiDropdownAuto,\n TuiItemsHandlersValidator,\n TuiWithTextfield,\n ],\n})\nexport class TuiInputDateTimeDirective\n extends TuiInputDateBase<readonly [TuiDay, TuiTime | null]>\n implements TuiTextfieldAccessor<readonly [TuiDay, TuiTime | null]>\n{\n private readonly timeFillers = toSignal(inject(TUI_TIME_TEXTS));\n\n protected override readonly options = inject(TUI_INPUT_DATE_TIME_OPTIONS);\n\n protected override readonly filler = tuiWithDateFiller((date) => {\n const time = this.timeFillers()?.[this.timeMode()] ?? '';\n\n return `${date}${this.options.dateTimeSeparator}${time}`;\n });\n\n protected override valueEffect = effect(noop);\n\n protected readonly identity = this.handlers.identityMatcher.set(\n (a, b) => tuiSum(...a.map(Number)) === tuiSum(...b.map(Number)),\n );\n\n protected readonly disabledItemHandler = tuiDirectiveBinding(\n TuiItemsHandlersValidator,\n 'disabledItemHandler',\n (value: readonly [TuiDay, TuiTime | null] | null) =>\n Boolean(value && this.handlers.disabledItemHandler()(value)),\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n this.computeMask({\n dateMode: TUI_DATE_ADAPTER[this.format().mode],\n timeMode: this.timeMode(),\n min: this.toNativeDate([this.min(), this.minTime()]),\n max: this.toNativeDate([this.max(), this.maxTime()]),\n dateSeparator: this.format().separator,\n dateTimeSeparator: this.options.dateTimeSeparator,\n }),\n ),\n );\n\n public readonly timeMode = signal(this.options.timeMode);\n public readonly minTime = signal(MIN_TIME);\n public readonly maxTime = signal(MAX_TIME);\n\n // TODO(v5): use signal inputs\n @Input('timeMode')\n public set timeModeSetter(x: MaskitoTimeMode) {\n this.timeMode.set(x);\n }\n\n @Input('min')\n public override set minSetter(\n min: TuiDay | readonly [TuiDay, TuiTime | null] | null,\n ) {\n const [date, time] = Array.isArray(min) ? min : [min, null];\n\n this.min.set(date || this.options.min);\n this.minTime.set(time ?? MIN_TIME);\n }\n\n @Input('max')\n public override set maxSetter(\n max: TuiDay | readonly [TuiDay, TuiTime | null] | null,\n ) {\n const [date, time] = Array.isArray(max) ? max : [max, null];\n\n this.max.set(date || this.options.max);\n this.maxTime.set(time ?? MAX_TIME);\n }\n\n public setValue(value: readonly [TuiDay, TuiTime | null] | null): void {\n this.onChange(value);\n this.textfield.value.set(this.stringify(value));\n }\n\n public override setDate(newDate: TuiDay): void {\n const [date, time] = this.clampTime([newDate, this.value()?.[1] ?? null]);\n\n this.setValue([date, time]);\n this.open.set(false);\n setTimeout(\n (caretIndex = DATE_FILLER_LENGTH + this.options.dateTimeSeparator.length) =>\n this.el.setSelectionRange(caretIndex, caretIndex),\n );\n }\n\n public override writeValue(value: [TuiDay, TuiTime | null] | null): void {\n const reset = this.control.pristine && this.control.untouched && !value;\n const changed = untracked(() => value !== this.value());\n\n if (changed || reset) {\n super.writeValue(value);\n untracked(() => this.textfield.value.set(this.stringify(this.value())));\n }\n }\n\n protected override processCalendar(calendar: TuiCalendar): void {\n super.processCalendar(calendar);\n calendar.disabledItemHandler = (day: TuiDay) =>\n this.handlers.disabledItemHandler()([day, null]);\n }\n\n protected override onValueChange(value: string): void {\n this.textfield.value.set(value);\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n\n const [date = '', time = ''] = value.split(this.options.dateTimeSeparator);\n const parsedDate =\n date.length >= DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(date, this.format().mode)\n : null;\n const parsedTime =\n time.length === this.timeMode().length ? TuiTime.fromString(time) : null;\n\n if (!parsedDate || (time && !parsedTime)) {\n return this.onChange(null);\n }\n\n const [prevDate, prevTime = null] = this.value() ?? [];\n\n if (!prevDate?.daySame(parsedDate) || Number(parsedTime) !== Number(prevTime)) {\n this.onChange([parsedDate, parsedTime]);\n }\n }\n\n protected override stringify(\n value: readonly [TuiDay, TuiTime | null] | null,\n ): string {\n const [date, time] = value ?? [];\n\n const dateString =\n date?.toString(this.format().mode, this.format().separator) ?? '';\n const timeString = time?.toString(this.timeMode());\n\n return timeString\n ? `${dateString}${this.options.dateTimeSeparator}${timeString}`\n : dateString;\n }\n\n private clampTime([date, time]: [TuiDay, TuiTime | null]): [TuiDay, TuiTime | null] {\n const min = date.daySame(this.min())\n ? this.minTime().toAbsoluteMilliseconds()\n : -Infinity;\n const max = date.daySame(this.max())\n ? this.maxTime().toAbsoluteMilliseconds()\n : Infinity;\n\n return [\n date,\n time &&\n TuiTime.fromAbsoluteMilliseconds(\n tuiClamp(time.toAbsoluteMilliseconds(), min, max),\n ),\n ];\n }\n\n private computeMask(\n params: Omit<Required<MaskitoDateTimeParams>, 'timeStep'>,\n ): MaskitoOptions {\n const options = maskitoDateTimeOptionsGenerator(params);\n const {timeMode, dateMode, dateTimeSeparator} = params;\n const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n element.inputMode =\n element.selectionStart! >=\n dateMode.length + dateTimeSeparator.length + timeMode.indexOf(' AA')\n ? 'text'\n : 'numeric';\n });\n\n return {\n ...options,\n plugins: options.plugins.concat(\n timeMode.includes('AA') ? inputModeSwitchPlugin : [],\n ),\n };\n }\n\n private toNativeDate([{year, month, day}, {hours, minutes, seconds, ms}]: readonly [\n TuiDay,\n TuiTime,\n ]): Date {\n return new Date(year, month, day, hours, minutes, seconds, ms);\n }\n}\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiDay, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {\n TuiTextfieldContent,\n TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiNativeTimePicker} from '@taiga-ui/kit/components/input-time';\n\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputDateTime][type=\"datetime-local\"]',\n imports: [NgIf, TuiTextfieldContent],\n templateUrl: './input-date-time.template.html',\n styleUrls: ['./input-date-time.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithNativePicker],\n host: {ngSkipHydration: 'true'},\n})\nexport class TuiInputDateTimeComponent extends TuiNativeTimePicker {\n protected readonly host = inject(TuiInputDateTimeDirective);\n protected readonly step = computed(() => this.getStep(this.host.timeMode()));\n protected readonly value = computed(() => this.toISOString(this.host.value()));\n\n protected min = computed(() =>\n this.toISOString([this.host.min(), this.host.minTime()]),\n );\n\n protected max = computed(() =>\n this.toISOString([this.host.max(), this.host.maxTime()]),\n );\n\n protected onInput(value: string): void {\n if (!value) {\n return this.host.setValue(null);\n }\n\n const date = new Date(value);\n const day = TuiDay.fromLocalNativeDate(date);\n const time = TuiTime.fromLocalNativeDate(date);\n\n this.host.setValue([day, time]);\n }\n}\n","<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\n\nimport {TuiInputDateTimeComponent} from './input-date-time.component';\nimport {TuiInputDateTimeDirective} from './input-date-time.directive';\n\nexport const TuiInputDateTime = [\n TuiInputDateTimeDirective,\n TuiInputDateTimeComponent,\n TuiCalendar,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ class TuiInputNumberDirective extends TuiControl {
|
|
|
49
49
|
initialValue: TUI_DEFAULT_NUMBER_FORMAT,
|
|
50
50
|
});
|
|
51
51
|
this.formatted = computed(() => maskitoParseNumber(this.textfield.value(), this.numberFormat()));
|
|
52
|
-
this.precision = computed((
|
|
52
|
+
this.precision = computed((precision = this.numberFormat().precision) => Number.isNaN(precision) ? 2 : precision);
|
|
53
53
|
this.unfinished = computed((value = this.formatted()) => value < 0 ? value > this.max() : value < this.min());
|
|
54
54
|
this.element = tuiInjectElement();
|
|
55
55
|
this.mask = tuiMaskito(computed(() => this.computeMask(this.maskParams)));
|
|
@@ -114,8 +114,12 @@ class TuiInputNumberDirective extends TuiControl {
|
|
|
114
114
|
this.postfix.set(x);
|
|
115
115
|
}
|
|
116
116
|
writeValue(value) {
|
|
117
|
-
|
|
118
|
-
untracked(() => this.
|
|
117
|
+
const reset = this.control.pristine && this.control.untouched && !value;
|
|
118
|
+
const changed = untracked(() => value !== this.value());
|
|
119
|
+
if (changed || reset) {
|
|
120
|
+
super.writeValue(value);
|
|
121
|
+
untracked(() => this.setValue(this.value()));
|
|
122
|
+
}
|
|
119
123
|
}
|
|
120
124
|
setValue(value) {
|
|
121
125
|
this.textfield.value.set(this.formatNumber(value));
|
|
@@ -209,11 +213,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
209
213
|
args: ['postfix']
|
|
210
214
|
}] } });
|
|
211
215
|
|
|
212
|
-
class
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
this.quantum =
|
|
216
|
+
class TuiQuantumValueTransformerBase extends TuiValueTransformer {
|
|
217
|
+
// eslint-disable-next-line @typescript-eslint/parameter-properties
|
|
218
|
+
constructor(quantum = 1) {
|
|
219
|
+
super();
|
|
220
|
+
this.quantum = quantum;
|
|
221
|
+
this.parent = null;
|
|
217
222
|
}
|
|
218
223
|
fromControlValue(controlValue) {
|
|
219
224
|
return this.parent?.fromControlValue(controlValue) ?? controlValue;
|
|
@@ -225,7 +230,18 @@ class TuiQuantumValueTransformer extends TuiValueTransformer {
|
|
|
225
230
|
? tuiRound(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION)
|
|
226
231
|
: value;
|
|
227
232
|
}
|
|
228
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
233
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformerBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
234
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiQuantumValueTransformerBase, usesInheritance: true, ngImport: i0 }); }
|
|
235
|
+
}
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformerBase, decorators: [{
|
|
237
|
+
type: Directive
|
|
238
|
+
}], ctorParameters: function () { return [{ type: undefined }]; } });
|
|
239
|
+
class TuiQuantumValueTransformer extends TuiQuantumValueTransformerBase {
|
|
240
|
+
constructor() {
|
|
241
|
+
super(1);
|
|
242
|
+
this.parent = inject(TUI_INPUT_NUMBER_OPTIONS).valueTransformer;
|
|
243
|
+
}
|
|
244
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
229
245
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][quantum], [tuiInputSlider][quantum]", inputs: { quantum: "quantum" }, providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)], usesInheritance: true, ngImport: i0 }); }
|
|
230
246
|
}
|
|
231
247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformer, decorators: [{
|
|
@@ -233,11 +249,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
233
249
|
args: [{
|
|
234
250
|
standalone: true,
|
|
235
251
|
selector: '[tuiInputNumber][quantum], [tuiInputSlider][quantum]',
|
|
252
|
+
inputs: ['quantum'],
|
|
236
253
|
providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)],
|
|
237
254
|
}]
|
|
238
|
-
}],
|
|
239
|
-
type: Input
|
|
240
|
-
}] } });
|
|
255
|
+
}], ctorParameters: function () { return []; } });
|
|
241
256
|
class TuiWithQuantumValueTransformer {
|
|
242
257
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiWithQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
243
258
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiWithQuantumValueTransformer, isStandalone: true, hostDirectives: [{ directive: TuiQuantumValueTransformer, inputs: ["quantum", "quantum"] }], ngImport: i0 }); }
|
|
@@ -311,5 +326,5 @@ const TuiInputNumber = [
|
|
|
311
326
|
* Generated bundle index. Do not edit.
|
|
312
327
|
*/
|
|
313
328
|
|
|
314
|
-
export { TUI_INPUT_NUMBER_DEFAULT_OPTIONS, TUI_INPUT_NUMBER_OPTIONS, TuiInputNumber, TuiInputNumberDirective, TuiInputNumberStep, TuiQuantumValueTransformer, TuiWithQuantumValueTransformer, tuiInputNumberOptionsProvider };
|
|
329
|
+
export { TUI_INPUT_NUMBER_DEFAULT_OPTIONS, TUI_INPUT_NUMBER_OPTIONS, TuiInputNumber, TuiInputNumberDirective, TuiInputNumberStep, TuiQuantumValueTransformer, TuiQuantumValueTransformerBase, TuiWithQuantumValueTransformer, tuiInputNumberOptionsProvider };
|
|
315
330
|
//# sourceMappingURL=taiga-ui-kit-components-input-number.mjs.map
|