@taiga-ui/core 2.35.0 → 2.37.1
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/abstract/abstract-dropdown.d.ts +3 -3
- package/abstract/abstract-hint.d.ts +1 -1
- package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-button.umd.js +3 -3
- package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-button.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +2 -19
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js +3 -6
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-group.umd.js +23 -4
- package/bundles/taiga-ui-core-components-group.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-group.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-group.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +1 -4
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.js +27 -7
- package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +4 -5
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.js +3 -3
- package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.js +4 -6
- package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.js +8 -0
- package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.min.js +2 -2
- package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.js +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-format.umd.js +1 -1
- package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js +7 -2
- package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +2 -2
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
- package/components/button/button-options.d.ts +1 -1
- package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
- package/components/dialog/dialog.component.d.ts +0 -1
- package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
- package/components/dropdown-box/dropdown-box.component.d.ts +2 -3
- package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
- package/components/expand/expand.component.d.ts +2 -1
- package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
- package/components/group/group-styles.component.d.ts +2 -0
- package/components/group/group.directive.d.ts +2 -0
- package/components/group/index.d.ts +1 -0
- package/components/group/taiga-ui-core-components-group.metadata.json +1 -1
- package/components/hosted-dropdown/hosted-dropdown.component.d.ts +2 -3
- package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
- package/components/loader/index.d.ts +1 -0
- package/components/loader/loader-options.d.ts +11 -0
- package/components/loader/loader.component.d.ts +4 -3
- package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
- package/components/notification/notification.component.d.ts +3 -3
- package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
- package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
- package/components/primitive-year-picker/primitive-year-picker.component.d.ts +3 -3
- package/components/root/root.component.d.ts +3 -4
- package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
- package/components/tooltip/tooltip.component.d.ts +1 -1
- package/constants/taiga-ui-core-constants.metadata.json +1 -1
- package/constants/version.d.ts +1 -1
- package/esm2015/abstract/abstract-dropdown.js +2 -2
- package/esm2015/abstract/abstract-hint.js +1 -1
- package/esm2015/components/button/button-options.js +1 -1
- package/esm2015/components/button/button.component.js +4 -4
- package/esm2015/components/dialog/dialog.component.js +3 -16
- package/esm2015/components/dropdown-box/dropdown-box.component.js +5 -8
- package/esm2015/components/expand/expand.component.js +1 -1
- package/esm2015/components/group/group-styles.component.js +13 -0
- package/esm2015/components/group/group.directive.js +12 -6
- package/esm2015/components/group/group.module.js +4 -3
- package/esm2015/components/group/index.js +2 -1
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +3 -6
- package/esm2015/components/loader/index.js +2 -1
- package/esm2015/components/loader/loader-options.js +15 -0
- package/esm2015/components/loader/loader.component.js +11 -7
- package/esm2015/components/loader/loader.directive.js +2 -2
- package/esm2015/components/notification/notification.component.js +1 -1
- package/esm2015/components/primitive-textfield/primitive-textfield.component.js +3 -3
- package/esm2015/components/primitive-textfield/primitive-textfield.module.js +2 -3
- package/esm2015/components/primitive-textfield/textfield/textfield.component.js +3 -3
- package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
- package/esm2015/components/root/root.component.js +4 -4
- package/esm2015/components/root/root.module.js +3 -3
- package/esm2015/components/tooltip/tooltip.component.js +2 -2
- package/esm2015/constants/version.js +2 -2
- package/esm2015/interfaces/dropdown-directive.js +1 -1
- package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +4 -5
- package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +3 -3
- package/esm2015/modules/notifications/notifications.service.js +2 -2
- package/esm2015/tokens/notification-options.js +8 -1
- package/esm2015/utils/dom/process-icon.js +2 -2
- package/esm2015/utils/format/format-number.js +2 -2
- package/esm2015/utils/mask/create-auto-corrected-money-pipe.js +2 -2
- package/esm2015/utils/mask/create-number-mask.js +1 -2
- package/esm2015/utils/mask/enable-auto-correct-decimal-symbol.js +5 -0
- package/esm2015/utils/mask/index.js +2 -1
- package/esm2015/utils/miscellaneous/icons-path-factory.js +2 -2
- package/esm2015/utils/miscellaneous/is-editing-key.js +2 -2
- package/esm5/abstract/abstract-dropdown.js +2 -2
- package/esm5/abstract/abstract-hint.js +1 -1
- package/esm5/components/button/button-options.js +1 -1
- package/esm5/components/button/button.component.js +4 -4
- package/esm5/components/dialog/dialog.component.js +3 -20
- package/esm5/components/dropdown-box/dropdown-box.component.js +5 -8
- package/esm5/components/expand/expand.component.js +1 -1
- package/esm5/components/group/group-styles.component.js +16 -0
- package/esm5/components/group/group.directive.js +12 -6
- package/esm5/components/group/group.module.js +4 -3
- package/esm5/components/group/index.js +2 -1
- package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +3 -6
- package/esm5/components/loader/index.js +2 -1
- package/esm5/components/loader/loader-options.js +16 -0
- package/esm5/components/loader/loader.component.js +11 -7
- package/esm5/components/loader/loader.directive.js +2 -2
- package/esm5/components/notification/notification.component.js +1 -1
- package/esm5/components/primitive-textfield/primitive-textfield.component.js +3 -3
- package/esm5/components/primitive-textfield/primitive-textfield.module.js +2 -3
- package/esm5/components/primitive-textfield/textfield/textfield.component.js +3 -3
- package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
- package/esm5/components/root/root.component.js +4 -4
- package/esm5/components/root/root.module.js +3 -3
- package/esm5/components/tooltip/tooltip.component.js +2 -2
- package/esm5/constants/version.js +2 -2
- package/esm5/interfaces/dropdown-directive.js +1 -1
- package/esm5/modules/notifications/notification-alert/notification-alert.component.js +4 -5
- package/esm5/modules/notifications/notifications-host/notifications-host.component.js +3 -3
- package/esm5/modules/notifications/notifications.service.js +2 -2
- package/esm5/tokens/notification-options.js +9 -1
- package/esm5/utils/dom/process-icon.js +2 -2
- package/esm5/utils/format/format-number.js +2 -2
- package/esm5/utils/mask/create-auto-corrected-money-pipe.js +2 -2
- package/esm5/utils/mask/create-number-mask.js +1 -2
- package/esm5/utils/mask/enable-auto-correct-decimal-symbol.js +6 -0
- package/esm5/utils/mask/index.js +2 -1
- package/esm5/utils/miscellaneous/icons-path-factory.js +2 -2
- package/esm5/utils/miscellaneous/is-editing-key.js +2 -2
- package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-button.js +3 -3
- package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +2 -15
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dropdown-box.js +4 -7
- package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-group.js +23 -8
- package/fesm2015/taiga-ui-core-components-group.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +2 -5
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-loader.js +26 -9
- package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +5 -6
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +5 -5
- package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm2015/taiga-ui-core-constants.js +1 -1
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-modules-notifications.js +5 -6
- package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
- package/fesm2015/taiga-ui-core-tokens.js +8 -1
- package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-dom.js +1 -1
- package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-format.js +1 -1
- package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js +7 -4
- package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js +2 -2
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
- package/fesm5/taiga-ui-core-abstract.js.map +1 -1
- package/fesm5/taiga-ui-core-components-button.js +3 -3
- package/fesm5/taiga-ui-core-components-button.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dialog.js +2 -19
- package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dropdown-box.js +4 -7
- package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm5/taiga-ui-core-components-group.js +26 -8
- package/fesm5/taiga-ui-core-components-group.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js +2 -5
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm5/taiga-ui-core-components-loader.js +27 -10
- package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
- package/fesm5/taiga-ui-core-components-notification.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-textfield.js +5 -6
- package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm5/taiga-ui-core-components-root.js +5 -5
- package/fesm5/taiga-ui-core-components-root.js.map +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm5/taiga-ui-core-constants.js +1 -1
- package/fesm5/taiga-ui-core-constants.js.map +1 -1
- package/fesm5/taiga-ui-core-modules-notifications.js +5 -6
- package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
- package/fesm5/taiga-ui-core-tokens.js +9 -2
- package/fesm5/taiga-ui-core-tokens.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-dom.js +1 -1
- package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-format.js +1 -1
- package/fesm5/taiga-ui-core-utils-format.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-mask.js +8 -4
- package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-miscellaneous.js +2 -2
- package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
- package/interfaces/dropdown-directive.d.ts +2 -2
- package/modules/notifications/notification-alert/notification-alert.component.d.ts +3 -4
- package/modules/notifications/notifications.service.d.ts +3 -3
- package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
- package/package.json +4 -4
- package/styles/markup/tui-group.less +4 -2
- package/styles/mixins/slider.less +33 -0
- package/styles/mixins/slider.scss +34 -0
- package/styles/mixins/textfield.less +21 -18
- package/styles/taiga-ui-local.less +1 -0
- package/styles/taiga-ui-local.scss +1 -0
- package/tokens/notification-options.d.ts +10 -4
- package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
- package/utils/format/format-number.d.ts +1 -1
- package/utils/mask/create-auto-corrected-money-pipe.d.ts +1 -1
- package/utils/mask/create-number-mask.d.ts +0 -1
- package/utils/mask/enable-auto-correct-decimal-symbol.d.ts +2 -0
- package/utils/mask/index.d.ts +1 -0
- package/utils/mask/taiga-ui-core-utils-mask.metadata.json +1 -1
- package/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.metadata.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CHAR_NO_BREAK_SPACE, tuiAssert, isSafari, isNativeFocused, getDocumentOrShadowRoot, CHAR_EN_DASH } from '@taiga-ui/cdk';
|
|
2
2
|
import { __spread, __read } from 'tslib';
|
|
3
|
-
import { MASK_CARET_TRAP, TUI_DIGIT_REGEXP, TUI_NON_DIGITS_REGEXP, TUI_LEADING_ZEROES_REGEXP } from '@taiga-ui/core/constants';
|
|
3
|
+
import { MASK_CARET_TRAP, TUI_DIGIT_REGEXP, TUI_NON_DIGITS_REGEXP, TUI_LEADING_ZEROES_REGEXP, TUI_DECIMAL_SYMBOLS } from '@taiga-ui/core/constants';
|
|
4
4
|
import { otherDecimalSymbol } from '@taiga-ui/core/utils/format';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -55,7 +55,7 @@ function tuiCreateAutoCorrectedNumberPipe(decimalLimit, decimalSymbol, thousandS
|
|
|
55
55
|
}
|
|
56
56
|
function addDecimalSymbolIfNeeded(value, decimalSymbol) {
|
|
57
57
|
if (decimalSymbol === void 0) { decimalSymbol = ','; }
|
|
58
|
-
return value.
|
|
58
|
+
return !value.includes(decimalSymbol) ? value + decimalSymbol : value;
|
|
59
59
|
}
|
|
60
60
|
function calculateSafariCaret(previousValue, current, previousCaret, decimalSymbol) {
|
|
61
61
|
if (previousValue === void 0) { previousValue = ''; }
|
|
@@ -127,7 +127,6 @@ function tuiCreateCorrectionMask(allowed, correctionHandler) {
|
|
|
127
127
|
var NON_ZERO_DIGIT = /[1-9]/;
|
|
128
128
|
/**
|
|
129
129
|
* Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}
|
|
130
|
-
* @todo TODO: autocCorrectDecimalSymbol is no longer needed. Remove it in 3.0
|
|
131
130
|
*/
|
|
132
131
|
function tuiCreateNumberMask(_a) {
|
|
133
132
|
var _b = _a === void 0 ? {} : _a, _c = _b.allowDecimal, allowDecimal = _c === void 0 ? false : _c, _d = _b.decimalSymbol, decimalSymbol = _d === void 0 ? ',' : _d, _e = _b.thousandSymbol, thousandSymbol = _e === void 0 ? CHAR_NO_BREAK_SPACE : _e, _f = _b.autoCorrectDecimalSymbol, autoCorrectDecimalSymbol = _f === void 0 ? true : _f, _g = _b.decimalLimit, decimalLimit = _g === void 0 ? 2 : _g, _h = _b.requireDecimal, requireDecimal = _h === void 0 ? false : _h, _j = _b.allowNegative, allowNegative = _j === void 0 ? false : _j, _k = _b.integerLimit, integerLimit = _k === void 0 ? 0 : _k;
|
|
@@ -243,6 +242,11 @@ function addThousandsSeparator(strNumber, thousandSymbol) {
|
|
|
243
242
|
: strNumber;
|
|
244
243
|
}
|
|
245
244
|
|
|
245
|
+
function tuiEnableAutoCorrectDecimalSymbol(_a) {
|
|
246
|
+
var thousandSeparator = _a.thousandSeparator;
|
|
247
|
+
return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);
|
|
248
|
+
}
|
|
249
|
+
|
|
246
250
|
function maskedMoneyValueIsEmpty(value) {
|
|
247
251
|
switch (value) {
|
|
248
252
|
case '':
|
|
@@ -263,5 +267,5 @@ function maskedNumberStringToNumber(value, decimalsSymbol, thousandSymbol) {
|
|
|
263
267
|
* Generated bundle index. Do not edit.
|
|
264
268
|
*/
|
|
265
269
|
|
|
266
|
-
export { maskedMoneyValueIsEmpty, maskedNumberStringToNumber, tuiCreateAutoCorrectedNumberPipe, tuiCreateCorrectionMask, tuiCreateNumberMask };
|
|
270
|
+
export { maskedMoneyValueIsEmpty, maskedNumberStringToNumber, tuiCreateAutoCorrectedNumberPipe, tuiCreateCorrectionMask, tuiCreateNumberMask, tuiEnableAutoCorrectDecimalSymbol };
|
|
267
271
|
//# sourceMappingURL=taiga-ui-core-utils-mask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["ng://@taiga-ui/core/utils/mask/create-auto-corrected-money-pipe.ts","ng://@taiga-ui/core/utils/mask/create-correction-mask.ts","ng://@taiga-ui/core/utils/mask/create-number-mask.ts","ng://@taiga-ui/core/utils/mask/masked-money-value-is-empty.ts","ng://@taiga-ui/core/utils/mask/masked-number-string-to-number.ts","ng://@taiga-ui/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_NO_BREAK_SPACE,\n getDocumentOrShadowRoot,\n isNativeFocused,\n isSafari,\n tuiAssert,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = ',',\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement,\n allowNegative?: boolean,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n\n const unlucky = !!nativeInput && isSafari(nativeInput);\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener('beforeinput', () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === '-' && allowNegative) {\n return '-';\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && isNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== getDocumentOrShadowRoot(nativeInput) &&\n isNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === '' || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + '0'.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = ',',\n): string {\n return value.indexOf(decimalSymbol) === -1 ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = '',\n current: string,\n previousCaret: number,\n decimalSymbol: string = ',',\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, '');\n const currentWithoutTail = current.replace(tailRegex, '');\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === '0' ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = '',\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = 'Correction function must return single char or null';\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split('').reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {otherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n * @todo TODO: autocCorrectDecimalSymbol is no longer needed. Remove it in 3.0\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = ',',\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join('');\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join('')\n .split(decimalSymbol)\n .join('');\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === '-' || rawValue[0] === CHAR_EN_DASH) && allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return ['0', decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.substr(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, 'g')) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, '');\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [''];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, '')\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ''),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== otherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === '0';\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift('-');\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<string | RegExp>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<string | RegExp> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n } else if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(otherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<string | RegExp> {\n return strNumber\n .split('')\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","export function maskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case '':\n case '-':\n case ',':\n case '-,':\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function maskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join('').split(decimalsSymbol).join('.'),\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-core-utils-mask.js","sources":["ng://@taiga-ui/core/utils/mask/create-auto-corrected-money-pipe.ts","ng://@taiga-ui/core/utils/mask/create-correction-mask.ts","ng://@taiga-ui/core/utils/mask/create-number-mask.ts","ng://@taiga-ui/core/utils/mask/enable-auto-correct-decimal-symbol.ts","ng://@taiga-ui/core/utils/mask/masked-money-value-is-empty.ts","ng://@taiga-ui/core/utils/mask/masked-number-string-to-number.ts","ng://@taiga-ui/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_NO_BREAK_SPACE,\n getDocumentOrShadowRoot,\n isNativeFocused,\n isSafari,\n tuiAssert,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = ',',\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n\n const unlucky = !!nativeInput && isSafari(nativeInput);\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener('beforeinput', () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === '-' && allowNegative) {\n return '-';\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && isNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== getDocumentOrShadowRoot(nativeInput) &&\n isNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === '' || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + '0'.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = ',',\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = '',\n current: string,\n previousCaret: number,\n decimalSymbol: string = ',',\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, '');\n const currentWithoutTail = current.replace(tailRegex, '');\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === '0' ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = '',\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = 'Correction function must return single char or null';\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split('').reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {otherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = ',',\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join('');\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join('')\n .split(decimalSymbol)\n .join('');\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === '-' || rawValue[0] === CHAR_EN_DASH) && allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return ['0', decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.substr(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, 'g')) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, '');\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [''];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, '')\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ''),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== otherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === '0';\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift('-');\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<string | RegExp>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<string | RegExp> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n } else if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(otherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<string | RegExp> {\n return strNumber\n .split('')\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {NumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: NumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","export function maskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case '':\n case '-':\n case ',':\n case '-,':\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function maskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join('').split(decimalsSymbol).join('.'),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ function getBorder(hasIcon, hasCleaner, hasTooltip, hasContent) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
function iconsPathFactory(staticPath) {
|
|
40
|
-
var base = staticPath[staticPath.length - 1] === '/' ? staticPath : staticPath +
|
|
40
|
+
var base = staticPath[staticPath.length - 1] === '/' ? staticPath : staticPath + "/";
|
|
41
41
|
return function (name) {
|
|
42
42
|
if (name.startsWith('tuiIcon')) {
|
|
43
43
|
return "" + base + name + ".svg#" + name;
|
|
@@ -50,7 +50,7 @@ function iconsPathFactory(staticPath) {
|
|
|
50
50
|
* Check if pressed key is interactive in terms of input field
|
|
51
51
|
*/
|
|
52
52
|
function isEditingKey(key) {
|
|
53
|
-
return key.length === 1 || tuiEditingKeys.
|
|
53
|
+
return key.length === 1 || tuiEditingKeys.includes(key);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function isPresumedHTMLString(candidate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-miscellaneous.js","sources":["ng://@taiga-ui/core/utils/miscellaneous/color-fallback.ts","ng://@taiga-ui/core/utils/miscellaneous/get-border.ts","ng://@taiga-ui/core/utils/miscellaneous/icons-path-factory.ts","ng://@taiga-ui/core/utils/miscellaneous/is-editing-key.ts","ng://@taiga-ui/core/utils/miscellaneous/is-presumed-hTMLString.ts","ng://@taiga-ui/core/utils/miscellaneous/size-bigger.ts","ng://@taiga-ui/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["/** @deprecated */\nexport function colorFallback(color: string | null): string {\n switch (color) {\n case 'secondary':\n return 'var(--tui-info-fill)';\n case 'error':\n return 'var(--tui-error-fill)';\n case 'success':\n return 'var(--tui-success-fill)';\n default:\n return `var(--tui-${color || 'base-05'})`;\n }\n}\n","const ITEM_SIZE = 1.5;\nconst CONTENT_SIZE = 2.5;\n\nexport function getBorder(\n hasIcon: boolean,\n hasCleaner: boolean = false,\n hasTooltip: boolean = false,\n hasContent: boolean = false,\n): number {\n let border = 0;\n\n if (hasIcon) {\n border += ITEM_SIZE;\n }\n\n if (hasCleaner) {\n border += ITEM_SIZE;\n }\n\n if (hasTooltip) {\n border += ITEM_SIZE;\n }\n\n if (hasContent) {\n border += CONTENT_SIZE;\n }\n\n return border;\n}\n","import {TuiStringHandler} from '@taiga-ui/cdk';\nimport {DEFAULT_ICONS_PATH} from '@taiga-ui/core/constants';\n\nexport function iconsPathFactory(staticPath: string): TuiStringHandler<string> {\n const base =\n staticPath[staticPath.length - 1] === '/' ? staticPath : staticPath
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-miscellaneous.js","sources":["ng://@taiga-ui/core/utils/miscellaneous/color-fallback.ts","ng://@taiga-ui/core/utils/miscellaneous/get-border.ts","ng://@taiga-ui/core/utils/miscellaneous/icons-path-factory.ts","ng://@taiga-ui/core/utils/miscellaneous/is-editing-key.ts","ng://@taiga-ui/core/utils/miscellaneous/is-presumed-hTMLString.ts","ng://@taiga-ui/core/utils/miscellaneous/size-bigger.ts","ng://@taiga-ui/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["/** @deprecated */\nexport function colorFallback(color: string | null): string {\n switch (color) {\n case 'secondary':\n return 'var(--tui-info-fill)';\n case 'error':\n return 'var(--tui-error-fill)';\n case 'success':\n return 'var(--tui-success-fill)';\n default:\n return `var(--tui-${color || 'base-05'})`;\n }\n}\n","const ITEM_SIZE = 1.5;\nconst CONTENT_SIZE = 2.5;\n\nexport function getBorder(\n hasIcon: boolean,\n hasCleaner: boolean = false,\n hasTooltip: boolean = false,\n hasContent: boolean = false,\n): number {\n let border = 0;\n\n if (hasIcon) {\n border += ITEM_SIZE;\n }\n\n if (hasCleaner) {\n border += ITEM_SIZE;\n }\n\n if (hasTooltip) {\n border += ITEM_SIZE;\n }\n\n if (hasContent) {\n border += CONTENT_SIZE;\n }\n\n return border;\n}\n","import {TuiStringHandler} from '@taiga-ui/cdk';\nimport {DEFAULT_ICONS_PATH} from '@taiga-ui/core/constants';\n\nexport function iconsPathFactory(staticPath: string): TuiStringHandler<string> {\n const base =\n staticPath[staticPath.length - 1] === '/' ? staticPath : `${staticPath}/`;\n\n return name => {\n if (name.startsWith('tuiIcon')) {\n return `${base}${name}.svg#${name}`;\n }\n\n return DEFAULT_ICONS_PATH(name);\n };\n}\n","import {tuiEditingKeys} from '@taiga-ui/core/constants';\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function isEditingKey(key: string): boolean {\n return key.length === 1 || tuiEditingKeys.includes(key);\n}\n","export function isPresumedHTMLString(candidate: string): boolean {\n const trimmed = candidate.trim();\n\n return trimmed.startsWith('<') && trimmed.endsWith('>');\n}\n","import {TuiSizeXS, TuiSizeXXL} from '@taiga-ui/core/types';\n\nconst SIZES: ReadonlyArray<TuiSizeXS | TuiSizeXXL> = ['xs', 's', 'm', 'l', 'xl', 'xxl'];\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function sizeBigger(\n size: TuiSizeXS | TuiSizeXXL,\n biggerThanSize: TuiSizeXS | TuiSizeXXL = 's',\n): boolean {\n return SIZES.indexOf(size) > SIZES.indexOf(biggerThanSize);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;SACgB,aAAa,CAAC,KAAoB;IAC9C,QAAQ,KAAK;QACT,KAAK,WAAW;YACZ,OAAO,sBAAsB,CAAC;QAClC,KAAK,OAAO;YACR,OAAO,uBAAuB,CAAC;QACnC,KAAK,SAAS;YACV,OAAO,yBAAyB,CAAC;QACrC;YACI,OAAO,gBAAa,KAAK,IAAI,SAAS,OAAG,CAAC;KACjD;AACL;;ACZA,IAAM,SAAS,GAAG,GAAG,CAAC;AACtB,IAAM,YAAY,GAAG,GAAG,CAAC;SAET,SAAS,CACrB,OAAgB,EAChB,UAA2B,EAC3B,UAA2B,EAC3B,UAA2B;IAF3B,2BAAA,EAAA,kBAA2B;IAC3B,2BAAA,EAAA,kBAA2B;IAC3B,2BAAA,EAAA,kBAA2B;IAE3B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,IAAI,OAAO,EAAE;QACT,MAAM,IAAI,SAAS,CAAC;KACvB;IAED,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC;KACvB;IAED,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC;KACvB;IAED,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,YAAY,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB;;SCzBgB,gBAAgB,CAAC,UAAkB;IAC/C,IAAM,IAAI,GACN,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,UAAU,GAAM,UAAU,MAAG,CAAC;IAE9E,OAAO,UAAA,IAAI;QACP,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC5B,OAAO,KAAG,IAAI,GAAG,IAAI,aAAQ,IAAM,CAAC;SACvC;QAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACnC,CAAC;AACN;;ACZA;;;SAGgB,YAAY,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5D;;SCPgB,oBAAoB,CAAC,SAAiB;IAClD,IAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5D;;ACFA,IAAM,KAAK,GAA0C,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAExF;;;;;;SAMgB,UAAU,CACtB,IAA4B,EAC5B,cAA4C;IAA5C,+BAAA,EAAA,oBAA4C;IAE5C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC/D;;ACfA;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TuiActiveZoneDirective } from '@taiga-ui/cdk';
|
|
1
|
+
import { TuiActiveZoneDirective, TuiNativeFocusableElement } from '@taiga-ui/cdk';
|
|
2
2
|
import { TuiDropdownWidthT, TuiHorizontalDirection, TuiVerticalDirection } from '@taiga-ui/core/types';
|
|
3
3
|
import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
@@ -6,7 +6,7 @@ export interface TuiDropdown<C = object> {
|
|
|
6
6
|
refresh$: Observable<any>;
|
|
7
7
|
clientRect: ClientRect;
|
|
8
8
|
content: PolymorpheusContent;
|
|
9
|
-
host: HTMLElement;
|
|
9
|
+
host: TuiNativeFocusableElement | HTMLElement;
|
|
10
10
|
align: TuiHorizontalDirection;
|
|
11
11
|
minHeight: number;
|
|
12
12
|
maxHeight: number;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import { TuiDestroyService } from '@taiga-ui/cdk';
|
|
3
|
-
import {
|
|
3
|
+
import { TuiNotificationDefaultOptions } from '@taiga-ui/core/tokens';
|
|
4
4
|
import { TuiNotificationContentContext } from '../notification-content-context';
|
|
5
5
|
import { NotificationAlert } from './Notification-alert';
|
|
6
|
-
export declare const DEFAULT_ALERT_AUTOCLOSE_TIMEOUT = 3000;
|
|
7
6
|
export declare class TuiNotificationAlertComponent<O, I> implements OnInit {
|
|
8
7
|
private readonly elementRef;
|
|
9
8
|
private readonly destroy$;
|
|
10
|
-
readonly options:
|
|
9
|
+
readonly options: TuiNotificationDefaultOptions;
|
|
11
10
|
item: NotificationAlert<O, I>;
|
|
12
|
-
constructor(elementRef: ElementRef<HTMLElement>, destroy$: TuiDestroyService, options:
|
|
11
|
+
constructor(elementRef: ElementRef<HTMLElement>, destroy$: TuiDestroyService, options: TuiNotificationDefaultOptions);
|
|
13
12
|
ngOnInit(): void;
|
|
14
13
|
get context(): TuiNotificationContentContext<O, I>;
|
|
15
14
|
closeNotification(): void;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { TuiNotificationOptions, TuiNotificationOptionsWithData } from '@taiga-ui/core/interfaces';
|
|
2
|
-
import {
|
|
2
|
+
import { TuiNotificationDefaultOptions } from '@taiga-ui/core/tokens';
|
|
3
3
|
import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
|
|
4
4
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
5
5
|
import { NotificationAlert } from './notification-alert/Notification-alert';
|
|
6
6
|
import { TuiNotificationContentContext } from './notification-content-context';
|
|
7
7
|
export declare class TuiNotificationsService {
|
|
8
|
-
readonly options:
|
|
8
|
+
readonly options: TuiNotificationDefaultOptions;
|
|
9
9
|
/** @internal */
|
|
10
10
|
readonly items$: BehaviorSubject<readonly NotificationAlert<any, any>[]>;
|
|
11
|
-
constructor(options:
|
|
11
|
+
constructor(options: TuiNotificationDefaultOptions);
|
|
12
12
|
show<O = void>(content: PolymorpheusContent<TuiNotificationContentContext<O>>): Observable<O>;
|
|
13
13
|
show<O = void>(content: PolymorpheusContent<TuiNotificationContentContext<O>>, options: TuiNotificationOptions): Observable<O>;
|
|
14
14
|
show<O, I>(content: PolymorpheusContent<TuiNotificationContentContext<O, I>>, options: TuiNotificationOptionsWithData<I>): Observable<O>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"NotificationAlert":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Observer","module":"rxjs","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":36,"context":{"typeName":"O"},"module":"./notification-alert/Notification-alert"}]},{"__symbolic":"reference","name":"PolymorpheusContent","module":"@tinkoff/ng-polymorpheus","arguments":[{"__symbolic":"reference","name":"TuiNotificationContentContext"}]},{"__symbolic":"error","message":"Could not resolve type","line":28,"character":34,"context":{"typeName":"Required"},"module":"./notification-alert/Notification-alert"}]}],"withData":[{"__symbolic":"method"}]}},"DEFAULT_ALERT_AUTOCLOSE_TIMEOUT":3000,"TuiNotificationAlertComponent":{"__symbolic":"class","arity":2,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"tui-notification-alert","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":21},"member":"OnPush"},"providers":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":23,"character":16}],"template":"<tui-notification\n *ngIf=\"item.hasCloseButton; else noClose\"\n [status]=\"item.status\"\n [hasIcon]=\"item.hasIcon\"\n (close)=\"closeNotification()\"\n>\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n ></label>\n <div\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__content\"\n class=\"content\"\n [content]=\"item.content\"\n [context]=\"context\"\n ></div>\n</tui-notification>\n<ng-template #noClose>\n <tui-notification [status]=\"item.status\" [hasIcon]=\"item.hasIcon\">\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n ></label>\n <div\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__content\"\n class=\"content\"\n [content]=\"item.content\"\n [context]=\"context\"\n ></div>\n </tui-notification>\n</ng-template>\n","styles":[":host{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);display:block;border-radius:var(--tui-radius-m)}.heading{font:var(--tui-font-text-m);line-height:1.25rem;font-weight:700;margin:0}.content{color:var(--tui-text-01);word-wrap:break-word}.content:empty{display:none}"]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":30,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":31,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_NOTIFICATION_OPTIONS","line":32,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":30,"character":68,"context":{"typeName":"HTMLElement"},"module":"./notification-alert/notification-alert.component"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":31,"character":62},{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"NotificationTokenOptions","line":33,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"closeNotification":[{"__symbolic":"method"}],"calculateContext":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":48,"character":5}]}],"initAutoClose":[{"__symbolic":"method"}]}},"TuiNotificationAlertModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":14},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":8,"character":28},{"__symbolic":"reference","module":"@taiga-ui/core/components/notification","name":"TuiNotificationModule","line":8,"character":48}],"declarations":[{"__symbolic":"reference","name":"TuiNotificationAlertComponent"}],"exports":[{"__symbolic":"reference","name":"TuiNotificationAlertComponent"}]}]}],"members":{}},"TuiNotificationContentContext":{"__symbolic":"interface"},"NOTIFICATIONS_HOST":{"__symbolic":"reference","name":"TuiNotificationsHostComponent"},"TuiNotificationsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":14},{"__symbolic":"reference","name":"TuiNotificationAlertModule"},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":11,"character":56}],"declarations":[{"__symbolic":"reference","name":"TuiNotificationsHostComponent"}],"exports":[{"__symbolic":"reference","name":"TuiNotificationsHostComponent"}],"entryComponents":[{"__symbolic":"reference","name":"TuiNotificationsHostComponent"}],"providers":[{"provide":{"__symbolic":"reference","name":"TuiNotificationsHostComponent"},"useValue":{"__symbolic":"reference","name":"NOTIFICATIONS_HOST"}}]}]}],"members":{}},"TuiNotificationsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_NOTIFICATION_OPTIONS","line":24,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"NotificationTokenOptions","line":25,"character":26}]}],"show":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiNotificationsHostComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"tui-notifications-host","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiFadeInList","line":18,"character":17},{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiSlideInRightList","line":18,"character":32},{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiHeightCollapseList","line":18,"character":53}],"template":"<ng-container *tuiLet=\"service.items$ | async as items\">\n <div\n *ngIf=\"items.length\"\n class=\"wrapper\"\n [@tuiFadeInList]=\"getAnimation(items.length)\"\n [@tuiHeightCollapseList]=\"getAnimation(items.length)\"\n [@tuiSlideInRightList]=\"getAnimation(items.length)\"\n >\n <tui-notification-alert\n *ngFor=\"let item of items\"\n role=\"alert\"\n class=\"alert\"\n [item]=\"item\"\n ></tui-notification-alert>\n </div>\n</ng-container>\n","styles":[":host{position:fixed;top:0;left:0;width:100%;height:0}.wrapper{width:18rem;margin-left:auto;padding:2rem 3rem 0 0;pointer-events:none}:host-context(tui-root._mobile) .wrapper{padding:1rem 1rem 0 0}@media screen and (min-width:80em){.wrapper{width:23rem}}.alert{pointer-events:auto}.alert:not(:first-child){margin-top:.75rem}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ANIMATION_OPTIONS","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiNotificationsService"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/animations","name":"AnimationOptions","line":22,"character":65},{"__symbolic":"reference","name":"TuiNotificationsService"}]}],"getAnimation":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":26,"character":5}]}]}}},"origins":{"NotificationAlert":"./notification-alert/Notification-alert","DEFAULT_ALERT_AUTOCLOSE_TIMEOUT":"./notification-alert/notification-alert.component","TuiNotificationAlertComponent":"./notification-alert/notification-alert.component","TuiNotificationAlertModule":"./notification-alert/notification-alert.module","TuiNotificationContentContext":"./notification-content-context","NOTIFICATIONS_HOST":"./notifications-host/notifications-host.component","TuiNotificationsModule":"./notifications.module","TuiNotificationsService":"./notifications.service","TuiNotificationsHostComponent":"./notifications-host/notifications-host.component"},"importAs":"@taiga-ui/core/modules/notifications"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"NotificationAlert":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Observer","module":"rxjs","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":36,"context":{"typeName":"O"},"module":"./notification-alert/Notification-alert"}]},{"__symbolic":"reference","name":"PolymorpheusContent","module":"@tinkoff/ng-polymorpheus","arguments":[{"__symbolic":"reference","name":"TuiNotificationContentContext"}]},{"__symbolic":"error","message":"Could not resolve type","line":28,"character":34,"context":{"typeName":"Required"},"module":"./notification-alert/Notification-alert"}]}],"withData":[{"__symbolic":"method"}]}},"TuiNotificationAlertComponent":{"__symbolic":"class","arity":2,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"tui-notification-alert","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":23,"character":21},"member":"OnPush"},"providers":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":24,"character":16}],"template":"<tui-notification\n *ngIf=\"item.hasCloseButton; else noClose\"\n [status]=\"item.status\"\n [hasIcon]=\"item.hasIcon\"\n (close)=\"closeNotification()\"\n>\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n ></label>\n <div\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__content\"\n class=\"content\"\n [content]=\"item.content\"\n [context]=\"context\"\n ></div>\n</tui-notification>\n<ng-template #noClose>\n <tui-notification [status]=\"item.status\" [hasIcon]=\"item.hasIcon\">\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n ></label>\n <div\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__content\"\n class=\"content\"\n [content]=\"item.content\"\n [context]=\"context\"\n ></div>\n </tui-notification>\n</ng-template>\n","styles":[":host{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);display:block;border-radius:var(--tui-radius-m)}.heading{font:var(--tui-font-text-m);line-height:1.25rem;font-weight:700;margin:0}.content{color:var(--tui-text-01);word-wrap:break-word}.content:empty{display:none}"]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":32,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_NOTIFICATION_OPTIONS","line":33,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":31,"character":68,"context":{"typeName":"HTMLElement"},"module":"./notification-alert/notification-alert.component"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":32,"character":62},{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TuiNotificationDefaultOptions","line":34,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"closeNotification":[{"__symbolic":"method"}],"calculateContext":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":49,"character":5}]}],"initAutoClose":[{"__symbolic":"method"}]}},"TuiNotificationAlertModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":14},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":8,"character":28},{"__symbolic":"reference","module":"@taiga-ui/core/components/notification","name":"TuiNotificationModule","line":8,"character":48}],"declarations":[{"__symbolic":"reference","name":"TuiNotificationAlertComponent"}],"exports":[{"__symbolic":"reference","name":"TuiNotificationAlertComponent"}]}]}],"members":{}},"TuiNotificationContentContext":{"__symbolic":"interface"},"NOTIFICATIONS_HOST":{"__symbolic":"reference","name":"TuiNotificationsHostComponent"},"TuiNotificationsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":14},{"__symbolic":"reference","name":"TuiNotificationAlertModule"},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":11,"character":56}],"declarations":[{"__symbolic":"reference","name":"TuiNotificationsHostComponent"}],"exports":[{"__symbolic":"reference","name":"TuiNotificationsHostComponent"}],"entryComponents":[{"__symbolic":"reference","name":"TuiNotificationsHostComponent"}],"providers":[{"provide":{"__symbolic":"reference","name":"TuiNotificationsHostComponent"},"useValue":{"__symbolic":"reference","name":"NOTIFICATIONS_HOST"}}]}]}],"members":{}},"TuiNotificationsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":19,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_NOTIFICATION_OPTIONS","line":27,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TuiNotificationDefaultOptions","line":28,"character":26}]}],"show":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiNotificationsHostComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"tui-notifications-host","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiFadeInList","line":18,"character":17},{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiSlideInRightList","line":18,"character":32},{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiHeightCollapseList","line":18,"character":53}],"template":"<ng-container *tuiLet=\"service.items$ | async as items\">\n <div\n *ngIf=\"items.length\"\n class=\"t-wrapper\"\n [@tuiFadeInList]=\"getAnimation(items.length)\"\n [@tuiHeightCollapseList]=\"getAnimation(items.length)\"\n [@tuiSlideInRightList]=\"getAnimation(items.length)\"\n >\n <tui-notification-alert\n *ngFor=\"let item of items\"\n role=\"alert\"\n class=\"t-alert\"\n [item]=\"item\"\n ></tui-notification-alert>\n </div>\n</ng-container>\n","styles":[":host{position:fixed;top:0;left:0;width:100%;height:0}.t-wrapper{width:18rem;margin-left:auto;padding:2rem 3rem 0 0;pointer-events:none}:host-context(tui-root._mobile) .t-wrapper{padding:1rem 1rem 0 0}@media screen and (min-width:80em){.t-wrapper{width:23rem}}.t-alert{pointer-events:auto}.t-alert:not(:first-child){margin-top:.75rem}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ANIMATION_OPTIONS","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiNotificationsService"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/animations","name":"AnimationOptions","line":22,"character":65},{"__symbolic":"reference","name":"TuiNotificationsService"}]}],"getAnimation":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":26,"character":5}]}]}}},"origins":{"NotificationAlert":"./notification-alert/Notification-alert","TuiNotificationAlertComponent":"./notification-alert/notification-alert.component","TuiNotificationAlertModule":"./notification-alert/notification-alert.module","TuiNotificationContentContext":"./notification-content-context","NOTIFICATIONS_HOST":"./notifications-host/notifications-host.component","TuiNotificationsModule":"./notifications.module","TuiNotificationsService":"./notifications.service","TuiNotificationsHostComponent":"./notifications-host/notifications-host.component"},"importAs":"@taiga-ui/core/modules/notifications"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.37.1",
|
|
4
4
|
"description": "Core library for creating Angular components and applications using Taiga UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"homepage": "https://github.com/tinkoff/taiga-ui",
|
|
17
17
|
"schematics": "./schematics/collection.json",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@taiga-ui/i18n": "^2.
|
|
19
|
+
"@taiga-ui/i18n": "^2.37.1",
|
|
20
20
|
"tslib": "^1.10.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@taiga-ui/i18n": ">=2.
|
|
24
|
-
"@taiga-ui/cdk": ">=2.
|
|
23
|
+
"@taiga-ui/i18n": ">=2.37.1",
|
|
24
|
+
"@taiga-ui/cdk": ">=2.37.1",
|
|
25
25
|
"@angular/animations": ">=9.0.0",
|
|
26
26
|
"@angular/common": ">=9.0.0",
|
|
27
27
|
"@angular/core": ">=9.0.0",
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@import '../taiga-ui-local.less';
|
|
2
|
+
|
|
1
3
|
.tui-group {
|
|
2
4
|
.createStackingContext();
|
|
3
5
|
display: flex;
|
|
@@ -189,7 +191,7 @@
|
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
&:not(:last-child) {
|
|
192
|
-
margin-bottom:
|
|
194
|
+
margin-bottom: 1rem;
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
197
|
|
|
@@ -227,7 +229,7 @@
|
|
|
227
229
|
|
|
228
230
|
&:not(:last-child) {
|
|
229
231
|
margin-right: 0;
|
|
230
|
-
margin-bottom:
|
|
232
|
+
margin-bottom: 1rem;
|
|
231
233
|
}
|
|
232
234
|
}
|
|
233
235
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@thumb-diameters: {
|
|
2
|
+
@s: 0.5rem;
|
|
3
|
+
@m: 1rem;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
.tui-slider-ticks-labels(@input-size: m) {
|
|
7
|
+
@first-tick-center: @thumb-diameters[ @@input-size] / 2;
|
|
8
|
+
display: flex;
|
|
9
|
+
margin: 0 @first-tick-center;
|
|
10
|
+
font: var(--tui-font-text-s);
|
|
11
|
+
|
|
12
|
+
& > * {
|
|
13
|
+
position: relative;
|
|
14
|
+
flex: 2;
|
|
15
|
+
text-align: center;
|
|
16
|
+
|
|
17
|
+
&:first-child {
|
|
18
|
+
left: -@first-tick-center;
|
|
19
|
+
flex: 1;
|
|
20
|
+
text-align: left;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&:last-child {
|
|
24
|
+
right: -@first-tick-center;
|
|
25
|
+
flex: 1;
|
|
26
|
+
text-align: right;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
tui-input-slider + & {
|
|
31
|
+
margin-left: calc(var(--tui-radius-m) / 2 + @first-tick-center);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
$thumb-diameters: (
|
|
2
|
+
's': 0.5rem,
|
|
3
|
+
'm': 1rem,
|
|
4
|
+
);
|
|
5
|
+
|
|
6
|
+
@mixin tui-slider-ticks-labels($input-size: m) {
|
|
7
|
+
$first-tick-center: map-get($thumb-diameters, $input-size) / 2;
|
|
8
|
+
|
|
9
|
+
display: flex;
|
|
10
|
+
margin: 0 $first-tick-center;
|
|
11
|
+
font: var(--tui-font-text-s);
|
|
12
|
+
|
|
13
|
+
& > * {
|
|
14
|
+
position: relative;
|
|
15
|
+
flex: 2;
|
|
16
|
+
text-align: center;
|
|
17
|
+
|
|
18
|
+
&:first-child {
|
|
19
|
+
left: -$first-tick-center;
|
|
20
|
+
flex: 1;
|
|
21
|
+
text-align: left;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:last-child {
|
|
25
|
+
right: -$first-tick-center;
|
|
26
|
+
flex: 1;
|
|
27
|
+
text-align: right;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
tui-input-slider + & {
|
|
32
|
+
margin-left: calc(var(--tui-radius-m) / 2 + #{$first-tick-center});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@line-height-l: 1.25rem;
|
|
2
|
+
|
|
1
3
|
.textfield-host() {
|
|
2
4
|
.text-basic();
|
|
3
5
|
position: relative;
|
|
@@ -21,7 +23,8 @@
|
|
|
21
23
|
height: var(--tui-height-l);
|
|
22
24
|
min-height: var(--tui-height-l);
|
|
23
25
|
max-height: var(--tui-height-l);
|
|
24
|
-
font
|
|
26
|
+
font: var(--tui-font-text-m);
|
|
27
|
+
line-height: @line-height-l;
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
30
|
|
|
@@ -67,31 +70,36 @@
|
|
|
67
70
|
white-space: nowrap;
|
|
68
71
|
overflow: hidden;
|
|
69
72
|
text-transform: inherit;
|
|
73
|
+
resize: none;
|
|
70
74
|
|
|
71
75
|
:host[data-mode='onDark'] &,
|
|
72
|
-
:host-context(tui-primitive-textfield[data-mode='onDark'])
|
|
76
|
+
:host-context(tui-primitive-textfield[data-mode='onDark']),
|
|
77
|
+
:host-context(tui-text-area[data-mode='onDark']) {
|
|
73
78
|
.autofill(dark);
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
:host[data-size='s'] &,
|
|
77
|
-
:host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield)
|
|
82
|
+
:host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),
|
|
83
|
+
:host-context(tui-text-area[data-size='s']):not(tui-text-area) {
|
|
78
84
|
padding: 0 var(--tui-padding-s);
|
|
79
85
|
}
|
|
80
86
|
|
|
81
87
|
:host[data-size='l'] &,
|
|
82
|
-
:host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield)
|
|
88
|
+
:host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),
|
|
89
|
+
:host-context(tui-text-area[data-size='l']):not(tui-text-area) {
|
|
83
90
|
padding: 0 var(--tui-padding-l);
|
|
84
91
|
}
|
|
85
92
|
|
|
86
93
|
:host._disabled &,
|
|
87
|
-
:host-context(tui-primitive-textfield._disabled)
|
|
94
|
+
:host-context(tui-primitive-textfield._disabled),
|
|
95
|
+
:host-context(tui-text-area._disabled) {
|
|
88
96
|
// @bad TODO: research why you can reach disabled textfield with mask inside a label without that
|
|
89
97
|
pointer-events: none;
|
|
90
98
|
}
|
|
91
99
|
|
|
92
100
|
:host[data-size='l']:not(._label-outside) &,
|
|
93
101
|
:host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield) {
|
|
94
|
-
padding-top:
|
|
102
|
+
padding-top: @line-height-l;
|
|
95
103
|
|
|
96
104
|
// Workaround for raising placeholder in temporary autofill
|
|
97
105
|
&:-webkit-autofill + .content .placeholder {
|
|
@@ -133,7 +141,6 @@
|
|
|
133
141
|
.text-overflow();
|
|
134
142
|
display: block;
|
|
135
143
|
width: 100%;
|
|
136
|
-
font-size: 0.8125rem;
|
|
137
144
|
user-select: none;
|
|
138
145
|
color: var(--tui-text-02);
|
|
139
146
|
pointer-events: none;
|
|
@@ -142,7 +149,7 @@
|
|
|
142
149
|
transform: translateY(-0.625rem);
|
|
143
150
|
|
|
144
151
|
:host[data-size='m'] & {
|
|
145
|
-
font
|
|
152
|
+
font: var(--tui-font-text-xs);
|
|
146
153
|
transform: translateY(-0.5rem);
|
|
147
154
|
letter-spacing: 0.025rem;
|
|
148
155
|
}
|
|
@@ -240,23 +247,19 @@
|
|
|
240
247
|
.textfield-host();
|
|
241
248
|
}
|
|
242
249
|
|
|
243
|
-
.input {
|
|
250
|
+
.t-input {
|
|
244
251
|
.textfield-input();
|
|
245
252
|
}
|
|
246
253
|
|
|
247
|
-
.
|
|
248
|
-
vertical-align: middle;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
.content {
|
|
254
|
+
.t-content {
|
|
252
255
|
.textfield-content();
|
|
253
256
|
}
|
|
254
257
|
|
|
255
|
-
.wrapper {
|
|
258
|
+
.t-wrapper {
|
|
256
259
|
.textfield-wrapper();
|
|
257
260
|
}
|
|
258
261
|
|
|
259
|
-
.placeholder {
|
|
262
|
+
.t-placeholder {
|
|
260
263
|
.textfield-placeholder();
|
|
261
264
|
|
|
262
265
|
/* Safari 9+ */
|
|
@@ -267,12 +270,12 @@
|
|
|
267
270
|
}
|
|
268
271
|
}
|
|
269
272
|
|
|
270
|
-
.cleaner {
|
|
273
|
+
.t-cleaner {
|
|
271
274
|
.icon-button();
|
|
272
275
|
}
|
|
273
276
|
|
|
274
277
|
// @bad TODO: Refactor this and interactive icons together
|
|
275
|
-
.icon {
|
|
278
|
+
.t-icon {
|
|
276
279
|
.input-icon();
|
|
277
280
|
|
|
278
281
|
&_left {
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, ValueProvider } from '@angular/core';
|
|
2
2
|
import { TuiContextWithImplicit } from '@taiga-ui/cdk';
|
|
3
3
|
import { TuiNotification } from '@taiga-ui/core/enums';
|
|
4
4
|
import { TuiNotificationAutoClose } from '@taiga-ui/core/interfaces';
|
|
5
5
|
import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
|
|
6
|
-
export interface
|
|
6
|
+
export interface TuiNotificationDefaultOptions {
|
|
7
7
|
readonly autoClose: TuiNotificationAutoClose;
|
|
8
8
|
readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>>;
|
|
9
9
|
readonly status: TuiNotification;
|
|
10
10
|
readonly hasIcon: boolean;
|
|
11
11
|
readonly hasCloseButton: boolean;
|
|
12
|
+
readonly defaultAutoCloseTime: number;
|
|
12
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated: remove in v3.0, use TuiNotificationDefaultOptions
|
|
16
|
+
*/
|
|
17
|
+
export declare type NotificationTokenOptions = TuiNotificationDefaultOptions;
|
|
13
18
|
/** Default values for the notification options. */
|
|
14
|
-
export declare const TUI_NOTIFICATION_DEFAULT_OPTIONS:
|
|
15
|
-
export declare const TUI_NOTIFICATION_OPTIONS: InjectionToken<
|
|
19
|
+
export declare const TUI_NOTIFICATION_DEFAULT_OPTIONS: TuiNotificationDefaultOptions;
|
|
20
|
+
export declare const TUI_NOTIFICATION_OPTIONS: InjectionToken<TuiNotificationDefaultOptions>;
|
|
21
|
+
export declare function tuiNotificationOptionsProvider(options: Partial<TuiNotificationDefaultOptions>): ValueProvider;
|