myrta-ui 1.1.19 → 1.1.21

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/esm2020/lib/components/form/formula-editor/formula-editor.component.mjs +164 -0
  2. package/esm2020/lib/components/form/formula-editor/formula-editor.module.mjs +50 -0
  3. package/esm2020/lib/components/form/input-tel/input-tel.component.mjs +2 -1
  4. package/esm2020/lib/services/mrx-form-validator/mrx-form-validator.mjs +7 -2
  5. package/esm2020/lib/services/mrx-form-validator/validations/callback.validation.mjs +2 -2
  6. package/esm2020/lib/services/mrx-form-validator/validations/email.validation.mjs +2 -2
  7. package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +2 -2
  8. package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +2 -2
  9. package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +2 -2
  10. package/esm2020/lib/services/mrx-form-validator/validations/min-value.validation.mjs +2 -2
  11. package/esm2020/lib/services/mrx-form-validator/validations/pattern.validation.mjs +2 -2
  12. package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +2 -2
  13. package/esm2020/public-api.mjs +4 -1
  14. package/fesm2015/myrta-ui.mjs +218 -11
  15. package/fesm2015/myrta-ui.mjs.map +1 -1
  16. package/fesm2020/myrta-ui.mjs +214 -11
  17. package/fesm2020/myrta-ui.mjs.map +1 -1
  18. package/lib/components/form/formula-editor/formula-editor.component.d.ts +32 -0
  19. package/lib/components/form/formula-editor/formula-editor.module.d.ts +14 -0
  20. package/lib/services/mrx-form-validator/validations/callback.validation.d.ts +1 -1
  21. package/lib/services/mrx-form-validator/validations/email.validation.d.ts +1 -1
  22. package/lib/services/mrx-form-validator/validations/max-length.validation.d.ts +1 -1
  23. package/lib/services/mrx-form-validator/validations/max-value.validation.d.ts +1 -1
  24. package/lib/services/mrx-form-validator/validations/min-length.validation.d.ts +1 -1
  25. package/lib/services/mrx-form-validator/validations/min-value.validation.d.ts +1 -1
  26. package/lib/services/mrx-form-validator/validations/pattern.validation.d.ts +1 -1
  27. package/lib/services/mrx-form-validator/validations/required.validation.d.ts +1 -1
  28. package/package.json +4 -2
  29. package/public-api.d.ts +3 -0
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, Input, Pipe, EventEmitter, ChangeDetectionStrategy, Output, NgModule, CUSTOM_ELEMENTS_SCHEMA, Injectable, forwardRef, InjectionToken, TemplateRef, Inject, Injector, Directive, HostListener, ContentChild, ViewChild, QueryList, Optional, ViewChildren, ElementRef, ViewEncapsulation, ContentChildren, HostBinding, LOCALE_ID } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
- import { CommonModule, registerLocaleData, DatePipe } from '@angular/common';
4
+ import { CommonModule, registerLocaleData, DatePipe, DOCUMENT } from '@angular/common';
5
5
  import * as i1 from '@angular/platform-browser';
6
6
  import * as i1$4 from '@angular/animations';
7
7
  import { trigger, state, style, transition, animate, group, keyframes } from '@angular/animations';
@@ -48,6 +48,7 @@ import { ImageCropperModule } from 'ngx-image-cropper';
48
48
  import localeRu$1 from '@angular/common/locales/ru';
49
49
  import { parsePhoneNumber } from 'libphonenumber-js';
50
50
  import { getExample, getAsYouType } from 'awesome-phonenumber';
51
+ import Tagify from '@yaireo/tagify';
51
52
 
52
53
  var ButtonTypesEnum;
53
54
  (function (ButtonTypesEnum) {
@@ -4264,7 +4265,7 @@ const getErrorMessageHelper = (key, invalidMessages, messages, params) => {
4264
4265
  };
4265
4266
 
4266
4267
  const requiredValidation = (value, validations, key, invalidMessages) => {
4267
- const result = { isValid: true, message: '' };
4268
+ const result = { isValid: true, message: null };
4268
4269
  if (Array.isArray(value) && validations.type !== 'single') {
4269
4270
  value.forEach((field, idx) => {
4270
4271
  if ((field === '' || field === null || field === undefined)) {
@@ -4286,7 +4287,7 @@ const requiredValidation = (value, validations, key, invalidMessages) => {
4286
4287
 
4287
4288
  const emailValidation = (value, validations, key, invalidMessages) => {
4288
4289
  const emailRegExp = /^[a-zA-Z0-9._а-яА-Я-]+@[a-zA-Zа-яА-Я0-9.-]+\.[a-zA-Zа-яА-Я]{2,10}$/;
4289
- const result = { isValid: true, message: '' };
4290
+ const result = { isValid: true, message: null };
4290
4291
  if (!emailRegExp.test(value)) {
4291
4292
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages);
4292
4293
  result.isValid = false;
@@ -4296,7 +4297,7 @@ const emailValidation = (value, validations, key, invalidMessages) => {
4296
4297
 
4297
4298
  const patternValidation = (value, validations, key, invalidMessages) => {
4298
4299
  const validation = validations[key];
4299
- const result = { isValid: true, message: '' };
4300
+ const result = { isValid: true, message: null };
4300
4301
  if (!validation.test(value)) {
4301
4302
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages);
4302
4303
  result.isValid = false;
@@ -4305,7 +4306,7 @@ const patternValidation = (value, validations, key, invalidMessages) => {
4305
4306
  };
4306
4307
 
4307
4308
  const maxLengthValidation = (value, validations, key, invalidMessages) => {
4308
- const result = { isValid: true, message: '' };
4309
+ const result = { isValid: true, message: null };
4309
4310
  if (String(value).length > Number(validations[key])) {
4310
4311
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4311
4312
  result.isValid = false;
@@ -4314,7 +4315,7 @@ const maxLengthValidation = (value, validations, key, invalidMessages) => {
4314
4315
  };
4315
4316
 
4316
4317
  const minLengthValidation = (value, validations, key, invalidMessages) => {
4317
- const result = { isValid: true, message: '' };
4318
+ const result = { isValid: true, message: null };
4318
4319
  if (String(value).length < Number(validations[key]) && !!validations[ValidationTypesEnum.Required]) {
4319
4320
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4320
4321
  result.isValid = false;
@@ -4323,7 +4324,7 @@ const minLengthValidation = (value, validations, key, invalidMessages) => {
4323
4324
  };
4324
4325
 
4325
4326
  const minValueValidation = (value, validations, key, invalidMessages) => {
4326
- const result = { isValid: true, message: '' };
4327
+ const result = { isValid: true, message: null };
4327
4328
  if (parseInt(value) > Number(validations[key])) {
4328
4329
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4329
4330
  result.isValid = false;
@@ -4332,7 +4333,7 @@ const minValueValidation = (value, validations, key, invalidMessages) => {
4332
4333
  };
4333
4334
 
4334
4335
  const maxValueValidation = (value, validations, key, invalidMessages) => {
4335
- const result = { isValid: true, message: '' };
4336
+ const result = { isValid: true, message: null };
4336
4337
  if (parseInt(value) < Number(validations[key])) {
4337
4338
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4338
4339
  result.isValid = false;
@@ -4341,7 +4342,7 @@ const maxValueValidation = (value, validations, key, invalidMessages) => {
4341
4342
  };
4342
4343
 
4343
4344
  const callbackValidation = (value, validations, key, invalidMessages) => {
4344
- const result = { isValid: true, message: '' };
4345
+ const result = { isValid: true, message: null };
4345
4346
  if (validations[ValidationTypesEnum.Callback] && typeof validations[ValidationTypesEnum.Callback] === 'function') {
4346
4347
  const validation = validations[ValidationTypesEnum.Callback];
4347
4348
  const callbackResult = validation(value);
@@ -4435,6 +4436,9 @@ class MrxFormValidator {
4435
4436
  if (!validateEmptyValue && (value.length === 0)) {
4436
4437
  return;
4437
4438
  }
4439
+ if (!this._isValid) {
4440
+ return;
4441
+ }
4438
4442
  for (let key in validations) {
4439
4443
  switch (key) {
4440
4444
  case ValidationTypesEnum.Required:
@@ -4555,10 +4559,12 @@ class MrxFormValidator {
4555
4559
  }
4556
4560
  isValid() {
4557
4561
  for (let key in this._validations) {
4562
+ if (!this._isValid) {
4563
+ return this._isValid;
4564
+ }
4558
4565
  this.errors[key] = null;
4559
4566
  this.validateField(this._fields[key], key, this._validations[key], true);
4560
4567
  }
4561
- console.log(1, this._isValid);
4562
4568
  return this._isValid;
4563
4569
  }
4564
4570
  // TODO Вырезать в будущем
@@ -16889,6 +16895,7 @@ class InputTelComponent {
16889
16895
  }
16890
16896
  set onlyCountries(val) {
16891
16897
  this._onlyCountries = val;
16898
+ this._detector.detectChanges();
16892
16899
  this._initData();
16893
16900
  }
16894
16901
  writeValue(outsideValue) {
@@ -17276,11 +17283,211 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
17276
17283
  }]
17277
17284
  }] });
17278
17285
 
17286
+ const whitelist_2 = ['Homer simpson', 'Marge simpson', 'Bart', 'Lisa', 'Maggie', 'Mr. Burns', 'Ned', 'Milhouse', 'Moe'];
17287
+ class FormulaEditorComponent {
17288
+ constructor(document, sanitizer) {
17289
+ this.document = document;
17290
+ this.sanitizer = sanitizer;
17291
+ this._whitelist = ['Angular', 'React', 'Vue'];
17292
+ this.value = '';
17293
+ this.isFocused = false;
17294
+ }
17295
+ getSanitizedValue() {
17296
+ return this.value;
17297
+ }
17298
+ ngAfterViewInit() {
17299
+ var _a;
17300
+ if (!((_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.nativeElement))
17301
+ return;
17302
+ this._tagify = new Tagify(this.inputElement.nativeElement, {
17303
+ mode: 'mix',
17304
+ editTags: false,
17305
+ enforceWhitelist: false,
17306
+ pattern: /@|#/,
17307
+ whitelist: ['firstname', 'lastname', 'email', 'company'],
17308
+ callbacks: {
17309
+ add: (e) => {
17310
+ console.log(1);
17311
+ console.log(e);
17312
+ //
17313
+ // let ranges = [];
17314
+ // let sel = window.getSelection();
17315
+ // if (sel) {
17316
+ // for (let i = 0; i < sel.rangeCount; i++) {
17317
+ // ranges[i] = sel.getRangeAt(i);
17318
+ // }
17319
+ // }
17320
+ //
17321
+ // const textNode = e.detail.tag.nextSibling
17322
+ // e.detail.tag.insertAdjacentText('afterend', '\u00A0')
17323
+ // document.getSelection()?.getRangeAt(0).setStart(textNode, 0)
17324
+ console.log(e.detail.tagify.value);
17325
+ console.log(e.detail.tagify.getCleanValue());
17326
+ },
17327
+ change: (e) => {
17328
+ console.log(2);
17329
+ console.log(e);
17330
+ // const textNode = e.detail.tag.nextSibling
17331
+ },
17332
+ 'dropdown:select': (e) => {
17333
+ console.log(3);
17334
+ console.log(e);
17335
+ e.detail.tagify.DOM.input.focus();
17336
+ }
17337
+ },
17338
+ });
17339
+ this._tagify.on('input', (e) => {
17340
+ if (e.detail.textContent.length > 1) {
17341
+ this._tagify.dropdown.show(e.detail.value);
17342
+ }
17343
+ });
17344
+ this._tagify.on('add', (e) => {
17345
+ var _a, _b;
17346
+ e.detail.tagify.DOM.input.focus();
17347
+ const textNode = e.detail.tag.nextSibling;
17348
+ if ((_a = document.getSelection()) === null || _a === void 0 ? void 0 : _a.getRangeAt(0)) {
17349
+ (_b = document.getSelection()) === null || _b === void 0 ? void 0 : _b.getRangeAt(0).setStart(textNode, 1);
17350
+ }
17351
+ });
17352
+ // this._tagify.on('focus', (e: any) => {
17353
+ // this._tagify.dropdown.show(e.detail.value);
17354
+ // })
17355
+ }
17356
+ ngOnDestroy() {
17357
+ }
17358
+ registerOnChange(fn) {
17359
+ }
17360
+ registerOnTouched(fn) {
17361
+ }
17362
+ writeValue(obj) {
17363
+ }
17364
+ onInput(event) {
17365
+ const target = event.target;
17366
+ const content = target.textContent || '';
17367
+ const valueArray = content.split(/[ &nbsp;]+/);
17368
+ }
17369
+ onBlur(event) {
17370
+ const target = event.target;
17371
+ const content = target.textContent || '';
17372
+ const visibleValueArray = content.split(/[\s\u00A0]+/);
17373
+ const originalValueArray = [];
17374
+ visibleValueArray.forEach((item, index, array) => {
17375
+ if (this._whitelist.find(v => v === item)) {
17376
+ visibleValueArray[index] = `<div class="tag" title="Eric Cartman" contenteditable="false" tabindex="-1"><div>${item}</div><div></div></div>&nbsp;`;
17377
+ originalValueArray.push(`{${item}}`);
17378
+ }
17379
+ else {
17380
+ originalValueArray.push(item);
17381
+ }
17382
+ });
17383
+ this.transformValue(visibleValueArray);
17384
+ this.updateValue(originalValueArray);
17385
+ // this.isFocused = false
17386
+ this.updateSelection(event);
17387
+ }
17388
+ transformValue(array) {
17389
+ this.value = array.join(' ');
17390
+ }
17391
+ updateValue(array) {
17392
+ console.log(array.join(' '));
17393
+ }
17394
+ updateSelection(event) {
17395
+ const selections = window.getSelection();
17396
+ console.log(selections);
17397
+ const start = (selections === null || selections === void 0 ? void 0 : selections.anchorOffset) || 0;
17398
+ const end = (selections === null || selections === void 0 ? void 0 : selections.focusOffset) || 0;
17399
+ if (start > end) {
17400
+ this.selectionStart = end;
17401
+ this.selectionEnd = start;
17402
+ }
17403
+ else {
17404
+ this.selectionStart = start;
17405
+ this.selectionEnd = end;
17406
+ }
17407
+ }
17408
+ onFocus(event) {
17409
+ // this.updateSelection(event)
17410
+ this.isFocused = true;
17411
+ }
17412
+ insertTag(row) {
17413
+ if ((this.selectionStart || this.selectionStart === 0) && (this.selectionEnd || this.selectionEnd === 0)) {
17414
+ const firstText = this.value.slice(0, this.selectionStart);
17415
+ const secondText = this.value.slice(this.selectionEnd);
17416
+ this.value = firstText + row + secondText;
17417
+ }
17418
+ }
17419
+ onSelectionChange(event) {
17420
+ console.log('asd');
17421
+ }
17422
+ }
17423
+ FormulaEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, deps: [{ token: DOCUMENT }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
17424
+ FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", providers: [{
17425
+ provide: NG_VALUE_ACCESSOR,
17426
+ useExisting: forwardRef(() => FormulaEditorComponent),
17427
+ multi: true
17428
+ }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"mrx-formula-editor\"\n>\n <div class=\"mrx-formula-editor__wrapper\">\n <div\n [innerHTML]=\"value | safe\"\n class=\"mrx-formula-editor__box\"\n contenteditable=\"true\"\n tabindex=\"0\" data-placeholder=\"&ZeroWidthSpace;\" aria-placeholder=\"\" role=\"textbox\" autocapitalize=\"false\"\n autocorrect=\"off\" spellcheck=\"false\" aria-autocomplete=\"both\" aria-multiline=\"true\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (selectionchange)=\"onSelectionChange($event)\"\n ></div>\n <!-- <textarea #inputElement name='mix' contenteditable=\"false\">asd[[{\"value\":\"firstname\"}]] [[{\"value\":\"email\"}]] asdasdasd asd[[{\"value\":\"company\"}]]</textarea>-->\n <!-- <input-->\n <!-- autocomplete=\"nope\"-->\n <!-- #inputElement-->\n <!-- [type]=\"'text'\"-->\n <!-- [id]=\"uuid\"-->\n <!-- [ngModel]=\"value\"-->\n <!-- [title]=\"placeholder || ''\"-->\n <!-- [disabled]=\"disabled\"-->\n <!-- [readOnly]=\"readonly\"-->\n <!-- [placeholder]=\"!disabled && placeholder ? placeholder : ''\"-->\n <!-- [mask]=\"mask\"-->\n <!-- [prefix]=\"maskPrefix\"-->\n <!-- [showMaskTyped]=\"showMaskTyped\"-->\n <!-- [dropSpecialCharacters]=\"maskDropSpecialCharacters\"-->\n <!-- [minlength]=\"minlength > 0 && restrictInput ? minlength : null\"-->\n <!-- [maxlength]=\"maxlength > 0 && restrictInput ? maxlength : null\"-->\n <!-- (ngModelChange)=\"updateValue($event)\"-->\n <!-- (blur)=\"onBlur($event)\"-->\n <!-- />-->\n\n <!-- <mrx-chars-left-->\n <!-- *ngIf=\"!disabled && maxlength\"-->\n <!-- [value]=\"value\"-->\n <!-- [maxlength]=\"maxlength\"-->\n <!-- ></mrx-chars-left>-->\n\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\n <div\n class=\"mrx-formula-editor__popup--row\"\n *ngFor=\"let row of _whitelist\"\n (click)=\"insertTag(row)\"\n >\n {{ row }}\n </div>\n </div>\n </div>\n\n <!-- <mrx-error-message-->\n <!-- *ngIf=\"getInvalid && getInvalidMessage\"-->\n <!-- [invalidMessage]=\"getInvalidMessage\"-->\n <!-- ></mrx-error-message>-->\n\n <!-- <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>-->\n</div>\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4);border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;padding:2px 4px;background-color:#8ad5f4;border-radius:var(--border-radius-1);margin:0 2px;position:relative;z-index:1;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__popup{position:absolute;top:52px;width:100%;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto}.mrx-formula-editor__popup--row{min-height:var(--sizing-10);transition:.2s;display:flex;align-items:center;padding:var(--spacing-1) var(--spacing-4);white-space:normal}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": SafePipe } });
17429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, decorators: [{
17430
+ type: Component,
17431
+ args: [{ selector: 'mrx-formula-editor', providers: [{
17432
+ provide: NG_VALUE_ACCESSOR,
17433
+ useExisting: forwardRef(() => FormulaEditorComponent),
17434
+ multi: true
17435
+ }], template: "<div\n class=\"mrx-formula-editor\"\n>\n <div class=\"mrx-formula-editor__wrapper\">\n <div\n [innerHTML]=\"value | safe\"\n class=\"mrx-formula-editor__box\"\n contenteditable=\"true\"\n tabindex=\"0\" data-placeholder=\"&ZeroWidthSpace;\" aria-placeholder=\"\" role=\"textbox\" autocapitalize=\"false\"\n autocorrect=\"off\" spellcheck=\"false\" aria-autocomplete=\"both\" aria-multiline=\"true\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (selectionchange)=\"onSelectionChange($event)\"\n ></div>\n <!-- <textarea #inputElement name='mix' contenteditable=\"false\">asd[[{\"value\":\"firstname\"}]] [[{\"value\":\"email\"}]] asdasdasd asd[[{\"value\":\"company\"}]]</textarea>-->\n <!-- <input-->\n <!-- autocomplete=\"nope\"-->\n <!-- #inputElement-->\n <!-- [type]=\"'text'\"-->\n <!-- [id]=\"uuid\"-->\n <!-- [ngModel]=\"value\"-->\n <!-- [title]=\"placeholder || ''\"-->\n <!-- [disabled]=\"disabled\"-->\n <!-- [readOnly]=\"readonly\"-->\n <!-- [placeholder]=\"!disabled && placeholder ? placeholder : ''\"-->\n <!-- [mask]=\"mask\"-->\n <!-- [prefix]=\"maskPrefix\"-->\n <!-- [showMaskTyped]=\"showMaskTyped\"-->\n <!-- [dropSpecialCharacters]=\"maskDropSpecialCharacters\"-->\n <!-- [minlength]=\"minlength > 0 && restrictInput ? minlength : null\"-->\n <!-- [maxlength]=\"maxlength > 0 && restrictInput ? maxlength : null\"-->\n <!-- (ngModelChange)=\"updateValue($event)\"-->\n <!-- (blur)=\"onBlur($event)\"-->\n <!-- />-->\n\n <!-- <mrx-chars-left-->\n <!-- *ngIf=\"!disabled && maxlength\"-->\n <!-- [value]=\"value\"-->\n <!-- [maxlength]=\"maxlength\"-->\n <!-- ></mrx-chars-left>-->\n\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\n <div\n class=\"mrx-formula-editor__popup--row\"\n *ngFor=\"let row of _whitelist\"\n (click)=\"insertTag(row)\"\n >\n {{ row }}\n </div>\n </div>\n </div>\n\n <!-- <mrx-error-message-->\n <!-- *ngIf=\"getInvalid && getInvalidMessage\"-->\n <!-- [invalidMessage]=\"getInvalidMessage\"-->\n <!-- ></mrx-error-message>-->\n\n <!-- <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>-->\n</div>\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4);border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;padding:2px 4px;background-color:#8ad5f4;border-radius:var(--border-radius-1);margin:0 2px;position:relative;z-index:1;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__popup{position:absolute;top:52px;width:100%;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto}.mrx-formula-editor__popup--row{min-height:var(--sizing-10);transition:.2s;display:flex;align-items:center;padding:var(--spacing-1) var(--spacing-4);white-space:normal}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--Bg2)!important}\n"] }]
17436
+ }], ctorParameters: function () {
17437
+ return [{ type: Document, decorators: [{
17438
+ type: Inject,
17439
+ args: [DOCUMENT]
17440
+ }] }, { type: i1.DomSanitizer }];
17441
+ }, propDecorators: { inputElement: [{
17442
+ type: ViewChild,
17443
+ args: ['inputElement', { static: true }]
17444
+ }] } });
17445
+
17446
+ class FormulaEditorModule {
17447
+ }
17448
+ FormulaEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17449
+ FormulaEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, declarations: [FormulaEditorComponent], imports: [CommonModule,
17450
+ CharsLeftModule,
17451
+ ErrorMessageModule,
17452
+ FormsModule,
17453
+ NgxMaskModule,
17454
+ SaveStateModule,
17455
+ SafeModule], exports: [FormulaEditorComponent] });
17456
+ FormulaEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, imports: [[
17457
+ CommonModule,
17458
+ CharsLeftModule,
17459
+ ErrorMessageModule,
17460
+ FormsModule,
17461
+ NgxMaskModule,
17462
+ SaveStateModule,
17463
+ SafeModule
17464
+ ]] });
17465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, decorators: [{
17466
+ type: NgModule,
17467
+ args: [{
17468
+ declarations: [
17469
+ FormulaEditorComponent
17470
+ ],
17471
+ imports: [
17472
+ CommonModule,
17473
+ CharsLeftModule,
17474
+ ErrorMessageModule,
17475
+ FormsModule,
17476
+ NgxMaskModule,
17477
+ SaveStateModule,
17478
+ SafeModule
17479
+ ],
17480
+ exports: [
17481
+ FormulaEditorComponent
17482
+ ]
17483
+ }]
17484
+ }] });
17485
+
17279
17486
  // COMPONENTS
17280
17487
 
17281
17488
  /**
17282
17489
  * Generated bundle index. Do not edit.
17283
17490
  */
17284
17491
 
17285
- export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, BadgeColorClassesEnum, BadgeComponent, BadgeGroupComponent, BadgeSizeEnum, BadgeTagTypeClassesEnum, BadgeTargetTypesEnum, BadgeTypeEnum, BadgesModule, BreadcrumbsComponent, BreadcrumbsModule, BreadcrumbsTypeEnum, ButtonColorsEnum, ButtonComponent, ButtonIconPositionEnum, ButtonModule, ButtonSizesEnum, ButtonTypesEnum, CdkTooltipDirective, CdkTooltipModule, CharsLeftComponent, CharsLeftModule, CheckboxComponent, CheckboxGroupComponent, CheckboxGroupModule, CheckboxModule, ColumnComponent, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ContextMenuAttachDirective, ContextMenuComponent, ContextMenuContentComponent, ContextMenuFixedService, ContextMenuItemDirective, ContextMenuModule, ContextMenuService, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DocumentEditorComponent, DocumentEditorModule, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTelSizesEnum, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, ModalAlignButtonsEnum, ModalColorEnum, ModalComponent, ModalModule, ModalSizesEnum, MrxAutoSaveActionsEnum, MrxAutosaveService, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PhoneFormatModule, PhoneFormatPipe, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SaveStoreModule, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, autosaveAddId, autosaveError, autosaveErrorFor, autosaveStart, autosaveStartFor, autosaveStop, autosaveStopFor, autosaveSuccess, autosaveSuccessFor, convertBase64ToFile, countryData, dateTimeFormat, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, wordForm };
17492
+ export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, BadgeColorClassesEnum, BadgeComponent, BadgeGroupComponent, BadgeSizeEnum, BadgeTagTypeClassesEnum, BadgeTargetTypesEnum, BadgeTypeEnum, BadgesModule, BreadcrumbsComponent, BreadcrumbsModule, BreadcrumbsTypeEnum, ButtonColorsEnum, ButtonComponent, ButtonIconPositionEnum, ButtonModule, ButtonSizesEnum, ButtonTypesEnum, CdkTooltipDirective, CdkTooltipModule, CharsLeftComponent, CharsLeftModule, CheckboxComponent, CheckboxGroupComponent, CheckboxGroupModule, CheckboxModule, ColumnComponent, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ContextMenuAttachDirective, ContextMenuComponent, ContextMenuContentComponent, ContextMenuFixedService, ContextMenuItemDirective, ContextMenuModule, ContextMenuService, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DocumentEditorComponent, DocumentEditorModule, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTelSizesEnum, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, ModalAlignButtonsEnum, ModalColorEnum, ModalComponent, ModalModule, ModalSizesEnum, MrxAutoSaveActionsEnum, MrxAutosaveService, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PhoneFormatModule, PhoneFormatPipe, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SaveStoreModule, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, autosaveAddId, autosaveError, autosaveErrorFor, autosaveStart, autosaveStartFor, autosaveStop, autosaveStopFor, autosaveSuccess, autosaveSuccessFor, convertBase64ToFile, countryData, dateTimeFormat, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, wordForm };
17286
17493
  //# sourceMappingURL=myrta-ui.mjs.map