@taiga-ui/cdk 2.50.1 → 2.51.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/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +7 -7
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +4 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.js +39 -0
- package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.js +18 -38
- package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
- package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.metadata.json +1 -1
- package/esm2015/directives/copy-processor/copy-processor.directive.js +5 -4
- package/esm2015/directives/overscroll/overscroll.directive.js +5 -2
- package/esm2015/exceptions/invalid-day.exception.js +8 -1
- package/esm2015/exceptions/invalid-month.exception.js +8 -1
- package/esm2015/exceptions/invalid-year.exception.js +8 -1
- package/esm2015/utils/dom/get-selected-text.js +16 -0
- package/esm2015/utils/dom/index.js +3 -3
- package/esm2015/utils/dom/is-form-field.js +8 -0
- package/esm5/directives/copy-processor/copy-processor.directive.js +5 -4
- package/esm5/directives/overscroll/overscroll.directive.js +5 -2
- package/esm5/exceptions/invalid-day.exception.js +14 -1
- package/esm5/exceptions/invalid-month.exception.js +14 -1
- package/esm5/exceptions/invalid-year.exception.js +14 -1
- package/esm5/utils/dom/get-selected-text.js +17 -0
- package/esm5/utils/dom/index.js +3 -3
- package/esm5/utils/dom/is-form-field.js +8 -0
- package/exceptions/invalid-day.exception.d.ts +6 -0
- package/exceptions/invalid-month.exception.d.ts +6 -0
- package/exceptions/invalid-year.exception.d.ts +6 -0
- package/exceptions/taiga-ui-cdk-exceptions.metadata.json +1 -1
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +4 -3
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js +4 -1
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-exceptions.js +22 -1
- package/fesm2015/taiga-ui-cdk-exceptions.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js +16 -35
- package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-copy-processor.js +4 -3
- package/fesm5/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-overscroll.js +4 -1
- package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
- package/fesm5/taiga-ui-cdk-exceptions.js +37 -1
- package/fesm5/taiga-ui-cdk-exceptions.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-dom.js +17 -37
- package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/package.json +1 -1
- package/schematics/ng-update/constants/consts.js +10 -0
- package/schematics/ng-update/constants/modules.js +1 -0
- package/schematics/ng-update/constants/services.js +9 -0
- package/schematics/ng-update/constants/templates.d.ts +17 -0
- package/schematics/ng-update/constants/templates.js +32 -0
- package/schematics/ng-update/constants/types.js +30 -0
- package/schematics/ng-update/index.js +35 -4
- package/schematics/ng-update/steps/migrate-progress.d.ts +3 -0
- package/schematics/ng-update/steps/migrate-progress.js +41 -0
- package/schematics/ng-update/steps/migrate-sliders/index.d.ts +2 -2
- package/schematics/ng-update/steps/migrate-sliders/index.js +4 -2
- package/schematics/ng-update/steps/migrate-sliders/migrate-input-range.d.ts +2 -0
- package/schematics/ng-update/steps/migrate-sliders/migrate-input-range.js +85 -0
- package/schematics/ng-update/steps/migrate-sliders/migrate-input-slider.d.ts +2 -2
- package/schematics/ng-update/steps/migrate-sliders/migrate-input-slider.js +30 -22
- package/schematics/ng-update/steps/migrate-templates.d.ts +2 -2
- package/schematics/ng-update/steps/migrate-templates.js +69 -30
- package/schematics/ng-update/steps/replace-services.js +4 -1
- package/schematics/ng-update/steps/show-warnings.js +1 -1
- package/schematics/utils/colored-log.d.ts +2 -0
- package/schematics/utils/colored-log.js +10 -0
- package/schematics/utils/templates/elements.js +2 -1
- package/schematics/utils/templates/ng-component-input-manipulations.js +2 -1
- package/utils/dom/get-selected-text.d.ts +9 -0
- package/utils/dom/index.d.ts +2 -2
- package/utils/dom/is-form-field.d.ts +1 -0
- package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
- package/esm2015/utils/dom/get-viewport-height.js +0 -21
- package/esm2015/utils/dom/get-viewport-width.js +0 -21
- package/esm5/utils/dom/get-viewport-height.js +0 -22
- package/esm5/utils/dom/get-viewport-width.js +0 -22
- package/utils/dom/get-viewport-height.d.ts +0 -18
- package/utils/dom/get-viewport-width.d.ts +0 -18
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated: use {@link TuiInvalidYearException}
|
|
4
|
+
* TODO: remove in v3.0
|
|
5
|
+
*/
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2
7
|
var InvalidYearException = /** @class */ (function (_super) {
|
|
3
8
|
__extends(InvalidYearException, _super);
|
|
4
9
|
function InvalidYearException(year) {
|
|
@@ -7,4 +12,12 @@ var InvalidYearException = /** @class */ (function (_super) {
|
|
|
7
12
|
return InvalidYearException;
|
|
8
13
|
}(Error));
|
|
9
14
|
export { InvalidYearException };
|
|
10
|
-
|
|
15
|
+
var TuiInvalidYearException = /** @class */ (function (_super) {
|
|
16
|
+
__extends(TuiInvalidYearException, _super);
|
|
17
|
+
function TuiInvalidYearException() {
|
|
18
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
19
|
+
}
|
|
20
|
+
return TuiInvalidYearException;
|
|
21
|
+
}(InvalidYearException));
|
|
22
|
+
export { TuiInvalidYearException };
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZC15ZWFyLmV4Y2VwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZXhjZXB0aW9ucy8iLCJzb3VyY2VzIjpbImludmFsaWQteWVhci5leGNlcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUNILGdFQUFnRTtBQUNoRTtJQUEwQyx3Q0FBSztJQUMzQyw4QkFBWSxJQUFZO2VBQ3BCLGtCQUFNLG1CQUFpQixJQUFNLENBQUM7SUFDbEMsQ0FBQztJQUNMLDJCQUFDO0FBQUQsQ0FBQyxBQUpELENBQTBDLEtBQUssR0FJOUM7O0FBRUQ7SUFBNkMsMkNBQW9CO0lBQWpFOztJQUFtRSxDQUFDO0lBQUQsOEJBQUM7QUFBRCxDQUFDLEFBQXBFLENBQTZDLG9CQUFvQixHQUFHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVwcmVjYXRlZDogdXNlIHtAbGluayBUdWlJbnZhbGlkWWVhckV4Y2VwdGlvbn1cbiAqIFRPRE86IHJlbW92ZSBpbiB2My4wXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjbGFzcyBJbnZhbGlkWWVhckV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcih5ZWFyOiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoYEludmFsaWQgeWVhcjogJHt5ZWFyfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFR1aUludmFsaWRZZWFyRXhjZXB0aW9uIGV4dGVuZHMgSW52YWxpZFllYXJFeGNlcHRpb24ge31cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { tuiIsFormFieldElement } from './is-form-field';
|
|
2
|
+
/**
|
|
3
|
+
* @description:
|
|
4
|
+
* cross browser way to get selected text
|
|
5
|
+
*
|
|
6
|
+
* History:
|
|
7
|
+
* BUG - window.getSelection() fails when text selected in a form field
|
|
8
|
+
* https://bugzilla.mozilla.org/show_bug.cgi?id=85686
|
|
9
|
+
*/
|
|
10
|
+
export function tuiGetSelectedText(_a) {
|
|
11
|
+
var getSelection = _a.getSelection, document = _a.document;
|
|
12
|
+
var _b;
|
|
13
|
+
return tuiIsFormFieldElement(document.activeElement)
|
|
14
|
+
? document.activeElement.value.slice(document.activeElement.selectionStart || 0, document.activeElement.selectionEnd || 0)
|
|
15
|
+
: ((_b = getSelection()) === null || _b === void 0 ? void 0 : _b.toString()) || null;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlbGVjdGVkLXRleHQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImdldC1zZWxlY3RlZC10ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXREOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsRUFBZ0M7UUFBL0IsOEJBQVksRUFBRSxzQkFBUTs7SUFDdEQsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQzlCLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxJQUFJLENBQUMsRUFDMUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUMzQztRQUNILENBQUMsQ0FBQyxPQUFBLFlBQVksRUFBRSwwQ0FBRSxRQUFRLE9BQU0sSUFBSSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUlzRm9ybUZpZWxkRWxlbWVudH0gZnJvbSAnLi9pcy1mb3JtLWZpZWxkJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb246XG4gKiBjcm9zcyBicm93c2VyIHdheSB0byBnZXQgc2VsZWN0ZWQgdGV4dFxuICpcbiAqIEhpc3Rvcnk6XG4gKiBCVUcgLSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkgZmFpbHMgd2hlbiB0ZXh0IHNlbGVjdGVkIGluIGEgZm9ybSBmaWVsZFxuICogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2ODZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aUdldFNlbGVjdGVkVGV4dCh7Z2V0U2VsZWN0aW9uLCBkb2N1bWVudH06IFdpbmRvdyk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0dWlJc0Zvcm1GaWVsZEVsZW1lbnQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudClcbiAgICAgICAgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnZhbHVlLnNsaWNlKFxuICAgICAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IDAsXG4gICAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kIHx8IDAsXG4gICAgICAgICAgKVxuICAgICAgICA6IGdldFNlbGVjdGlvbigpPy50b1N0cmluZygpIHx8IG51bGw7XG59XG4iXX0=
|
package/esm5/utils/dom/index.js
CHANGED
|
@@ -8,9 +8,9 @@ export * from './get-document-or-shadow-root';
|
|
|
8
8
|
export * from './get-element-obscurers';
|
|
9
9
|
export * from './get-element-offset';
|
|
10
10
|
export * from './get-scroll-parent';
|
|
11
|
-
export * from './get-
|
|
12
|
-
export * from './get-viewport-width';
|
|
11
|
+
export * from './get-selected-text';
|
|
13
12
|
export * from './is-current-target';
|
|
13
|
+
export * from './is-form-field';
|
|
14
14
|
export * from './is-inside-iframe';
|
|
15
15
|
export * from './is-node-in';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nhbi1zY3JvbGwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWlucy1vci1hZnRlcic7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1hY3R1YWwtdGFyZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWNsaXBib2FyZC1kYXRhLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtY2xvc2VzdC1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWRvY3VtZW50LW9yLXNoYWRvdy1yb290JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWVsZW1lbnQtb2JzY3VyZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWVsZW1lbnQtb2Zmc2V0JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXNjcm9sbC1wYXJlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc2VsZWN0ZWQtdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWN1cnJlbnQtdGFyZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vaXMtZm9ybS1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWluc2lkZS1pZnJhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1ub2RlLWluJztcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function tuiIsFormFieldElement(element) {
|
|
2
|
+
var textfield = element;
|
|
3
|
+
return (!!textfield &&
|
|
4
|
+
'value' in textfield &&
|
|
5
|
+
'selectionStart' in textfield &&
|
|
6
|
+
'selectionEnd' in textfield);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLE9BQXVCO0lBRXZCLElBQU0sU0FBUyxHQUFHLE9BQXlDLENBQUM7SUFFNUQsT0FBTyxDQUNILENBQUMsQ0FBQyxTQUFTO1FBQ1gsT0FBTyxJQUFJLFNBQVM7UUFDcEIsZ0JBQWdCLElBQUksU0FBUztRQUM3QixjQUFjLElBQUksU0FBUyxDQUM5QixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiB0dWlJc0Zvcm1GaWVsZEVsZW1lbnQoXG4gICAgZWxlbWVudDogdW5rbm93biB8IG51bGwsXG4pOiBlbGVtZW50IGlzIEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHtcbiAgICBjb25zdCB0ZXh0ZmllbGQgPSBlbGVtZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcblxuICAgIHJldHVybiAoXG4gICAgICAgICEhdGV4dGZpZWxkICYmXG4gICAgICAgICd2YWx1ZScgaW4gdGV4dGZpZWxkICYmXG4gICAgICAgICdzZWxlY3Rpb25TdGFydCcgaW4gdGV4dGZpZWxkICYmXG4gICAgICAgICdzZWxlY3Rpb25FbmQnIGluIHRleHRmaWVsZFxuICAgICk7XG59XG4iXX0=
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated: use {@link TuiInvalidMonthException}
|
|
3
|
+
* TODO: remove in v3.0
|
|
4
|
+
*/
|
|
1
5
|
export declare class InvalidMonthException extends Error {
|
|
2
6
|
constructor(month: number);
|
|
3
7
|
}
|
|
8
|
+
export declare class TuiInvalidMonthException extends InvalidMonthException {
|
|
9
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"TuiComputedDocumentException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiDocumentSelectionException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"InvalidDayException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"}]}]}},"InvalidMonthException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"}]}]}},"InvalidYearException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"}]}]}},"TuiNoHostException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiOwnerDocumentException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiPureException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiTableSortKeyException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiTsParserException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiValueChangesException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiValuePresentException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiXmlParsingException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}}},"origins":{"TuiComputedDocumentException":"./computed-document.exception","TuiDocumentSelectionException":"./document-selection.exception","InvalidDayException":"./invalid-day.exception","InvalidMonthException":"./invalid-month.exception","InvalidYearException":"./invalid-year.exception","TuiNoHostException":"./no-host.exception","TuiOwnerDocumentException":"./owner-document.exception","TuiPureException":"./pure.exception","TuiTableSortKeyException":"./table-sort-key.exception","TuiTsParserException":"./ts-parser.exception","TuiValueChangesException":"./value-changes.exception","TuiValuePresentException":"./value-present.exception","TuiXmlParsingException":"./xml-parsing.exception"},"importAs":"@taiga-ui/cdk/exceptions"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"TuiComputedDocumentException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiDocumentSelectionException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"InvalidDayException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"}]}]}},"TuiInvalidDayException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"InvalidDayException"},"members":{}},"InvalidMonthException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"}]}]}},"TuiInvalidMonthException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"InvalidMonthException"},"members":{}},"InvalidYearException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"}]}]}},"TuiInvalidYearException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"InvalidYearException"},"members":{}},"TuiNoHostException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiOwnerDocumentException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiPureException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiTableSortKeyException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiTsParserException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiValueChangesException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiValuePresentException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"TuiXmlParsingException":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Error"},"members":{"__ctor__":[{"__symbolic":"constructor"}]}}},"origins":{"TuiComputedDocumentException":"./computed-document.exception","TuiDocumentSelectionException":"./document-selection.exception","InvalidDayException":"./invalid-day.exception","TuiInvalidDayException":"./invalid-day.exception","InvalidMonthException":"./invalid-month.exception","TuiInvalidMonthException":"./invalid-month.exception","InvalidYearException":"./invalid-year.exception","TuiInvalidYearException":"./invalid-year.exception","TuiNoHostException":"./no-host.exception","TuiOwnerDocumentException":"./owner-document.exception","TuiPureException":"./pure.exception","TuiTableSortKeyException":"./table-sort-key.exception","TuiTsParserException":"./ts-parser.exception","TuiValueChangesException":"./value-changes.exception","TuiValuePresentException":"./value-present.exception","TuiXmlParsingException":"./xml-parsing.exception"},"importAs":"@taiga-ui/cdk/exceptions"}
|
|
@@ -2,6 +2,7 @@ import { __decorate, __param } from 'tslib';
|
|
|
2
2
|
import { Inject, Input, HostListener, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { WINDOW } from '@ng-web-apis/common';
|
|
4
4
|
import { tuiDefaultProp } from '@taiga-ui/cdk/decorators';
|
|
5
|
+
import { tuiGetSelectedText } from '@taiga-ui/cdk/utils';
|
|
5
6
|
import { identity } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
// @dynamic
|
|
@@ -12,9 +13,9 @@ let TuiCopyProcessorDirective = class TuiCopyProcessorDirective {
|
|
|
12
13
|
}
|
|
13
14
|
onCopy(event) {
|
|
14
15
|
var _a;
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
(_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData('text/plain', this.tuiCopyProcessor(
|
|
16
|
+
const text = tuiGetSelectedText(this.windowRef);
|
|
17
|
+
if (text) {
|
|
18
|
+
(_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData('text/plain', this.tuiCopyProcessor(text));
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-copy-processor.js","sources":["ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.directive.ts","ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.module.ts","ng://@taiga-ui/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {identity} from 'rxjs';\n\n// @dynamic\n@Directive({\n selector: '[tuiCopyProcessor]',\n})\nexport class TuiCopyProcessorDirective {\n @Input()\n @tuiDefaultProp()\n tuiCopyProcessor: TuiStringHandler<string> = identity;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @HostListener('copy.prevent', ['$event'])\n onCopy(event: ClipboardEvent): void {\n const
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-copy-processor.js","sources":["ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.directive.ts","ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.module.ts","ng://@taiga-ui/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiGetSelectedText} from '@taiga-ui/cdk/utils';\nimport {identity} from 'rxjs';\n\n// @dynamic\n@Directive({\n selector: '[tuiCopyProcessor]',\n})\nexport class TuiCopyProcessorDirective {\n @Input()\n @tuiDefaultProp()\n tuiCopyProcessor: TuiStringHandler<string> = identity;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @HostListener('copy.prevent', ['$event'])\n onCopy(event: ClipboardEvent): void {\n const text = tuiGetSelectedText(this.windowRef);\n\n if (text) {\n event.clipboardData?.setData('text/plain', this.tuiCopyProcessor(text));\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCopyProcessorDirective} from './copy-processor.directive';\n\n@NgModule({\n declarations: [TuiCopyProcessorDirective],\n exports: [TuiCopyProcessorDirective],\n})\nexport class TuiCopyProcessorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAOA;IAIa,yBAAyB,GAAtC,MAAa,yBAAyB;IAKlC,YAA6C,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAF9D,qBAAgB,GAA6B,QAAQ,CAAC;KAEY;IAGlE,MAAM,CAAC,KAAqB;;QACxB,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,IAAI,EAAE;YACN,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;SAC3E;KACJ;EACJ;;YAV2D,MAAM,uBAAjD,MAAM,SAAC,MAAM;;AAF1B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;mEACqC;AAKtD;IADC,YAAY,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;uDAOxC;AAdQ,yBAAyB;IAHrC,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;KACjC,CAAC;IAMe,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;GALlB,yBAAyB,CAerC;;IClBY,sBAAsB,GAAnC,MAAa,sBAAsB;EAAG;AAAzB,sBAAsB;IAJlC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACvC,CAAC;GACW,sBAAsB,CAAG;;ACRtC;;;;;;"}
|
|
@@ -48,9 +48,12 @@ let TuiOverscrollDirective = class TuiOverscrollDirective {
|
|
|
48
48
|
return this.enabled ? 'contain' : null;
|
|
49
49
|
}
|
|
50
50
|
processEvent(event, vertical, negative) {
|
|
51
|
+
var _a;
|
|
51
52
|
const { target, currentTarget, cancelable } = event;
|
|
52
53
|
// TODO: iframe warning
|
|
53
|
-
if (!cancelable ||
|
|
54
|
+
if (!cancelable ||
|
|
55
|
+
!(target instanceof Element) ||
|
|
56
|
+
((_a = target) === null || _a === void 0 ? void 0 : _a.type) === 'range') {
|
|
54
57
|
return;
|
|
55
58
|
}
|
|
56
59
|
// This is all what's needed in Chrome/Firefox thanks to CSS overscroll-behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-overscroll.js","sources":["ng://@taiga-ui/cdk/directives/overscroll/overscroll.directive.ts","ng://@taiga-ui/cdk/directives/overscroll/overscroll.module.ts","ng://@taiga-ui/cdk/directives/overscroll/taiga-ui-cdk-directives-overscroll.ts"],"sourcesContent":["import {Directive, ElementRef, HostBinding, Inject, Input, NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TuiEventWith, TuiOverscrollModeT} from '@taiga-ui/cdk/types';\nimport {canScroll, getScrollParent} from '@taiga-ui/cdk/utils/dom';\nimport {Observable} from 'rxjs';\nimport {filter, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n/**\n * Directive to isolate scrolling, i.e. prevent body scroll behind modal dialog\n * @dynamic\n */\n@Directive({\n selector: '[tuiOverscroll]',\n providers: [TuiDestroyService],\n})\nexport class TuiOverscrollDirective {\n @Input('tuiOverscroll')\n mode: TuiOverscrollModeT | '' = 'scroll';\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n typedFromEvent(nativeElement, 'wheel', {passive: false})\n .pipe(\n filter(() => this.enabled),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(event => {\n this.processEvent(\n event,\n !!event.deltaY,\n event.deltaY ? event.deltaY < 0 : event.deltaX < 0,\n );\n });\n\n typedFromEvent(nativeElement, 'touchstart', {passive: true})\n .pipe(\n switchMap(({touches}) => {\n let {clientX, clientY} = touches[0];\n let deltaX = 0;\n let deltaY = 0;\n let vertical: boolean;\n\n return typedFromEvent(nativeElement, 'touchmove', {\n passive: false,\n }).pipe(\n filter(() => this.enabled),\n tap(event => {\n // We have to have it in tap instead of subscribe due to variables in closure\n const changedTouch = event.changedTouches[0];\n\n deltaX = clientX - changedTouch.clientX;\n deltaY = clientY - changedTouch.clientY;\n clientX = changedTouch.clientX;\n clientY = changedTouch.clientY;\n\n if (vertical === undefined) {\n vertical = Math.abs(deltaY) > Math.abs(deltaX);\n }\n\n this.processEvent(\n event,\n vertical,\n vertical ? deltaY < 0 : deltaX < 0,\n );\n }),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe();\n }\n\n get enabled(): boolean {\n return this.mode !== 'none';\n }\n\n @HostBinding('style.overscrollBehavior')\n get overscrollBehavior(): 'contain' | null {\n return this.enabled ? 'contain' : null;\n }\n\n private processEvent(\n event: TuiEventWith<Event, HTMLElement>,\n vertical: boolean,\n negative: boolean,\n ): void {\n const {target, currentTarget, cancelable} = event;\n\n // TODO: iframe warning\n if (!cancelable
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-overscroll.js","sources":["ng://@taiga-ui/cdk/directives/overscroll/overscroll.directive.ts","ng://@taiga-ui/cdk/directives/overscroll/overscroll.module.ts","ng://@taiga-ui/cdk/directives/overscroll/taiga-ui-cdk-directives-overscroll.ts"],"sourcesContent":["import {Directive, ElementRef, HostBinding, Inject, Input, NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TuiEventWith, TuiOverscrollModeT} from '@taiga-ui/cdk/types';\nimport {canScroll, getScrollParent} from '@taiga-ui/cdk/utils/dom';\nimport {Observable} from 'rxjs';\nimport {filter, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n/**\n * Directive to isolate scrolling, i.e. prevent body scroll behind modal dialog\n * @dynamic\n */\n@Directive({\n selector: '[tuiOverscroll]',\n providers: [TuiDestroyService],\n})\nexport class TuiOverscrollDirective {\n @Input('tuiOverscroll')\n mode: TuiOverscrollModeT | '' = 'scroll';\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n typedFromEvent(nativeElement, 'wheel', {passive: false})\n .pipe(\n filter(() => this.enabled),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(event => {\n this.processEvent(\n event,\n !!event.deltaY,\n event.deltaY ? event.deltaY < 0 : event.deltaX < 0,\n );\n });\n\n typedFromEvent(nativeElement, 'touchstart', {passive: true})\n .pipe(\n switchMap(({touches}) => {\n let {clientX, clientY} = touches[0];\n let deltaX = 0;\n let deltaY = 0;\n let vertical: boolean;\n\n return typedFromEvent(nativeElement, 'touchmove', {\n passive: false,\n }).pipe(\n filter(() => this.enabled),\n tap(event => {\n // We have to have it in tap instead of subscribe due to variables in closure\n const changedTouch = event.changedTouches[0];\n\n deltaX = clientX - changedTouch.clientX;\n deltaY = clientY - changedTouch.clientY;\n clientX = changedTouch.clientX;\n clientY = changedTouch.clientY;\n\n if (vertical === undefined) {\n vertical = Math.abs(deltaY) > Math.abs(deltaX);\n }\n\n this.processEvent(\n event,\n vertical,\n vertical ? deltaY < 0 : deltaX < 0,\n );\n }),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe();\n }\n\n get enabled(): boolean {\n return this.mode !== 'none';\n }\n\n @HostBinding('style.overscrollBehavior')\n get overscrollBehavior(): 'contain' | null {\n return this.enabled ? 'contain' : null;\n }\n\n private processEvent(\n event: TuiEventWith<Event, HTMLElement>,\n vertical: boolean,\n negative: boolean,\n ): void {\n const {target, currentTarget, cancelable} = event;\n\n // TODO: iframe warning\n if (\n !cancelable ||\n !(target instanceof Element) ||\n (target as HTMLInputElement)?.type === 'range'\n ) {\n return;\n }\n\n // This is all what's needed in Chrome/Firefox thanks to CSS overscroll-behavior\n if (\n this.mode === 'all' &&\n ((vertical && !currentTarget.contains(getScrollParent(target))) ||\n (!vertical && !currentTarget.contains(getScrollParent(target, false))))\n ) {\n event.preventDefault();\n\n return;\n }\n\n // This is Safari/IE/Edge fallback\n if (\n vertical &&\n ((negative && !canScroll(target, currentTarget, true, false)) ||\n (!negative && !canScroll(target, currentTarget, true, true)))\n ) {\n event.preventDefault();\n\n return;\n }\n\n if (\n !vertical &&\n ((negative && !canScroll(target, currentTarget, false, false)) ||\n (!negative && !canScroll(target, currentTarget, false, true)))\n ) {\n event.preventDefault();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiOverscrollDirective} from './overscroll.directive';\n\n@NgModule({\n declarations: [TuiOverscrollDirective],\n exports: [TuiOverscrollDirective],\n})\nexport class TuiOverscrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -10,23 +10,44 @@ class TuiDocumentSelectionException extends Error {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated: use {@link TuiInvalidDayException}
|
|
15
|
+
* TODO: remove in v3.0
|
|
16
|
+
*/
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
13
18
|
class InvalidDayException extends Error {
|
|
14
19
|
constructor(day) {
|
|
15
20
|
super(`Invalid day: ${day}`);
|
|
16
21
|
}
|
|
17
22
|
}
|
|
23
|
+
class TuiInvalidDayException extends InvalidDayException {
|
|
24
|
+
}
|
|
18
25
|
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated: use {@link TuiInvalidMonthException}
|
|
28
|
+
* TODO: remove in v3.0
|
|
29
|
+
*/
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
19
31
|
class InvalidMonthException extends Error {
|
|
20
32
|
constructor(month) {
|
|
21
33
|
super(`Invalid month: ${month}`);
|
|
22
34
|
}
|
|
23
35
|
}
|
|
36
|
+
class TuiInvalidMonthException extends InvalidMonthException {
|
|
37
|
+
}
|
|
24
38
|
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated: use {@link TuiInvalidYearException}
|
|
41
|
+
* TODO: remove in v3.0
|
|
42
|
+
*/
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
25
44
|
class InvalidYearException extends Error {
|
|
26
45
|
constructor(year) {
|
|
27
46
|
super(`Invalid year: ${year}`);
|
|
28
47
|
}
|
|
29
48
|
}
|
|
49
|
+
class TuiInvalidYearException extends InvalidYearException {
|
|
50
|
+
}
|
|
30
51
|
|
|
31
52
|
class TuiNoHostException extends Error {
|
|
32
53
|
constructor() {
|
|
@@ -80,5 +101,5 @@ class TuiXmlParsingException extends Error {
|
|
|
80
101
|
* Generated bundle index. Do not edit.
|
|
81
102
|
*/
|
|
82
103
|
|
|
83
|
-
export { InvalidDayException, InvalidMonthException, InvalidYearException, TuiComputedDocumentException, TuiDocumentSelectionException, TuiNoHostException, TuiOwnerDocumentException, TuiPureException, TuiTableSortKeyException, TuiTsParserException, TuiValueChangesException, TuiValuePresentException, TuiXmlParsingException };
|
|
104
|
+
export { InvalidDayException, InvalidMonthException, InvalidYearException, TuiComputedDocumentException, TuiDocumentSelectionException, TuiInvalidDayException, TuiInvalidMonthException, TuiInvalidYearException, TuiNoHostException, TuiOwnerDocumentException, TuiPureException, TuiTableSortKeyException, TuiTsParserException, TuiValueChangesException, TuiValuePresentException, TuiXmlParsingException };
|
|
84
105
|
//# sourceMappingURL=taiga-ui-cdk-exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-exceptions.js","sources":["ng://@taiga-ui/cdk/exceptions/computed-document.exception.ts","ng://@taiga-ui/cdk/exceptions/document-selection.exception.ts","ng://@taiga-ui/cdk/exceptions/invalid-day.exception.ts","ng://@taiga-ui/cdk/exceptions/invalid-month.exception.ts","ng://@taiga-ui/cdk/exceptions/invalid-year.exception.ts","ng://@taiga-ui/cdk/exceptions/no-host.exception.ts","ng://@taiga-ui/cdk/exceptions/owner-document.exception.ts","ng://@taiga-ui/cdk/exceptions/pure.exception.ts","ng://@taiga-ui/cdk/exceptions/table-sort-key.exception.ts","ng://@taiga-ui/cdk/exceptions/ts-parser.exception.ts","ng://@taiga-ui/cdk/exceptions/value-changes.exception.ts","ng://@taiga-ui/cdk/exceptions/value-present.exception.ts","ng://@taiga-ui/cdk/exceptions/xml-parsing.exception.ts","ng://@taiga-ui/cdk/exceptions/taiga-ui-cdk-exceptions.ts"],"sourcesContent":["export class TuiComputedDocumentException extends Error {\n constructor() {\n super('Only use computedDocument after load event');\n }\n}\n","export class TuiDocumentSelectionException extends Error {\n constructor() {\n super('Failed to get document selection');\n }\n}\n","
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-exceptions.js","sources":["ng://@taiga-ui/cdk/exceptions/computed-document.exception.ts","ng://@taiga-ui/cdk/exceptions/document-selection.exception.ts","ng://@taiga-ui/cdk/exceptions/invalid-day.exception.ts","ng://@taiga-ui/cdk/exceptions/invalid-month.exception.ts","ng://@taiga-ui/cdk/exceptions/invalid-year.exception.ts","ng://@taiga-ui/cdk/exceptions/no-host.exception.ts","ng://@taiga-ui/cdk/exceptions/owner-document.exception.ts","ng://@taiga-ui/cdk/exceptions/pure.exception.ts","ng://@taiga-ui/cdk/exceptions/table-sort-key.exception.ts","ng://@taiga-ui/cdk/exceptions/ts-parser.exception.ts","ng://@taiga-ui/cdk/exceptions/value-changes.exception.ts","ng://@taiga-ui/cdk/exceptions/value-present.exception.ts","ng://@taiga-ui/cdk/exceptions/xml-parsing.exception.ts","ng://@taiga-ui/cdk/exceptions/taiga-ui-cdk-exceptions.ts"],"sourcesContent":["export class TuiComputedDocumentException extends Error {\n constructor() {\n super('Only use computedDocument after load event');\n }\n}\n","export class TuiDocumentSelectionException extends Error {\n constructor() {\n super('Failed to get document selection');\n }\n}\n","/**\n * @deprecated: use {@link TuiInvalidDayException}\n * TODO: remove in v3.0\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class InvalidDayException extends Error {\n constructor(day: number) {\n super(`Invalid day: ${day}`);\n }\n}\n\nexport class TuiInvalidDayException extends InvalidDayException {}\n","/**\n * @deprecated: use {@link TuiInvalidMonthException}\n * TODO: remove in v3.0\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class InvalidMonthException extends Error {\n constructor(month: number) {\n super(`Invalid month: ${month}`);\n }\n}\n\nexport class TuiInvalidMonthException extends InvalidMonthException {}\n","/**\n * @deprecated: use {@link TuiInvalidYearException}\n * TODO: remove in v3.0\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class InvalidYearException extends Error {\n constructor(year: number) {\n super(`Invalid year: ${year}`);\n }\n}\n\nexport class TuiInvalidYearException extends InvalidYearException {}\n","export class TuiNoHostException extends Error {\n constructor() {\n super('Portals cannot be used without TuiPortalHostComponent');\n }\n}\n","export class TuiOwnerDocumentException extends Error {\n constructor() {\n super('Element does not have ownerDocument');\n }\n}\n","export class TuiPureException extends Error {\n constructor() {\n super('tuiPure can only be used with functions or getters');\n }\n}\n","export class TuiTableSortKeyException extends Error {\n constructor() {\n super('Trying to sort with no key');\n }\n}\n","export class TuiTsParserException extends Error {\n constructor() {\n super('TsFileParser: 1 component/module per ts-file');\n }\n}\n","export class TuiValueChangesException extends Error {\n constructor() {\n super('Control does not have valueChanges');\n }\n}\n","export class TuiValuePresentException extends Error {\n constructor() {\n super('Value must present');\n }\n}\n","export class TuiXmlParsingException extends Error {\n constructor() {\n super('Error parsing XML string');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MAAa,4BAA6B,SAAQ,KAAK;IACnD;QACI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACvD;;;MCHQ,6BAA8B,SAAQ,KAAK;IACpD;QACI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KAC7C;;;ACHL;;;;AAIA;MACa,mBAAoB,SAAQ,KAAK;IAC1C,YAAY,GAAW;QACnB,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;KAChC;CACJ;MAEY,sBAAuB,SAAQ,mBAAmB;;;ACX/D;;;;AAIA;MACa,qBAAsB,SAAQ,KAAK;IAC5C,YAAY,KAAa;QACrB,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;KACpC;CACJ;MAEY,wBAAyB,SAAQ,qBAAqB;;;ACXnE;;;;AAIA;MACa,oBAAqB,SAAQ,KAAK;IAC3C,YAAY,IAAY;QACpB,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;KAClC;CACJ;MAEY,uBAAwB,SAAQ,oBAAoB;;;MCXpD,kBAAmB,SAAQ,KAAK;IACzC;QACI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAClE;;;MCHQ,yBAA0B,SAAQ,KAAK;IAChD;QACI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KAChD;;;MCHQ,gBAAiB,SAAQ,KAAK;IACvC;QACI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KAC/D;;;MCHQ,wBAAyB,SAAQ,KAAK;IAC/C;QACI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KACvC;;;MCHQ,oBAAqB,SAAQ,KAAK;IAC3C;QACI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACzD;;;MCHQ,wBAAyB,SAAQ,KAAK;IAC/C;QACI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KAC/C;;;MCHQ,wBAAyB,SAAQ,KAAK;IAC/C;QACI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KAC/B;;;MCHQ,sBAAuB,SAAQ,KAAK;IAC7C;QACI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KACrC;;;ACHL;;;;;;"}
|
|
@@ -176,46 +176,27 @@ function getScrollParent(element, vertical = true) {
|
|
|
176
176
|
return getScrollParent(element.parentElement, vertical);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
* 1.2. initial-scale and zoom variations may cause mobile values to
|
|
186
|
-
* wrongly scale down to what PPK calls the visual
|
|
187
|
-
* viewport and be smaller than the @media values
|
|
188
|
-
* 1.3. zoom may cause values to be 1px off due to native rounding
|
|
189
|
-
*
|
|
190
|
-
* 2. document.documentElement.clientHeight
|
|
191
|
-
* 2.1. equals CSS viewport width minus scrollbar width
|
|
192
|
-
* 2.2. matches @media (height) when there is no scrollbar
|
|
193
|
-
* 2.3. available cross-browser
|
|
194
|
-
* 2.4. inaccurate if doctype is missing
|
|
195
|
-
*/
|
|
196
|
-
function tuiGetViewportHeight({ document, innerHeight }) {
|
|
197
|
-
return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);
|
|
179
|
+
function tuiIsFormFieldElement(element) {
|
|
180
|
+
const textfield = element;
|
|
181
|
+
return (!!textfield &&
|
|
182
|
+
'value' in textfield &&
|
|
183
|
+
'selectionStart' in textfield &&
|
|
184
|
+
'selectionEnd' in textfield);
|
|
198
185
|
}
|
|
199
186
|
|
|
200
187
|
/**
|
|
201
188
|
* @description:
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
* 1. window.innerWidth
|
|
205
|
-
* 1.1. gets CSS viewport @media (width) which include scrollbars
|
|
206
|
-
* 1.2. initial-scale and zoom variations may cause mobile values to
|
|
207
|
-
* wrongly scale down to what PPK calls the visual
|
|
208
|
-
* viewport and be smaller than the @media values
|
|
209
|
-
* 1.3. zoom may cause values to be 1px off due to native rounding
|
|
189
|
+
* cross browser way to get selected text
|
|
210
190
|
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
* 2.3. available cross-browser
|
|
215
|
-
* 2.4. inaccurate if doctype is missing
|
|
191
|
+
* History:
|
|
192
|
+
* BUG - window.getSelection() fails when text selected in a form field
|
|
193
|
+
* https://bugzilla.mozilla.org/show_bug.cgi?id=85686
|
|
216
194
|
*/
|
|
217
|
-
function
|
|
218
|
-
|
|
195
|
+
function tuiGetSelectedText({ getSelection, document }) {
|
|
196
|
+
var _a;
|
|
197
|
+
return tuiIsFormFieldElement(document.activeElement)
|
|
198
|
+
? document.activeElement.value.slice(document.activeElement.selectionStart || 0, document.activeElement.selectionEnd || 0)
|
|
199
|
+
: ((_a = getSelection()) === null || _a === void 0 ? void 0 : _a.toString()) || null;
|
|
219
200
|
}
|
|
220
201
|
|
|
221
202
|
function isCurrentTarget({ target, currentTarget }) {
|
|
@@ -247,5 +228,5 @@ function isNodeIn(node, selector) {
|
|
|
247
228
|
* Generated bundle index. Do not edit.
|
|
248
229
|
*/
|
|
249
230
|
|
|
250
|
-
export { canScroll, containsOrAfter, getActualTarget, getClipboardDataText, getClosestElement, getDocumentOrShadowRoot, getElementObscurers, getElementOffset, getScrollParent, isCurrentTarget, isInsideIframe, isNodeIn, tuiCustomEvent,
|
|
231
|
+
export { canScroll, containsOrAfter, getActualTarget, getClipboardDataText, getClosestElement, getDocumentOrShadowRoot, getElementObscurers, getElementOffset, getScrollParent, isCurrentTarget, isInsideIframe, isNodeIn, tuiCustomEvent, tuiGetSelectedText, tuiIsFormFieldElement };
|
|
251
232
|
//# sourceMappingURL=taiga-ui-cdk-utils-dom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/get-viewport-height.ts","ng://@taiga-ui/cdk/utils/dom/get-viewport-width.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","/**\n * @description:\n * Cross-browser @media (height)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (height) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n","/**\n * @description:\n * Cross-browser @media (width)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientWidth\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (width) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\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-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n 'value' in textfield &&\n 'selectionStart' in textfield &&\n 'selectionEnd' in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { __decorate, __param } from 'tslib';
|
|
|
2
2
|
import { Inject, Input, HostListener, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { WINDOW } from '@ng-web-apis/common';
|
|
4
4
|
import { tuiDefaultProp } from '@taiga-ui/cdk/decorators';
|
|
5
|
+
import { tuiGetSelectedText } from '@taiga-ui/cdk/utils';
|
|
5
6
|
import { identity } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
// @dynamic
|
|
@@ -12,9 +13,9 @@ var TuiCopyProcessorDirective = /** @class */ (function () {
|
|
|
12
13
|
}
|
|
13
14
|
TuiCopyProcessorDirective.prototype.onCopy = function (event) {
|
|
14
15
|
var _a;
|
|
15
|
-
var
|
|
16
|
-
if (
|
|
17
|
-
(_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData('text/plain', this.tuiCopyProcessor(
|
|
16
|
+
var text = tuiGetSelectedText(this.windowRef);
|
|
17
|
+
if (text) {
|
|
18
|
+
(_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData('text/plain', this.tuiCopyProcessor(text));
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
21
|
TuiCopyProcessorDirective.ctorParameters = function () { return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-copy-processor.js","sources":["ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.directive.ts","ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.module.ts","ng://@taiga-ui/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {identity} from 'rxjs';\n\n// @dynamic\n@Directive({\n selector: '[tuiCopyProcessor]',\n})\nexport class TuiCopyProcessorDirective {\n @Input()\n @tuiDefaultProp()\n tuiCopyProcessor: TuiStringHandler<string> = identity;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @HostListener('copy.prevent', ['$event'])\n onCopy(event: ClipboardEvent): void {\n const
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-copy-processor.js","sources":["ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.directive.ts","ng://@taiga-ui/cdk/directives/copy-processor/copy-processor.module.ts","ng://@taiga-ui/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiGetSelectedText} from '@taiga-ui/cdk/utils';\nimport {identity} from 'rxjs';\n\n// @dynamic\n@Directive({\n selector: '[tuiCopyProcessor]',\n})\nexport class TuiCopyProcessorDirective {\n @Input()\n @tuiDefaultProp()\n tuiCopyProcessor: TuiStringHandler<string> = identity;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @HostListener('copy.prevent', ['$event'])\n onCopy(event: ClipboardEvent): void {\n const text = tuiGetSelectedText(this.windowRef);\n\n if (text) {\n event.clipboardData?.setData('text/plain', this.tuiCopyProcessor(text));\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCopyProcessorDirective} from './copy-processor.directive';\n\n@NgModule({\n declarations: [TuiCopyProcessorDirective],\n exports: [TuiCopyProcessorDirective],\n})\nexport class TuiCopyProcessorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAOA;;IASI,mCAA6C,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAF9D,qBAAgB,GAA6B,QAAQ,CAAC;KAEY;IAGlE,0CAAM,GAAN,UAAO,KAAqB;;QACxB,IAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,IAAI,EAAE;YACN,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;SAC3E;KACJ;;gBATuD,MAAM,uBAAjD,MAAM,SAAC,MAAM;;IAF1B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uEACqC;IAKtD;QADC,YAAY,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;2DAOxC;IAdQ,yBAAyB;QAHrC,SAAS,CAAC;YACP,QAAQ,EAAE,oBAAoB;SACjC,CAAC;QAMe,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;OALlB,yBAAyB,CAerC;IAAD,gCAAC;CAfD;;;ICHA;KAAsC;IAAzB,sBAAsB;QAJlC,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;YACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACvC,CAAC;OACW,sBAAsB,CAAG;IAAD,6BAAC;CAAtC;;ACRA;;;;;;"}
|
|
@@ -59,9 +59,12 @@ var TuiOverscrollDirective = /** @class */ (function () {
|
|
|
59
59
|
configurable: true
|
|
60
60
|
});
|
|
61
61
|
TuiOverscrollDirective.prototype.processEvent = function (event, vertical, negative) {
|
|
62
|
+
var _a;
|
|
62
63
|
var target = event.target, currentTarget = event.currentTarget, cancelable = event.cancelable;
|
|
63
64
|
// TODO: iframe warning
|
|
64
|
-
if (!cancelable ||
|
|
65
|
+
if (!cancelable ||
|
|
66
|
+
!(target instanceof Element) ||
|
|
67
|
+
((_a = target) === null || _a === void 0 ? void 0 : _a.type) === 'range') {
|
|
65
68
|
return;
|
|
66
69
|
}
|
|
67
70
|
// This is all what's needed in Chrome/Firefox thanks to CSS overscroll-behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-overscroll.js","sources":["ng://@taiga-ui/cdk/directives/overscroll/overscroll.directive.ts","ng://@taiga-ui/cdk/directives/overscroll/overscroll.module.ts","ng://@taiga-ui/cdk/directives/overscroll/taiga-ui-cdk-directives-overscroll.ts"],"sourcesContent":["import {Directive, ElementRef, HostBinding, Inject, Input, NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TuiEventWith, TuiOverscrollModeT} from '@taiga-ui/cdk/types';\nimport {canScroll, getScrollParent} from '@taiga-ui/cdk/utils/dom';\nimport {Observable} from 'rxjs';\nimport {filter, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n/**\n * Directive to isolate scrolling, i.e. prevent body scroll behind modal dialog\n * @dynamic\n */\n@Directive({\n selector: '[tuiOverscroll]',\n providers: [TuiDestroyService],\n})\nexport class TuiOverscrollDirective {\n @Input('tuiOverscroll')\n mode: TuiOverscrollModeT | '' = 'scroll';\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n typedFromEvent(nativeElement, 'wheel', {passive: false})\n .pipe(\n filter(() => this.enabled),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(event => {\n this.processEvent(\n event,\n !!event.deltaY,\n event.deltaY ? event.deltaY < 0 : event.deltaX < 0,\n );\n });\n\n typedFromEvent(nativeElement, 'touchstart', {passive: true})\n .pipe(\n switchMap(({touches}) => {\n let {clientX, clientY} = touches[0];\n let deltaX = 0;\n let deltaY = 0;\n let vertical: boolean;\n\n return typedFromEvent(nativeElement, 'touchmove', {\n passive: false,\n }).pipe(\n filter(() => this.enabled),\n tap(event => {\n // We have to have it in tap instead of subscribe due to variables in closure\n const changedTouch = event.changedTouches[0];\n\n deltaX = clientX - changedTouch.clientX;\n deltaY = clientY - changedTouch.clientY;\n clientX = changedTouch.clientX;\n clientY = changedTouch.clientY;\n\n if (vertical === undefined) {\n vertical = Math.abs(deltaY) > Math.abs(deltaX);\n }\n\n this.processEvent(\n event,\n vertical,\n vertical ? deltaY < 0 : deltaX < 0,\n );\n }),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe();\n }\n\n get enabled(): boolean {\n return this.mode !== 'none';\n }\n\n @HostBinding('style.overscrollBehavior')\n get overscrollBehavior(): 'contain' | null {\n return this.enabled ? 'contain' : null;\n }\n\n private processEvent(\n event: TuiEventWith<Event, HTMLElement>,\n vertical: boolean,\n negative: boolean,\n ): void {\n const {target, currentTarget, cancelable} = event;\n\n // TODO: iframe warning\n if (!cancelable
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-overscroll.js","sources":["ng://@taiga-ui/cdk/directives/overscroll/overscroll.directive.ts","ng://@taiga-ui/cdk/directives/overscroll/overscroll.module.ts","ng://@taiga-ui/cdk/directives/overscroll/taiga-ui-cdk-directives-overscroll.ts"],"sourcesContent":["import {Directive, ElementRef, HostBinding, Inject, Input, NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TuiEventWith, TuiOverscrollModeT} from '@taiga-ui/cdk/types';\nimport {canScroll, getScrollParent} from '@taiga-ui/cdk/utils/dom';\nimport {Observable} from 'rxjs';\nimport {filter, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n/**\n * Directive to isolate scrolling, i.e. prevent body scroll behind modal dialog\n * @dynamic\n */\n@Directive({\n selector: '[tuiOverscroll]',\n providers: [TuiDestroyService],\n})\nexport class TuiOverscrollDirective {\n @Input('tuiOverscroll')\n mode: TuiOverscrollModeT | '' = 'scroll';\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n typedFromEvent(nativeElement, 'wheel', {passive: false})\n .pipe(\n filter(() => this.enabled),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(event => {\n this.processEvent(\n event,\n !!event.deltaY,\n event.deltaY ? event.deltaY < 0 : event.deltaX < 0,\n );\n });\n\n typedFromEvent(nativeElement, 'touchstart', {passive: true})\n .pipe(\n switchMap(({touches}) => {\n let {clientX, clientY} = touches[0];\n let deltaX = 0;\n let deltaY = 0;\n let vertical: boolean;\n\n return typedFromEvent(nativeElement, 'touchmove', {\n passive: false,\n }).pipe(\n filter(() => this.enabled),\n tap(event => {\n // We have to have it in tap instead of subscribe due to variables in closure\n const changedTouch = event.changedTouches[0];\n\n deltaX = clientX - changedTouch.clientX;\n deltaY = clientY - changedTouch.clientY;\n clientX = changedTouch.clientX;\n clientY = changedTouch.clientY;\n\n if (vertical === undefined) {\n vertical = Math.abs(deltaY) > Math.abs(deltaX);\n }\n\n this.processEvent(\n event,\n vertical,\n vertical ? deltaY < 0 : deltaX < 0,\n );\n }),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe();\n }\n\n get enabled(): boolean {\n return this.mode !== 'none';\n }\n\n @HostBinding('style.overscrollBehavior')\n get overscrollBehavior(): 'contain' | null {\n return this.enabled ? 'contain' : null;\n }\n\n private processEvent(\n event: TuiEventWith<Event, HTMLElement>,\n vertical: boolean,\n negative: boolean,\n ): void {\n const {target, currentTarget, cancelable} = event;\n\n // TODO: iframe warning\n if (\n !cancelable ||\n !(target instanceof Element) ||\n (target as HTMLInputElement)?.type === 'range'\n ) {\n return;\n }\n\n // This is all what's needed in Chrome/Firefox thanks to CSS overscroll-behavior\n if (\n this.mode === 'all' &&\n ((vertical && !currentTarget.contains(getScrollParent(target))) ||\n (!vertical && !currentTarget.contains(getScrollParent(target, false))))\n ) {\n event.preventDefault();\n\n return;\n }\n\n // This is Safari/IE/Edge fallback\n if (\n vertical &&\n ((negative && !canScroll(target, currentTarget, true, false)) ||\n (!negative && !canScroll(target, currentTarget, true, true)))\n ) {\n event.preventDefault();\n\n return;\n }\n\n if (\n !vertical &&\n ((negative && !canScroll(target, currentTarget, false, false)) ||\n (!negative && !canScroll(target, currentTarget, false, true)))\n ) {\n event.preventDefault();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiOverscrollDirective} from './overscroll.directive';\n\n@NgModule({\n declarations: [TuiOverscrollDirective],\n exports: [TuiOverscrollDirective],\n})\nexport class TuiOverscrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAQA;;;;;IAYI,gCACwB,EAAwC,EAC5C,MAAc,EACH,QAA0B;QAHzD,iBAwDC;YAvDwB,gCAAa;QAHtC,SAAI,GAA4B,QAAQ,CAAC;QAOrC,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC;aACnD,IAAI,CACD,MAAM,CAAC,cAAM,OAAA,KAAI,CAAC,OAAO,GAAA,CAAC,EAC1B,WAAW,CAAC,MAAM,CAAC,EACnB,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,CAAC,UAAA,KAAK;YACZ,KAAI,CAAC,YAAY,CACb,KAAK,EACL,CAAC,CAAC,KAAK,CAAC,MAAM,EACd,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CACrD,CAAC;SACL,CAAC,CAAC;QAEP,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;aACvD,IAAI,CACD,SAAS,CAAC,UAAC,EAAS;gBAAR,oBAAO;YACX,IAAA,eAA+B,EAA9B,oBAAO,EAAE,oBAAqB,CAAC;YACpC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,QAAiB,CAAC;YAEtB,OAAO,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE;gBAC9C,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC,IAAI,CACH,MAAM,CAAC,cAAM,OAAA,KAAI,CAAC,OAAO,GAAA,CAAC,EAC1B,GAAG,CAAC,UAAA,KAAK;;gBAEL,IAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAE7C,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBACxC,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBACxC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBAC/B,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;gBAE/B,IAAI,QAAQ,KAAK,SAAS,EAAE;oBACxB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAClD;gBAED,KAAI,CAAC,YAAY,CACb,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CACrC,CAAC;aACL,CAAC,CACL,CAAC;SACL,CAAC,EACF,WAAW,CAAC,MAAM,CAAC,EACnB,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,EAAE,CAAC;KACpB;IAED,sBAAI,2CAAO;aAAX;YACI,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;SAC/B;;;OAAA;IAGD,sBAAI,sDAAkB;aAAtB;YACI,OAAO,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;SAC1C;;;OAAA;IAEO,6CAAY,GAApB,UACI,KAAuC,EACvC,QAAiB,EACjB,QAAiB;;QAEV,IAAA,qBAAM,EAAE,mCAAa,EAAE,6BAAU,CAAU;;QAGlD,IACI,CAAC,UAAU;YACX,EAAE,MAAM,YAAY,OAAO,CAAC;YAC5B,OAAC,MAA2B,0CAAE,IAAI,MAAK,OAAO,EAChD;YACE,OAAO;SACV;;QAGD,IACI,IAAI,CAAC,IAAI,KAAK,KAAK;aAClB,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;iBACzD,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAC7E;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;SACV;;QAGD,IACI,QAAQ;aACP,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;iBACvD,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACnE;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;SACV;QAED,IACI,CAAC,QAAQ;aACR,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC;iBACxD,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EACpE;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;;gBA/GwC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gBACM,MAAM,uBAA7B,MAAM,SAAC,MAAM;gBACuB,UAAU,uBAA9C,MAAM,SAAC,iBAAiB;;IAL7B;QADC,KAAK,CAAC,eAAe,CAAC;wDACkB;IAiEzC;QADC,WAAW,CAAC,0BAA0B,CAAC;oEAGvC;IArEQ,sBAAsB;QAJlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,CAAC,iBAAiB,CAAC;SACjC,CAAC;QAMO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OAPrB,sBAAsB,CAqHlC;IAAD,6BAAC;CArHD;;;ICRA;KAAmC;IAAtB,mBAAmB;QAJ/B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACRA;;;;;;"}
|