iss-ctrl 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{iss-ctrl-iss-ctrl-BN9rcLt2.mjs → iss-ctrl-iss-ctrl-CDk4_RVA.mjs} +707 -148
- package/fesm2022/iss-ctrl-iss-ctrl-CDk4_RVA.mjs.map +1 -0
- package/fesm2022/{iss-ctrl-load-event-AgBohfHa.mjs → iss-ctrl-load-event-5MIEPp-j.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-event-AgBohfHa.mjs.map → iss-ctrl-load-event-5MIEPp-j.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-options-event-ClQPHNBO.mjs → iss-ctrl-load-options-event-D4gOR-3h.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-options-event-CBejHpME.mjs.map → iss-ctrl-load-options-event-D4gOR-3h.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-value-event-CDAKsE_O.mjs → iss-ctrl-load-value-event-a_CrlH07.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-value-event-CDAKsE_O.mjs.map → iss-ctrl-load-value-event-a_CrlH07.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-note.field-C9cVaAz0.mjs → iss-ctrl-note.field-DIU49W4s.mjs} +2 -2
- package/fesm2022/{iss-ctrl-note.field-C9cVaAz0.mjs.map → iss-ctrl-note.field-DIU49W4s.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-replace-api-keys-Chwe42Nu.mjs → iss-ctrl-replace-api-keys-8o7-XCdX.mjs} +2 -2
- package/fesm2022/{iss-ctrl-replace-api-keys-CLP4wBYu.mjs.map → iss-ctrl-replace-api-keys-8o7-XCdX.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-set-value-event-CrpzRR6X.mjs → iss-ctrl-set-value-event-BJGXPwPV.mjs} +2 -2
- package/fesm2022/{iss-ctrl-set-value-event-C7YYwHZV.mjs.map → iss-ctrl-set-value-event-BJGXPwPV.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-table.field-BP-HMKO3.mjs → iss-ctrl-table.field-Ca6d7LvU.mjs} +2 -2
- package/fesm2022/{iss-ctrl-table.field-BP-HMKO3.mjs.map → iss-ctrl-table.field-Ca6d7LvU.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-DS4TR38v.mjs → iss-ctrl-trigger-based-on-json-value-Jp6lQkIa.mjs} +2 -2
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-CprcFCWi.mjs.map → iss-ctrl-trigger-based-on-json-value-Jp6lQkIa.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-user-picker.field-8Jb1325c.mjs → iss-ctrl-user-picker.field-CFK871y8.mjs} +2 -2
- package/fesm2022/{iss-ctrl-user-picker.field-8Jb1325c.mjs.map → iss-ctrl-user-picker.field-CFK871y8.mjs.map} +1 -1
- package/fesm2022/iss-ctrl.mjs +1 -1
- package/package.json +1 -1
- package/types/iss-ctrl.d.ts +210 -9
- package/fesm2022/iss-ctrl-iss-ctrl-BN9rcLt2.mjs.map +0 -1
- package/fesm2022/iss-ctrl-iss-ctrl-DOmgkxUv.mjs +0 -8924
- package/fesm2022/iss-ctrl-iss-ctrl-DOmgkxUv.mjs.map +0 -1
- package/fesm2022/iss-ctrl-iss-ctrl-WfIqBEcL.mjs +0 -8913
- package/fesm2022/iss-ctrl-iss-ctrl-WfIqBEcL.mjs.map +0 -1
- package/fesm2022/iss-ctrl-load-event-D70VZuyD.mjs +0 -60
- package/fesm2022/iss-ctrl-load-event-D70VZuyD.mjs.map +0 -1
- package/fesm2022/iss-ctrl-load-event-SlQmVmyf.mjs +0 -60
- package/fesm2022/iss-ctrl-load-event-SlQmVmyf.mjs.map +0 -1
- package/fesm2022/iss-ctrl-load-options-event-CBejHpME.mjs +0 -50
- package/fesm2022/iss-ctrl-load-options-event-ClQPHNBO.mjs.map +0 -1
- package/fesm2022/iss-ctrl-load-options-event-DHmaMAOb.mjs +0 -50
- package/fesm2022/iss-ctrl-load-options-event-DHmaMAOb.mjs.map +0 -1
- package/fesm2022/iss-ctrl-load-value-event-Bu9-rZ6T.mjs +0 -52
- package/fesm2022/iss-ctrl-load-value-event-Bu9-rZ6T.mjs.map +0 -1
- package/fesm2022/iss-ctrl-load-value-event-Cpuy1og1.mjs +0 -52
- package/fesm2022/iss-ctrl-load-value-event-Cpuy1og1.mjs.map +0 -1
- package/fesm2022/iss-ctrl-note.field-IM4x1O3b.mjs +0 -65
- package/fesm2022/iss-ctrl-note.field-IM4x1O3b.mjs.map +0 -1
- package/fesm2022/iss-ctrl-note.field-onDjqI_X.mjs +0 -65
- package/fesm2022/iss-ctrl-note.field-onDjqI_X.mjs.map +0 -1
- package/fesm2022/iss-ctrl-replace-api-keys-CLP4wBYu.mjs +0 -57
- package/fesm2022/iss-ctrl-replace-api-keys-Chwe42Nu.mjs.map +0 -1
- package/fesm2022/iss-ctrl-replace-api-keys-CvhCKvNB.mjs +0 -57
- package/fesm2022/iss-ctrl-replace-api-keys-CvhCKvNB.mjs.map +0 -1
- package/fesm2022/iss-ctrl-set-value-event-C7YYwHZV.mjs +0 -61
- package/fesm2022/iss-ctrl-set-value-event-CrpzRR6X.mjs.map +0 -1
- package/fesm2022/iss-ctrl-set-value-event-DiHESiPT.mjs +0 -61
- package/fesm2022/iss-ctrl-set-value-event-DiHESiPT.mjs.map +0 -1
- package/fesm2022/iss-ctrl-table.field-CDSVakji.mjs +0 -592
- package/fesm2022/iss-ctrl-table.field-CDSVakji.mjs.map +0 -1
- package/fesm2022/iss-ctrl-table.field-DxwfNXNc.mjs +0 -592
- package/fesm2022/iss-ctrl-table.field-DxwfNXNc.mjs.map +0 -1
- package/fesm2022/iss-ctrl-trigger-based-on-json-value-CprcFCWi.mjs +0 -24
- package/fesm2022/iss-ctrl-trigger-based-on-json-value-DS4TR38v.mjs.map +0 -1
- package/fesm2022/iss-ctrl-trigger-based-on-json-value-Dp0EhVLA.mjs +0 -24
- package/fesm2022/iss-ctrl-trigger-based-on-json-value-Dp0EhVLA.mjs.map +0 -1
- package/fesm2022/iss-ctrl-user-picker.field-Mqi37i7D.mjs +0 -225
- package/fesm2022/iss-ctrl-user-picker.field-Mqi37i7D.mjs.map +0 -1
- package/fesm2022/iss-ctrl-user-picker.field-PxT_dZ_O.mjs +0 -225
- package/fesm2022/iss-ctrl-user-picker.field-PxT_dZ_O.mjs.map +0 -1
package/types/iss-ctrl.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InputSignal, WritableSignal, OutputEmitterRef, OnInit, OnDestroy, Signal, Type, DestroyRef, StaticProvider, InjectionToken, PipeTransform, Injector } from '@angular/core';
|
|
2
|
+
import { InputSignal, WritableSignal, OutputEmitterRef, OnInit, OnDestroy, Signal, Type, DestroyRef, StaticProvider, InjectionToken, PipeTransform, Injector, Provider } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, Validator, FormControl, AbstractControl, ValidationErrors, FormGroup, ValidatorFn, AsyncValidatorFn, ControlContainer } from '@angular/forms';
|
|
4
4
|
import { MatChipInputEvent } from '@angular/material/chips';
|
|
5
5
|
import { MatDatepickerInputEvent } from '@angular/material/datepicker';
|
|
6
6
|
import { PhoneNumber } from 'libphonenumber-js/mobile';
|
|
7
7
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
8
|
-
import { MatDateFormats } from '@angular/material/core';
|
|
8
|
+
import { MatDateFormats, NativeDateAdapter } from '@angular/material/core';
|
|
9
9
|
|
|
10
10
|
interface Option {
|
|
11
11
|
value: string;
|
|
@@ -226,6 +226,14 @@ declare class ChipsControl extends ControlBase {
|
|
|
226
226
|
* | `minDate` | `Date \| null` | `null` | Earliest selectable date. |
|
|
227
227
|
* | `maxDate` | `Date \| null` | `null` | Latest selectable date. |
|
|
228
228
|
* | `disabledDays` | `number[]` | `[]` | Week days to block, `0` = Sunday … `6` = Saturday. |
|
|
229
|
+
* | `hijriCalendar` | `boolean` | `false` | Shows an Umm al-Qura Hijri calendar; the value stays Gregorian. |
|
|
230
|
+
* | `emitHijri` | `boolean` | `false` | Emits the Hijri date instead of the Gregorian one. Implies `hijriCalendar`. |
|
|
231
|
+
*
|
|
232
|
+
* ### Hijri dates
|
|
233
|
+
* `hijriCalendar` only changes what the user sees: the calendar is Hijri, the input reads
|
|
234
|
+
* `dd/MM/yyyy` in Hijri, and a day shown as `16/03/1447` is still emitted as `2025-09-08`.
|
|
235
|
+
* Turn on `emitHijri` as well when the form value itself has to be the Hijri date. `minDate` and
|
|
236
|
+
* `maxDate` stay Gregorian in both cases — they are bounds on a day, not on a notation.
|
|
229
237
|
*
|
|
230
238
|
* ### Inherited from {@link ControlBase}
|
|
231
239
|
* `formControlName` · `readonly` · `className` · `(onChange)`
|
|
@@ -233,6 +241,7 @@ declare class ChipsControl extends ControlBase {
|
|
|
233
241
|
* Projects `<label>` into the floating label; omit it to render the control without one.
|
|
234
242
|
*/
|
|
235
243
|
declare class DatePickerControl extends ControlBase implements Validator {
|
|
244
|
+
#private;
|
|
236
245
|
/**
|
|
237
246
|
* Week days that cannot be selected — `0` is Sunday through `6` for Saturday.
|
|
238
247
|
*/
|
|
@@ -245,12 +254,25 @@ declare class DatePickerControl extends ControlBase implements Validator {
|
|
|
245
254
|
* Latest selectable date.
|
|
246
255
|
*/
|
|
247
256
|
maxDate: InputSignal<Date | null>;
|
|
257
|
+
/**
|
|
258
|
+
* Renders the calendar as an Umm al-Qura Hijri calendar, leaving the emitted value Gregorian.
|
|
259
|
+
*/
|
|
260
|
+
hijriCalendar: InputSignal<boolean>;
|
|
261
|
+
/**
|
|
262
|
+
* Emits the picked date as a Hijri `yyyy-MM-dd` string. Implies {@link hijriCalendar}.
|
|
263
|
+
*/
|
|
264
|
+
emitHijri: InputSignal<boolean>;
|
|
265
|
+
/**
|
|
266
|
+
* Whether this picker is currently showing the Hijri calendar.
|
|
267
|
+
*/
|
|
268
|
+
isHijri(): boolean;
|
|
269
|
+
writeValue(value: string | Date | null): void;
|
|
248
270
|
clear(event: MouseEvent): void;
|
|
249
271
|
protected calendarDaysFilter: (d: Date | null) => boolean;
|
|
250
272
|
protected emit($event: MatDatepickerInputEvent<any>): void;
|
|
251
273
|
protected openPicker(picker: any): void;
|
|
252
274
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerControl, never>;
|
|
253
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerControl, "iss-ctrl-date-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
|
|
275
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerControl, "iss-ctrl-date-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "hijriCalendar": { "alias": "hijriCalendar"; "required": false; "isSignal": true; }; "emitHijri": { "alias": "emitHijri"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
|
|
254
276
|
}
|
|
255
277
|
|
|
256
278
|
interface DateRangeEmission {
|
|
@@ -279,6 +301,13 @@ interface DateRangeEmission {
|
|
|
279
301
|
* | `minDate` | `Date \| null` | `null` | Earliest selectable date. |
|
|
280
302
|
* | `maxDate` | `Date \| null` | `null` | Latest selectable date. |
|
|
281
303
|
* | `disabledDays` | `number[]` | `[]` | Week days to block, `0` = Sunday … `6` = Saturday. |
|
|
304
|
+
* | `hijriCalendar` | `boolean` | `false` | Shows an Umm al-Qura Hijri calendar; the value stays Gregorian. |
|
|
305
|
+
* | `emitHijri` | `boolean` | `false` | Emits both endpoints as Hijri dates. Implies `hijriCalendar`. |
|
|
306
|
+
*
|
|
307
|
+
* ### Hijri dates
|
|
308
|
+
* `hijriCalendar` only changes what the user sees; the emitted range stays Gregorian until
|
|
309
|
+
* `emitHijri` is on as well, at which point both endpoints carry Hijri dates. `duration` is
|
|
310
|
+
* a count of days either way, and `minDate`/`maxDate` stay Gregorian.
|
|
282
311
|
*
|
|
283
312
|
* ### Inherited from {@link ControlBase}
|
|
284
313
|
* `formControlName` · `readonly` · `className` · `(onChange)`
|
|
@@ -302,6 +331,14 @@ declare class DateRangePickerControl extends ControlBase implements OnInit, OnDe
|
|
|
302
331
|
* Latest selectable date.
|
|
303
332
|
*/
|
|
304
333
|
maxDate: InputSignal<Date | null>;
|
|
334
|
+
/**
|
|
335
|
+
* Renders the calendar as an Umm al-Qura Hijri calendar, leaving the emitted range Gregorian.
|
|
336
|
+
*/
|
|
337
|
+
hijriCalendar: InputSignal<boolean>;
|
|
338
|
+
/**
|
|
339
|
+
* Emits both endpoints as Hijri dates. Implies {@link hijriCalendar}.
|
|
340
|
+
*/
|
|
341
|
+
emitHijri: InputSignal<boolean>;
|
|
305
342
|
/**
|
|
306
343
|
* Emits the selected range as an object, or `null` while the range is incomplete.
|
|
307
344
|
*/
|
|
@@ -310,15 +347,19 @@ declare class DateRangePickerControl extends ControlBase implements OnInit, OnDe
|
|
|
310
347
|
* The `start`/`end` form group backing the range input. Internal state.
|
|
311
348
|
*/
|
|
312
349
|
readonly range: FormGroup;
|
|
350
|
+
/**
|
|
351
|
+
* Whether this picker is currently showing the Hijri calendar.
|
|
352
|
+
*/
|
|
353
|
+
isHijri(): boolean;
|
|
313
354
|
ngOnInit(): void;
|
|
314
355
|
setDisabledState(isDisabled: boolean): void;
|
|
315
356
|
clear(event: MouseEvent): void;
|
|
316
|
-
protected openPicker(picker: any): void;
|
|
317
357
|
writeValue(value: string | FormData | null): void;
|
|
318
358
|
ngOnDestroy(): void;
|
|
359
|
+
protected openPicker(picker: any): void;
|
|
319
360
|
protected calendarDaysFilter: (d: Date | null) => boolean;
|
|
320
361
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerControl, never>;
|
|
321
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerControl, "iss-ctrl-date-range-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "onDateRangeObjectChange": "onDateRangeObjectChange"; }, never, ["label"], true, never>;
|
|
362
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerControl, "iss-ctrl-date-range-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "hijriCalendar": { "alias": "hijriCalendar"; "required": false; "isSignal": true; }; "emitHijri": { "alias": "emitHijri"; "required": false; "isSignal": true; }; }, { "onDateRangeObjectChange": "onDateRangeObjectChange"; }, never, ["label"], true, never>;
|
|
322
363
|
}
|
|
323
364
|
|
|
324
365
|
/**
|
|
@@ -342,6 +383,12 @@ declare class DateRangePickerControl extends ControlBase implements OnInit, OnDe
|
|
|
342
383
|
* | `minTime` | `string \| null` | `null` | Earliest selectable time, `HH:mm`. |
|
|
343
384
|
* | `maxTime` | `string \| null` | `null` | Latest selectable time, `HH:mm`. |
|
|
344
385
|
* | `disabledDays` | `number[]` | `[]` | Week days to block, `0` = Sunday … `6` = Saturday. |
|
|
386
|
+
* | `hijriCalendar` | `boolean` | `false` | Shows an Umm al-Qura Hijri calendar; the value stays Gregorian. |
|
|
387
|
+
* | `emitHijri` | `boolean` | `false` | Emits the date half as a Hijri date. Implies `hijriCalendar`. |
|
|
388
|
+
*
|
|
389
|
+
* ### Hijri dates
|
|
390
|
+
* Both flags are handed straight to the inner date picker; the time half is untouched, so a
|
|
391
|
+
* Hijri value reads `1447-03-15T09:30:00`.
|
|
345
392
|
*
|
|
346
393
|
* ### Inherited from {@link ControlBase}
|
|
347
394
|
* `formControlName` · `readonly` · `className` · `(onChange)`
|
|
@@ -371,11 +418,19 @@ declare class DatetimePickerControl extends ControlBase {
|
|
|
371
418
|
* Latest selectable time of day, as `HH:mm`.
|
|
372
419
|
*/
|
|
373
420
|
maxTime: InputSignal<string | null>;
|
|
421
|
+
/**
|
|
422
|
+
* Renders the calendar as an Umm al-Qura Hijri calendar, leaving the emitted date Gregorian.
|
|
423
|
+
*/
|
|
424
|
+
hijriCalendar: InputSignal<boolean>;
|
|
425
|
+
/**
|
|
426
|
+
* Emits the date half of the value as a Hijri date. Implies {@link hijriCalendar}.
|
|
427
|
+
*/
|
|
428
|
+
emitHijri: InputSignal<boolean>;
|
|
374
429
|
setDisabledState(isDisabled: boolean): void;
|
|
375
430
|
emit(): void;
|
|
376
431
|
writeValue(value: string | Date | null): void;
|
|
377
432
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePickerControl, never>;
|
|
378
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePickerControl, "iss-ctrl-datetime-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
|
|
433
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePickerControl, "iss-ctrl-datetime-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "hijriCalendar": { "alias": "hijriCalendar"; "required": false; "isSignal": true; }; "emitHijri": { "alias": "emitHijri"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
|
|
379
434
|
}
|
|
380
435
|
|
|
381
436
|
interface IssAttachment {
|
|
@@ -901,7 +956,7 @@ declare class FieldAsyncValidation {
|
|
|
901
956
|
* ### Keys by area
|
|
902
957
|
* - **Common:** `type` · `disabled` · `readonly` · `placeholder` · `suffix` · `hideLabel` · `multiple`
|
|
903
958
|
* - **Bounds:** `min` · `max` · `minLength` · `maxLength`
|
|
904
|
-
* - **Dates:** `minDate` · `maxDate` · `dateFilter`
|
|
959
|
+
* - **Dates:** `minDate` · `maxDate` · `dateFilter` · `hijriCalendar` · `emitHijri`
|
|
905
960
|
* - **Attachments:** `allowedFileSize` · `allowedFileTypes` · `minFilesCount` · `maxFilesCount` · `templateId` · `templateUrl`
|
|
906
961
|
* - **Users:** `minUsersCount` · `maxUsersCount`
|
|
907
962
|
* - **Table:** `showInTableColumns` · `tableWithFilter` · `tableWithSort` · `tableWithPagination`
|
|
@@ -968,6 +1023,18 @@ declare class FieldConfig {
|
|
|
968
1023
|
* Restricts the calendar to working days. Source: `config.acceptWorkDaysOnly`.
|
|
969
1024
|
*/
|
|
970
1025
|
dateFilter: WritableSignal<boolean | undefined>;
|
|
1026
|
+
/**
|
|
1027
|
+
* Renders the calendar as an Umm al-Qura Hijri calendar. The emitted value stays Gregorian
|
|
1028
|
+
* unless {@link FieldConfig.emitHijri} is also on. Source: `config.hijriCalendar`, also
|
|
1029
|
+
* accepted as `config.HijriCalendar`.
|
|
1030
|
+
*/
|
|
1031
|
+
hijriCalendar: WritableSignal<boolean | undefined>;
|
|
1032
|
+
/**
|
|
1033
|
+
* Emits the picked date as a Hijri date instead of a Gregorian one — the same day emitted
|
|
1034
|
+
* as `1447-03-16` rather than `2025-09-08`. Implies {@link FieldConfig.hijriCalendar}: a
|
|
1035
|
+
* Hijri value is always picked from a Hijri calendar.
|
|
1036
|
+
*/
|
|
1037
|
+
emitHijri: WritableSignal<boolean | undefined>;
|
|
971
1038
|
/**
|
|
972
1039
|
* Id of a downloadable template offered next to an attachment field.
|
|
973
1040
|
*/
|
|
@@ -1633,6 +1700,8 @@ declare class TimePickerField extends FieldBase {
|
|
|
1633
1700
|
* | `minDate` | `Date` | Earliest selectable date. |
|
|
1634
1701
|
* | `maxDate` | `Date` | Latest selectable date. |
|
|
1635
1702
|
* | `readonly` | `boolean` | Shows the value but blocks interaction. |
|
|
1703
|
+
* | `hijriCalendar` | `boolean` | Renders an Umm al-Qura Hijri calendar while the emitted value stays Gregorian. |
|
|
1704
|
+
* | `emitHijri` | `boolean` | Emits the Hijri date instead of the Gregorian one. Implies `hijriCalendar`. |
|
|
1636
1705
|
*
|
|
1637
1706
|
* ### Other field members used
|
|
1638
1707
|
* `label()`
|
|
@@ -1662,6 +1731,8 @@ declare class DatePickerField extends FieldBase {
|
|
|
1662
1731
|
* | `minDate` | `Date` | Earliest selectable date. |
|
|
1663
1732
|
* | `maxDate` | `Date` | Latest selectable date. |
|
|
1664
1733
|
* | `readonly` | `boolean` | Shows the value but blocks interaction. |
|
|
1734
|
+
* | `hijriCalendar` | `boolean` | Renders an Umm al-Qura Hijri calendar while the emitted value stays Gregorian. |
|
|
1735
|
+
* | `emitHijri` | `boolean` | Emits the Hijri date instead of the Gregorian one. Implies `hijriCalendar`. |
|
|
1665
1736
|
*
|
|
1666
1737
|
* ### Other field members used
|
|
1667
1738
|
* `label()`
|
|
@@ -1691,6 +1762,8 @@ declare class DatetimePickerField extends FieldBase {
|
|
|
1691
1762
|
* | `minDate` | `Date` | Earliest selectable date. |
|
|
1692
1763
|
* | `maxDate` | `Date` | Latest selectable date. |
|
|
1693
1764
|
* | `readonly` | `boolean` | Shows the value but blocks interaction. |
|
|
1765
|
+
* | `hijriCalendar` | `boolean` | Renders an Umm al-Qura Hijri calendar while the emitted value stays Gregorian. |
|
|
1766
|
+
* | `emitHijri` | `boolean` | Emits the Hijri date instead of the Gregorian one. Implies `hijriCalendar`. |
|
|
1694
1767
|
*
|
|
1695
1768
|
* ### Other field members used
|
|
1696
1769
|
* `label()`
|
|
@@ -1792,18 +1865,21 @@ declare class TimePickerViewer extends ViewerBase {
|
|
|
1792
1865
|
}
|
|
1793
1866
|
|
|
1794
1867
|
declare class DatePickerViewer extends ViewerBase {
|
|
1868
|
+
protected hijriDate: Signal<string | null>;
|
|
1795
1869
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerViewer, never>;
|
|
1796
1870
|
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerViewer, "iss-viewer-date-picker", never, {}, {}, never, never, true, never>;
|
|
1797
1871
|
}
|
|
1798
1872
|
|
|
1799
1873
|
declare class DatePickerTimeViewer extends ViewerBase {
|
|
1800
1874
|
protected readonly DATETIME_FORMAT = "dd/MM/yyyy hh:mm a";
|
|
1875
|
+
protected hijriDatetime: Signal<string | null>;
|
|
1801
1876
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerTimeViewer, never>;
|
|
1802
1877
|
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerTimeViewer, "iss-viewer-datetime-picker", never, {}, {}, never, never, true, never>;
|
|
1803
1878
|
}
|
|
1804
1879
|
|
|
1805
1880
|
declare class DateRangePickerViewer extends ViewerBase implements OnInit {
|
|
1806
1881
|
dateRange: string[];
|
|
1882
|
+
hijriDates: (string | null)[];
|
|
1807
1883
|
ngOnInit(): void;
|
|
1808
1884
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerViewer, never>;
|
|
1809
1885
|
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerViewer, "iss-viewer-date-range-picker", never, {}, {}, never, never, true, never>;
|
|
@@ -1963,12 +2039,137 @@ declare class Employee {
|
|
|
1963
2039
|
static ɵprov: i0.ɵɵInjectableDeclaration<Employee>;
|
|
1964
2040
|
}
|
|
1965
2041
|
|
|
2042
|
+
/**
|
|
2043
|
+
* The single date adapter behind every `iss-ctrl-*` picker.
|
|
2044
|
+
*
|
|
2045
|
+
* It behaves as a plain Gregorian adapter — `dd/MM/yyyy` in and out — until its locale is
|
|
2046
|
+
* switched to {@link HIJRI_LOCALE}, at which point the whole calendar grid becomes Umm
|
|
2047
|
+
* al-Qura Hijri: the month lengths, the year and month labels and the day numbers all come
|
|
2048
|
+
* from the Hijri calendar.
|
|
2049
|
+
*
|
|
2050
|
+
* The value never changes shape. The adapter always works on a `Date`, so a Hijri calendar
|
|
2051
|
+
* still hands the control an ordinary `Date`, and it stays the control's decision whether to
|
|
2052
|
+
* emit that as a Gregorian or a Hijri string.
|
|
2053
|
+
*
|
|
2054
|
+
* Switch modes through {@link setHijri}, never by assigning `locale` — `setLocale` is what
|
|
2055
|
+
* tells an open calendar to re-render.
|
|
2056
|
+
*/
|
|
2057
|
+
declare class IssDateAdapter extends NativeDateAdapter {
|
|
2058
|
+
#private;
|
|
2059
|
+
/** The Gregorian locale to fall back to when the Hijri calendar is turned off. */
|
|
2060
|
+
gregorianLocale: string;
|
|
2061
|
+
/** Whether the adapter is currently presenting the Hijri calendar. */
|
|
2062
|
+
get isHijri(): boolean;
|
|
2063
|
+
/**
|
|
2064
|
+
* Turns the Hijri calendar on or off. Goes through `setLocale` so that a calendar that is
|
|
2065
|
+
* already open redraws itself.
|
|
2066
|
+
*/
|
|
2067
|
+
setHijri(hijri: boolean): void;
|
|
2068
|
+
getYear(date: Date): number;
|
|
2069
|
+
getMonth(date: Date): number;
|
|
2070
|
+
getDate(date: Date): number;
|
|
2071
|
+
getMonthNames(style: "long" | "short" | "narrow"): string[];
|
|
2072
|
+
getDateNames(): string[];
|
|
2073
|
+
getDayOfWeekNames(style: "long" | "short" | "narrow"): string[];
|
|
2074
|
+
getYearName(date: Date): string;
|
|
2075
|
+
getFirstDayOfWeek(): number;
|
|
2076
|
+
getNumDaysInMonth(date: Date): number;
|
|
2077
|
+
createDate(year: number, month: number, date: number): Date;
|
|
2078
|
+
addCalendarYears(date: Date, years: number): Date;
|
|
2079
|
+
addCalendarMonths(date: Date, months: number): Date;
|
|
2080
|
+
addCalendarDays(date: Date, days: number): Date;
|
|
2081
|
+
parse(value: any, parseFormat?: any): Date | null;
|
|
2082
|
+
format(date: Date, displayFormat: string): string;
|
|
2083
|
+
deserialize(value: any): Date | null;
|
|
2084
|
+
toIso8601(date: Date): string;
|
|
2085
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IssDateAdapter, never>;
|
|
2086
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IssDateAdapter>;
|
|
2087
|
+
}
|
|
2088
|
+
/**
|
|
2089
|
+
* Providers every date-based control needs: the {@link IssDateAdapter} itself, the Gregorian
|
|
2090
|
+
* locale it falls back to, and the `dd/MM/yyyy` formats both of its calendars are rendered in.
|
|
2091
|
+
*
|
|
2092
|
+
* Declared per component, so each picker owns its adapter instance and one field switching to
|
|
2093
|
+
* the Hijri calendar leaves every other field on the form alone.
|
|
2094
|
+
*/
|
|
2095
|
+
declare function provideIssDateAdapter(): Provider[];
|
|
2096
|
+
|
|
1966
2097
|
declare function arrayFrom<T>(length: number, valueFunction: (index: number) => T): T[];
|
|
1967
2098
|
|
|
1968
2099
|
declare function formatFileSize(x: string | number): string;
|
|
1969
2100
|
|
|
1970
2101
|
declare function getPropertyByPath(obj: any, path: string | undefined): any;
|
|
1971
2102
|
|
|
2103
|
+
/**
|
|
2104
|
+
* Umm al-Qura Hijri calendar helpers.
|
|
2105
|
+
*
|
|
2106
|
+
* Every function here works on a plain `Date`: a `Date` is an instant, and the Hijri
|
|
2107
|
+
* calendar is only another way of naming that instant. Nothing stores Hijri numbers on the
|
|
2108
|
+
* date itself, so a value converted to Hijri for display or emission is still the same day.
|
|
2109
|
+
*
|
|
2110
|
+
* The conversion is done by `Intl` with the `islamic-umalqura` calendar, which is the
|
|
2111
|
+
* calendar used officially in Saudi Arabia.
|
|
2112
|
+
*/
|
|
2113
|
+
/** Locale used by the calendar UI when the Hijri calendar is on. */
|
|
2114
|
+
declare const HIJRI_LOCALE = "ar-SA-u-ca-islamic-umalqura";
|
|
2115
|
+
declare const HIJRI_MONTH_NAMES: {
|
|
2116
|
+
ar: string[];
|
|
2117
|
+
en: string[];
|
|
2118
|
+
enShort: string[];
|
|
2119
|
+
};
|
|
2120
|
+
interface HijriParts {
|
|
2121
|
+
/** Hijri year, for example `1447`. */
|
|
2122
|
+
year: number;
|
|
2123
|
+
/** Hijri month, **zero based** like `Date.getMonth()` — `0` is Muharram. */
|
|
2124
|
+
month: number;
|
|
2125
|
+
/** Hijri day of month, starting at `1`. */
|
|
2126
|
+
day: number;
|
|
2127
|
+
}
|
|
2128
|
+
/**
|
|
2129
|
+
* Reads the Hijri year, month and day a `Date` falls on.
|
|
2130
|
+
*/
|
|
2131
|
+
declare function getHijriParts(date: Date): HijriParts;
|
|
2132
|
+
/**
|
|
2133
|
+
* The Gregorian `Date` of the first day of the Hijri month `date` falls in, at midday.
|
|
2134
|
+
*
|
|
2135
|
+
* Midday, not midnight, so a daylight-saving shift can never push the result into the
|
|
2136
|
+
* previous day while the month is being walked.
|
|
2137
|
+
*/
|
|
2138
|
+
declare function startOfHijriMonth(date: Date): Date;
|
|
2139
|
+
/**
|
|
2140
|
+
* Number of days in the Hijri month `date` falls in — 29 or 30, decided by Umm al-Qura.
|
|
2141
|
+
*/
|
|
2142
|
+
declare function getHijriDaysInMonth(date: Date): number;
|
|
2143
|
+
/**
|
|
2144
|
+
* Builds the `Date` for a Hijri year/month/day. The month is zero based, and a day past the
|
|
2145
|
+
* end of the month is clamped to the last day of that month.
|
|
2146
|
+
*/
|
|
2147
|
+
declare function createHijriDate(year: number, month: number, day: number): Date;
|
|
2148
|
+
/**
|
|
2149
|
+
* Formats a date as a Hijri `yyyy-MM-dd` string — the shape the form emits when
|
|
2150
|
+
* `emitHijri` is on.
|
|
2151
|
+
*/
|
|
2152
|
+
declare function formatHijriDate(date: Date): string;
|
|
2153
|
+
/**
|
|
2154
|
+
* Reads a Hijri date back into a `Date`, accepting both the emitted `yyyy-MM-dd` shape and
|
|
2155
|
+
* the `dd/MM/yyyy` shape shown in the input. Returns `null` for anything else.
|
|
2156
|
+
*/
|
|
2157
|
+
declare function parseHijriDate(value: string | null | undefined): Date | null;
|
|
2158
|
+
/**
|
|
2159
|
+
* Renders a stored form value as a Hijri `dd/MM/yyyy` string for the read-only viewers, or
|
|
2160
|
+
* returns `null` when the field is not on the Hijri calendar and the value should be shown
|
|
2161
|
+
* as an ordinary Gregorian date.
|
|
2162
|
+
*
|
|
2163
|
+
* The two Hijri modes store different things, so they are read differently: with `emitHijri`
|
|
2164
|
+
* the value already carries Hijri numbers and only its notation changes, while with
|
|
2165
|
+
* `hijriCalendar` alone the value is Gregorian and has to be converted.
|
|
2166
|
+
*/
|
|
2167
|
+
declare function toHijriDisplay(value: string | null | undefined, options: {
|
|
2168
|
+
hijriCalendar?: boolean;
|
|
2169
|
+
emitHijri?: boolean;
|
|
2170
|
+
withTime?: boolean;
|
|
2171
|
+
}): string | null;
|
|
2172
|
+
|
|
1972
2173
|
declare function replacePlaceholders(str: string, values: any): string;
|
|
1973
2174
|
|
|
1974
2175
|
declare abstract class IssValidators {
|
|
@@ -1995,5 +2196,5 @@ declare abstract class TimeValidator {
|
|
|
1995
2196
|
static afterDate(field: IssField): ValidatorFn;
|
|
1996
2197
|
}
|
|
1997
2198
|
|
|
1998
|
-
export { ATTACHMENT_DOWNLOAD_URL, ATTACHMENT_UPLOAD_RESPONSE_MAPPER, ATTACHMENT_UPLOAD_URL, ArabicNumberPipe, AttachmentViewer, COMPONENTS, COUNTRIES, CheckboxControl, CheckboxField, CheckboxViewer, ChipsControl, ChipsField, ChipsViewer, ControlBase, DATETIME_FORMAT, DATE_FORMAT_ADAPTER, DEFAULT_COUNTRY, DatePickerControl, DatePickerField, DatePickerTimeViewer, DatePickerViewer, DateRangePickerControl, DateRangePickerField, DateRangePickerViewer, DatetimePickerControl, DatetimePickerField, Droppable, Employee, FIELD_DATA, FieldBase, FieldDataInjector, FileHandler, FilePickerControl, FilePickerField, FileValidators, FormEngine, HOST, HintsComponent, InputControl, InputField, InputViewer, IssValidators, Loader, MobileControl, MobileField, MobileViewer, Outlet, PLACEHOLDER_REGEX, PLATE_LETTERS, Phone, PlateControl, PlateField, PlateLetterPipe, PlateViewer, RadioControl, RadioField, RadioViewer, SERVICES, SelectControl, SelectField, SelectStatusPipe, SelectViewer, SlideToggleControl, SlideToggleField, SlideToggleViewer, TextareaControl, TextareaField, TextareaViewer, TimePickerControl, TimePickerField, TimePickerViewer, TimeValidator, ToggleButtonControl, ToggleButtonField, ToggleButtonViewer, TranslatePipe, UI_LANGUAGE, USER_SEARCH_API, VALIDATION_MESSAGES, VALIDATORS, VIEW_PROVIDER, ValidationMessageComponent, arrayFrom, formatFileSize, getPropertyByPath, replacePlaceholders };
|
|
1999
|
-
export type { ActionTriggerFn, ComponentOutlet, Country, DateRangeEmission, DynamicImport, EventArgument, EventConfigFn, EventStrategy, FieldChange, Hint, HintAlignment, I18n, ISO2, IssAttachment, IssFile, Mobile, Option, PlateLetter, ValidationMessage, ValidationMessageFn };
|
|
2199
|
+
export { ATTACHMENT_DOWNLOAD_URL, ATTACHMENT_UPLOAD_RESPONSE_MAPPER, ATTACHMENT_UPLOAD_URL, ArabicNumberPipe, AttachmentViewer, COMPONENTS, COUNTRIES, CheckboxControl, CheckboxField, CheckboxViewer, ChipsControl, ChipsField, ChipsViewer, ControlBase, DATETIME_FORMAT, DATE_FORMAT_ADAPTER, DEFAULT_COUNTRY, DatePickerControl, DatePickerField, DatePickerTimeViewer, DatePickerViewer, DateRangePickerControl, DateRangePickerField, DateRangePickerViewer, DatetimePickerControl, DatetimePickerField, Droppable, Employee, FIELD_DATA, FieldBase, FieldDataInjector, FileHandler, FilePickerControl, FilePickerField, FileValidators, FormEngine, HIJRI_LOCALE, HIJRI_MONTH_NAMES, HOST, HintsComponent, InputControl, InputField, InputViewer, IssDateAdapter, IssValidators, Loader, MobileControl, MobileField, MobileViewer, Outlet, PLACEHOLDER_REGEX, PLATE_LETTERS, Phone, PlateControl, PlateField, PlateLetterPipe, PlateViewer, RadioControl, RadioField, RadioViewer, SERVICES, SelectControl, SelectField, SelectStatusPipe, SelectViewer, SlideToggleControl, SlideToggleField, SlideToggleViewer, TextareaControl, TextareaField, TextareaViewer, TimePickerControl, TimePickerField, TimePickerViewer, TimeValidator, ToggleButtonControl, ToggleButtonField, ToggleButtonViewer, TranslatePipe, UI_LANGUAGE, USER_SEARCH_API, VALIDATION_MESSAGES, VALIDATORS, VIEW_PROVIDER, ValidationMessageComponent, arrayFrom, createHijriDate, formatFileSize, formatHijriDate, getHijriDaysInMonth, getHijriParts, getPropertyByPath, parseHijriDate, provideIssDateAdapter, replacePlaceholders, startOfHijriMonth, toHijriDisplay };
|
|
2200
|
+
export type { ActionTriggerFn, ComponentOutlet, Country, DateRangeEmission, DynamicImport, EventArgument, EventConfigFn, EventStrategy, FieldChange, HijriParts, Hint, HintAlignment, I18n, ISO2, IssAttachment, IssFile, Mobile, Option, PlateLetter, ValidationMessage, ValidationMessageFn };
|