рдХреЛрдгреАрдп рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рдХреАрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЖрд╕реНрдердЧрд┐рдд рдЙрдкрдпреЛрдЧ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдЕрдкрдиреЗ рдШрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рддрдВрддреНрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдерд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╢реБрджреНрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреА, рдЬрд┐рд╕реЗ рдХреЛрдгреАрдп рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪреВрдВрдХрд┐ рдореИрдВ popper.js рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ tippy.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдорд┐рд▓реА



рдЙрд╕реА рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рдереАред Tippy.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдореВрд╣ рд╣реИред рдЗрд╕рдХреА рдорджрдж рд╕реЗ, рдЖрдк рдЯреВрд▓рдЯрд┐рдкреНрд╕ (рдЯреВрд▓рдЯрд┐рдк рддрддреНрд╡), рдФрд░ рдХрдИ рдЕрдиреНрдп рддрддреНрд╡ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рддрддреНрд╡реЛрдВ рдХреЛ рдереАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╡реЗ рддреЗрдЬ, рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ tippy.js рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдирд┐рд░реНрджреЗрд╢рди рдмрдирд╛рдХрд░ рд╢реБрд░реБрдЖрдд рдХреА:

@Directive({ selector: '[tooltip]' })
export class TooltipDirective {
  private instance: Instance;
  private _content: string;

  get content() {
    return this._content;
  }

  @Input('tooltip') set content(content: string) {
    this._content = content;
    if (this.instance) this.instance.setContent(content);
  }

  constructor(private host: ElementRef<Element>, private zone: NgZone) {}

  ngAfterViewInit() {
    this.zone.runOutsideAngular(() => {
      this.instance = tippy(this.host.nativeElement, {
        content: this.content,
      });
    });
}

рдПрдХ рдЯреВрд▓рдЯрд┐рдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди tippyрдФрд░ рдкрд╛рд╕рд┐рдВрдЧ рддрддреНрд╡реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ hostрдФрд░ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ contentред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо tippyрдХреЛрдгреАрдп рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ tippyрдЬреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдЪрдХреНрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рд╣реИрдВ ред

рдЕрдм рд╣рдо рдЯреВрд▓рдЯрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ 700 рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА рдореЗрдВ рдХрд░реЗрдВрдЧреЗ:

@Component({
  selector: 'my-app',
  template: `
    <ul>
      <li *ngFor="let item of data" [tooltip]="item.label">
         {{ item.label }}
      </li>
    </ul>
  `
})
export class AppComponent {
  data = Array.from({ length: 700 }, (_, i) => ({
    id: i,
    label: `Value ${i}`,
  }));
}

рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдПрдХ рдЯреВрд▓рдЯрд┐рдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 700 рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЧрдИрдВ tippyред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП, tippy.js рдЯреВрд▓ рдиреЗ 4 рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдордиреЗ 2800 рд╢реНрд░реЛрддрд╛рдУрдВ (700 * 4) рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ред

рдЕрдкрдиреЗ рд▓рд┐рдП рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк getEventListenersрдХреНрд░реЛрдо рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рджреГрд╢реНрдп getEventListeners(element)рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдЯрд░реНрди рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред


рд╕рднреА рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢

рдпрджрд┐ рдЖрдк рдЗрд╕ рдлреЙрд░реНрдо рдореЗрдВ рдХреЛрдб рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореЗрдореЛрд░реА рдЦрдкрдд рдФрд░ рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рдордп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреЗрдЬ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред рдЖрдЗрдП рд╣рдо рдЗрд╕рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдореБрдЭреЗtippyрд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗрд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдирд╣реАрдВ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредрдЬрдм рддрдХ рдЖрдЗрдЯрдо рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рди рджреЗ, рд╣рдо рдЯреВрд▓рдЯрд┐рдк рд╕рдорд░реНрдерди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдХреЗ

рд▓рд┐рдП рдПрдкреАрдЖрдИIntersectionObserverрдХрд╛рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдПрдкреАрдЖрдИ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВIntersectionObserver, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ ред рджреЗрдЦреЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рд░реИрдкрд░ рдХреЗ

рд▓рд┐рдП рдмрдирд╛рдПрдВIntersectionObserver:

const hasSupport = 'IntersectionObserver' in window;

export function inView(
  element: Element,
  options: IntersectionObserverInit = {
    root: null,
    threshold: 0.5,
  }
) {
  return new Observable((subscriber) => {
    if (!hasSupport) {
      subscriber.next(true);
      subscriber.complete();
    }

    const observer = new IntersectionObserver(([entry]) => {
      subscriber.next(entry.isIntersecting);
    }, options);

    observer.observe(element);

    return () => observer.disconnect();
  });
}

рд╣рдордиреЗ рдПрдХ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░реЛрдВ рдХреЛ рдЙрд╕ рдкрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдЗрдВрдЯрд░рд╕реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рд╣рдо IntersectionObserverрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ ред рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ IntersectionObserver, рддреЛ рд╣рдо рдмрд╕ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ trueрдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред IE рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рджреБрдЦ рдХреЗ рд▓рд┐рдП рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм inViewрд╣рдо рджреЗрдЦреЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЯреВрд▓рдЯрд┐рдк рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:

@Directive({ selector: '[tooltip]' })
export class TooltipDirective {
  ...

  ngAfterViewInit() {
    //   
    inView(this.host.nativeElement).subscribe((inView) => {
      if (inView && !this.instance) {
        this.zone.runOutsideAngular(() => {
          this.instance = tippy(this.host.nativeElement, {
            content: this.content,
          });
        });
      } else if (this.instance) {
        this.instance.destroy();
        this.instance = null;
      }
    });
  }
}

рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБред




рдЙрддреНрдХреГрд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛рдУрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ ред рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рджреГрд╢реНрдп рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЖрдЗрдП рдирдП рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред

рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рдШрдЯрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреЛрдгреАрдп рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢


рдпрд╣рд╛рдВ рд╣рдордиреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдХреИрд╕реЗ рд╕реНрдердЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреАред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЯреВрд▓рдЯрд┐рдк рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддрдХрдиреАрдХ рд▓рд╛рдЧреВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рдкрд╛рдПрдВрдЧреЗред

рдФрд░ рдЖрдк рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЯреВрд▓рдЯрд┐рдк рд╕реЗ рд▓реИрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдЬрд╛рд░реА рд░рдЦ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рдирдпрд╛ рдЖрдИрдлреЛрди рдЬреАрдд рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд╕рдордп рд╣реИ, рдФрд░ рд╕рд╛рдордпрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред


All Articles