@taiga-ui/kit 4.76.0 → 4.78.0

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 (29) hide show
  1. package/components/files/input-files/input-files.component.d.ts +4 -1
  2. package/components/files/input-files/input-files.directive.d.ts +1 -0
  3. package/components/filter/filter.component.d.ts +1 -1
  4. package/components/input-date-multi/index.d.ts +1 -0
  5. package/components/input-date-multi/input-date-multi.directive.d.ts +2 -2
  6. package/components/input-date-multi/input-date-multi.options.d.ts +11 -0
  7. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +3 -2
  8. package/esm2022/components/files/input-files/input-files.component.mjs +13 -5
  9. package/esm2022/components/files/input-files/input-files.directive.mjs +8 -3
  10. package/esm2022/components/filter/filter.component.mjs +3 -2
  11. package/esm2022/components/input-date-multi/index.mjs +2 -1
  12. package/esm2022/components/input-date-multi/input-date-multi.directive.mjs +25 -11
  13. package/esm2022/components/input-date-multi/input-date-multi.options.mjs +31 -0
  14. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +3 -4
  15. package/esm2022/components/progress/progress-bar/progress-color-segments.directive.mjs +16 -30
  16. package/esm2022/directives/connected/connected.directive.mjs +2 -2
  17. package/fesm2022/taiga-ui-kit-components-files.mjs +17 -5
  18. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-kit-components-filter.mjs +2 -1
  20. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +53 -11
  22. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -3
  24. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-kit-components-progress.mjs +15 -29
  26. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-kit-directives-connected.mjs +2 -2
  28. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  29. package/package.json +10 -10
@@ -22,8 +22,7 @@ import { tuiIsEditingKey } from '@taiga-ui/core/utils/miscellaneous';
22
22
  import { TuiChevron } from '@taiga-ui/kit/directives';
23
23
  import { TUI_COUNTRIES, TUI_INTERNATIONAL_SEARCH } from '@taiga-ui/kit/tokens';
24
24
  import { tuiGetCallingCode } from '@taiga-ui/kit/utils';
25
- import { validatePhoneNumberLength } from 'libphonenumber-js';
26
- import { getCountryCallingCode } from 'libphonenumber-js/core';
25
+ import { getCountryCallingCode, validatePhoneNumberLength, } from 'libphonenumber-js/core';
27
26
  import { from, skip } from 'rxjs';
28
27
  import { TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS } from './input-phone-international.options';
29
28
  import * as i0 from "@angular/core";
@@ -84,7 +83,7 @@ class TuiInputPhoneInternational extends TuiControl {
84
83
  const prefixedValue = newValue.startsWith(CHAR_PLUS)
85
84
  ? newValue
86
85
  : CHAR_PLUS + newValue;
87
- if (validatePhoneNumberLength(prefixedValue) === 'TOO_SHORT') {
86
+ if (validatePhoneNumberLength(prefixedValue, phonesMetadata) === 'TOO_SHORT') {
88
87
  return;
89
88
  }
90
89
  const countryIsoCode = maskitoGetCountryFromNumber(prefixedValue, phonesMetadata);
@@ -207,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
207
206
  type: ViewChild,
208
207
  args: [forwardRef(() => TuiTextfieldDropdownDirective), { read: TemplateRef }]
209
208
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFDSCwrQkFBK0IsRUFFL0IsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUUsNEJBQTRCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9B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SUFBSSxFQUFFLFVBQVUsRUFBQztnQkFJMUIsV0FBVztzQkFEM0IsWUFBWTt1QkFBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQXdDcEMsYUFBYTtzQkFEbkIsS0FBSztnQkFJVSxvQkFBb0I7c0JBRG5DLE1BQU07Z0JBTUksY0FBYztzQkFEeEIsS0FBSzt1QkFBQyxXQUFXO2dCQU1QLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQXdEVCxRQUFRO3NCQURyQixTQUFTO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdGb3IsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICB0eXBlIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgdW50cmFja2VkLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b09ic2VydmFibGUsIHRvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hc2tpdG9EaXJlY3RpdmV9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHtcbiAgICBtYXNraXRvSW5pdGlhbENhbGlicmF0aW9uUGx1Z2luLFxuICAgIHR5cGUgTWFza2l0b09wdGlvbnMsXG4gICAgbWFza2l0b1RyYW5zZm9ybSxcbn0gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9SZW1vdmVPbkJsdXJQbHVnaW59IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge21hc2tpdG9HZXRDb3VudHJ5RnJvbU51bWJlciwgbWFza2l0b1Bob25lT3B0aW9uc0dlbmVyYXRvcn0gZnJvbSAnQG1hc2tpdG8vcGhvbmUnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge0NIQVJfUExVUywgVFVJX0RFRkFVTFRfTUFUQ0hFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBUdWlBdXRvRm9jdXMsXG4gICAgdHVpQXV0b0ZvY3VzT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cyc7XG5pbXBvcnQge1RVSV9JU19JT1MsIHR1aUZhbGxiYWNrVmFsdWVQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlJc0lucHV0RXZlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpRGlyZWN0aXZlQmluZGluZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpRGF0YUxpc3QsIFR1aU9wdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX09QVElPTlMsXG4gICAgVHVpVGV4dGZpZWxkLFxuICAgIFR1aVRleHRmaWVsZERyb3Bkb3duRGlyZWN0aXZlLFxuICAgIHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICB0dWlEcm9wZG93bixcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBUdWlEcm9wZG93bk9wZW4sXG4gICAgdHVpRHJvcGRvd25PcGVuLFxuICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUdWlHcm91cH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9ncm91cCc7XG5pbXBvcnQge1R1aUZsYWdQaXBlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9waXBlcy9mbGFnJztcbmltcG9ydCB7VFVJX0NPTU1PTl9JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7dHVpSXNFZGl0aW5nS2V5fSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHlwZSBUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4vdHlwZXMnO1xuaW1wb3J0IHtUdWlDaGV2cm9ufSBmcm9tICdAdGFpZ2EtdWkva2l0L2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTLCBUVUlfSU5URVJOQVRJT05BTF9TRUFSQ0h9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpR2V0Q2FsbGluZ0NvZGV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMnO1xuaW1wb3J0IHt0eXBlIFBvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHt2YWxpZGF0ZVBob25lTnVtYmVyTGVuZ3RofSBmcm9tICdsaWJwaG9uZW51bWJlci1qcyc7XG5pbXBvcnQge2dldENvdW50cnlDYWxsaW5nQ29kZSwgdHlwZSBNZXRhZGF0YUpzb259IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzL2NvcmUnO1xuaW1wb3J0IHtmcm9tLCBza2lwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TfSBmcm9tICcuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwub3B0aW9ucyc7XG5cbmNvbnN0IE5PVF9GT1JNX0NPTlRST0xfU1lNQk9MUyA9IC9bXitcXGRdL2c7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgdmVyc2lvbiBmcm9tIGV4cGVyaW1lbnRhbCBwYWNrYWdlIGluc3RlYWQgKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFR1aUF1dG9Gb2N1cyxcbiAgICAgICAgVHVpQ2hldnJvbixcbiAgICAgICAgVHVpRGF0YUxpc3QsXG4gICAgICAgIFR1aUZsYWdQaXBlLFxuICAgICAgICBUdWlUZXh0ZmllbGQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsKSxcbiAgICAgICAgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyKCcnKSxcbiAgICAgICAgdHVpQXV0b0ZvY3VzT3B0aW9uc1Byb3ZpZGVyKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSksXG4gICAgICAgIHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcih7Y2xlYW5lcjogc2lnbmFsKGZhbHNlKX0pLFxuICAgICAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcih7XG4gICAgICAgICAgICBsaW1pdFdpZHRoOiAnZml4ZWQnLFxuICAgICAgICAgICAgYWxpZ246ICdyaWdodCcsXG4gICAgICAgIH0pLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlHcm91cCwgVHVpRHJvcGRvd25EaXJlY3RpdmUsIFR1aVdpdGhEcm9wZG93bk9wZW5dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbCBleHRlbmRzIFR1aUNvbnRyb2w8c3RyaW5nPiB7XG4gICAgQFZpZXdDaGlsZChNYXNraXRvRGlyZWN0aXZlLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKFR1aUF1dG9Gb2N1cywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oVHVpT3B0aW9uLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0T3B0aW9ucz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50Pj47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNJb3MgPSBpbmplY3QoVFVJX0lTX0lPUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duID0gdHVpRHJvcGRvd24obnVsbCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX1BIT05FX0lOVEVSTkFUSU9OQUxfT1BUSU9OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5zaXplO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hbWVzID0gdG9TaWduYWwoaW5qZWN0KFRVSV9DT1VOVFJJRVMpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWV0YWRhdGEgPSB0b1NpZ25hbChmcm9tKHRoaXMub3B0aW9ucy5tZXRhZGF0YSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb3VudHJpZXMgPSBzaWduYWwodGhpcy5vcHRpb25zLmNvdW50cmllcyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50cnlJc29Db2RlID0gc2lnbmFsKHRoaXMub3B0aW9ucy5jb3VudHJ5SXNvQ29kZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25zID0gaW5qZWN0KFRVSV9DT01NT05fSUNPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IHRvU2lnbmFsKGluamVjdChUVUlfSU5URVJOQVRJT05BTF9TRUFSQ0gpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzZXBhcmF0b3IgPSBzaWduYWwodGhpcy5vcHRpb25zLnNlcGFyYXRvcik7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsdGVyZWQgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLmNvdW50cmllcygpXG4gICAgICAgICAgICAubWFwKChpc28pID0+ICh7XG4gICAgICAgICAgICAgICAgaXNvLFxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZXMoKT8uW2lzb10gfHwgJycsXG4gICAgICAgICAgICAgICAgY29kZTogdHVpR2V0Q2FsbGluZ0NvZGUoaXNvLCB0aGlzLm1ldGFkYXRhKCkpLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuZmlsdGVyKCh7bmFtZSwgY29kZX0pID0+IFRVSV9ERUZBVUxUX01BVENIRVIobmFtZSArIGNvZGUsIHRoaXMuc2VhcmNoKCkpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc2sgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLmNvbXB1dGVNYXNrKHRoaXMuY291bnRyeUlzb0NvZGUoKSwgdGhpcy5tZXRhZGF0YSgpLCB0aGlzLnNlcGFyYXRvcigpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICQgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlEcm9wZG93bk9wZW4sXG4gICAgICAgICd0dWlEcm9wZG93bkVuYWJsZWQnLFxuICAgICAgICB0aGlzLmludGVyYWN0aXZlLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgdGV4dGZpZWxkVmFsdWUgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvdW50cnlTZWFyY2ggPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvdW50cnlJc29Db2RlKS5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICk7XG5cbiAgICBASW5wdXQoJ2NvdW50cmllcycpXG4gICAgcHVibGljIHNldCBjb3VudHJpZXNWYWx1ZSh2YWx1ZTogcmVhZG9ubHkgVHVpQ291bnRyeUlzb0NvZGVbXSkge1xuICAgICAgICB0aGlzLmNvdW50cmllcy5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgnY291bnRyeUlzb0NvZGUnKVxuICAgIHB1YmxpYyBzZXQgaXNvQ29kZShjb2RlOiBUdWlDb3VudHJ5SXNvQ29kZSkge1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlLnNldChjb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXNGaXJzdEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdE9wdGlvbnM/LmdldCgwKT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhc3RlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwaG9uZXNNZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdHVpSXNJbnB1dEV2ZW50KGV2ZW50KSB8fFxuICAgICAgICAgICAgIXBob25lc01ldGFkYXRhIHx8XG4gICAgICAgICAgICAoIWV2ZW50LmlucHV0VHlwZS5pbmNsdWRlcygnRHJvcCcpICYmICFldmVudC5pbnB1dFR5cGUuaW5jbHVkZXMoJ1Bhc3RlJykpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBldmVudC5kYXRhIHx8ICcnO1xuICAgICAgICBjb25zdCBwcmVmaXhlZFZhbHVlID0gbmV3VmFsdWUuc3RhcnRzV2l0aChDSEFSX1BMVVMpXG4gICAgICAgICAgICA/IG5ld1ZhbHVlXG4gICAgICAgICAgICA6IENIQVJfUExVUyArIG5ld1ZhbHVlO1xuXG4gICAgICAgIGlmICh2YWxpZGF0ZVBob25lTnVtYmVyTGVuZ3RoKHByZWZpeGVkVmFsdWUpID09PSAnVE9PX1NIT1JUJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY291bnRyeUlzb0NvZGUgPSBtYXNraXRvR2V0Q291bnRyeUZyb21OdW1iZXIocHJlZml4ZWRWYWx1ZSwgcGhvbmVzTWV0YWRhdGEpO1xuXG4gICAgICAgIGlmIChjb3VudHJ5SXNvQ29kZSkge1xuICAgICAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZS5zZXQoY291bnRyeUlzb0NvZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uSXRlbUNsaWNrKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlLnNldChpc29Db2RlKTtcbiAgICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHVubWFza2VkVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHVubWFza2VkVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IG1hc2sgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5tYXNrKCkpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLnZhbHVlKCkpO1xuXG4gICAgICAgIHRoaXMudGV4dGZpZWxkVmFsdWUgPSBtYXNrXG4gICAgICAgICAgICA/IG1hc2tpdG9UcmFuc2Zvcm0odmFsdWUsIG1hc2spXG4gICAgICAgICAgICA6IC8vIGl0IHdpbGwgYmUgY2FsaWJyYXRlZCBsYXRlciB3aGVuIG1hc2sgaXMgcmVhZHkgKGJ5IG1hc2tpdG9Jbml0aWFsQ2FsaWJyYXRpb25QbHVnaW4pXG4gICAgICAgICAgICAgIHZhbHVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZChmb3J3YXJkUmVmKCgpID0+IFR1aVRleHRmaWVsZERyb3Bkb3duRGlyZWN0aXZlKSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICBwcm90ZWN0ZWQgc2V0IHRlbXBsYXRlKHRlbXBsYXRlOiBQb2x5bW9ycGhldXNDb250ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uc2V0KHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGhvbmVNZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEoKTtcblxuICAgICAgICBpZiAoIXRoaXMudGV4dGZpZWxkVmFsdWUgJiYgcGhvbmVNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGRWYWx1ZSA9IGAke0NIQVJfUExVUyArIGdldENvdW50cnlDYWxsaW5nQ29kZSh0aGlzLmNvdW50cnlJc29Db2RlKCksIHBob25lTWV0YWRhdGEpfSBgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2UobWFza2VkVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bm1hc2tlZFZhbHVlID0gbWFza2VkVmFsdWUucmVwbGFjZUFsbChOT1RfRk9STV9DT05UUk9MX1NZTUJPTFMsICcnKTtcbiAgICAgICAgY29uc3QgcGhvbmVzTWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKCk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlDYWxsaW5nQ29kZSA9IHBob25lc01ldGFkYXRhXG4gICAgICAgICAgICA/IENIQVJfUExVUyArIGdldENvdW50cnlDYWxsaW5nQ29kZSh0aGlzLmNvdW50cnlJc29Db2RlKCksIHBob25lc01ldGFkYXRhKVxuICAgICAgICAgICAgOiAnJztcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHVubWFza2VkVmFsdWUgPT09IGNvdW50cnlDYWxsaW5nQ29kZSA/ICcnIDogdW5tYXNrZWRWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uS2V5RG93bih7a2V5fTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNFZGl0aW5nS2V5KGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyPy5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrKFxuICAgICAgICBjb3VudHJ5SXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUsXG4gICAgICAgIG1ldGFkYXRhPzogTWV0YWRhdGFKc29uLFxuICAgICAgICBzZXBhcmF0b3I/OiBzdHJpbmcsXG4gICAgKTogTWFza2l0b09wdGlvbnMgfCBudWxsIHtcbiAgICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7cGx1Z2lucywgLi4ucmVzdE9wdGlvbnN9ID0gbWFza2l0b1Bob25lT3B0aW9uc0dlbmVyYXRvcih7XG4gICAgICAgICAgICBjb3VudHJ5SXNvQ29kZSxcbiAgICAgICAgICAgIG1ldGFkYXRhLFxuICAgICAgICAgICAgc2VwYXJhdG9yLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVzdE9wdGlvbnMsXG4gICAgICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICAgICAgLi4ucGx1Z2lucyxcbiAgICAgICAgICAgICAgICBtYXNraXRvUmVtb3ZlT25CbHVyUGx1Z2luKFxuICAgICAgICAgICAgICAgICAgICBgJHtDSEFSX1BMVVN9JHtnZXRDb3VudHJ5Q2FsbGluZ0NvZGUoY291bnRyeUlzb0NvZGUsIG1ldGFkYXRhKX0gYCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hc2tpdG9Jbml0aWFsQ2FsaWJyYXRpb25QbHVnaW4oKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiPHR1aS10ZXh0ZmllbGRcbiAgICBjbGFzcz1cInQtc2VsZWN0XCJcbiAgICBbY29udGVudF09XCJmbGFnXCJcbiAgICBbdHVpQ2hldnJvbl09XCJvcGVuKClcIlxuPlxuICAgIDxzZWxlY3RcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNvdW50cnlcIlxuICAgICAgICBuZ01vZGVsPVwiXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkXG4gICAgICAgIFthdHRyLmRhdGEtbW9kZV09XCJtb2RlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFtmb2N1c2VkXT1cIm9wZW4oKVwiXG4gICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgID48L3NlbGVjdD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZmxhZz5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJ0LWZsYWdcIlxuICAgICAgICAgICAgW2FsdF09XCJuYW1lcygpPy5bY291bnRyeUlzb0NvZGUoKV1cIlxuICAgICAgICAgICAgW3NyY109XCJjb3VudHJ5SXNvQ29kZSgpIHwgdHVpRmxhZ1wiXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvdHVpLXRleHRmaWVsZD5cblxuPHR1aS10ZXh0ZmllbGQ+XG4gICAgPCEtLVRPRE86IFJlcGxhY2UgYXR0cmlidXRlIGJpbmRpbmdzIHdpdGggaW5wdXRzIGFmdGVyIEFuZ3VsYXIgdXBkYXRlZCBhbmQgc2lnbmFsIGJpbmRpbmdzIHByb3Blcmx5IHVwZGF0ZS0tPlxuICAgIDxpbnB1dFxuICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICB0dWlUZXh0ZmllbGRcbiAgICAgICAgW2F0dHIuZGF0YS1tb2RlXT1cIm1vZGUoKVwiXG4gICAgICAgIFthdHRyLnJlYWRvbmx5XT1cInJlYWRPbmx5KCkgfHwgbnVsbFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgW21hc2tpdG9dPVwibWFzaygpXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidGV4dGZpZWxkVmFsdWVcIlxuICAgICAgICAoYmVmb3JlaW5wdXQuY2FwdHVyZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gICAgICAgIChmb2N1cyk9XCIhcmVhZE9ubHkoKSAmJiBvbkZvY3VzKClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8IS0tXG4gICAgVE9ETzogZ2V0IHJpZCBvZiBidWlsdC1pbiBpbnB1dCBhbmQgbGFiZWwgYW5kIGp1c3QgZXh0ZXJuYWxpemUgZXZlcnl0aGluZyBpbiA1LjBcbiAgICA8dHVpLWlucHV0LXBob25lLWludGVybmF0aW9uYWw+XG4gICAgICA8bGFiZWwgdHVpTGFiZWw+TXkgbGFiZWw8L2xhYmVsPlxuICAgICAgPGlucHV0IHR1aVRleHRmaWVsZCBwbGFjZWhvbGRlcj1cIk15IHBsYWNlaG9sZGVyXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIC8+XG4gICAgICA8dHVpLWljb24gaWNvbj1cIkB0dWkucGhvbmVcIiAvPlxuICAgIDwvdHVpLWlucHV0LXBob25lLWludGVybmF0aW9uYWw+XG4gICAgLS0+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpLWljb24sIGltZ1wiIC8+XG5cbiAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgPC9sYWJlbD5cbjwvdHVpLXRleHRmaWVsZD5cblxuPG5nLWNvbnRhaW5lciAqdHVpVGV4dGZpZWxkRHJvcGRvd24+XG4gICAgPHR1aS10ZXh0ZmllbGRcbiAgICAgICAgKm5nSWY9XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgICAgICBjbGFzcz1cInQtc2VhcmNoXCJcbiAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5zZWFyY2hcIlxuICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRcbiAgICAgICAgICAgIFtmb2N1c2VkXT1cInRydWVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoKClcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsKClcIlxuICAgICAgICAgICAgW3R1aUF1dG9Gb2N1c109XCIhaXNJb3NcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cImZvY3VzRmlyc3RJdGVtKClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoLnNldCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L3R1aS10ZXh0ZmllbGQ+XG5cbiAgICA8dHVpLWRhdGEtbGlzdCAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZCgpXCJcbiAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbS5pc28pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWZsYWdcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pc28gfCB0dWlGbGFnXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb2RlXCI+e3sgaXRlbS5jb2RlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L3R1aS1kYXRhLWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFDSCwrQkFBK0IsRUFFL0IsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUUsNEJBQTRCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9B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STFCLFdBQVc7c0JBRDNCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkF3Q3BDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSVUsb0JBQW9CO3NCQURuQyxNQUFNO2dCQU1JLGNBQWM7c0JBRHhCLEtBQUs7dUJBQUMsV0FBVztnQkFNUCxPQUFPO3NCQURqQixLQUFLO3VCQUFDLGdCQUFnQjtnQkF3RFQsUUFBUTtzQkFEckIsU0FBUzt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nRm9yLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgdHlwZSBRdWVyeUxpc3QsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHVudHJhY2tlZCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9PYnNlcnZhYmxlLCB0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXNraXRvRGlyZWN0aXZlfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7XG4gICAgbWFza2l0b0luaXRpYWxDYWxpYnJhdGlvblBsdWdpbixcbiAgICB0eXBlIE1hc2tpdG9PcHRpb25zLFxuICAgIG1hc2tpdG9UcmFuc2Zvcm0sXG59IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHttYXNraXRvUmVtb3ZlT25CbHVyUGx1Z2lufSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHttYXNraXRvR2V0Q291bnRyeUZyb21OdW1iZXIsIG1hc2tpdG9QaG9uZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL3Bob25lJztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtDSEFSX1BMVVMsIFRVSV9ERUZBVUxUX01BVENIRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gICAgVHVpQXV0b0ZvY3VzLFxuICAgIHR1aUF1dG9Gb2N1c09wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2F1dG8tZm9jdXMnO1xuaW1wb3J0IHtUVUlfSVNfSU9TLCB0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpSXNJbnB1dEV2ZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aURpcmVjdGl2ZUJpbmRpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aURhdGFMaXN0LCBUdWlPcHRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9PUFRJT05TLFxuICAgIFR1aVRleHRmaWVsZCxcbiAgICBUdWlUZXh0ZmllbGREcm9wZG93bkRpcmVjdGl2ZSxcbiAgICB0dWlUZXh0ZmllbGRPcHRpb25zUHJvdmlkZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgdHVpRHJvcGRvd24sXG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgVHVpRHJvcGRvd25PcGVuLFxuICAgIHR1aURyb3Bkb3duT3BlbixcbiAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB7VHVpR3JvdXB9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZ3JvdXAnO1xuaW1wb3J0IHtUdWlGbGFnUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcGlwZXMvZmxhZyc7XG5pbXBvcnQge1RVSV9DT01NT05fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUlzRWRpdGluZ0tleX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R5cGUgVHVpQ291bnRyeUlzb0NvZGV9IGZyb20gJ0B0YWlnYS11aS9pMThuL3R5cGVzJztcbmltcG9ydCB7VHVpQ2hldnJvbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9kaXJlY3RpdmVzJztcbmltcG9ydCB7VFVJX0NPVU5UUklFUywgVFVJX0lOVEVSTkFUSU9OQUxfU0VBUkNIfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge3R1aUdldENhbGxpbmdDb2RlfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7dHlwZSBQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7XG4gICAgZ2V0Q291bnRyeUNhbGxpbmdDb2RlLFxuICAgIHZhbGlkYXRlUGhvbmVOdW1iZXJMZW5ndGgsXG4gICAgdHlwZSBNZXRhZGF0YUpzb24sXG59IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzL2NvcmUnO1xuaW1wb3J0IHtmcm9tLCBza2lwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TfSBmcm9tICcuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwub3B0aW9ucyc7XG5cbmNvbnN0IE5PVF9GT1JNX0NPTlRST0xfU1lNQk9MUyA9IC9bXitcXGRdL2c7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgdmVyc2lvbiBmcm9tIGV4cGVyaW1lbnRhbCBwYWNrYWdlIGluc3RlYWQgKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFR1aUF1dG9Gb2N1cyxcbiAgICAgICAgVHVpQ2hldnJvbixcbiAgICAgICAgVHVpRGF0YUxpc3QsXG4gICAgICAgIFR1aUZsYWdQaXBlLFxuICAgICAgICBUdWlUZXh0ZmllbGQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsKSxcbiAgICAgICAgdHVpRmFsbGJhY2tWYWx1ZVByb3ZpZGVyKCcnKSxcbiAgICAgICAgdHVpQXV0b0ZvY3VzT3B0aW9uc1Byb3ZpZGVyKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSksXG4gICAgICAgIHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcih7Y2xlYW5lcjogc2lnbmFsKGZhbHNlKX0pLFxuICAgICAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcih7XG4gICAgICAgICAgICBsaW1pdFdpZHRoOiAnZml4ZWQnLFxuICAgICAgICAgICAgYWxpZ246ICdyaWdodCcsXG4gICAgICAgIH0pLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlHcm91cCwgVHVpRHJvcGRvd25EaXJlY3RpdmUsIFR1aVdpdGhEcm9wZG93bk9wZW5dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbCBleHRlbmRzIFR1aUNvbnRyb2w8c3RyaW5nPiB7XG4gICAgQFZpZXdDaGlsZChNYXNraXRvRGlyZWN0aXZlLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKFR1aUF1dG9Gb2N1cywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oVHVpT3B0aW9uLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0T3B0aW9ucz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50Pj47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNJb3MgPSBpbmplY3QoVFVJX0lTX0lPUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duID0gdHVpRHJvcGRvd24obnVsbCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX1BIT05FX0lOVEVSTkFUSU9OQUxfT1BUSU9OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5zaXplO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hbWVzID0gdG9TaWduYWwoaW5qZWN0KFRVSV9DT1VOVFJJRVMpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWV0YWRhdGEgPSB0b1NpZ25hbChmcm9tKHRoaXMub3B0aW9ucy5tZXRhZGF0YSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb3VudHJpZXMgPSBzaWduYWwodGhpcy5vcHRpb25zLmNvdW50cmllcyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50cnlJc29Db2RlID0gc2lnbmFsKHRoaXMub3B0aW9ucy5jb3VudHJ5SXNvQ29kZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25zID0gaW5qZWN0KFRVSV9DT01NT05fSUNPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IHRvU2lnbmFsKGluamVjdChUVUlfSU5URVJOQVRJT05BTF9TRUFSQ0gpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzZXBhcmF0b3IgPSBzaWduYWwodGhpcy5vcHRpb25zLnNlcGFyYXRvcik7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsdGVyZWQgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLmNvdW50cmllcygpXG4gICAgICAgICAgICAubWFwKChpc28pID0+ICh7XG4gICAgICAgICAgICAgICAgaXNvLFxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZXMoKT8uW2lzb10gfHwgJycsXG4gICAgICAgICAgICAgICAgY29kZTogdHVpR2V0Q2FsbGluZ0NvZGUoaXNvLCB0aGlzLm1ldGFkYXRhKCkpLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuZmlsdGVyKCh7bmFtZSwgY29kZX0pID0+IFRVSV9ERUZBVUxUX01BVENIRVIobmFtZSArIGNvZGUsIHRoaXMuc2VhcmNoKCkpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc2sgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLmNvbXB1dGVNYXNrKHRoaXMuY291bnRyeUlzb0NvZGUoKSwgdGhpcy5tZXRhZGF0YSgpLCB0aGlzLnNlcGFyYXRvcigpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICQgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlEcm9wZG93bk9wZW4sXG4gICAgICAgICd0dWlEcm9wZG93bkVuYWJsZWQnLFxuICAgICAgICB0aGlzLmludGVyYWN0aXZlLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgdGV4dGZpZWxkVmFsdWUgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvdW50cnlTZWFyY2ggPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvdW50cnlJc29Db2RlKS5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICk7XG5cbiAgICBASW5wdXQoJ2NvdW50cmllcycpXG4gICAgcHVibGljIHNldCBjb3VudHJpZXNWYWx1ZSh2YWx1ZTogcmVhZG9ubHkgVHVpQ291bnRyeUlzb0NvZGVbXSkge1xuICAgICAgICB0aGlzLmNvdW50cmllcy5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgnY291bnRyeUlzb0NvZGUnKVxuICAgIHB1YmxpYyBzZXQgaXNvQ29kZShjb2RlOiBUdWlDb3VudHJ5SXNvQ29kZSkge1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlLnNldChjb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXNGaXJzdEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdE9wdGlvbnM/LmdldCgwKT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhc3RlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwaG9uZXNNZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdHVpSXNJbnB1dEV2ZW50KGV2ZW50KSB8fFxuICAgICAgICAgICAgIXBob25lc01ldGFkYXRhIHx8XG4gICAgICAgICAgICAoIWV2ZW50LmlucHV0VHlwZS5pbmNsdWRlcygnRHJvcCcpICYmICFldmVudC5pbnB1dFR5cGUuaW5jbHVkZXMoJ1Bhc3RlJykpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBldmVudC5kYXRhIHx8ICcnO1xuICAgICAgICBjb25zdCBwcmVmaXhlZFZhbHVlID0gbmV3VmFsdWUuc3RhcnRzV2l0aChDSEFSX1BMVVMpXG4gICAgICAgICAgICA/IG5ld1ZhbHVlXG4gICAgICAgICAgICA6IENIQVJfUExVUyArIG5ld1ZhbHVlO1xuXG4gICAgICAgIGlmICh2YWxpZGF0ZVBob25lTnVtYmVyTGVuZ3RoKHByZWZpeGVkVmFsdWUsIHBob25lc01ldGFkYXRhKSA9PT0gJ1RPT19TSE9SVCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gbWFza2l0b0dldENvdW50cnlGcm9tTnVtYmVyKHByZWZpeGVkVmFsdWUsIHBob25lc01ldGFkYXRhKTtcblxuICAgICAgICBpZiAoY291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUuc2V0KGNvdW50cnlJc29Db2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkl0ZW1DbGljayhpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZS5zZXQoaXNvQ29kZSk7XG4gICAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh1bm1hc2tlZFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh1bm1hc2tlZFZhbHVlKTtcblxuICAgICAgICBjb25zdCBtYXNrID0gdW50cmFja2VkKCgpID0+IHRoaXMubWFzaygpKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy52YWx1ZSgpKTtcblxuICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlID0gbWFza1xuICAgICAgICAgICAgPyBtYXNraXRvVHJhbnNmb3JtKHZhbHVlLCBtYXNrKVxuICAgICAgICAgICAgOiAvLyBpdCB3aWxsIGJlIGNhbGlicmF0ZWQgbGF0ZXIgd2hlbiBtYXNrIGlzIHJlYWR5IChieSBtYXNraXRvSW5pdGlhbENhbGlicmF0aW9uUGx1Z2luKVxuICAgICAgICAgICAgICB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBUdWlUZXh0ZmllbGREcm9wZG93bkRpcmVjdGl2ZSksIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcHJvdGVjdGVkIHNldCB0ZW1wbGF0ZSh0ZW1wbGF0ZTogUG9seW1vcnBoZXVzQ29udGVudCkge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLnNldCh0ZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBob25lTWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRleHRmaWVsZFZhbHVlICYmIHBob25lTWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkVmFsdWUgPSBgJHtDSEFSX1BMVVMgKyBnZXRDb3VudHJ5Q2FsbGluZ0NvZGUodGhpcy5jb3VudHJ5SXNvQ29kZSgpLCBwaG9uZU1ldGFkYXRhKX0gYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblZhbHVlQ2hhbmdlKG1hc2tlZFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5tYXNrZWRWYWx1ZSA9IG1hc2tlZFZhbHVlLnJlcGxhY2VBbGwoTk9UX0ZPUk1fQ09OVFJPTF9TWU1CT0xTLCAnJyk7XG4gICAgICAgIGNvbnN0IHBob25lc01ldGFkYXRhID0gdGhpcy5tZXRhZGF0YSgpO1xuICAgICAgICBjb25zdCBjb3VudHJ5Q2FsbGluZ0NvZGUgPSBwaG9uZXNNZXRhZGF0YVxuICAgICAgICAgICAgPyBDSEFSX1BMVVMgKyBnZXRDb3VudHJ5Q2FsbGluZ0NvZGUodGhpcy5jb3VudHJ5SXNvQ29kZSgpLCBwaG9uZXNNZXRhZGF0YSlcbiAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZSh1bm1hc2tlZFZhbHVlID09PSBjb3VudHJ5Q2FsbGluZ0NvZGUgPyAnJyA6IHVubWFza2VkVmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbktleURvd24oe2tleX06IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR1aUlzRWRpdGluZ0tleShrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcj8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlTWFzayhcbiAgICAgICAgY291bnRyeUlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlLFxuICAgICAgICBtZXRhZGF0YT86IE1ldGFkYXRhSnNvbixcbiAgICAgICAgc2VwYXJhdG9yPzogc3RyaW5nLFxuICAgICk6IE1hc2tpdG9PcHRpb25zIHwgbnVsbCB7XG4gICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3BsdWdpbnMsIC4uLnJlc3RPcHRpb25zfSA9IG1hc2tpdG9QaG9uZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgY291bnRyeUlzb0NvZGUsXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3RPcHRpb25zLFxuICAgICAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgICAgICAgIC4uLnBsdWdpbnMsXG4gICAgICAgICAgICAgICAgbWFza2l0b1JlbW92ZU9uQmx1clBsdWdpbihcbiAgICAgICAgICAgICAgICAgICAgYCR7Q0hBUl9QTFVTfSR7Z2V0Q291bnRyeUNhbGxpbmdDb2RlKGNvdW50cnlJc29Db2RlLCBtZXRhZGF0YSl9IGAsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtYXNraXRvSW5pdGlhbENhbGlicmF0aW9uUGx1Z2luKCksXG4gICAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjx0dWktdGV4dGZpZWxkXG4gICAgY2xhc3M9XCJ0LXNlbGVjdFwiXG4gICAgW2NvbnRlbnRdPVwiZmxhZ1wiXG4gICAgW3R1aUNoZXZyb25dPVwib3BlbigpXCJcbj5cbiAgICA8c2VsZWN0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJDb3VudHJ5XCJcbiAgICAgICAgbmdNb2RlbD1cIlwiXG4gICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICBbYXR0ci5kYXRhLW1vZGVdPVwibW9kZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbZm9jdXNlZF09XCJvcGVuKClcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICA+PC9zZWxlY3Q+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ZsYWc+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgIFthbHRdPVwibmFtZXMoKT8uW2NvdW50cnlJc29Db2RlKCldXCJcbiAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeUlzb0NvZGUoKSB8IHR1aUZsYWdcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3R1aS10ZXh0ZmllbGQ+XG5cbjx0dWktdGV4dGZpZWxkPlxuICAgIDwhLS1UT0RPOiBSZXBsYWNlIGF0dHJpYnV0ZSBiaW5kaW5ncyB3aXRoIGlucHV0cyBhZnRlciBBbmd1bGFyIHVwZGF0ZWQgYW5kIHNpZ25hbCBiaW5kaW5ncyBwcm9wZXJseSB1cGRhdGUtLT5cbiAgICA8aW5wdXRcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkXG4gICAgICAgIFthdHRyLmRhdGEtbW9kZV09XCJtb2RlKClcIlxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkT25seSgpIHx8IG51bGxcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFttYXNraXRvXT1cIm1hc2soKVwiXG4gICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInRleHRmaWVsZFZhbHVlXCJcbiAgICAgICAgKGJlZm9yZWlucHV0LmNhcHR1cmUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgICAoZm9jdXMpPVwiIXJlYWRPbmx5KCkgJiYgb25Gb2N1cygpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgPCEtLVxuICAgIFRPRE86IGdldCByaWQgb2YgYnVpbHQtaW4gaW5wdXQgYW5kIGxhYmVsIGFuZCBqdXN0IGV4dGVybmFsaXplIGV2ZXJ5dGhpbmcgaW4gNS4wXG4gICAgPHR1aS1pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsPlxuICAgICAgPGxhYmVsIHR1aUxhYmVsPk15IGxhYmVsPC9sYWJlbD5cbiAgICAgIDxpbnB1dCB0dWlUZXh0ZmllbGQgcGxhY2Vob2xkZXI9XCJNeSBwbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAvPlxuICAgICAgPHR1aS1pY29uIGljb249XCJAdHVpLnBob25lXCIgLz5cbiAgICA8L3R1aS1pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsPlxuICAgIC0tPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInR1aS1pY29uLCBpbWdcIiAvPlxuXG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvbGFiZWw+XG48L3R1aS10ZXh0ZmllbGQ+XG5cbjxuZy1jb250YWluZXIgKnR1aVRleHRmaWVsZERyb3Bkb3duPlxuICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgICpuZ0lmPVwiY291bnRyeVNlYXJjaFwiXG4gICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJtXCJcbiAgICAgICAgY2xhc3M9XCJ0LXNlYXJjaFwiXG4gICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuc2VhcmNoXCJcbiAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHVpVGV4dGZpZWxkXG4gICAgICAgICAgICBbZm9jdXNlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaCgpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbCgpXCJcbiAgICAgICAgICAgIFt0dWlBdXRvRm9jdXNdPVwiIWlzSW9zXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJmb2N1c0ZpcnN0SXRlbSgpXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC90dWktdGV4dGZpZWxkPlxuXG4gICAgPHR1aS1kYXRhLWxpc3QgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWQoKVwiXG4gICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0ZW0uaXNvKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaXNvIHwgdHVpRmxhZ1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY29kZVwiPnt7IGl0ZW0uY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC90dWktZGF0YS1saXN0PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,22 +1,24 @@
1
- import { computed, Directive, inject, Input, signal } from '@angular/core';
1
+ import { ChangeDetectorRef, computed, Directive, inject, Input, signal, } from '@angular/core';
2
2
  import { toSignal } from '@angular/core/rxjs-interop';
3
- import { WaMutationObserverService, WA_MUTATION_OBSERVER_INIT, } from '@ng-web-apis/mutation-observer';
4
- import { tuiWatch } from '@taiga-ui/cdk/observables';
3
+ import { WaResizeObserverService } from '@ng-web-apis/resize-observer';
5
4
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
6
- import { map } from 'rxjs';
5
+ import { distinctUntilChanged, map, tap } from 'rxjs';
7
6
  import * as i0 from "@angular/core";
8
7
  class TuiProgressColorSegments {
9
8
  constructor() {
9
+ this.cdr = inject(ChangeDetectorRef, { skipSelf: true });
10
10
  this.colors = signal([]);
11
11
  this.el = tuiInjectElement();
12
- this.position = toSignal(inject(WaMutationObserverService, { self: true }).pipe(map(() => this.el.position), tuiWatch()), { initialValue: this.el.position });
13
- this.color = computed(() => {
14
- const colors = this.colors();
15
- const position = this.position();
16
- if (!colors.length || position <= 0) {
12
+ this.width = toSignal(inject(WaResizeObserverService, { self: true }).pipe(map(([x]) => x?.contentRect.width ?? 0), distinctUntilChanged(),
13
+ // Angular 16 bug
14
+ // Otherwise, host: {'[style.--tui-progress-color]': 'gradient()'} will not recomputed
15
+ tap(() => this.cdr.markForCheck())), { initialValue: this.el.offsetWidth });
16
+ this.gradient = computed((colors = this.colors()) => {
17
+ if (!colors.length) {
17
18
  return null;
18
19
  }
19
- const colorsString = colors.reduce((acc, color, i) => `${acc}, ${color} calc(${i} / ${colors.length} * 100% / ${position}) calc(${i + 1} / ${colors.length} * 100% / ${position})`, '');
20
+ const segmentWidth = this.width() / colors.length;
21
+ const colorsString = colors.reduce((acc, color, i) => `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`, '');
20
22
  return `linear-gradient(to right${colorsString})`;
21
23
  });
22
24
  }
@@ -24,15 +26,7 @@ class TuiProgressColorSegments {
24
26
  this.colors.set(colors);
25
27
  }
26
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressColorSegments, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiProgressColorSegments, isStandalone: true, selector: "progress[tuiProgressBar][tuiProgressColorSegments]", inputs: { colorsSetter: ["tuiProgressColorSegments", "colorsSetter"] }, host: { properties: { "style.--tui-progress-color": "color()" } }, providers: [
28
- WaMutationObserverService,
29
- {
30
- provide: WA_MUTATION_OBSERVER_INIT,
31
- useValue: {
32
- attributeOldValue: true,
33
- },
34
- },
35
- ], ngImport: i0 }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiProgressColorSegments, isStandalone: true, selector: "progress[tuiProgressBar][tuiProgressColorSegments]", inputs: { colorsSetter: ["tuiProgressColorSegments", "colorsSetter"] }, host: { properties: { "style.--tui-progress-color": "gradient()" } }, providers: [WaResizeObserverService], ngImport: i0 }); }
36
30
  }
37
31
  export { TuiProgressColorSegments };
38
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressColorSegments, decorators: [{
@@ -40,19 +34,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
40
34
  args: [{
41
35
  standalone: true,
42
36
  selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',
43
- providers: [
44
- WaMutationObserverService,
45
- {
46
- provide: WA_MUTATION_OBSERVER_INIT,
47
- useValue: {
48
- attributeOldValue: true,
49
- },
50
- },
51
- ],
52
- host: { '[style.--tui-progress-color]': 'color()' },
37
+ providers: [WaResizeObserverService],
38
+ host: { '[style.--tui-progress-color]': 'gradient()' },
53
39
  }]
54
40
  }], propDecorators: { colorsSetter: [{
55
41
  type: Input,
56
42
  args: ['tuiProgressColorSegments']
57
43
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtY29sb3Itc2VnbWVudHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWNvbG9yLXNlZ21lbnRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUNILHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDNUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFekIsTUFjYSx3QkFBd0I7SUFkckM7UUFlcUIsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkMsT0FBRSxHQUFHLGdCQUFnQixFQUF1QixDQUFDO1FBQzdDLGFBQVEsR0FBRyxRQUFRLENBQ2hDLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFFBQVEsRUFBRSxDQUNiLEVBQ0QsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUMsQ0FDbkMsQ0FBQztRQUVpQixVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUM5QixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDZCxHQUFHLEdBQUcsS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxNQUFNLGFBQWEsUUFBUSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLE1BQU0sYUFBYSxRQUFRLEdBQUcsRUFDaEksRUFBRSxDQUNMLENBQUM7WUFFRixPQUFPLDJCQUEyQixZQUFZLEdBQUcsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztLQU1OO0lBSkcsSUFDVyxZQUFZLENBQUMsTUFBeUI7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0EvQlEsd0JBQXdCO21HQUF4Qix3QkFBd0IsNE9BWHRCO1lBQ1AseUJBQXlCO1lBQ3pCO2dCQUNJLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFFBQVEsRUFBRTtvQkFDTixpQkFBaUIsRUFBRSxJQUFJO2lCQUMxQjthQUNKO1NBQ0o7O1NBR1Esd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBZHBDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvREFBb0Q7b0JBQzlELFNBQVMsRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCOzRCQUNJLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFFBQVEsRUFBRTtnQ0FDTixpQkFBaUIsRUFBRSxJQUFJOzZCQUMxQjt5QkFDSjtxQkFDSjtvQkFDRCxJQUFJLEVBQUUsRUFBQyw4QkFBOEIsRUFBRSxTQUFTLEVBQUM7aUJBQ3BEOzhCQThCYyxZQUFZO3NCQUR0QixLQUFLO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gICAgV2FNdXRhdGlvbk9ic2VydmVyU2VydmljZSxcbiAgICBXQV9NVVRBVElPTl9PQlNFUlZFUl9JTklULFxufSBmcm9tICdAbmctd2ViLWFwaXMvbXV0YXRpb24tb2JzZXJ2ZXInO1xuaW1wb3J0IHt0dWlXYXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3Byb2dyZXNzW3R1aVByb2dyZXNzQmFyXVt0dWlQcm9ncmVzc0NvbG9yU2VnbWVudHNdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgV2FNdXRhdGlvbk9ic2VydmVyU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogV0FfTVVUQVRJT05fT0JTRVJWRVJfSU5JVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDogeydbc3R5bGUuLS10dWktcHJvZ3Jlc3MtY29sb3JdJzogJ2NvbG9yKCknfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJvZ3Jlc3NDb2xvclNlZ21lbnRzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbG9ycyA9IHNpZ25hbDxyZWFkb25seSBzdHJpbmdbXT4oW10pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxQcm9ncmVzc0VsZW1lbnQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3NpdGlvbiA9IHRvU2lnbmFsKFxuICAgICAgICBpbmplY3QoV2FNdXRhdGlvbk9ic2VydmVyU2VydmljZSwge3NlbGY6IHRydWV9KS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuZWwucG9zaXRpb24pLFxuICAgICAgICAgICAgdHVpV2F0Y2goKSxcbiAgICAgICAgKSxcbiAgICAgICAge2luaXRpYWxWYWx1ZTogdGhpcy5lbC5wb3NpdGlvbn0sXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgY29sb3JzID0gdGhpcy5jb2xvcnMoKTtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uKCk7XG5cbiAgICAgICAgaWYgKCFjb2xvcnMubGVuZ3RoIHx8IHBvc2l0aW9uIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29sb3JzU3RyaW5nID0gY29sb3JzLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIGNvbG9yLCBpKSA9PlxuICAgICAgICAgICAgICAgIGAke2FjY30sICR7Y29sb3J9IGNhbGMoJHtpfSAvICR7Y29sb3JzLmxlbmd0aH0gKiAxMDAlIC8gJHtwb3NpdGlvbn0pIGNhbGMoJHtpICsgMX0gLyAke2NvbG9ycy5sZW5ndGh9ICogMTAwJSAvICR7cG9zaXRpb259KWAsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCR7Y29sb3JzU3RyaW5nfSlgO1xuICAgIH0pO1xuXG4gICAgQElucHV0KCd0dWlQcm9ncmVzc0NvbG9yU2VnbWVudHMnKVxuICAgIHB1YmxpYyBzZXQgY29sb3JzU2V0dGVyKGNvbG9yczogcmVhZG9ubHkgc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5jb2xvcnMuc2V0KGNvbG9ycyk7XG4gICAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtY29sb3Itc2VnbWVudHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWNvbG9yLXNlZ21lbnRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUVwRCxNQU1hLHdCQUF3QjtJQU5yQztRQU9xQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkMsT0FBRSxHQUFHLGdCQUFnQixFQUF1QixDQUFDO1FBQzdDLFVBQUssR0FBRyxRQUFRLENBQzdCLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQ3ZDLG9CQUFvQixFQUFFO1FBQ3RCLGlCQUFpQjtRQUNqQixzRkFBc0Y7UUFDdEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FDckMsRUFDRCxFQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBQyxDQUN0QyxDQUFDO1FBRWlCLGFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNsRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUM5QixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDZCxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksRUFDeEUsRUFBRSxDQUNMLENBQUM7WUFFRixPQUFPLDJCQUEyQixZQUFZLEdBQUcsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztLQU1OO0lBSkcsSUFDVyxZQUFZLENBQUMsTUFBeUI7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0FqQ1Esd0JBQXdCO21HQUF4Qix3QkFBd0IsK09BSHRCLENBQUMsdUJBQXVCLENBQUM7O1NBRzNCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQU5wQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0RBQW9EO29CQUM5RCxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDcEMsSUFBSSxFQUFFLEVBQUMsOEJBQThCLEVBQUUsWUFBWSxFQUFDO2lCQUN2RDs4QkFnQ2MsWUFBWTtzQkFEdEIsS0FBSzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7V2FSZXNpemVPYnNlcnZlclNlcnZpY2V9IGZyb20gJ0BuZy13ZWItYXBpcy9yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdwcm9ncmVzc1t0dWlQcm9ncmVzc0Jhcl1bdHVpUHJvZ3Jlc3NDb2xvclNlZ21lbnRzXScsXG4gICAgcHJvdmlkZXJzOiBbV2FSZXNpemVPYnNlcnZlclNlcnZpY2VdLFxuICAgIGhvc3Q6IHsnW3N0eWxlLi0tdHVpLXByb2dyZXNzLWNvbG9yXSc6ICdncmFkaWVudCgpJ30sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByb2dyZXNzQ29sb3JTZWdtZW50cyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYsIHtza2lwU2VsZjogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29sb3JzID0gc2lnbmFsPHJlYWRvbmx5IHN0cmluZ1tdPihbXSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQ8SFRNTFByb2dyZXNzRWxlbWVudD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZHRoID0gdG9TaWduYWwoXG4gICAgICAgIGluamVjdChXYVJlc2l6ZU9ic2VydmVyU2VydmljZSwge3NlbGY6IHRydWV9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChbeF0pID0+IHg/LmNvbnRlbnRSZWN0LndpZHRoID8/IDApLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIC8vIEFuZ3VsYXIgMTYgYnVnXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhvc3Q6IHsnW3N0eWxlLi0tdHVpLXByb2dyZXNzLWNvbG9yXSc6ICdncmFkaWVudCgpJ30gd2lsbCBub3QgcmVjb21wdXRlZFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKSxcbiAgICAgICAgKSxcbiAgICAgICAge2luaXRpYWxWYWx1ZTogdGhpcy5lbC5vZmZzZXRXaWR0aH0sXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBncmFkaWVudCA9IGNvbXB1dGVkKChjb2xvcnMgPSB0aGlzLmNvbG9ycygpKSA9PiB7XG4gICAgICAgIGlmICghY29sb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWdtZW50V2lkdGggPSB0aGlzLndpZHRoKCkgLyBjb2xvcnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBjb2xvcnNTdHJpbmcgPSBjb2xvcnMucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgY29sb3IsIGkpID0+XG4gICAgICAgICAgICAgICAgYCR7YWNjfSwgJHtjb2xvcn0gJHtpICogc2VnbWVudFdpZHRofXB4ICR7KGkgKyAxKSAqIHNlZ21lbnRXaWR0aH1weGAsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCR7Y29sb3JzU3RyaW5nfSlgO1xuICAgIH0pO1xuXG4gICAgQElucHV0KCd0dWlQcm9ncmVzc0NvbG9yU2VnbWVudHMnKVxuICAgIHB1YmxpYyBzZXQgY29sb3JzU2V0dGVyKGNvbG9yczogcmVhZG9ubHkgc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5jb2xvcnMuc2V0KGNvbG9ycyk7XG4gICAgfVxufVxuIl19
@@ -3,13 +3,13 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
3
3
  import * as i0 from "@angular/core";
4
4
  class TuiConnectedStyles {
5
5
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConnectedStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConnectedStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-connected-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{-webkit-mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConnectedStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-connected-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected]>[tuiCell]{padding:1rem}[tuiConnected][tuiCardLarge][data-space] [tuiCell]{padding:1rem;margin:-1rem -1rem calc(1rem - var(--t-space))}[tuiConnected][tuiCardLarge][data-space] [tuiCell]:last-of-type{margin-block-end:-1rem}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{-webkit-mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
7
  }
8
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConnectedStyles, decorators: [{
9
9
  type: Component,
10
10
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
11
11
  class: 'tui-connected-styles',
12
- }, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{-webkit-mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"] }]
12
+ }, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected]>[tuiCell]{padding:1rem}[tuiConnected][tuiCardLarge][data-space] [tuiCell]{padding:1rem;margin:-1rem -1rem calc(1rem - var(--t-space))}[tuiConnected][tuiCardLarge][data-space] [tuiCell]:last-of-type{margin-block-end:-1rem}tui-accordion[tuiConnected]{--t-image-size: 2rem}[tuiConnected]>[tuiAccordion]:before,[tuiConnected]>[tuiCell]:not(:last-of-type):before,[tuiConnected]>[tuiStep]:not(:last-of-type):before{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);display:block;inset-inline-start:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;color:var(--tui-border-normal);background:linear-gradient(to bottom,currentColor 75%,transparent 75%) top center / 300% 300%;background-clip:content-box;padding:inherit}[tuiConnected]>[tuiAccordion]{gap:1rem;--t-margin: 0}[tuiConnected]>[tuiAccordion]:before{top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;margin:0;background:var(--tui-border-normal);-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2),transparent calc(50% + var(--t-image-size) / 2),black calc(50% + var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:first-of-type:before{-webkit-mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to top,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>[tuiAccordion]:last-of-type:before{-webkit-mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2));mask:linear-gradient(to bottom,black calc(50% - var(--t-image-size) / 2),transparent calc(50% - var(--t-image-size) / 2))}[tuiConnected]>tui-expand>*{padding:0;padding-inline-start:3rem}[tuiConnected]>tui-expand:not(:last-child):before{content:\"\";position:absolute;top:0;left:calc(var(--t-image-size) / 2);inset-inline-start:calc(var(--t-image-size) / 2);block-size:100%;inline-size:1px;background:var(--tui-border-normal)}[tuiConnected]>[tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"] }]
13
13
  }] });
14
14
  class TuiConnected {
15
15
  constructor() {
@@ -411,8 +411,13 @@ class TuiInputFilesDirective extends TuiControl {
411
411
  event.preventDefault();
412
412
  }
413
413
  }
414
+ onBlur() {
415
+ if (this.input !== this.input.ownerDocument.activeElement) {
416
+ this.onTouched();
417
+ }
418
+ }
414
419
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputFilesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
415
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFilesDirective, isStandalone: true, selector: "input[tuiInputFiles]", outputs: { reject: "reject" }, host: { attributes: { "title": "", "type": "file" }, listeners: { "blur": "onTouched()", "click": "onClick($event)" }, properties: { "disabled": "disabled()" } }, providers: [
420
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFilesDirective, isStandalone: true, selector: "input[tuiInputFiles]", outputs: { reject: "reject" }, host: { attributes: { "title": "", "type": "file" }, listeners: { "blur": "onBlur()", "click": "onClick($event)" }, properties: { "disabled": "disabled()" } }, providers: [
416
421
  tuiAsControl(TuiInputFilesDirective),
417
422
  tuiAppearanceOptionsProvider(TUI_INPUT_FILES_OPTIONS),
418
423
  ], usesInheritance: true, hostDirectives: [{ directive: i1$2.TuiNativeValidator }, { directive: i1.TuiWithAppearance }, { directive: TuiInputFilesValidator, inputs: ["accept", "accept", "maxFileSize", "maxFileSize"] }], ngImport: i0 }); }
@@ -438,7 +443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
438
443
  title: '',
439
444
  type: 'file',
440
445
  '[disabled]': 'disabled()',
441
- '(blur)': 'onTouched()',
446
+ '(blur)': 'onBlur()',
442
447
  '(click)': 'onClick($event)',
443
448
  },
444
449
  }]
@@ -452,6 +457,8 @@ function toArray(value) {
452
457
  class TuiInputFiles {
453
458
  constructor() {
454
459
  this.content = new PolymorpheusComponent(TuiInputFilesContent);
460
+ this.options = inject(TUI_INPUT_FILES_OPTIONS);
461
+ this.size = '';
455
462
  }
456
463
  get fileDragged() {
457
464
  return !!this.files && !this.input?.disabled();
@@ -473,7 +480,7 @@ class TuiInputFiles {
473
480
  this.files = dataTransfer?.files;
474
481
  }
475
482
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputFiles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
476
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFiles, isStandalone: true, selector: "label[tuiInputFiles]", host: { listeners: { "dragover.prevent.zoneless": "0", "drop.prevent": "onDropped($event)", "dragenter": "onDrag($event.dataTransfer)", "dragleave": "onDrag(null)", "change": "onFilesSelected($event.target)" }, properties: { "class._dragged": "fileDragged" } }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputFilesDirective, descendants: true }], ngImport: i0, template: `
483
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFiles, isStandalone: true, selector: "label[tuiInputFiles]", inputs: { size: ["tuiInputFiles", "size"] }, host: { attributes: { "tuiInputFiles": "" }, listeners: { "dragover.prevent.zoneless": "0", "drop.prevent": "onDropped($event)", "dragenter": "onDrag($event.dataTransfer)", "dragleave": "onDrag(null)", "change": "onFilesSelected($event.target)" }, properties: { "class._dragged": "fileDragged", "attr.data-size": "size || \"l\"" } }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputFilesDirective, descendants: true }], ngImport: i0, template: `
477
484
  <ng-content />
478
485
  <span
479
486
  *polymorpheusOutlet="
@@ -483,7 +490,7 @@ class TuiInputFiles {
483
490
  >
484
491
  {{ text }}
485
492
  </span>
486
- `, isInline: true, styles: ["label[tuiInputFiles]{position:relative;display:flex;min-block-size:var(--tui-height-l);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-m);font:var(--tui-font-text-m);overflow-wrap:break-word;padding:0 .5rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}*:disabled label[tuiInputFiles]{pointer-events:none}[tuiAppearance][data-appearance=file]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action);outline:none}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active]:hover{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file][tuiWrapper]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][tuiWrapper]:not(._focused):has(:focus-visible),[tuiAppearance][data-appearance=file][tuiWrapper]._focused{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file]:not(:disabled)[data-mode~=invalid],[tuiAppearance][data-appearance=file]:invalid:not(:disabled):not([data-mode]){border-color:var(--tui-status-negative)!important}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
493
+ `, isInline: true, styles: ["label[tuiInputFiles]{position:relative;display:flex;box-sizing:border-box;flex-direction:column;min-block-size:var(--tui-height-m);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-s);font:var(--tui-font-text-s);overflow-wrap:break-word;padding:.75rem 1rem;gap:.5rem}label[tuiInputFiles][data-size=l]{min-block-size:var(--tui-height-l);border-radius:var(--tui-radius-l);font:var(--tui-font-text-m);padding:1rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}*:disabled label[tuiInputFiles]{pointer-events:none}[tuiAppearance][data-appearance=file]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action);outline:none}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active]:hover{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file][tuiWrapper]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][tuiWrapper]:not(._focused):has(:focus-visible){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][tuiWrapper]._focused._focused{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file]:not(:disabled)[data-mode~=invalid],[tuiAppearance][data-appearance=file]:invalid:not(:disabled):not([data-mode]){border-color:var(--tui-status-negative)!important}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
487
494
  }
488
495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputFiles, decorators: [{
489
496
  type: Component,
@@ -498,19 +505,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
498
505
  {{ text }}
499
506
  </span>
500
507
  `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
508
+ tuiInputFiles: '',
501
509
  '(dragover.prevent.zoneless)': '0',
502
510
  '(drop.prevent)': 'onDropped($event)',
503
511
  '(dragenter)': 'onDrag($event.dataTransfer)',
504
512
  '(dragleave)': 'onDrag(null)',
505
513
  '[class._dragged]': 'fileDragged',
514
+ '[attr.data-size]': 'size || "l"',
506
515
  '(change)': 'onFilesSelected($event.target)',
507
- }, styles: ["label[tuiInputFiles]{position:relative;display:flex;min-block-size:var(--tui-height-l);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-m);font:var(--tui-font-text-m);overflow-wrap:break-word;padding:0 .5rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}*:disabled label[tuiInputFiles]{pointer-events:none}[tuiAppearance][data-appearance=file]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action);outline:none}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active]:hover{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file][tuiWrapper]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][tuiWrapper]:not(._focused):has(:focus-visible),[tuiAppearance][data-appearance=file][tuiWrapper]._focused{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file]:not(:disabled)[data-mode~=invalid],[tuiAppearance][data-appearance=file]:invalid:not(:disabled):not([data-mode]){border-color:var(--tui-status-negative)!important}\n"] }]
516
+ }, styles: ["label[tuiInputFiles]{position:relative;display:flex;box-sizing:border-box;flex-direction:column;min-block-size:var(--tui-height-m);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-s);font:var(--tui-font-text-s);overflow-wrap:break-word;padding:.75rem 1rem;gap:.5rem}label[tuiInputFiles][data-size=l]{min-block-size:var(--tui-height-l);border-radius:var(--tui-radius-l);font:var(--tui-font-text-m);padding:1rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}*:disabled label[tuiInputFiles]{pointer-events:none}[tuiAppearance][data-appearance=file]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action);outline:none}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover) and (pointer: fine){[tuiAppearance][data-appearance=file][tuiWrapper]:hover:not(._no-hover),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][tuiWrapper]:active:not(._no-active),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active],[tuiAppearance][data-appearance=file][tuiWrapper][data-state=active]:hover{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file][tuiWrapper]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][tuiWrapper][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][tuiWrapper]:not(._focused):has(:focus-visible){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][tuiWrapper]._focused._focused{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file]:not(:disabled)[data-mode~=invalid],[tuiAppearance][data-appearance=file]:invalid:not(:disabled):not([data-mode]){border-color:var(--tui-status-negative)!important}\n"] }]
508
517
  }], propDecorators: { template: [{
509
518
  type: ContentChild,
510
519
  args: [TemplateRef]
511
520
  }], input: [{
512
521
  type: ContentChild,
513
522
  args: [TuiInputFilesDirective]
523
+ }], size: [{
524
+ type: Input,
525
+ args: ['tuiInputFiles']
514
526
  }] } });
515
527
 
516
528
  class TuiFileRejectedPipe {