ps-toolkit-ui 1.19.58 → 1.19.67

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.
@@ -1,7 +1,6 @@
1
1
  import { Inject, Component, Input, Injectable, EventEmitter, Output, ViewChild, HostListener, Pipe, NgModule } from '@angular/core';
2
2
  import * as $$1 from 'jquery';
3
3
  import { ajax, param } from 'jquery';
4
- import { merge, get, groupBy, set, cloneDeep } from 'lodash';
5
4
  import * as moment from 'jalali-moment';
6
5
  import { now } from 'jalali-moment';
7
6
  import { NavigationEnd, Router, RouterModule } from '@angular/router';
@@ -74,283 +73,14 @@ AccordionComponent.propDecorators = {
74
73
  accordion: [{ type: Input }]
75
74
  };
76
75
 
77
- const strings = {
78
- fa: {
79
- Public: {
80
- Header: {
81
- Logout: 'خروج'
82
- },
83
- Login: {
84
- ReSendCodeDes: '<span class="c-secondary c-p">ارسال مجدد</span>',
85
- ReSendCodeRemain: '<div class="ltr d-ib va-m"><div class="t-c d-ib w-20-p f-l">{}</div><div class="t-c d-ib w-5-p f-l">:</div><div class="t-c d-ib w-20-p f-l">{}</div></div><div class="d-ib va-m">مانده تا دریافت مجدد کد</div>',
86
- Code: 'کد تایید',
87
- Base: 'نام سایت',
88
- BaseDesc: 'توضیحات سایت',
89
- SendCode: 'ورود',
90
- SendCodeSubTitle: 'برای ورود شماره همراه خود را وارد کنید',
91
- LoginSms: 'تایید شماره همراه',
92
- LoginSmsSubTitle: 'کد ارسال شده به شماره همراه {} را وارد کنید',
93
- LoginPassword: 'ورود',
94
- LoginPasswordSubTitle: 'برای ورود نام کاربری و کلمه عبور خود را وارد کنید',
95
- Register: 'ثبت کد تایید نرم افزار',
96
- DeviceId: 'کد نرم افزار: {}',
97
- Copy: 'کپی',
98
- RulesLabel: 'ورود شما به معنای پذیرش <span class="c-p c-blue">شرایط و قوانین حریم‌خصوصی</span> است',
99
- RulesTitle: 'شرایط و قوانین حریم‌خصوصی'
100
- },
101
- Footer: {
102
- Copyright: 'تمامی حقوق برای {} محفوظ است.',
103
- CreatorDesc: 'طراحی و توسعه',
104
- CreatorCom: 'پارت سیلیکون'
105
- },
106
- App: {
107
- Notfound: 'صفحه مورد نظر یافت نشد',
108
- Error: 'خطا در سیستم',
109
- },
110
- Notfound: {
111
- Text: 'متاسفانه صفحه مورد نظر شما یافت نشد',
112
- Back: 'بازگشت'
113
- },
114
- Version: 'نسخه {}',
115
- Download: 'دریافت فایل',
116
- ShowOptions: 'نمایش امکانات',
117
- IranCode: 'ایران کد',
118
- TrackingCode: 'کد رهگیری',
119
- Plaque: 'پلاک',
120
- DriverName: 'نام راننده',
121
- Name: 'نام',
122
- ProvinceId: 'استان',
123
- CityId: 'شهر',
124
- PostalCode: 'کدپستی',
125
- Title: 'عنوان',
126
- Text: 'متن',
127
- Date: 'تاریخ',
128
- Time: 'زمان',
129
- Row: 'ردیف',
130
- LoginTitle: 'ورود',
131
- SendCode: 'ارسال کد',
132
- Username: 'نام کاربری',
133
- GetReport: 'چاپ',
134
- Count: 'تعداد',
135
- Choose: 'انتخاب',
136
- Payable: 'مبلغ قابل پرداخت : {} ریال</br><span class="f-s-20">تایید و انتقال به درگاه پرداخت</span>',
137
- PayableLoading: '<span class="l-h-60">تایید و انتقال به درگاه پرداخت</span>',
138
- Processing: 'پردازش',
139
- PDate: 'تاریخ',
140
- SeeMore: 'نمایش بیشتر ...',
141
- Alert: 'هشدار',
142
- AccessDenied: 'عدم دسترسی',
143
- Image: 'تصویر',
144
- ImageFile: 'تصویر',
145
- Grade: 'پایه تحصیلی',
146
- Close: 'بستن',
147
- Url: 'آدرس',
148
- Type: 'نوع',
149
- Desc: 'توضیحات',
150
- Admin: 'ادمین',
151
- Print: 'گزارش',
152
- Password: 'کلمه عبور',
153
- RePassword: 'تکرار کلمه عبور',
154
- PassportLetter: 'حرف',
155
- Passport: 'گذرنامه',
156
- List: 'لیست',
157
- Priority: 'اولویت',
158
- PassportImage: 'تصویر گذرنامه',
159
- PassportExpireDate: 'تاریخ انقضاء گذرنامه',
160
- PassportPlace: 'محل صدور گذرنامه',
161
- NationalCode: 'کدملی',
162
- LicenseNum: 'شماره گواهی نامه',
163
- BankCard: 'شماره کارت بانکی',
164
- VehicleType: 'نوع وسیله نقلیه',
165
- Gender: 'جنسیت',
166
- Male: 'مرد',
167
- FeMale: 'زن',
168
- Accept: 'تایید',
169
- Insert: 'افزودن',
170
- Update: 'ویرایش',
171
- Delete: 'حذف',
172
- Subset: 'زیرمجموعه',
173
- Other: 'سایر',
174
- Rial: 'ریال',
175
- ChooseMonth: 'انتخاب ماه',
176
- FullName: 'نام کامل',
177
- FirstName: 'نام',
178
- Backup: 'بک آپ',
179
- LastName: 'نام خانوادگی',
180
- OperationSuccessful: 'عملیات با موفقیت انجام شد',
181
- Reject: 'رد کردن',
182
- Code: 'کد تایید',
183
- InvalidRequest: 'درخواست شما نامعتبر است',
184
- ChangeNotAllow: 'امکان ایجاد تغییرات وجود ندارد',
185
- Confirm: 'تاییدیه',
186
- Search: 'جستجو',
187
- Yes: 'بله',
188
- No: 'خیر',
189
- Email: 'پست الکترونیک',
190
- Mobile: 'شماره همراه',
191
- Mobile2: 'شماره همراه 2',
192
- Phone: 'شماره تلفن',
193
- Address: 'آدرس',
194
- Add: 'افزودن',
195
- Edit: 'ویرایش',
196
- VerifyCode: 'تایید کد',
197
- Status: 'وضعیت',
198
- Show: 'نمایش',
199
- Step: 'وضعیت',
200
- Pending: 'در حال بررسی',
201
- Accepted: 'تایید شده',
202
- Canceled: 'انصراف',
203
- Rejected: 'رد شده : {}',
204
- Answered: 'پاسخ داده شده',
205
- FromDate: 'از تاریخ',
206
- ToDate: 'تا تاریخ',
207
- Package: 'اشتراک',
208
- CodeInvalid: 'کد تایید نامعتبر است',
209
- CodeExpired: 'کد تایید منقضی شده است',
210
- Price: 'قیمت',
211
- Description: 'توضیحات',
212
- Photo: 'تصویر',
213
- Select: 'انتخاب',
214
- NextStep: 'مرحله بعد',
215
- PreviousStep: 'مرحله قبل',
216
- UploadFiles: 'بارگذاری مدارک',
217
- NamadTitle: 'نماد',
218
- Options: 'امکانات',
219
- Process: 'پردازش',
220
- NotfoundTitle: 'موردی یافت نشد',
221
- PermissionDenied: 'عدم دسترسی',
222
- PerPage: 'تعداد نمایش در هر صفحه',
223
- Save: 'ذخیره',
224
- Cancel: 'انصراف',
225
- UserDeActive: 'نام کاربری غیر فعال شده است',
226
- DeleteConfirm: 'آیا از حذف این مورد مطمئن هستید ؟',
227
- DeleteConfirmMulti: 'آیا از حذف موارد انتخاب شده ({} مورد) مطمئن هستید ؟',
228
- ChooseFiles: 'انتخاب فایل ها',
229
- CodeNotExpired: 'کد تایید ارسال شده منقضی نشده است',
230
- ChooseFile: 'انتخاب فایل',
231
- FileNotSelected: 'فایلی انتخاب نشده است',
232
- FileSelected: '{} فایل انتخاب شده ({})',
233
- Selected: 'انتخاب شده',
234
- Limit: 'محدودیت',
235
- Today: 'امروز : {}',
236
- SendCodeLimit: 'محدودیت در ارسال کد',
237
- SendCodeError: 'خطا در ارسال کد',
238
- CodeNotFound: 'کد تایید ارسال نشده است',
239
- Total: 'جمع کل',
240
- Month1: 'فروردین',
241
- Month2: 'اردیبهشت',
242
- Month3: 'خرداد',
243
- Month4: 'تیر',
244
- Month5: 'مرداد',
245
- Month6: 'شهریور',
246
- Month7: 'مهر',
247
- Month8: 'آبان',
248
- Month9: 'آذر',
249
- Month10: 'دی',
250
- Month11: 'بهمن',
251
- Month12: 'اسفند',
252
- Day: 'روز',
253
- YearP: '{} سال',
254
- MonthP: '{} ماه',
255
- DayP: '{} روز',
256
- HourP: '{} ساعت',
257
- MinuteP: '{} دقیقه',
258
- Hour: 'ساعت',
259
- Minute: 'دقیقه',
260
- AFew: 'چند لحظه',
261
- Ago: 'پیش',
262
- Later: 'دیگر',
263
- LessThanMinute: 'کمتر از یک دقیقه',
264
- Finished: 'پایان یافته',
265
- Reload: 'بارگیری مجدد',
266
- Maximum: 'بزرگ نمایی',
267
- Minimum: 'کوچک نمایی',
268
- Export: 'خروجی',
269
- Send: 'ارسال',
270
- And: ' و ',
271
- UsernamePasswordInvalid: 'نام کاربری یا کلمه عبور اشتباه است',
272
- DbUpdateException: 'امکان حذف رکورد مورد نظر به دلیل استفاده شدن در سامانه وجود ندارد',
273
- UserMaxSessionCount: 'تعداد لاگین انجام شده بیش از سقف مجاز است.',
274
- UserInvalidIp: 'آی‌پی شما نامعتبر است.',
275
- // tslint:disable-next-line
276
- LoadingDot: '<span class="dot-spinner black"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
277
- LoadingDotWhite: '<span class="dot-spinner white"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
278
- Loading: 'در حال {} <span class="dot-spinner"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
279
- LoadingEmpty: '<span class="dot-spinner"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
280
- LoadingTable: '<i class="fas fa-spin fa-spinner m-l-5-p icon"></i> در حال {} <span class="dot-spinner black"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
281
- EmptyData: 'اطلاعاتی برای نمایش وجود ندارد',
282
- LoadingText: 'در حال {}',
283
- Waiting: 'انتظار',
284
- Required: 'را وارد کنید',
285
- Invalid: 'نامعتبر است',
286
- ExpertSearch: 'جستجو پیشرفته',
287
- UploaderTitle: 'برای آپلود فایل <span class="f-u f-w-700 c-primary">کلیک کنید</span> و یا فایل خود را به اینجا کشیده و رها کنید',
288
- UploaderMaxLength: 'حداکثر اندازه برای آپلود {}MB',
289
- FormErrorRequired: '{} را وارد کنید',
290
- FormErrorInvalid: '{} نامعتبر است',
291
- FormErrorLength: 'طول {} باید {} کاراکتر باشد',
292
- FormErrorMinLength: 'طول {} باید حداقل {} کاراکتر باشد',
293
- FormErrorMaxLength: 'طول {} باید حداکثر {} کاراکتر باشد',
294
- FormErrorMinAmount: 'مقدار {} باید حداقل {} باشد',
295
- FormErrorMaxAmount: 'مقدار {} باید حداکثر {} باشد',
296
- FormErrorExpired: '{} منقضی شده است',
297
- FormErrorWrong: '{} اشتباه است',
298
- FormErrorNotMatch: '{} با تکرار آن مطابقت ندارد',
299
- FormErrorExist: '{} در سامانه ثبت شده است',
300
- FormErrorNotExist: '{} در سامانه ثبت نشده است',
301
- FormErrorNotAllowed: 'نوع فایل {} نامعتبر است ({})',
302
- FormErrorMaxContent: 'حجم فایل {} نباید بیشتر از {}KB باشد',
303
- FormErrorUpload: 'خطا در بارگذاری {}',
304
- FormError: 'خطا در {}',
305
- FormBaseErrorExpired: 'لطفا مجددا وارد شوید',
306
- FormBaseErrorNotRegistered: 'خطا در تایید کد نرم افزار',
307
- FormBaseErrorExpiredRegistered: 'کد نرم افزار منقضی شده است',
308
- FormBaseErrorInvalidIp: 'آی‌پی شما نامعتبر است',
309
- FormBaseErrorNoCredit: 'اعتبار شما بارای انجام این عمیات ناکافی است',
310
- ErrorUpload: 'خطا در بارگذاری فایل',
311
- FormBaseErrorInvalidParam: 'خطا در اطلاعات ارسال شده',
312
- FormBaseErrorTimeOut: 'درخواست شما بیش از حد معمول زمان برده است. لطفا مجددا تلاش کنید',
313
- FormBaseErrorPermission: 'اجازه دسترسی به این عملیات را ندارید',
314
- FormBaseErrorAccess: 'دسترسی به منبع مورد نظر امکان‌پذیر نمی‌باشد',
315
- PaymentError: 'خطا در اتصال به درگاه بانکی',
316
- Error: 'متاسفانه در سیستم خطایی به وجود آمده است. لطفا مجددا تلاش کنید',
317
- ErrorFingerPrintNoDeviceConnected: 'دستگاه اثرانگشت به سیستم متصل نیست',
318
- ErrorFingerPrintOpenDeviceFailed: 'خطا در باز کردن دستگاه اثرانگشت',
319
- ErrorFingerPrintInitDBFailed: 'خطا در باز کردن دیتابیس دستگاه اثرانگشت',
320
- }
321
- }
322
- };
323
-
324
76
  // @dynamic
325
77
  class LangClass {
326
- constructor(d, strings$1) {
327
- this.lang = merge(strings[d], strings$1[d]);
78
+ constructor(d, strings) {
328
79
  }
329
80
  get(area, c, k, v = null) {
330
81
  if (k != null && (/^-?\d+$/.test(k) || /^\d+\.\d+$/.test(k))) {
331
82
  return k;
332
83
  }
333
- let cv = get(this.lang, area ? `${area}.${c}.${k}` : `${c}.${k}`);
334
- if (!cv) {
335
- cv = get(this.lang, `Public.${c}.${k}`);
336
- }
337
- if (!cv) {
338
- cv = get(this.lang, `Public.${k}`);
339
- }
340
- if (!cv) {
341
- return k;
342
- }
343
- if (v !== null) {
344
- if (v.constructor === Array) {
345
- v.forEach((x) => {
346
- cv = cv.replace('{}', this.get(area, c, x, null));
347
- });
348
- }
349
- else {
350
- cv = cv.replace('{}', this.get(area, c, v, null));
351
- }
352
- }
353
- return cv;
354
84
  }
355
85
  }
356
86
 
@@ -1239,7 +969,6 @@ class HelperClass {
1239
969
  return fileIcons[k] ? fileIcons[k] : fileIcons.file;
1240
970
  }
1241
971
  static groupBy(data, iteratee) {
1242
- return groupBy(data, iteratee);
1243
972
  }
1244
973
  static getTablePermissions(l = true, i = true, u = true, d = true) {
1245
974
  const p = new PermissionClass();
@@ -1737,7 +1466,6 @@ class FormClass {
1737
1466
  }
1738
1467
  else {
1739
1468
  if (d[n] === undefined) {
1740
- set(d, n, vl);
1741
1469
  }
1742
1470
  else {
1743
1471
  if (d[n] instanceof Array) {
@@ -1785,24 +1513,6 @@ class FormClass {
1785
1513
  }
1786
1514
  setData(d) {
1787
1515
  this.inputs.forEach(inp => {
1788
- var _a;
1789
- const iv = (_a = get(d, inp.name)) !== null && _a !== void 0 ? _a : null;
1790
- if (inp.type === InputType.Vehicle) {
1791
- const ivt = get(d, inp.name + 'Type');
1792
- inp.setValue({ Value: iv, Type: ivt }, true);
1793
- }
1794
- else if (inp.type === InputType.VehicleSearch) {
1795
- const ivs = get(d, inp.name.replace('Id', ''));
1796
- const ivt = get(d, inp.name.replace('Id', 'Type'));
1797
- inp.setValue({ Search: ivs, Value: iv, Type: ivt }, true);
1798
- }
1799
- else if (inp.type !== InputType.Label || iv != null) {
1800
- inp.setValue(iv, true);
1801
- }
1802
- if (inp.type === InputType.SelectAutoCompletePlaque || inp.type === InputType.SelectAutoComplete) {
1803
- const ivs = get(d, inp.name.replace('Id', ''));
1804
- inp.setSearch(ivs);
1805
- }
1806
1516
  });
1807
1517
  }
1808
1518
  setError(res) {
@@ -1900,7 +1610,6 @@ class InputClass {
1900
1610
  InputType.PostalCode, InputType.Date, InputType.Time, InputType.BillNumber, InputType.Username, InputType.Url].includes(type) ? ' ltr' : '');
1901
1611
  this.type = type;
1902
1612
  this.value = value;
1903
- this.default = value == null ? null : (typeof value === 'number' || typeof value === 'string' ? cloneDeep(value) : HelperClass.clone(value));
1904
1613
  this.baseRequired = required;
1905
1614
  this.required = required;
1906
1615
  this.inEditRequired = required;
@@ -2846,100 +2555,7 @@ class TableRowComponent {
2846
2555
  }
2847
2556
  getCell(col) {
2848
2557
  // console.log('getCell');
2849
- const cv = get(this.row.Data, col.name);
2850
- if (cv === null) {
2851
- return col.default ? col.default : '';
2852
- }
2853
- else if (col.fun != null) {
2854
- return col.fun(this.row.Data);
2855
- }
2856
- else if (col.enum !== null) {
2857
- return this.table.l(EnumUtils.getKeyByValue(col.enum, cv));
2858
- }
2859
- else if (col.type === TableCollType.DateDif) {
2860
- return HelperClass.getDateDif(this.table.l, cv);
2861
- }
2862
- else if (col.type === TableCollType.Date) {
2863
- return HelperClass.getDate(cv);
2864
- }
2865
- else if (col.type === TableCollType.DateTime) {
2866
- return '<span class="ltr">' + HelperClass.getDateTime(cv) + '</span>';
2867
- }
2868
- else if (col.type === TableCollType.Month) {
2869
- return HelperClass.getDate(cv, 'jMMMM jYYYY');
2870
- }
2871
- else if (col.type === TableCollType.Year) {
2872
- return HelperClass.getDate(cv, 'jYYYY');
2873
- }
2874
- else if (col.type === TableCollType.Time) {
2875
- return HelperClass.getTime(cv);
2876
- }
2877
- else if (col.type === TableCollType.Color) {
2878
- return '<div class="color" style="background-color: ' + cv + '; color: ' + HelperClass.getColorByBgColor(cv) + '">' + cv + '</div>';
2879
- }
2880
- else if (col.type === TableCollType.Url) {
2881
- return '<a target="_blank" class="ltr" href="' + cv + '">' + cv + '</a>';
2882
- }
2883
- else if (col.type === TableCollType.Image) {
2884
- return '<img style="height: ' + this.table.height + 'px" alt="" src="' + this.service.environment.url + cv + '"/>';
2885
- }
2886
- else if (col.type === TableCollType.FileSize) {
2887
- return HelperClass.getFileSize(cv);
2888
- }
2889
- else if (col.type === TableCollType.Price) {
2890
- try {
2891
- return HelperClass.toPrice(this.table.l, cv);
2892
- }
2893
- catch (_a) { }
2894
- }
2895
- else if (col.type === TableCollType.Number) {
2896
- return cv.toLocaleString();
2897
- }
2898
- else if (col.type === TableCollType.Files) {
2899
- let files = '';
2900
- for (const f of cv) {
2901
- const k = f.split('.').at(-1);
2902
- if (k === 'jpeg' || k === 'jpg' || k === 'png') {
2903
- files += '<a target="_blank" href="' + this.table.environment.url + f + '" class="m-h-5"><img alt="" src="' + this.table.environment.url + f + '" style="height: 30px"/></a>';
2904
- }
2905
- else {
2906
- files += '<a target="_blank" href="' + this.table.environment.url + f + '" class="f-s-30 m-h-5 ' + FileIcons[k] + '"></a>';
2907
- }
2908
- }
2909
- return files;
2910
- }
2911
- else if (col.type === TableCollType.Plaque) {
2912
- const parts = cv.split('_');
2913
- if (parts.length === 4) {
2914
- return '<div data-copy="' + parts.join(' ') + '" class="plaque' + (parts[1] === 'ع' ? ' p' : '') + (parts[1] === 'ا' ? ' g' : '') + '">' +
2915
- '<div class="part1">' + parts[0] + '</div>' +
2916
- '<div class="part2">' + parts[1] + '</div>' +
2917
- '<div class="part3">' + parts[2] + '</div>' +
2918
- '<div class="part4">' + parts[3] + '</div>' +
2919
- '</div>';
2920
- }
2921
- else if (parts.length === 2 && parts.every(x => /^[0-9]+$/.test(x))) {
2922
- return '<div data-copy="' + parts.join(' ') + '" class="plaque plaque-m">' +
2923
- '<div class="part1">' + parts[0] + '</div>' +
2924
- '<div class="part2">' + parts[1] + '</div>' +
2925
- '</div>';
2926
- }
2927
- else if (parts.length === 2) {
2928
- return '<div data-copy="' + parts.join(' ') + '" class="plaque plaque-f">' +
2929
- '<div class="part1">' + parts[0] + '</div>' +
2930
- '<div class="part2">' + parts[1] + '</div>' +
2931
- '</div>';
2932
- }
2933
- else if (parts.length === 1) {
2934
- return '<div data-copy="' + parts[0] + '" class="plaque plaque-g">' +
2935
- '<div class="part1">' + parts[0] + '</div>' +
2936
- '</div>';
2937
- }
2938
- }
2939
- else if (col.type === TableCollType.PlaqueText) {
2940
- return `<div class="ltr">${HelperClass.ToReadablePlaque(cv)}</div>`;
2941
- }
2942
- return this.table.l(cv);
2558
+ return this.table.l(col);
2943
2559
  }
2944
2560
  getCol(n) {
2945
2561
  let c = this.row.Data;