Skip to content

Instantly share code, notes, and snippets.

@Alex2033
Alex2033 / Angular Form Helper
Created May 28, 2022 11:47
Helper для работы с формами
import { Directive } from '@angular/core';
import { AbstractControl, FormGroup } from '@angular/forms';
/** Helper для работы с формами */
@Directive()
export abstract class FormHelper {
/**
* Возвращает значение поля формы
* @param form - форма
* @param fieldName - название поля
@Alex2033
Alex2033 / Angular IdService
Created May 28, 2022 11:41
Генератор айдишников
import {Injectable} from '@angular/core';
const TUI = 'someId_';
/**
* Generates unique ids
*/
@Injectable({
providedIn: 'root',
})
Usage:
<Input label='Email' errorMessage={'ERROR'}/>
Code:
import React from 'react';
import classes from './Input.module.scss';
function isInvalid({ valid, touched, shouldValidate }) {
return !valid && shouldValidate && touched;
}
Usage:
<Button onClick={props.onRetry} type={'primary'}>Повторить</Button>
Code:
import React, { Component } from 'react';
import classes from './Button.module.scss'
const Button = props => {
const cls = [
classes.button,
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'breaklines'
})
export class BreakLinesPipe implements PipeTransform {
transform(text: string) {
if (text) {
return text.replace(new RegExp('\n', 'g'), '<br>');
}
@mixin mouse() {
@media (hover: hover) {
@content;
}
}
Пример использования:
@include mouse {
&:hover {
...
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'paragraphs'
})
export class ParagraphsPipe implements PipeTransform {
transform(text: string) {
if (text) {
return '<p>' + text
.replace(new RegExp('(\n){2,}', 'g'), '</p><p>')
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class IdService {
constructor() { }
generate() {
@Alex2033
Alex2033 / Pipe для телефона
Last active December 14, 2021 14:27
для удаления всех символов кроме чисел и знака +
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'phoneFormat'
})
export class PhoneFormatPipe implements PipeTransform {
transform(value: string, args?: any): string {
return value.replace(/[^+0-9]/gim, '');
Для несколько элементов:
ngOnInit() {
const stickyElm = document.querySelectorAll('mat-expansion-panel-header');
const observer = new IntersectionObserver(
([e]) => e.target.classList.toggle('isSticky', e.intersectionRatio < 1),
{threshold: [1]}
);
for (let i = 0; i < stickyElm.length; i++) {