myrta-ui 1.1.20 → 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.
- package/esm2020/lib/components/form/formula-editor/formula-editor.component.mjs +164 -0
- package/esm2020/lib/components/form/formula-editor/formula-editor.module.mjs +50 -0
- package/esm2020/lib/services/mrx-form-validator/mrx-form-validator.mjs +7 -2
- package/esm2020/lib/services/mrx-form-validator/validations/callback.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/email.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/min-value.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/pattern.validation.mjs +2 -2
- package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +2 -2
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/myrta-ui.mjs +217 -11
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +213 -11
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/form/formula-editor/formula-editor.component.d.ts +32 -0
- package/lib/components/form/formula-editor/formula-editor.module.d.ts +14 -0
- package/lib/services/mrx-form-validator/validations/callback.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/email.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/max-length.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/max-value.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/min-length.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/min-value.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/pattern.validation.d.ts +1 -1
- package/lib/services/mrx-form-validator/validations/required.validation.d.ts +1 -1
- package/package.json +4 -2
- package/public-api.d.ts +2 -0
package/fesm2020/myrta-ui.mjs
CHANGED
|
@@ -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';
|
|
@@ -47,6 +47,7 @@ import { ImageCropperModule } from 'ngx-image-cropper';
|
|
|
47
47
|
import localeRu$1 from '@angular/common/locales/ru';
|
|
48
48
|
import { parsePhoneNumber } from 'libphonenumber-js';
|
|
49
49
|
import { getExample, getAsYouType } from 'awesome-phonenumber';
|
|
50
|
+
import Tagify from '@yaireo/tagify';
|
|
50
51
|
|
|
51
52
|
var ButtonTypesEnum;
|
|
52
53
|
(function (ButtonTypesEnum) {
|
|
@@ -4255,7 +4256,7 @@ const getErrorMessageHelper = (key, invalidMessages, messages, params) => {
|
|
|
4255
4256
|
};
|
|
4256
4257
|
|
|
4257
4258
|
const requiredValidation = (value, validations, key, invalidMessages) => {
|
|
4258
|
-
const result = { isValid: true, message:
|
|
4259
|
+
const result = { isValid: true, message: null };
|
|
4259
4260
|
if (Array.isArray(value) && validations.type !== 'single') {
|
|
4260
4261
|
value.forEach((field, idx) => {
|
|
4261
4262
|
if ((field === '' || field === null || field === undefined)) {
|
|
@@ -4277,7 +4278,7 @@ const requiredValidation = (value, validations, key, invalidMessages) => {
|
|
|
4277
4278
|
|
|
4278
4279
|
const emailValidation = (value, validations, key, invalidMessages) => {
|
|
4279
4280
|
const emailRegExp = /^[a-zA-Z0-9._а-яА-Я-]+@[a-zA-Zа-яА-Я0-9.-]+\.[a-zA-Zа-яА-Я]{2,10}$/;
|
|
4280
|
-
const result = { isValid: true, message:
|
|
4281
|
+
const result = { isValid: true, message: null };
|
|
4281
4282
|
if (!emailRegExp.test(value)) {
|
|
4282
4283
|
result.message = getErrorMessageHelper(key, invalidMessages, validations.messages);
|
|
4283
4284
|
result.isValid = false;
|
|
@@ -4287,7 +4288,7 @@ const emailValidation = (value, validations, key, invalidMessages) => {
|
|
|
4287
4288
|
|
|
4288
4289
|
const patternValidation = (value, validations, key, invalidMessages) => {
|
|
4289
4290
|
const validation = validations[key];
|
|
4290
|
-
const result = { isValid: true, message:
|
|
4291
|
+
const result = { isValid: true, message: null };
|
|
4291
4292
|
if (!validation.test(value)) {
|
|
4292
4293
|
result.message = getErrorMessageHelper(key, invalidMessages, validations.messages);
|
|
4293
4294
|
result.isValid = false;
|
|
@@ -4296,7 +4297,7 @@ const patternValidation = (value, validations, key, invalidMessages) => {
|
|
|
4296
4297
|
};
|
|
4297
4298
|
|
|
4298
4299
|
const maxLengthValidation = (value, validations, key, invalidMessages) => {
|
|
4299
|
-
const result = { isValid: true, message:
|
|
4300
|
+
const result = { isValid: true, message: null };
|
|
4300
4301
|
if (String(value).length > Number(validations[key])) {
|
|
4301
4302
|
result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
|
|
4302
4303
|
result.isValid = false;
|
|
@@ -4305,7 +4306,7 @@ const maxLengthValidation = (value, validations, key, invalidMessages) => {
|
|
|
4305
4306
|
};
|
|
4306
4307
|
|
|
4307
4308
|
const minLengthValidation = (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]) && !!validations[ValidationTypesEnum.Required]) {
|
|
4310
4311
|
result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
|
|
4311
4312
|
result.isValid = false;
|
|
@@ -4314,7 +4315,7 @@ const minLengthValidation = (value, validations, key, invalidMessages) => {
|
|
|
4314
4315
|
};
|
|
4315
4316
|
|
|
4316
4317
|
const minValueValidation = (value, validations, key, invalidMessages) => {
|
|
4317
|
-
const result = { isValid: true, message:
|
|
4318
|
+
const result = { isValid: true, message: null };
|
|
4318
4319
|
if (parseInt(value) > Number(validations[key])) {
|
|
4319
4320
|
result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
|
|
4320
4321
|
result.isValid = false;
|
|
@@ -4323,7 +4324,7 @@ const minValueValidation = (value, validations, key, invalidMessages) => {
|
|
|
4323
4324
|
};
|
|
4324
4325
|
|
|
4325
4326
|
const maxValueValidation = (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 maxValueValidation = (value, validations, key, invalidMessages) => {
|
|
|
4332
4333
|
};
|
|
4333
4334
|
|
|
4334
4335
|
const callbackValidation = (value, validations, key, invalidMessages) => {
|
|
4335
|
-
const result = { isValid: true, message:
|
|
4336
|
+
const result = { isValid: true, message: null };
|
|
4336
4337
|
if (validations[ValidationTypesEnum.Callback] && typeof validations[ValidationTypesEnum.Callback] === 'function') {
|
|
4337
4338
|
const validation = validations[ValidationTypesEnum.Callback];
|
|
4338
4339
|
const callbackResult = validation(value);
|
|
@@ -4426,6 +4427,9 @@ class MrxFormValidator {
|
|
|
4426
4427
|
if (!validateEmptyValue && (value.length === 0)) {
|
|
4427
4428
|
return;
|
|
4428
4429
|
}
|
|
4430
|
+
if (!this._isValid) {
|
|
4431
|
+
return;
|
|
4432
|
+
}
|
|
4429
4433
|
for (let key in validations) {
|
|
4430
4434
|
switch (key) {
|
|
4431
4435
|
case ValidationTypesEnum.Required:
|
|
@@ -4546,10 +4550,12 @@ class MrxFormValidator {
|
|
|
4546
4550
|
}
|
|
4547
4551
|
isValid() {
|
|
4548
4552
|
for (let key in this._validations) {
|
|
4553
|
+
if (!this._isValid) {
|
|
4554
|
+
return this._isValid;
|
|
4555
|
+
}
|
|
4549
4556
|
this.errors[key] = null;
|
|
4550
4557
|
this.validateField(this._fields[key], key, this._validations[key], true);
|
|
4551
4558
|
}
|
|
4552
|
-
console.log(1, this._isValid);
|
|
4553
4559
|
return this._isValid;
|
|
4554
4560
|
}
|
|
4555
4561
|
// TODO Вырезать в будущем
|
|
@@ -17310,11 +17316,207 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
17310
17316
|
}]
|
|
17311
17317
|
}] });
|
|
17312
17318
|
|
|
17319
|
+
const whitelist_2 = ['Homer simpson', 'Marge simpson', 'Bart', 'Lisa', 'Maggie', 'Mr. Burns', 'Ned', 'Milhouse', 'Moe'];
|
|
17320
|
+
class FormulaEditorComponent {
|
|
17321
|
+
constructor(document, sanitizer) {
|
|
17322
|
+
this.document = document;
|
|
17323
|
+
this.sanitizer = sanitizer;
|
|
17324
|
+
this._whitelist = ['Angular', 'React', 'Vue'];
|
|
17325
|
+
this.value = '';
|
|
17326
|
+
this.isFocused = false;
|
|
17327
|
+
}
|
|
17328
|
+
getSanitizedValue() {
|
|
17329
|
+
return this.value;
|
|
17330
|
+
}
|
|
17331
|
+
ngAfterViewInit() {
|
|
17332
|
+
if (!this.inputElement?.nativeElement)
|
|
17333
|
+
return;
|
|
17334
|
+
this._tagify = new Tagify(this.inputElement.nativeElement, {
|
|
17335
|
+
mode: 'mix',
|
|
17336
|
+
editTags: false,
|
|
17337
|
+
enforceWhitelist: false,
|
|
17338
|
+
pattern: /@|#/,
|
|
17339
|
+
whitelist: ['firstname', 'lastname', 'email', 'company'],
|
|
17340
|
+
callbacks: {
|
|
17341
|
+
add: (e) => {
|
|
17342
|
+
console.log(1);
|
|
17343
|
+
console.log(e);
|
|
17344
|
+
//
|
|
17345
|
+
// let ranges = [];
|
|
17346
|
+
// let sel = window.getSelection();
|
|
17347
|
+
// if (sel) {
|
|
17348
|
+
// for (let i = 0; i < sel.rangeCount; i++) {
|
|
17349
|
+
// ranges[i] = sel.getRangeAt(i);
|
|
17350
|
+
// }
|
|
17351
|
+
// }
|
|
17352
|
+
//
|
|
17353
|
+
// const textNode = e.detail.tag.nextSibling
|
|
17354
|
+
// e.detail.tag.insertAdjacentText('afterend', '\u00A0')
|
|
17355
|
+
// document.getSelection()?.getRangeAt(0).setStart(textNode, 0)
|
|
17356
|
+
console.log(e.detail.tagify.value);
|
|
17357
|
+
console.log(e.detail.tagify.getCleanValue());
|
|
17358
|
+
},
|
|
17359
|
+
change: (e) => {
|
|
17360
|
+
console.log(2);
|
|
17361
|
+
console.log(e);
|
|
17362
|
+
// const textNode = e.detail.tag.nextSibling
|
|
17363
|
+
},
|
|
17364
|
+
'dropdown:select': (e) => {
|
|
17365
|
+
console.log(3);
|
|
17366
|
+
console.log(e);
|
|
17367
|
+
e.detail.tagify.DOM.input.focus();
|
|
17368
|
+
}
|
|
17369
|
+
},
|
|
17370
|
+
});
|
|
17371
|
+
this._tagify.on('input', (e) => {
|
|
17372
|
+
if (e.detail.textContent.length > 1) {
|
|
17373
|
+
this._tagify.dropdown.show(e.detail.value);
|
|
17374
|
+
}
|
|
17375
|
+
});
|
|
17376
|
+
this._tagify.on('add', (e) => {
|
|
17377
|
+
e.detail.tagify.DOM.input.focus();
|
|
17378
|
+
const textNode = e.detail.tag.nextSibling;
|
|
17379
|
+
if (document.getSelection()?.getRangeAt(0)) {
|
|
17380
|
+
document.getSelection()?.getRangeAt(0).setStart(textNode, 1);
|
|
17381
|
+
}
|
|
17382
|
+
});
|
|
17383
|
+
// this._tagify.on('focus', (e: any) => {
|
|
17384
|
+
// this._tagify.dropdown.show(e.detail.value);
|
|
17385
|
+
// })
|
|
17386
|
+
}
|
|
17387
|
+
ngOnDestroy() {
|
|
17388
|
+
}
|
|
17389
|
+
registerOnChange(fn) {
|
|
17390
|
+
}
|
|
17391
|
+
registerOnTouched(fn) {
|
|
17392
|
+
}
|
|
17393
|
+
writeValue(obj) {
|
|
17394
|
+
}
|
|
17395
|
+
onInput(event) {
|
|
17396
|
+
const target = event.target;
|
|
17397
|
+
const content = target.textContent || '';
|
|
17398
|
+
const valueArray = content.split(/[ ]+/);
|
|
17399
|
+
}
|
|
17400
|
+
onBlur(event) {
|
|
17401
|
+
const target = event.target;
|
|
17402
|
+
const content = target.textContent || '';
|
|
17403
|
+
const visibleValueArray = content.split(/[\s\u00A0]+/);
|
|
17404
|
+
const originalValueArray = [];
|
|
17405
|
+
visibleValueArray.forEach((item, index, array) => {
|
|
17406
|
+
if (this._whitelist.find(v => v === item)) {
|
|
17407
|
+
visibleValueArray[index] = `<div class="tag" title="Eric Cartman" contenteditable="false" tabindex="-1"><div>${item}</div><div></div></div> `;
|
|
17408
|
+
originalValueArray.push(`{${item}}`);
|
|
17409
|
+
}
|
|
17410
|
+
else {
|
|
17411
|
+
originalValueArray.push(item);
|
|
17412
|
+
}
|
|
17413
|
+
});
|
|
17414
|
+
this.transformValue(visibleValueArray);
|
|
17415
|
+
this.updateValue(originalValueArray);
|
|
17416
|
+
// this.isFocused = false
|
|
17417
|
+
this.updateSelection(event);
|
|
17418
|
+
}
|
|
17419
|
+
transformValue(array) {
|
|
17420
|
+
this.value = array.join(' ');
|
|
17421
|
+
}
|
|
17422
|
+
updateValue(array) {
|
|
17423
|
+
console.log(array.join(' '));
|
|
17424
|
+
}
|
|
17425
|
+
updateSelection(event) {
|
|
17426
|
+
const selections = window.getSelection();
|
|
17427
|
+
console.log(selections);
|
|
17428
|
+
const start = selections?.anchorOffset || 0;
|
|
17429
|
+
const end = selections?.focusOffset || 0;
|
|
17430
|
+
if (start > end) {
|
|
17431
|
+
this.selectionStart = end;
|
|
17432
|
+
this.selectionEnd = start;
|
|
17433
|
+
}
|
|
17434
|
+
else {
|
|
17435
|
+
this.selectionStart = start;
|
|
17436
|
+
this.selectionEnd = end;
|
|
17437
|
+
}
|
|
17438
|
+
}
|
|
17439
|
+
onFocus(event) {
|
|
17440
|
+
// this.updateSelection(event)
|
|
17441
|
+
this.isFocused = true;
|
|
17442
|
+
}
|
|
17443
|
+
insertTag(row) {
|
|
17444
|
+
if ((this.selectionStart || this.selectionStart === 0) && (this.selectionEnd || this.selectionEnd === 0)) {
|
|
17445
|
+
const firstText = this.value.slice(0, this.selectionStart);
|
|
17446
|
+
const secondText = this.value.slice(this.selectionEnd);
|
|
17447
|
+
this.value = firstText + row + secondText;
|
|
17448
|
+
}
|
|
17449
|
+
}
|
|
17450
|
+
onSelectionChange(event) {
|
|
17451
|
+
console.log('asd');
|
|
17452
|
+
}
|
|
17453
|
+
}
|
|
17454
|
+
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 });
|
|
17455
|
+
FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FormulaEditorComponent, selector: "mrx-formula-editor", providers: [{
|
|
17456
|
+
provide: NG_VALUE_ACCESSOR,
|
|
17457
|
+
useExisting: forwardRef(() => FormulaEditorComponent),
|
|
17458
|
+
multi: true
|
|
17459
|
+
}], 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=\"​\" 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 } });
|
|
17460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, decorators: [{
|
|
17461
|
+
type: Component,
|
|
17462
|
+
args: [{ selector: 'mrx-formula-editor', providers: [{
|
|
17463
|
+
provide: NG_VALUE_ACCESSOR,
|
|
17464
|
+
useExisting: forwardRef(() => FormulaEditorComponent),
|
|
17465
|
+
multi: true
|
|
17466
|
+
}], 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=\"​\" 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"] }]
|
|
17467
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
17468
|
+
type: Inject,
|
|
17469
|
+
args: [DOCUMENT]
|
|
17470
|
+
}] }, { type: i1.DomSanitizer }]; }, propDecorators: { inputElement: [{
|
|
17471
|
+
type: ViewChild,
|
|
17472
|
+
args: ['inputElement', { static: true }]
|
|
17473
|
+
}] } });
|
|
17474
|
+
|
|
17475
|
+
class FormulaEditorModule {
|
|
17476
|
+
}
|
|
17477
|
+
FormulaEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17478
|
+
FormulaEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, declarations: [FormulaEditorComponent], imports: [CommonModule,
|
|
17479
|
+
CharsLeftModule,
|
|
17480
|
+
ErrorMessageModule,
|
|
17481
|
+
FormsModule,
|
|
17482
|
+
NgxMaskModule,
|
|
17483
|
+
SaveStateModule,
|
|
17484
|
+
SafeModule], exports: [FormulaEditorComponent] });
|
|
17485
|
+
FormulaEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, imports: [[
|
|
17486
|
+
CommonModule,
|
|
17487
|
+
CharsLeftModule,
|
|
17488
|
+
ErrorMessageModule,
|
|
17489
|
+
FormsModule,
|
|
17490
|
+
NgxMaskModule,
|
|
17491
|
+
SaveStateModule,
|
|
17492
|
+
SafeModule
|
|
17493
|
+
]] });
|
|
17494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorModule, decorators: [{
|
|
17495
|
+
type: NgModule,
|
|
17496
|
+
args: [{
|
|
17497
|
+
declarations: [
|
|
17498
|
+
FormulaEditorComponent
|
|
17499
|
+
],
|
|
17500
|
+
imports: [
|
|
17501
|
+
CommonModule,
|
|
17502
|
+
CharsLeftModule,
|
|
17503
|
+
ErrorMessageModule,
|
|
17504
|
+
FormsModule,
|
|
17505
|
+
NgxMaskModule,
|
|
17506
|
+
SaveStateModule,
|
|
17507
|
+
SafeModule
|
|
17508
|
+
],
|
|
17509
|
+
exports: [
|
|
17510
|
+
FormulaEditorComponent
|
|
17511
|
+
]
|
|
17512
|
+
}]
|
|
17513
|
+
}] });
|
|
17514
|
+
|
|
17313
17515
|
// COMPONENTS
|
|
17314
17516
|
|
|
17315
17517
|
/**
|
|
17316
17518
|
* Generated bundle index. Do not edit.
|
|
17317
17519
|
*/
|
|
17318
17520
|
|
|
17319
|
-
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, 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 };
|
|
17521
|
+
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 };
|
|
17320
17522
|
//# sourceMappingURL=myrta-ui.mjs.map
|