nira-falcon 0.0.4 → 0.0.6

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.
@@ -246,6 +246,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
246
246
  type: Input
247
247
  }] } });
248
248
 
249
+ function toEnglishDigits(num) {
250
+ if (num === null || num === undefined) {
251
+ return '';
252
+ }
253
+ if (typeof num !== 'string' || num.length === 0)
254
+ return num.toString();
255
+ const faDigits = '۰۱۲۳۴۵۶۷۸۹';
256
+ const arDigits = '٠١٢٣٤٥٦٧٨٩';
257
+ let output = '';
258
+ for (let ipos = 0; ipos < num.length; ipos++) {
259
+ let faIndex = faDigits.indexOf(num[ipos]);
260
+ if (faIndex >= 0) {
261
+ output += faIndex.toString();
262
+ continue;
263
+ }
264
+ let arIndex = arDigits.indexOf(num[ipos]);
265
+ if (arIndex >= 0) {
266
+ output += arIndex.toString();
267
+ continue;
268
+ }
269
+ output += num[ipos];
270
+ }
271
+ return output.replace(/,/g, '');
272
+ }
273
+ function WordifyFa(input, level = 0) {
274
+ if (input === null || input === undefined) {
275
+ return '';
276
+ }
277
+ let num = parseInt(toEnglishDigits(input));
278
+ // convert negative number to positive and get wordify value
279
+ if (num < 0) {
280
+ num = num * -1;
281
+ return 'منفی ' + WordifyFa(num, level);
282
+ }
283
+ if (num === 0) {
284
+ if (level === 0) {
285
+ return 'صفر';
286
+ }
287
+ else {
288
+ return '';
289
+ }
290
+ }
291
+ let result = '';
292
+ const yekan = ['یک', 'دو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه'], dahgan = ['بیست', 'سی', 'چهل', 'پنجاه', 'شصت', 'هفتاد', 'هشتاد', 'نود'], sadgan = [
293
+ 'یکصد',
294
+ 'دویست',
295
+ 'سیصد',
296
+ 'چهارصد',
297
+ 'پانصد',
298
+ 'ششصد',
299
+ 'هفتصد',
300
+ 'هشتصد',
301
+ 'نهصد',
302
+ ], dah = [
303
+ 'ده',
304
+ 'یازده',
305
+ 'دوازده',
306
+ 'سیزده',
307
+ 'چهارده',
308
+ 'پانزده',
309
+ 'شانزده',
310
+ 'هفده',
311
+ 'هیجده',
312
+ 'نوزده',
313
+ ];
314
+ if (level > 0) {
315
+ result += ' و ';
316
+ level -= 1;
317
+ }
318
+ if (num < 10) {
319
+ result += yekan[num - 1];
320
+ }
321
+ else if (num < 20) {
322
+ result += dah[num - 10];
323
+ }
324
+ else if (num < 100) {
325
+ result += dahgan[Math.floor(num / 10) - 2] + WordifyFa(num % 10, level + 1);
326
+ }
327
+ else if (num < 1000) {
328
+ result +=
329
+ sadgan[Math.floor(num / 100) - 1] + WordifyFa(num % 100, level + 1);
330
+ }
331
+ else if (num < 1000000) {
332
+ result +=
333
+ WordifyFa(Math.floor(num / 1000), level) +
334
+ ' هزار' +
335
+ WordifyFa(num % 1000, level + 1);
336
+ }
337
+ else if (num < 1000000000) {
338
+ result +=
339
+ WordifyFa(Math.floor(num / 1000000), level) +
340
+ ' میلیون' +
341
+ WordifyFa(num % 1000000, level + 1);
342
+ }
343
+ else if (num < 1000000000000) {
344
+ result +=
345
+ WordifyFa(Math.floor(num / 1000000000), level) +
346
+ ' میلیارد' +
347
+ WordifyFa(num % 1000000000, level + 1);
348
+ }
349
+ else if (num < 1000000000000000) {
350
+ result +=
351
+ WordifyFa(Math.floor(num / 1000000000000), level) +
352
+ ' تریلیارد' +
353
+ WordifyFa(num % 1000000000000, level + 1);
354
+ }
355
+ return result;
356
+ }
357
+
249
358
  class PersianDigitsPipe {
250
359
  transform(el) {
251
360
  const persian = {
@@ -284,12 +393,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
284
393
  }]
285
394
  }] });
286
395
 
396
+ class CoreNumberComponent {
397
+ constructor() {
398
+ this.number = '';
399
+ this.type = 'number';
400
+ this.canSplitNumbers = false;
401
+ this.canShowWordInToolTip = false;
402
+ this.canShowIRR = false;
403
+ }
404
+ wordifyFa(number) {
405
+ if (number === undefined) {
406
+ return '';
407
+ }
408
+ if (this.type === 'number') {
409
+ if (this.canSplitNumbers) {
410
+ return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
411
+ }
412
+ else {
413
+ return number;
414
+ }
415
+ }
416
+ else {
417
+ const newNumber = Number(number.toString().replaceAll(',', ''));
418
+ if (newNumber > 10) {
419
+ return WordifyFa(newNumber / 10) + ' تومان ';
420
+ }
421
+ else {
422
+ return WordifyFa(number);
423
+ }
424
+ }
425
+ }
426
+ toolTipText(number) {
427
+ if (this.number === undefined)
428
+ return '';
429
+ if (!this.canShowWordInToolTip)
430
+ return '';
431
+ if (number && +number > 10) {
432
+ return WordifyFa(+number / 10) + ' تومان ';
433
+ }
434
+ else {
435
+ return WordifyFa(number);
436
+ }
437
+ }
438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
439
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreNumberComponent, selector: "app-core-number", inputs: { number: "number", type: "type", canSplitNumbers: "canSplitNumbers", canShowWordInToolTip: "canShowWordInToolTip", canShowIRR: "canShowIRR" }, ngImport: i0, template: "<span [title]=\"toolTipText(number)\"\r\n >{{ wordifyFa(number) | persianDigits }} {{ canShowIRR ? \"\u0631\u06CC\u0627\u0644\" : \"\" }}\r\n</span>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: PersianDigitsPipe, name: "persianDigits" }] }); }
440
+ }
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreNumberComponent, decorators: [{
442
+ type: Component,
443
+ args: [{ selector: 'app-core-number', template: "<span [title]=\"toolTipText(number)\"\r\n >{{ wordifyFa(number) | persianDigits }} {{ canShowIRR ? \"\u0631\u06CC\u0627\u0644\" : \"\" }}\r\n</span>\r\n" }]
444
+ }], propDecorators: { number: [{
445
+ type: Input
446
+ }], type: [{
447
+ type: Input
448
+ }], canSplitNumbers: [{
449
+ type: Input
450
+ }], canShowWordInToolTip: [{
451
+ type: Input
452
+ }], canShowIRR: [{
453
+ type: Input
454
+ }] } });
455
+
287
456
  class CoreInputComponent {
288
457
  constructor() {
289
458
  this.isDisable = false;
459
+ this.canShowWordifyFa = false;
460
+ this.canSplitNumber = false;
461
+ this.canHighlightBackground = false;
462
+ this.maxLength = 2000;
290
463
  this.inputFormControl = new FormControl('', []);
291
464
  this.placeholder = '';
292
465
  this.onChange = new EventEmitter();
466
+ this.onBlurEmit = new EventEmitter();
293
467
  }
294
468
  set type(value) {
295
469
  this.inputType = value;
@@ -303,19 +477,85 @@ class CoreInputComponent {
303
477
  this.inputFormControl.enable();
304
478
  }
305
479
  }
306
- change() {
307
- if (!this.inputFormControl.errors) {
308
- this.onChange.emit(this.inputFormControl.value);
480
+ change(event) {
481
+ this.formatPrice(event.srcElement.value);
482
+ }
483
+ onPaste(event) {
484
+ setTimeout(() => {
485
+ const value = event.srcElement.value;
486
+ this.inputFormControl.markAsTouched();
487
+ this.inputFormControl.setValue(value);
488
+ if (this.inputType === 'number' && this.canSplitNumber) {
489
+ this.onChange.emit(value.replaceAll(',', ''));
490
+ }
491
+ else {
492
+ if (!this.inputFormControl.errors) {
493
+ this.onChange.emit(value);
494
+ }
495
+ }
496
+ }, 10);
497
+ }
498
+ onBlur() {
499
+ if (this.inputType === 'number' && this.canSplitNumber) {
500
+ this.onChange.emit(this.inputFormControl.value.replaceAll(',', ''));
501
+ }
502
+ else {
503
+ if (!this.inputFormControl.errors) {
504
+ this.onChange.emit(this.inputFormControl.value);
505
+ }
506
+ }
507
+ this.onBlurEmit.emit(this.inputFormControl.value);
508
+ console.log(this.inputFormControl);
509
+ }
510
+ onKeyPress() {
511
+ if (this.inputFormControl.value.toString().length == this.maxLength) {
512
+ return false;
513
+ }
514
+ else {
515
+ return true;
516
+ }
517
+ }
518
+ formatPrice(event) {
519
+ if (this.inputType === 'number' && this.canSplitNumber) {
520
+ setTimeout(() => {
521
+ let value = event;
522
+ value = Number(value.replaceAll(',', ''));
523
+ if (isNaN(value)) {
524
+ this.inputFormControl.setValue('');
525
+ }
526
+ else {
527
+ const formatValue = value
528
+ .toString()
529
+ .replace(/\B(?=(\d{3})+(?!\d))/g, ',');
530
+ this.inputFormControl.setValue(formatValue);
531
+ }
532
+ if (!this.inputFormControl.errors) {
533
+ this.onChange.emit(this.inputFormControl.value.replaceAll(',', ''));
534
+ }
535
+ }, 10);
536
+ }
537
+ else {
538
+ if (!this.inputFormControl.errors) {
539
+ this.onChange.emit(this.inputFormControl.value);
540
+ }
309
541
  }
310
542
  }
311
543
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreInputComponent, selector: "core-input", inputs: { type: "type", inputFormControl: "inputFormControl", disable: "disable", placeholder: "placeholder" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <input\r\n [type]=\"inputType\"\r\n class=\"a-input-style\"\r\n (ngModelChange)=\"change()\"\r\n [formControl]=\"inputFormControl\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value,\r\n 'disable-input': isDisable\r\n }\"\r\n />\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['prePayment']\r\n \"\r\n >\u0645\u0628\u0644\u063A \u0635\u062D\u06CC\u062D \u0646\u06CC\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u0642\u0644 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['minlength'].requiredLength|persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['maxlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u06A9\u062B\u0631 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['maxlength'].requiredLength |persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input:focus{border:2px solid var(--blue-input-focus-color)}input{border:1px solid var(--blue-input-border-color);border-radius:.25rem}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:#f2f4f726;color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:#f2f4f70d;border-radius:3px;border:1px solid rgba(19,92,175,.397)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:var(--default-input-placeholder-color)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:var(--red-input-validation-color);font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.error input{border:1px solid var(--red-input-validation-color)}.container-input{background:var(--default-input-background-color);position:relative}.container-input .disable-input{background-color:var(--default-input-disable-background-color);border:1px dashed var(--default-input-disable-border-color);cursor:no-drop}.container-input label{position:absolute;right:20px;top:12px;color:var(--default-input-label-color);font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: PersianDigitsPipe, name: "persianDigits" }] }); }
544
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreInputComponent, selector: "core-input", inputs: { type: "type", canShowWordifyFa: "canShowWordifyFa", canSplitNumber: "canSplitNumber", canHighlightBackground: "canHighlightBackground", maxLength: "maxLength", inputFormControl: "inputFormControl", disable: "disable", placeholder: "placeholder" }, outputs: { onChange: "onChange", onBlurEmit: "onBlurEmit" }, ngImport: i0, template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <input\r\n [type]=\"'text'\"\r\n class=\"a-input-style\"\r\n [formControl]=\"inputFormControl\"\r\n (blur)=\"onBlur()\"\r\n (keyup)=\"change($event)\"\r\n (paste)=\"onPaste($event)\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value.toString().length > 0,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n inputFormControl.value.toString().length === 0 &&\r\n !(\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n ),\r\n 'disable-input': isDisable\r\n }\"\r\n (keypress)=\"onKeyPress()\"\r\n />\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n class=\"label-number\"\r\n *ngIf=\"\r\n canShowWordifyFa &&\r\n inputFormControl.value.toString().length > 0 &&\r\n inputType === 'number'\r\n \"\r\n ><app-core-number\r\n [canShowWordInToolTip]=\"false\"\r\n [type]=\"'word'\"\r\n [number]=\"inputFormControl.value\"\r\n ></app-core-number\r\n ></span>\r\n\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['prePayment']\r\n \"\r\n >\u0645\u0628\u0644\u063A \u0635\u062D\u06CC\u062D \u0646\u06CC\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u0642\u0644 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['minlength'].requiredLength|persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['maxlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u06A9\u062B\u0631 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['maxlength'].requiredLength |persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['pattern']?.requiredPattern=='^09[0-9]{9}$'\r\n \"\r\n >\r\n \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647 \u0627\u0634\u062A\u0628\u0627\u0647 \u0647\u0633\u062A\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input:focus{border:2px solid blue}input{border:1px solid #ced4da;border-radius:.25rem}.highlight-background{background-color:#dcf6ff!important}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:#f2f4f726;color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:#f2f4f70d;border-radius:3px;border:1px solid rgba(19,92,175,.397)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:#c2c2c2b3}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.label-number{color:#6a6a6a}.error input{border:1px solid #fe5f5f}.container-input{background:#fff;position:relative}.container-input .disable-input{background-color:#f7f7f7;border:1px dashed #ced4da;pointer-events:none}.container-input label{position:absolute;right:20px;top:12px;color:gray;font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CoreNumberComponent, selector: "app-core-number", inputs: ["number", "type", "canSplitNumbers", "canShowWordInToolTip", "canShowIRR"] }, { kind: "pipe", type: PersianDigitsPipe, name: "persianDigits" }] }); }
313
545
  }
314
546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreInputComponent, decorators: [{
315
547
  type: Component,
316
- args: [{ selector: 'core-input', template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <input\r\n [type]=\"inputType\"\r\n class=\"a-input-style\"\r\n (ngModelChange)=\"change()\"\r\n [formControl]=\"inputFormControl\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value,\r\n 'disable-input': isDisable\r\n }\"\r\n />\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['prePayment']\r\n \"\r\n >\u0645\u0628\u0644\u063A \u0635\u062D\u06CC\u062D \u0646\u06CC\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u0642\u0644 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['minlength'].requiredLength|persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['maxlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u06A9\u062B\u0631 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['maxlength'].requiredLength |persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input:focus{border:2px solid var(--blue-input-focus-color)}input{border:1px solid var(--blue-input-border-color);border-radius:.25rem}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:#f2f4f726;color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:#f2f4f70d;border-radius:3px;border:1px solid rgba(19,92,175,.397)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:var(--default-input-placeholder-color)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:var(--red-input-validation-color);font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.error input{border:1px solid var(--red-input-validation-color)}.container-input{background:var(--default-input-background-color);position:relative}.container-input .disable-input{background-color:var(--default-input-disable-background-color);border:1px dashed var(--default-input-disable-border-color);cursor:no-drop}.container-input label{position:absolute;right:20px;top:12px;color:var(--default-input-label-color);font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"] }]
548
+ args: [{ selector: 'core-input', template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <input\r\n [type]=\"'text'\"\r\n class=\"a-input-style\"\r\n [formControl]=\"inputFormControl\"\r\n (blur)=\"onBlur()\"\r\n (keyup)=\"change($event)\"\r\n (paste)=\"onPaste($event)\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value.toString().length > 0,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n inputFormControl.value.toString().length === 0 &&\r\n !(\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n ),\r\n 'disable-input': isDisable\r\n }\"\r\n (keypress)=\"onKeyPress()\"\r\n />\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n class=\"label-number\"\r\n *ngIf=\"\r\n canShowWordifyFa &&\r\n inputFormControl.value.toString().length > 0 &&\r\n inputType === 'number'\r\n \"\r\n ><app-core-number\r\n [canShowWordInToolTip]=\"false\"\r\n [type]=\"'word'\"\r\n [number]=\"inputFormControl.value\"\r\n ></app-core-number\r\n ></span>\r\n\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['prePayment']\r\n \"\r\n >\u0645\u0628\u0644\u063A \u0635\u062D\u06CC\u062D \u0646\u06CC\u0633\u062A</span\r\n >\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u0642\u0644 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['minlength'].requiredLength|persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['maxlength']\r\n \"\r\n >\r\n \u062D\u062F\u0627\u06A9\u062B\u0631 \u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u06A9\u062A\u0631\r\n {{inputFormControl.errors?.['maxlength'].requiredLength |persianDigits}}\r\n \u0639\u062F\u062F \u0628\u0627\u0634\u062F\r\n </span>\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['pattern']?.requiredPattern=='^09[0-9]{9}$'\r\n \"\r\n >\r\n \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647 \u0627\u0634\u062A\u0628\u0627\u0647 \u0647\u0633\u062A\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input:focus{border:2px solid blue}input{border:1px solid #ced4da;border-radius:.25rem}.highlight-background{background-color:#dcf6ff!important}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:#f2f4f726;color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:#f2f4f70d;border-radius:3px;border:1px solid rgba(19,92,175,.397)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:#c2c2c2b3}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.label-number{color:#6a6a6a}.error input{border:1px solid #fe5f5f}.container-input{background:#fff;position:relative}.container-input .disable-input{background-color:#f7f7f7;border:1px dashed #ced4da;pointer-events:none}.container-input label{position:absolute;right:20px;top:12px;color:gray;font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"] }]
317
549
  }], propDecorators: { type: [{
318
550
  type: Input
551
+ }], canShowWordifyFa: [{
552
+ type: Input
553
+ }], canSplitNumber: [{
554
+ type: Input
555
+ }], canHighlightBackground: [{
556
+ type: Input
557
+ }], maxLength: [{
558
+ type: Input
319
559
  }], inputFormControl: [{
320
560
  type: Input
321
561
  }], disable: [{
@@ -324,6 +564,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
324
564
  type: Input
325
565
  }], onChange: [{
326
566
  type: Output
567
+ }], onBlurEmit: [{
568
+ type: Output
327
569
  }] } });
328
570
 
329
571
  class CoreDatePickerComponent {
@@ -358,7 +600,7 @@ class CoreDatePickerComponent {
358
600
  });
359
601
  }
360
602
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
361
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: { canSelectToday: "canSelectToday", defaultDate: "defaultDate", label: "label", inputFormControl: "inputFormControl" }, ngImport: i0, template: "<core-input\r\n [placeholder]=\"label\"\r\n [inputFormControl]=\"inputFormControl\"\r\n (click)=\"isOpenCalendar = true\"\r\n>\r\n</core-input>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1$3.NiraDatePickerComponent, selector: "lib-nira-date-picker", inputs: ["selectToday", "disable", "changableYears", "theme", "defaultDate", "isOpenCalendar"], outputs: ["isOpenCalendarChange", "todayDate", "datePickerResult"] }, { kind: "component", type: CoreInputComponent, selector: "core-input", inputs: ["type", "inputFormControl", "disable", "placeholder"], outputs: ["onChange"] }] }); }
603
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: { canSelectToday: "canSelectToday", defaultDate: "defaultDate", label: "label", inputFormControl: "inputFormControl" }, ngImport: i0, template: "<core-input\r\n [placeholder]=\"label\"\r\n [inputFormControl]=\"inputFormControl\"\r\n (click)=\"isOpenCalendar = true\"\r\n>\r\n</core-input>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1$3.NiraDatePickerComponent, selector: "lib-nira-date-picker", inputs: ["selectToday", "disable", "changableYears", "theme", "defaultDate", "isOpenCalendar"], outputs: ["isOpenCalendarChange", "todayDate", "datePickerResult"] }, { kind: "component", type: CoreInputComponent, selector: "core-input", inputs: ["type", "canShowWordifyFa", "canSplitNumber", "canHighlightBackground", "maxLength", "inputFormControl", "disable", "placeholder"], outputs: ["onChange", "onBlurEmit"] }] }); }
362
604
  }
363
605
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreDatePickerComponent, decorators: [{
364
606
  type: Component,
@@ -493,24 +735,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
493
735
  }] } });
494
736
 
495
737
  class CoreSelectComponent {
496
- set titleKey(data) {
497
- this._titleKey = data;
498
- this.hasTitleKey = true;
499
- this.init();
500
- }
501
- set valueKey(data) {
502
- this._valueKey = data;
503
- this.hasValueKey = true;
504
- this.init();
505
- }
506
738
  set items(data) {
507
739
  this._items = data;
508
- this.hasItems = true;
509
740
  this.init();
510
741
  }
511
742
  set defaultValue(data) {
512
743
  this._defaultValue = data;
513
- this.hasDefaultValue = true;
514
744
  this.init();
515
745
  }
516
746
  constructor(cdr) {
@@ -519,38 +749,27 @@ class CoreSelectComponent {
519
749
  this.newItems = [];
520
750
  this.isOpenMenu = false;
521
751
  this._items = [];
522
- this._defaultValue = undefined;
523
- this.initCounter = 0;
524
- this.hasTitleKey = false;
525
- this.hasValueKey = false;
526
- this.hasItems = false;
527
- this.hasDefaultValue = false;
752
+ this.canHighlightBackground = false;
528
753
  this.label = '';
529
754
  this.disabled = false;
530
755
  this.onItemSelected = new EventEmitter();
531
756
  this.inputFormControl = new FormControl('', []);
532
757
  }
533
758
  init() {
534
- if (this.hasTitleKey &&
535
- this.hasValueKey &&
536
- this.hasItems &&
537
- this.hasDefaultValue) {
538
- this.newItems = this.changeItemsType(this._items);
539
- const item = this.newItems.find((item) => item.value == this._defaultValue);
540
- if (!this._defaultValue || this._defaultValue === null)
541
- return;
542
- this.inputFormControl.setValue(this._defaultValue);
543
- this.onItemSelect(this.newItems.find((item) => item.value == this._defaultValue), false);
544
- }
759
+ this.titleKeyObject = this.titleKey;
760
+ this.valueKeyObject = this.valueKey;
761
+ this.newItems = this.changeItemsType(this._items);
762
+ this.inputFormControl.setValue(this._defaultValue);
763
+ this.onItemSelect(this.newItems.find((item) => item.value == this._defaultValue), false);
545
764
  }
546
- ngAfterViewInit() {
547
- this.cdr.detectChanges();
765
+ ngOnInit() {
766
+ this.init();
548
767
  }
549
768
  changeItemsType(items) {
550
769
  return items.map((item) => {
551
770
  return {
552
- title: item[this._titleKey],
553
- value: item[this._valueKey],
771
+ title: item[this.titleKeyObject],
772
+ value: item[this.valueKeyObject],
554
773
  };
555
774
  });
556
775
  }
@@ -563,8 +782,12 @@ class CoreSelectComponent {
563
782
  if (isFromUi)
564
783
  this.inputFormControl.markAsTouched();
565
784
  this.isOpenMenu = false;
785
+ if (!selectedItem) {
786
+ this.selectedItem = {};
787
+ return;
788
+ }
566
789
  this.selectedItem = selectedItem;
567
- const mainItem = this._items.find((item) => item[this._valueKey] === selectedItem.value);
790
+ const mainItem = this._items.find((item) => item[this.valueKeyObject] === selectedItem.value);
568
791
  this.inputFormControl.setValue(selectedItem.value);
569
792
  this.onItemSelected.emit(mainItem);
570
793
  }
@@ -573,23 +796,21 @@ class CoreSelectComponent {
573
796
  this.inputFormControl.markAsTouched();
574
797
  }
575
798
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
576
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div tabindex=\"-1\" class=\"dropdown\" (focusout)=\"focusOut()\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'disable-selector': disabled,\r\n selectError: inputFormControl.touched && inputFormControl.errors\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:var(--default-selector-disable-background-color)!important;border:1px dashed var(--default-selector-disable-border-color)!important;cursor:no-drop!important}.dropdown .select{background:var(--default-selector-background-color);color:var(--default-selector-text-color);display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid var(--default-selector-border-color);border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:var(--default-selector-hover-color)}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:var(--default-selector-label-background-color);top:-8px;padding-inline:6px;font-size:11px;color:var(--default-selector-label-text--color)}.dropdown .select .caret{fill:var(--default-selector-icon-color);color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:var(--default-selector-placeholder-text-color);padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:var(--default-selector-menu-background-color);border:1px solid var(--default-selector-menu-border-color);box-shadow:0 .5em 1em #0003;border-radius:.5em;color:var(--default-selector-menu-text-color);position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:var(--default-selector-menu-item-hover-color)}.dropdown .menu .active{background:var(--default-selector-menu-item-active-color)}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:var(--default-selector-validation-text-color);font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid var(--default-selector-validation-border-color)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
799
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div tabindex=\"-1\" class=\"dropdown\" (focusout)=\"focusOut()\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6}.dropdown .menu .active{background:#ced4da}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
577
800
  }
578
801
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, decorators: [{
579
802
  type: Component,
580
- args: [{ selector: 'core-select', template: "<div tabindex=\"-1\" class=\"dropdown\" (focusout)=\"focusOut()\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'disable-selector': disabled,\r\n selectError: inputFormControl.touched && inputFormControl.errors\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:var(--default-selector-disable-background-color)!important;border:1px dashed var(--default-selector-disable-border-color)!important;cursor:no-drop!important}.dropdown .select{background:var(--default-selector-background-color);color:var(--default-selector-text-color);display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid var(--default-selector-border-color);border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:var(--default-selector-hover-color)}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:var(--default-selector-label-background-color);top:-8px;padding-inline:6px;font-size:11px;color:var(--default-selector-label-text--color)}.dropdown .select .caret{fill:var(--default-selector-icon-color);color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:var(--default-selector-placeholder-text-color);padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:var(--default-selector-menu-background-color);border:1px solid var(--default-selector-menu-border-color);box-shadow:0 .5em 1em #0003;border-radius:.5em;color:var(--default-selector-menu-text-color);position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:var(--default-selector-menu-item-hover-color)}.dropdown .menu .active{background:var(--default-selector-menu-item-active-color)}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:var(--default-selector-validation-text-color);font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid var(--default-selector-validation-border-color)!important}\n"] }]
803
+ args: [{ selector: 'core-select', template: "<div tabindex=\"-1\" class=\"dropdown\" (focusout)=\"focusOut()\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6}.dropdown .menu .active{background:#ced4da}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
581
804
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { titleKey: [{
582
- type: Input,
583
- args: [{ required: true }]
805
+ type: Input
584
806
  }], valueKey: [{
585
- type: Input,
586
- args: [{ required: true }]
807
+ type: Input
808
+ }], canHighlightBackground: [{
809
+ type: Input
587
810
  }], items: [{
588
- type: Input,
589
- args: [{ required: true }]
811
+ type: Input
590
812
  }], defaultValue: [{
591
- type: Input,
592
- args: [{ required: false }]
813
+ type: Input
593
814
  }], label: [{
594
815
  type: Input
595
816
  }], disabled: [{
@@ -1056,175 +1277,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1056
1277
  args: [{ required: true }]
1057
1278
  }] } });
1058
1279
 
1059
- function toEnglishDigits(num) {
1060
- if (num === null || num === undefined) {
1061
- return '';
1062
- }
1063
- if (typeof num !== 'string' || num.length === 0)
1064
- return num.toString();
1065
- const faDigits = '۰۱۲۳۴۵۶۷۸۹';
1066
- const arDigits = '٠١٢٣٤٥٦٧٨٩';
1067
- let output = '';
1068
- for (let ipos = 0; ipos < num.length; ipos++) {
1069
- let faIndex = faDigits.indexOf(num[ipos]);
1070
- if (faIndex >= 0) {
1071
- output += faIndex.toString();
1072
- continue;
1073
- }
1074
- let arIndex = arDigits.indexOf(num[ipos]);
1075
- if (arIndex >= 0) {
1076
- output += arIndex.toString();
1077
- continue;
1078
- }
1079
- output += num[ipos];
1080
- }
1081
- return output.replace(/,/g, '');
1082
- }
1083
- function WordifyFa(input, level = 0) {
1084
- if (input === null || input === undefined) {
1085
- return '';
1086
- }
1087
- let num = parseInt(toEnglishDigits(input));
1088
- // convert negative number to positive and get wordify value
1089
- if (num < 0) {
1090
- num = num * -1;
1091
- return 'منفی ' + WordifyFa(num, level);
1092
- }
1093
- if (num === 0) {
1094
- if (level === 0) {
1095
- return 'صفر';
1096
- }
1097
- else {
1098
- return '';
1099
- }
1100
- }
1101
- let result = '';
1102
- const yekan = ['یک', 'دو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه'], dahgan = ['بیست', 'سی', 'چهل', 'پنجاه', 'شصت', 'هفتاد', 'هشتاد', 'نود'], sadgan = [
1103
- 'یکصد',
1104
- 'دویست',
1105
- 'سیصد',
1106
- 'چهارصد',
1107
- 'پانصد',
1108
- 'ششصد',
1109
- 'هفتصد',
1110
- 'هشتصد',
1111
- 'نهصد',
1112
- ], dah = [
1113
- 'ده',
1114
- 'یازده',
1115
- 'دوازده',
1116
- 'سیزده',
1117
- 'چهارده',
1118
- 'پانزده',
1119
- 'شانزده',
1120
- 'هفده',
1121
- 'هیجده',
1122
- 'نوزده',
1123
- ];
1124
- if (level > 0) {
1125
- result += ' و ';
1126
- level -= 1;
1127
- }
1128
- if (num < 10) {
1129
- result += yekan[num - 1];
1130
- }
1131
- else if (num < 20) {
1132
- result += dah[num - 10];
1133
- }
1134
- else if (num < 100) {
1135
- result += dahgan[Math.floor(num / 10) - 2] + WordifyFa(num % 10, level + 1);
1136
- }
1137
- else if (num < 1000) {
1138
- result +=
1139
- sadgan[Math.floor(num / 100) - 1] + WordifyFa(num % 100, level + 1);
1140
- }
1141
- else if (num < 1000000) {
1142
- result +=
1143
- WordifyFa(Math.floor(num / 1000), level) +
1144
- ' هزار' +
1145
- WordifyFa(num % 1000, level + 1);
1146
- }
1147
- else if (num < 1000000000) {
1148
- result +=
1149
- WordifyFa(Math.floor(num / 1000000), level) +
1150
- ' میلیون' +
1151
- WordifyFa(num % 1000000, level + 1);
1152
- }
1153
- else if (num < 1000000000000) {
1154
- result +=
1155
- WordifyFa(Math.floor(num / 1000000000), level) +
1156
- ' میلیارد' +
1157
- WordifyFa(num % 1000000000, level + 1);
1158
- }
1159
- else if (num < 1000000000000000) {
1160
- result +=
1161
- WordifyFa(Math.floor(num / 1000000000000), level) +
1162
- ' تریلیارد' +
1163
- WordifyFa(num % 1000000000000, level + 1);
1164
- }
1165
- return result;
1166
- }
1167
-
1168
- class CoreNumberComponent {
1169
- constructor() {
1170
- this.number = '';
1171
- this.type = 'number';
1172
- this.canSplitNumbers = false;
1173
- this.canShowWordInToolTip = false;
1174
- this.canShowIRR = false;
1175
- }
1176
- wordifyFa(number) {
1177
- if (number === undefined) {
1178
- return '';
1179
- }
1180
- if (this.type === 'number') {
1181
- if (this.canSplitNumbers) {
1182
- return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
1183
- }
1184
- else {
1185
- return number;
1186
- }
1187
- }
1188
- else {
1189
- const newNumber = Number(number.toString().replaceAll(',', ''));
1190
- if (newNumber > 10) {
1191
- return WordifyFa(newNumber / 10) + ' تومان ';
1192
- }
1193
- else {
1194
- return WordifyFa(number);
1195
- }
1196
- }
1197
- }
1198
- toolTipText(number) {
1199
- if (this.number === undefined)
1200
- return '';
1201
- if (!this.canShowWordInToolTip)
1202
- return '';
1203
- if (number && +number > 10) {
1204
- return WordifyFa(+number / 10) + ' تومان ';
1205
- }
1206
- else {
1207
- return WordifyFa(number);
1208
- }
1209
- }
1210
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreNumberComponent, selector: "app-core-number", inputs: { number: "number", type: "type", canSplitNumbers: "canSplitNumbers", canShowWordInToolTip: "canShowWordInToolTip", canShowIRR: "canShowIRR" }, ngImport: i0, template: "<span [title]=\"toolTipText(number)\"\r\n >{{ wordifyFa(number) | persianDigits }} {{ canShowIRR ? \"\u0631\u06CC\u0627\u0644\" : \"\" }}\r\n</span>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: PersianDigitsPipe, name: "persianDigits" }] }); }
1212
- }
1213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreNumberComponent, decorators: [{
1214
- type: Component,
1215
- args: [{ selector: 'app-core-number', template: "<span [title]=\"toolTipText(number)\"\r\n >{{ wordifyFa(number) | persianDigits }} {{ canShowIRR ? \"\u0631\u06CC\u0627\u0644\" : \"\" }}\r\n</span>\r\n" }]
1216
- }], propDecorators: { number: [{
1217
- type: Input
1218
- }], type: [{
1219
- type: Input
1220
- }], canSplitNumbers: [{
1221
- type: Input
1222
- }], canShowWordInToolTip: [{
1223
- type: Input
1224
- }], canShowIRR: [{
1225
- type: Input
1226
- }] } });
1227
-
1228
1280
  class CaretUpIconComponent {
1229
1281
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaretUpIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1230
1282
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaretUpIconComponent, selector: "app-caret-up-icon", ngImport: i0, template: "<svg\r\n class=\"svg-inline--fa fa-caret-up fa-w-10 me-1\"\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-prefix=\"fas\"\r\n data-icon=\"caret-up\"\r\n role=\"img\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 320 512\"\r\n data-fa-i2svg=\"\"\r\n>\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"\r\n ></path>\r\n</svg>\r\n", styles: [""] }); }
@@ -2042,12 +2094,26 @@ class CoreTimePickerComponent {
2042
2094
  this.onBlurEmit = new EventEmitter();
2043
2095
  this.placeholder = '';
2044
2096
  this.canHighlightBackground = false;
2097
+ this.setCurrentTime = false;
2045
2098
  this.inputFormControl = new FormControl('', []);
2046
2099
  this.selectedTime = '';
2047
2100
  this.maxLength = 2000;
2048
2101
  }
2049
2102
  ngOnInit() {
2050
2103
  this.inputFormControl.addValidators(Validators.minLength(5));
2104
+ if (this.setCurrentTime) {
2105
+ var currentTime = new Date();
2106
+ this.selectedTime =
2107
+ String(currentTime.getHours().toString().length > 1
2108
+ ? currentTime.getHours().toString()
2109
+ : '0' + currentTime.getHours().toString()) +
2110
+ ':' +
2111
+ String(currentTime.getMinutes().toString().length > 1
2112
+ ? currentTime.getMinutes().toString()
2113
+ : '0' + currentTime.getMinutes().toString());
2114
+ this.inputFormControl.setValue(this.selectedTime);
2115
+ this.onSelect.emit(this.selectedTime);
2116
+ }
2051
2117
  }
2052
2118
  showSelectTimeModal() {
2053
2119
  const modal = this.niraModalService.open(TimePickerModalComponent, {
@@ -2079,7 +2145,6 @@ class CoreTimePickerComponent {
2079
2145
  .toString()
2080
2146
  .replace(/\B(?=(\d{2})+(?!\d))/g, ':');
2081
2147
  console.log(formatValue);
2082
- console.log(this.inputFormControl);
2083
2148
  this.inputFormControl.setValue(formatValue);
2084
2149
  }
2085
2150
  if (!this.inputFormControl.errors) {
@@ -2107,11 +2172,11 @@ class CoreTimePickerComponent {
2107
2172
  }
2108
2173
  }
2109
2174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTimePickerComponent, deps: [{ token: i1$1.NiraModalService }], target: i0.ɵɵFactoryTarget.Component }); }
2110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTimePickerComponent, selector: "core-time-picker", inputs: { placeholder: "placeholder", canHighlightBackground: "canHighlightBackground", inputFormControl: "inputFormControl", defaultValue: "defaultValue", maxLength: "maxLength" }, outputs: { onSelect: "onSelect", onBlurEmit: "onBlurEmit" }, ngImport: i0, template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <time-icon\r\n (click)=\"showSelectTimeModal()\"\r\n class=\"absolute left-3 top-3 fill-secondary-text-color h-5\"\r\n ></time-icon>\r\n <input\r\n [type]=\"'text'\"\r\n class=\"a-input-style have-value\"\r\n (keyup)=\"change($event)\"\r\n [formControl]=\"inputFormControl\"\r\n (blur)=\"onBlur()\"\r\n (paste)=\"onPaste($event)\"\r\n (keypress)=\"onKeyPress()\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value.toString().length > 0,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n inputFormControl.value.toString().length === 0 &&\r\n !(\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n ),\r\n }\"\r\n />\r\n\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n ><span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\u0641\u0648\u0631\u0645\u062A \u0633\u0627\u0639\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input{border:1px solid var(--default-time-picker-border-color);border-radius:.25rem}.highlight-background{background-color:var(--default-time-picker-highlight-background-color)!important}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:var(--default-time-picker-background-color);color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:var(--default-time-picker-background-focus-color);border-radius:3px;border:1px solid var(--default-time-picker-border-focus-color)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:var(--default-time-picker-placeholder-color)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input[type=time]::-webkit-calendar-picker-indicator{display:none;background:none}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.label-number{color:#6a6a6a}.error input{border:1px solid #fe5f5f}.container-input{background:#fff;position:relative}.container-input .disable-input{background-color:#f7f7f7;border:1px dashed #ced4da;pointer-events:none}.container-input label{position:absolute;right:20px;top:12px;color:gray;font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: TimeIconComponent, selector: "time-icon" }] }); }
2175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTimePickerComponent, selector: "core-time-picker", inputs: { placeholder: "placeholder", canHighlightBackground: "canHighlightBackground", setCurrentTime: "setCurrentTime", inputFormControl: "inputFormControl", defaultValue: "defaultValue", maxLength: "maxLength" }, outputs: { onSelect: "onSelect", onBlurEmit: "onBlurEmit" }, ngImport: i0, template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <time-icon\r\n (click)=\"showSelectTimeModal()\"\r\n class=\"absolute left-3 top-3 fill-secondary-text-color h-5\"\r\n ></time-icon>\r\n <input\r\n [type]=\"'text'\"\r\n class=\"a-input-style have-value\"\r\n (keyup)=\"change($event)\"\r\n [formControl]=\"inputFormControl\"\r\n (blur)=\"onBlur()\"\r\n (paste)=\"onPaste($event)\"\r\n (keypress)=\"onKeyPress()\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value.toString().length > 0,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n inputFormControl.value.toString().length === 0 &&\r\n !(\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n ),\r\n }\"\r\n />\r\n\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n ><span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\u0641\u0631\u0645\u062A \u0633\u0627\u0639\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input:focus{border:2px solid blue}input{border:1px solid #ced4da;border-radius:.25rem}.highlight-background{background-color:#dcf6ff!important}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:#f2f4f726;color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:#f2f4f70d;border-radius:3px;border:1px solid rgba(19,92,175,.397)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:#c2c2c2b3}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input[type=time]::-webkit-calendar-picker-indicator{display:none;background:none}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.label-number{color:#6a6a6a}.error input{border:1px solid #fe5f5f}.container-input{background:#fff;position:relative}.container-input .disable-input{background-color:#f7f7f7;border:1px dashed #ced4da;pointer-events:none}.container-input label{position:absolute;right:20px;top:12px;color:gray;font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: TimeIconComponent, selector: "time-icon" }] }); }
2111
2176
  }
2112
2177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTimePickerComponent, decorators: [{
2113
2178
  type: Component,
2114
- args: [{ selector: 'core-time-picker', template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <time-icon\r\n (click)=\"showSelectTimeModal()\"\r\n class=\"absolute left-3 top-3 fill-secondary-text-color h-5\"\r\n ></time-icon>\r\n <input\r\n [type]=\"'text'\"\r\n class=\"a-input-style have-value\"\r\n (keyup)=\"change($event)\"\r\n [formControl]=\"inputFormControl\"\r\n (blur)=\"onBlur()\"\r\n (paste)=\"onPaste($event)\"\r\n (keypress)=\"onKeyPress()\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value.toString().length > 0,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n inputFormControl.value.toString().length === 0 &&\r\n !(\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n ),\r\n }\"\r\n />\r\n\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n ><span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\u0641\u0648\u0631\u0645\u062A \u0633\u0627\u0639\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input{border:1px solid var(--default-time-picker-border-color);border-radius:.25rem}.highlight-background{background-color:var(--default-time-picker-highlight-background-color)!important}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:var(--default-time-picker-background-color);color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:var(--default-time-picker-background-focus-color);border-radius:3px;border:1px solid var(--default-time-picker-border-focus-color)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:var(--default-time-picker-placeholder-color)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input[type=time]::-webkit-calendar-picker-indicator{display:none;background:none}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.label-number{color:#6a6a6a}.error input{border:1px solid #fe5f5f}.container-input{background:#fff;position:relative}.container-input .disable-input{background-color:#f7f7f7;border:1px dashed #ced4da;pointer-events:none}.container-input label{position:absolute;right:20px;top:12px;color:gray;font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"] }]
2179
+ args: [{ selector: 'core-time-picker', template: "<div>\r\n <div\r\n class=\"container-input\"\r\n [ngClass]=\"{\r\n error:\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n }\"\r\n >\r\n <time-icon\r\n (click)=\"showSelectTimeModal()\"\r\n class=\"absolute left-3 top-3 fill-secondary-text-color h-5\"\r\n ></time-icon>\r\n <input\r\n [type]=\"'text'\"\r\n class=\"a-input-style have-value\"\r\n (keyup)=\"change($event)\"\r\n [formControl]=\"inputFormControl\"\r\n (blur)=\"onBlur()\"\r\n (paste)=\"onPaste($event)\"\r\n (keypress)=\"onKeyPress()\"\r\n [ngClass]=\"{\r\n 'have-value': inputFormControl.value.toString().length > 0,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n inputFormControl.value.toString().length === 0 &&\r\n !(\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors\r\n ),\r\n }\"\r\n />\r\n\r\n <label *ngIf=\"placeholder.length > 0\">{{ placeholder }} </label>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['required']\r\n \"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n ><span\r\n *ngIf=\"\r\n (inputFormControl.touched || inputFormControl.dirty) &&\r\n inputFormControl.errors?.['minlength']\r\n \"\r\n >\u0641\u0631\u0645\u062A \u0633\u0627\u0639\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".container{position:relative}input:focus{border:2px solid blue}input{border:1px solid #ced4da;border-radius:.25rem}.highlight-background{background-color:#dcf6ff!important}.icon-style{position:absolute;right:16px;top:16px;cursor:pointer;font-size:16px}.icon-style-email{position:absolute;right:16px;top:16px}.a-input-style{height:42px;width:100%;padding:16px;outline:none;caret-color:#020202b3;background-color:#f2f4f726;color:#000000b3;box-sizing:border-box}.a-input-style:focus{background-color:#f2f4f70d;border-radius:3px;border:1px solid rgba(19,92,175,.397)}.a-input-style::placeholder{height:15px;font-style:normal;font-weight:400;font-size:12px;line-height:15px;letter-spacing:-.03em;color:#c2c2c2b3}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:rgba(255,255,255,0)}input:-webkit-autofill.have-value,input:-webkit-autofill:hover.have-value,input:-webkit-autofill:focus.have-value{-webkit-text-fill-color:#181818!important}input[type=time]::-webkit-calendar-picker-indicator{display:none;background:none}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.label-number{color:#6a6a6a}.error input{border:1px solid #fe5f5f}.container-input{background:#fff;position:relative}.container-input .disable-input{background-color:#f7f7f7;border:1px dashed #ced4da;pointer-events:none}.container-input label{position:absolute;right:20px;top:12px;color:gray;font-size:12px;padding:0 8px;border-radius:15px;pointer-events:none;transition:.2s}.container-input input:focus+label,.container-input input.have-value+label{top:-10px;font-size:10px;z-index:3}.container-input input:focus+label:after,.container-input input.have-value+label:after{content:\"\";display:block;background:#fff;position:absolute;width:100%;height:1px;top:10px;right:0;transition:.3s;z-index:-1}\n"] }]
2115
2180
  }], ctorParameters: function () { return [{ type: i1$1.NiraModalService }]; }, propDecorators: { onSelect: [{
2116
2181
  type: Output
2117
2182
  }], onBlurEmit: [{
@@ -2120,6 +2185,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2120
2185
  type: Input
2121
2186
  }], canHighlightBackground: [{
2122
2187
  type: Input
2188
+ }], setCurrentTime: [{
2189
+ type: Input
2123
2190
  }], inputFormControl: [{
2124
2191
  type: Input
2125
2192
  }], defaultValue: [{