@taiga-ui/cdk 4.0.0-rc.5 → 4.0.0-rc.7

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.
Files changed (61) hide show
  1. package/classes/index.d.ts +0 -1
  2. package/constants/version.d.ts +1 -1
  3. package/constants/version.js +1 -1
  4. package/esm2022/classes/index.mjs +1 -2
  5. package/esm2022/constants/version.mjs +2 -2
  6. package/esm2022/directives/auto-focus/autofocus.options.mjs +3 -3
  7. package/esm2022/directives/copy-processor/copy-processor.directive.mjs +3 -3
  8. package/esm2022/directives/high-dpi/high-dpi.directive.mjs +3 -3
  9. package/esm2022/directives/obscured/obscured.service.mjs +3 -3
  10. package/esm2022/services/scroll.service.mjs +4 -4
  11. package/esm2022/tokens/active-element.mjs +3 -3
  12. package/esm2022/tokens/environment.mjs +15 -7
  13. package/esm2022/tokens/removed-element.mjs +3 -3
  14. package/esm2022/tokens/window-size.mjs +3 -3
  15. package/fesm2022/taiga-ui-cdk-classes.mjs +1 -15
  16. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-cdk-constants.mjs +1 -1
  18. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +2 -2
  20. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +2 -2
  22. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +2 -2
  24. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +2 -2
  26. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-cdk-services.mjs +3 -3
  28. package/fesm2022/taiga-ui-cdk-services.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-cdk-tokens.mjs +19 -12
  30. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  31. package/package.json +5 -5
  32. package/schematics/ng-update/interfaces/replacement-type.d.ts +4 -0
  33. package/schematics/ng-update/steps/rename-types.js +6 -2
  34. package/schematics/ng-update/steps/replace-identifier.js +9 -1
  35. package/schematics/ng-update/steps/replace-package-name.js +4 -5
  36. package/schematics/ng-update/v4/index.js +1 -0
  37. package/schematics/ng-update/v4/migrate-icons/rename-icons.js +5 -5
  38. package/schematics/ng-update/v4/steps/constants/attr-to-directive-replace.js +3 -2
  39. package/schematics/ng-update/v4/steps/constants/attr-with-values-to-replace.js +2 -1
  40. package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js +53 -18
  41. package/schematics/ng-update/v4/steps/constants/identifiers-to-replace.js +288 -25
  42. package/schematics/ng-update/v4/steps/constants/modules-to-remove.js +12 -0
  43. package/schematics/ng-update/v4/steps/constants/tags-to-replace.js +11 -0
  44. package/schematics/ng-update/v4/steps/constants/types.js +4 -1
  45. package/schematics/ng-update/v4/steps/migrate-styles.js +7 -1
  46. package/schematics/ng-update/v4/steps/migrate-templates.js +5 -2
  47. package/schematics/ng-update/v4/steps/templates/index.d.ts +3 -0
  48. package/schematics/ng-update/v4/steps/templates/index.js +3 -0
  49. package/schematics/ng-update/v4/steps/templates/migrate-badge.js +8 -0
  50. package/schematics/ng-update/v4/steps/templates/migrate-blocked.d.ts +8 -0
  51. package/schematics/ng-update/v4/steps/templates/migrate-blocked.js +34 -0
  52. package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.d.ts +8 -0
  53. package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.js +41 -0
  54. package/schematics/ng-update/v4/steps/templates/migrate-label.d.ts +8 -0
  55. package/schematics/ng-update/v4/steps/templates/migrate-label.js +39 -0
  56. package/schematics/ng-update/v4/steps/templates/migrate-labeled.js +2 -4
  57. package/schematics/ng-update/v4/steps/templates/toggles/migrate-checkbox.js +35 -0
  58. package/schematics/utils/get-named-import-references.js +4 -2
  59. package/tokens/environment.d.ts +1 -0
  60. package/classes/controller.d.ts +0 -9
  61. package/esm2022/classes/controller.mjs +0 -18
@@ -1,10 +1,13 @@
1
1
  export * from './migrate-avatar';
2
2
  export * from './migrate-badge';
3
3
  export * from './migrate-badged-content';
4
+ export * from './migrate-button-appearance';
4
5
  export * from './migrate-expandable';
5
6
  export * from './migrate-focusable';
7
+ export * from './migrate-label';
6
8
  export * from './migrate-labeled';
7
9
  export * from './migrate-money';
10
+ export * from './migrate-overscroll';
8
11
  export * from './migrate-prevent-default';
9
12
  export * from './migrate-progress-segmented';
10
13
  export * from './migrate-thumbnail-card';
@@ -4,10 +4,13 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./migrate-avatar"), exports);
5
5
  tslib_1.__exportStar(require("./migrate-badge"), exports);
6
6
  tslib_1.__exportStar(require("./migrate-badged-content"), exports);
7
+ tslib_1.__exportStar(require("./migrate-button-appearance"), exports);
7
8
  tslib_1.__exportStar(require("./migrate-expandable"), exports);
8
9
  tslib_1.__exportStar(require("./migrate-focusable"), exports);
10
+ tslib_1.__exportStar(require("./migrate-label"), exports);
9
11
  tslib_1.__exportStar(require("./migrate-labeled"), exports);
10
12
  tslib_1.__exportStar(require("./migrate-money"), exports);
13
+ tslib_1.__exportStar(require("./migrate-overscroll"), exports);
11
14
  tslib_1.__exportStar(require("./migrate-prevent-default"), exports);
12
15
  tslib_1.__exportStar(require("./migrate-progress-segmented"), exports);
13
16
  tslib_1.__exportStar(require("./migrate-thumbnail-card"), exports);
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.migrateBadge = void 0;
4
4
  const elements_1 = require("../../../../utils/templates/elements");
5
5
  const template_resource_1 = require("../../../../utils/templates/template-resource");
6
+ const common_1 = require("./toggles/common");
7
+ const badgeSizeMap = {
8
+ xs: 's',
9
+ s: 'm',
10
+ m: 'l',
11
+ l: 'xl',
12
+ };
6
13
  function migrateBadge({ resource, recorder, fileSystem, }) {
7
14
  const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
8
15
  const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
@@ -11,6 +18,7 @@ function migrateBadge({ resource, recorder, fileSystem, }) {
11
18
  if (!sourceCodeLocation) {
12
19
  return;
13
20
  }
21
+ (0, common_1.replaceSizeAttr)(attrs, sourceCodeLocation, recorder, templateOffset, badgeSizeMap);
14
22
  const valueAttr = attrs.find((attr) => attr.name === '[value]' || attr.name === 'value');
15
23
  // migration for icon-only badges
16
24
  if (!valueAttr) {
@@ -0,0 +1,8 @@
1
+ import type { UpdateRecorder } from '@angular-devkit/schematics';
2
+ import type { DevkitFileSystem } from 'ng-morph';
3
+ import type { TemplateResource } from '../../../interfaces';
4
+ export declare function migrateBlocked({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateBlocked = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
6
+ function migrateBlocked({ resource, recorder, fileSystem, }) {
7
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
8
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
9
+ const elements = (0, elements_1.findElementsByTagNames)(template, [
10
+ 'tui-checkbox-block',
11
+ 'tui-radio-block',
12
+ ]);
13
+ elements.forEach(({ sourceCodeLocation, tagName, attrs }) => {
14
+ var _a, _b, _c, _d;
15
+ if (!sourceCodeLocation) {
16
+ return;
17
+ }
18
+ const [, hideIconAttrLocation] = Object.entries(sourceCodeLocation.attrs || {}).find(([name]) => name.includes('hideCheckbox'.toLowerCase()) ||
19
+ name.includes('hideRadio'.toLowerCase())) || [];
20
+ const [, sizeAttrLocation] = Object.entries(sourceCodeLocation.attrs || {}).find(([name]) => name.includes('size')) || [];
21
+ const sizeAttr = attrs.find(({ name }) => name.includes('size'));
22
+ const newBlockAttr = `tuiBlock${sizeAttr ? `="${sizeAttr.value === 'xs' ? 's' : sizeAttr.value}"` : ''}`;
23
+ recorder.insertRight(templateOffset + (((_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) || 1) - 1, `<label ${newBlockAttr}${hideIconAttrLocation ? ' appearance=""' : ''}>`);
24
+ recorder.remove(templateOffset + ((_c = (_b = sourceCodeLocation.endTag) === null || _b === void 0 ? void 0 : _b.startOffset) !== null && _c !== void 0 ? _c : 0), `<${tagName}/>`.length);
25
+ recorder.insertRight(templateOffset + (((_d = sourceCodeLocation.endTag) === null || _d === void 0 ? void 0 : _d.startOffset) || 1), '</label>');
26
+ if (hideIconAttrLocation) {
27
+ recorder.remove(templateOffset + hideIconAttrLocation.startOffset, hideIconAttrLocation.endOffset - hideIconAttrLocation.startOffset);
28
+ }
29
+ if (sizeAttrLocation) {
30
+ recorder.remove(templateOffset + sizeAttrLocation.startOffset, sizeAttrLocation.endOffset - sizeAttrLocation.startOffset);
31
+ }
32
+ });
33
+ }
34
+ exports.migrateBlocked = migrateBlocked;
@@ -0,0 +1,8 @@
1
+ import type { UpdateRecorder } from '@angular-devkit/schematics';
2
+ import type { DevkitFileSystem } from 'ng-morph';
3
+ import type { TemplateResource } from '../../../interfaces';
4
+ export declare function migrateButtonAppearance({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateButtonAppearance = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
6
+ const remove_attrs_1 = require("../utils/remove-attrs");
7
+ const tuiButtonSelectors = ['tuiButton', 'tuiIconButton'];
8
+ const appearanceInputName = 'appearance';
9
+ const appearanceInputNameDict = {
10
+ [appearanceInputName]: true,
11
+ [`[${appearanceInputName}]`]: true,
12
+ };
13
+ function migrateButtonAppearance({ resource, recorder, fileSystem, }) {
14
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
15
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
16
+ const elements = tuiButtonSelectors.flatMap((selector) => (0, elements_1.findElementsWithDirective)(template, selector).filter(({ sourceCodeLocation, attrs }) => !!sourceCodeLocation &&
17
+ attrs.some(({ name }) => appearanceInputNameDict[name])));
18
+ if (!elements.length) {
19
+ return;
20
+ }
21
+ const whiteBlockValue = 'whiteblock-active';
22
+ elements.forEach(({ attrs, sourceCodeLocation }) => {
23
+ var _a;
24
+ const whiteBlockActiveAttr = attrs.find(({ value, name }) => appearanceInputNameDict[name] &&
25
+ (value === whiteBlockValue || value === `'${whiteBlockValue}'`));
26
+ if (whiteBlockActiveAttr) {
27
+ (0, remove_attrs_1.removeAttrs)([whiteBlockActiveAttr], sourceCodeLocation, recorder, templateOffset);
28
+ const { startOffset } = ((_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[whiteBlockActiveAttr.name]) || { startOffset: 0, endOffset: 0 };
29
+ recorder.insertLeft(startOffset + templateOffset, ` ${appearanceInputName}="whiteblock"`);
30
+ recorder.insertLeft(startOffset + templateOffset, ' data-mode="checked"');
31
+ }
32
+ });
33
+ const elementWithConditionAppearance = elements.find(({ attrs }) => attrs.some(({ name, value }) => name === `[${appearanceInputName}]` && !value.trim().startsWith("'")));
34
+ if (elementWithConditionAppearance) {
35
+ addTodo(recorder, templateOffset);
36
+ }
37
+ }
38
+ exports.migrateButtonAppearance = migrateButtonAppearance;
39
+ function addTodo(recorder, templateOffset) {
40
+ recorder.insertRight(templateOffset, '<!-- Taiga migration TODO: tuiButton "whiteblock-active" appearance is no longer available. Use \'appearance="whiteblock" data-mode="checked"\' -->\n');
41
+ }
@@ -0,0 +1,8 @@
1
+ import type { UpdateRecorder } from '@angular-devkit/schematics';
2
+ import type { DevkitFileSystem } from 'ng-morph';
3
+ import type { TemplateResource } from '../../../interfaces';
4
+ export declare function migrateLabel({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateLabel = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const inputs_1 = require("../../../../utils/templates/inputs");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ function migrateLabel({ resource, recorder, fileSystem, }) {
8
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
9
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
10
+ const labelElements = (0, elements_1.findElementsByTagName)(template, 'label', ({ attrs }) => attrs.some(({ name }) => name === 'tuilabel' || name === '[tuilabel]'));
11
+ labelElements.forEach(({ attrs, sourceCodeLocation }) => {
12
+ const labelAttr = (0, inputs_1.findAttr)(attrs, 'tuilabel');
13
+ if (!labelAttr || !sourceCodeLocation) {
14
+ return;
15
+ }
16
+ migrateValue({
17
+ valueAttr: labelAttr,
18
+ sourceCodeLocation,
19
+ recorder,
20
+ templateOffset,
21
+ });
22
+ });
23
+ }
24
+ exports.migrateLabel = migrateLabel;
25
+ function migrateValue({ valueAttr, sourceCodeLocation, recorder, templateOffset, }) {
26
+ var _a, _b, _c;
27
+ const attrValue = valueAttr === null || valueAttr === void 0 ? void 0 : valueAttr.value;
28
+ const insertTo = (_b = (_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.endOffset) !== null && _b !== void 0 ? _b : 0;
29
+ if (!attrValue || !insertTo) {
30
+ return;
31
+ }
32
+ recorder.insertRight(insertTo + templateOffset, valueAttr.name === 'tuilabel' ? attrValue : `{{ ${attrValue} }}`);
33
+ const attrOffset = (_c = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _c === void 0 ? void 0 : _c[valueAttr.name];
34
+ if (attrOffset) {
35
+ const { startOffset, endOffset } = attrOffset;
36
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
37
+ recorder.insertRight(templateOffset + startOffset, 'tuiLabel');
38
+ }
39
+ }
@@ -34,10 +34,8 @@ function migrateLabeled({ resource, recorder, fileSystem, }) {
34
34
  }
35
35
  (0, add_import_to_closest_module_1.addImportToClosestModule)(resource.componentPath, tagName === 'tui-checkbox-labeled' ? 'TuiCheckbox' : 'TuiRadio', '@taiga-ui/kit');
36
36
  recorder.insertRight(templateOffset + (((_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) || 1) - 1, '<label tuiLabel>');
37
- recorder.insertRight(templateOffset + (((_b = sourceCodeLocation.endTag) === null || _b === void 0 ? void 0 : _b.startOffset) || 1) - 1, '\n</label>');
38
- recorder.remove(templateOffset + ((_d = (_c = sourceCodeLocation.endTag) === null || _c === void 0 ? void 0 : _c.startOffset) !== null && _d !== void 0 ? _d : 0), tagName === 'tui-checkbox-labeled'
39
- ? '<tui-checkbox-labeled/>'.length
40
- : '<tui-radio-labeled/>'.length);
37
+ recorder.remove(templateOffset + ((_c = (_b = sourceCodeLocation.endTag) === null || _b === void 0 ? void 0 : _b.startOffset) !== null && _c !== void 0 ? _c : 0), `<${tagName}/>`.length);
38
+ recorder.insertRight(templateOffset + (((_d = sourceCodeLocation.endTag) === null || _d === void 0 ? void 0 : _d.startOffset) || 1), '</label>');
41
39
  });
42
40
  }
43
41
  exports.migrateLabeled = migrateLabeled;
@@ -21,5 +21,40 @@ function migrateCheckbox({ resource, recorder, fileSystem, }) {
21
21
  (0, common_1.closeStartTag)(sourceCodeLocation, recorder, templateOffset);
22
22
  (0, common_1.removeClosingTag)(sourceCodeLocation, recorder, templateOffset);
23
23
  });
24
+ (0, elements_1.findElementsByTagName)(template, 'tui-primitive-checkbox').forEach(({ attrs, sourceCodeLocation }) => {
25
+ if (!sourceCodeLocation) {
26
+ return;
27
+ }
28
+ (0, common_1.replaceSizeAttr)(attrs, sourceCodeLocation, recorder, templateOffset);
29
+ replaceValueAttr(attrs, sourceCodeLocation, recorder, templateOffset);
30
+ (0, common_1.replaceOpenTag)(sourceCodeLocation, recorder, templateOffset, {
31
+ tag: 'tui-primitive-checkbox',
32
+ directive: 'tuiCheckbox',
33
+ type: 'checkbox',
34
+ });
35
+ (0, common_1.closeStartTag)(sourceCodeLocation, recorder, templateOffset);
36
+ (0, common_1.removeClosingTag)(sourceCodeLocation, recorder, templateOffset);
37
+ });
24
38
  }
25
39
  exports.migrateCheckbox = migrateCheckbox;
40
+ function replaceValueAttr(attrs, sourceCodeLocation, recorder, templateOffset) {
41
+ var _a;
42
+ const valueAttr = attrs.find((attr) => attr.name === 'value' || attr.name === '[value]');
43
+ if (valueAttr) {
44
+ const { startOffset, endOffset } = ((_a = sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[valueAttr.name]) || {
45
+ startOffset: 0,
46
+ endOffset: 0,
47
+ };
48
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
49
+ switch (valueAttr.value) {
50
+ case 'false':
51
+ case 'null':
52
+ return;
53
+ case 'true':
54
+ recorder.insertRight(templateOffset + startOffset, 'checked ');
55
+ return;
56
+ default:
57
+ recorder.insertRight(templateOffset + startOffset, `[checked]="${valueAttr.value}" `);
58
+ }
59
+ }
60
+ }
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getNamedImportReferences = void 0;
4
4
  const ng_morph_1 = require("ng-morph");
5
5
  const constants_1 = require("../constants");
6
- function getNamedImportReferences(namedImport, moduleSpecifier = '**/**', files = constants_1.ALL_TS_FILES) {
6
+ function getNamedImportReferences(namedImport, moduleSpecifier = ['**/**'], files = constants_1.ALL_TS_FILES) {
7
7
  const importDeclarations = (0, ng_morph_1.getImports)(files, {
8
8
  namedImports: [namedImport],
9
- moduleSpecifier,
9
+ moduleSpecifier: Array.isArray(moduleSpecifier)
10
+ ? moduleSpecifier
11
+ : [moduleSpecifier, `${moduleSpecifier}/**`],
10
12
  });
11
13
  const namedImports = importDeclarations.map((declaration) => {
12
14
  var _a;
@@ -3,6 +3,7 @@ export declare const TUI_IS_IOS: import("@angular/core").InjectionToken<boolean>
3
3
  export declare const TUI_IS_ANDROID: import("@angular/core").InjectionToken<boolean>;
4
4
  export declare const TUI_IS_WEBKIT: import("@angular/core").InjectionToken<boolean>;
5
5
  export declare const TUI_PLATFORM: import("@angular/core").InjectionToken<"android" | "ios" | "web">;
6
+ export declare const TUI_IS_TOUCH: import("@angular/core").InjectionToken<import("@angular/core").Signal<boolean>>;
6
7
  /**
7
8
  * Detect if app is running under Cypress
8
9
  * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}
@@ -1,9 +0,0 @@
1
- import type { OnChanges } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare abstract class AbstractTuiController implements OnChanges {
5
- readonly change$: Subject<void>;
6
- ngOnChanges(): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTuiController, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractTuiController, never, never, {}, {}, never, never, false, never>;
9
- }
@@ -1,18 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- class AbstractTuiController {
5
- constructor() {
6
- this.change$ = new Subject();
7
- }
8
- ngOnChanges() {
9
- this.change$.next();
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractTuiController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractTuiController, usesOnChanges: true, ngImport: i0 }); }
13
- }
14
- export { AbstractTuiController };
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractTuiController, decorators: [{
16
- type: Directive
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jbGFzc2VzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUU3QixNQUNzQixxQkFBcUI7SUFEM0M7UUFFb0IsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FLakQ7SUFIVSxXQUFXO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQUxpQixxQkFBcUI7bUdBQXJCLHFCQUFxQjs7U0FBckIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBRDFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7T25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpQ29udHJvbGxlciBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHVibGljIHJlYWRvbmx5IGNoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cbn1cbiJdfQ==