@acorex/components 18.14.1-next.0 → 18.14.1-next.2
Sign up to get free protection for your applications and to get access to all the features.
- package/calendar/lib/calendar.component.d.ts +16 -5
- package/calendar/lib/calendar.module.d.ts +2 -1
- package/check-box/lib/check-box.component.d.ts +13 -5
- package/cron-job/README.md +3 -0
- package/cron-job/index.d.ts +8 -0
- package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +31 -0
- package/cron-job/lib/cron-job.module.d.ts +25 -0
- package/cron-job/lib/cron-job.service.d.ts +22 -0
- package/cron-job/lib/day/day.component.d.ts +22 -0
- package/cron-job/lib/day/day.model.d.ts +61 -0
- package/cron-job/lib/day/day.service.d.ts +17 -0
- package/cron-job/lib/hours/hours.component.d.ts +14 -0
- package/cron-job/lib/hours/hours.model.d.ts +5 -0
- package/cron-job/lib/hours/hours.service.d.ts +13 -0
- package/cron-job/lib/minutes/minutes.component.d.ts +14 -0
- package/cron-job/lib/minutes/minutes.model.d.ts +5 -0
- package/cron-job/lib/minutes/minutes.service.d.ts +13 -0
- package/cron-job/lib/month/month.component.d.ts +16 -0
- package/cron-job/lib/month/month.model.d.ts +5 -0
- package/cron-job/lib/month/month.service.d.ts +14 -0
- package/cron-job/lib/seconds/seconds.component.d.ts +14 -0
- package/cron-job/lib/seconds/seconds.model.d.ts +5 -0
- package/cron-job/lib/seconds/seconds.service.d.ts +13 -0
- package/cron-job/lib/types/iexpression.d.ts +3 -0
- package/cron-job/lib/types/shared.model.d.ts +37 -0
- package/cron-job/lib/year/year.component.d.ts +15 -0
- package/cron-job/lib/year/year.model.d.ts +16 -0
- package/cron-job/lib/year/year.service.d.ts +12 -0
- package/datetime-input/lib/datetime-input.component.d.ts +9 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +1 -0
- package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar.component.mjs +186 -158
- package/esm2022/calendar/lib/calendar.module.mjs +5 -4
- package/esm2022/check-box/lib/check-box.component.mjs +39 -22
- package/esm2022/cron-job/acorex-components-cron-job.mjs +5 -0
- package/esm2022/cron-job/index.mjs +9 -0
- package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +90 -0
- package/esm2022/cron-job/lib/cron-job.module.mjs +80 -0
- package/esm2022/cron-job/lib/cron-job.service.mjs +60 -0
- package/esm2022/cron-job/lib/day/day.component.mjs +61 -0
- package/esm2022/cron-job/lib/day/day.model.mjs +88 -0
- package/esm2022/cron-job/lib/day/day.service.mjs +196 -0
- package/esm2022/cron-job/lib/hours/hours.component.mjs +38 -0
- package/esm2022/cron-job/lib/hours/hours.model.mjs +8 -0
- package/esm2022/cron-job/lib/hours/hours.service.mjs +82 -0
- package/esm2022/cron-job/lib/minutes/minutes.component.mjs +38 -0
- package/esm2022/cron-job/lib/minutes/minutes.model.mjs +8 -0
- package/esm2022/cron-job/lib/minutes/minutes.service.mjs +82 -0
- package/esm2022/cron-job/lib/month/month.component.mjs +47 -0
- package/esm2022/cron-job/lib/month/month.model.mjs +8 -0
- package/esm2022/cron-job/lib/month/month.service.mjs +96 -0
- package/esm2022/cron-job/lib/seconds/seconds.component.mjs +38 -0
- package/esm2022/cron-job/lib/seconds/seconds.model.mjs +8 -0
- package/esm2022/cron-job/lib/seconds/seconds.service.mjs +82 -0
- package/esm2022/cron-job/lib/types/iexpression.mjs +2 -0
- package/esm2022/cron-job/lib/types/shared.model.mjs +49 -0
- package/esm2022/cron-job/lib/year/year.component.mjs +45 -0
- package/esm2022/cron-job/lib/year/year.model.mjs +28 -0
- package/esm2022/cron-job/lib/year/year.service.mjs +82 -0
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +38 -10
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +17 -4
- package/esm2022/list/lib/list.component.mjs +3 -3
- package/esm2022/loading/lib/loading.component.mjs +7 -3
- package/esm2022/loading/lib/loading.service.mjs +2 -2
- package/esm2022/radio/lib/radio.component.mjs +3 -3
- package/esm2022/selection-list/lib/selection-list.component.mjs +70 -28
- package/esm2022/text-box/lib/text-box.component.mjs +11 -8
- package/fesm2022/acorex-components-action-sheet.mjs +1 -1
- package/fesm2022/acorex-components-alert.mjs +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +1 -1
- package/fesm2022/acorex-components-avatar.mjs +1 -1
- package/fesm2022/acorex-components-badge.mjs +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +3 -3
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +1 -1
- package/fesm2022/acorex-components-button-group.mjs +1 -1
- package/fesm2022/acorex-components-button.mjs +1 -1
- package/fesm2022/acorex-components-calendar.mjs +188 -160
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +39 -22
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +1 -1
- package/fesm2022/acorex-components-collapse.mjs +1 -1
- package/fesm2022/acorex-components-color-box.mjs +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +1 -1
- package/fesm2022/acorex-components-comment.mjs +1 -1
- package/fesm2022/acorex-components-common.mjs +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +1191 -0
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -0
- package/fesm2022/acorex-components-data-pager.mjs +1 -1
- package/fesm2022/acorex-components-data-table.mjs +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +36 -8
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +16 -3
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +1 -1
- package/fesm2022/acorex-components-dialog.mjs +1 -1
- package/fesm2022/acorex-components-drawer.mjs +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +1 -1
- package/fesm2022/acorex-components-form.mjs +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +1 -1
- package/fesm2022/acorex-components-image.mjs +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +1 -1
- package/fesm2022/acorex-components-label.mjs +1 -1
- package/fesm2022/acorex-components-list.mjs +3 -3
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
- package/fesm2022/acorex-components-loading.mjs +8 -4
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +1 -1
- package/fesm2022/acorex-components-menu.mjs +1 -1
- package/fesm2022/acorex-components-nav.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +1 -1
- package/fesm2022/acorex-components-notification.mjs +1 -1
- package/fesm2022/acorex-components-number-box.mjs +1 -1
- package/fesm2022/acorex-components-otp.mjs +1 -1
- package/fesm2022/acorex-components-page.mjs +1 -1
- package/fesm2022/acorex-components-paint.mjs +1 -1
- package/fesm2022/acorex-components-password-box.mjs +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +1 -1
- package/fesm2022/acorex-components-picker.mjs +1 -1
- package/fesm2022/acorex-components-popover.mjs +1 -1
- package/fesm2022/acorex-components-popup.mjs +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +1 -1
- package/fesm2022/acorex-components-radio.mjs +3 -3
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +1 -1
- package/fesm2022/acorex-components-result.mjs +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +1 -1
- package/fesm2022/acorex-components-search-box.mjs +1 -1
- package/fesm2022/acorex-components-select-box.mjs +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +70 -28
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +1 -1
- package/fesm2022/acorex-components-slider.mjs +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +1 -1
- package/fesm2022/acorex-components-switch.mjs +1 -1
- package/fesm2022/acorex-components-tabs.mjs +1 -1
- package/fesm2022/acorex-components-tag.mjs +1 -1
- package/fesm2022/acorex-components-text-area.mjs +1 -1
- package/fesm2022/acorex-components-text-box.mjs +10 -7
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +1 -1
- package/fesm2022/acorex-components-toast.mjs +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +1 -1
- package/fesm2022/acorex-components-uploader.mjs +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +1 -1
- package/package.json +7 -1
- package/selection-list/lib/selection-list.component.d.ts +26 -6
- package/text-box/lib/text-box.component.d.ts +2 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-components-cron-job.mjs","sources":["../../../../libs/components/cron-job/src/lib/cron-job.service.ts","../../../../libs/components/cron-job/src/lib/types/shared.model.ts","../../../../libs/components/cron-job/src/lib/day/day.model.ts","../../../../libs/components/cron-job/src/lib/day/day.service.ts","../../../../libs/components/cron-job/src/lib/hours/hours.model.ts","../../../../libs/components/cron-job/src/lib/hours/hours.service.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.model.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.service.ts","../../../../libs/components/cron-job/src/lib/month/month.model.ts","../../../../libs/components/cron-job/src/lib/month/month.service.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.model.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.service.ts","../../../../libs/components/cron-job/src/lib/year/year.model.ts","../../../../libs/components/cron-job/src/lib/year/year.service.ts","../../../../libs/components/cron-job/src/lib/day/day.component.ts","../../../../libs/components/cron-job/src/lib/day/day.component.html","../../../../libs/components/cron-job/src/lib/hours/hours.component.ts","../../../../libs/components/cron-job/src/lib/hours/hours.component.html","../../../../libs/components/cron-job/src/lib/minutes/minutes.component.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.component.html","../../../../libs/components/cron-job/src/lib/month/month.component.ts","../../../../libs/components/cron-job/src/lib/month/month.component.html","../../../../libs/components/cron-job/src/lib/seconds/seconds.component.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.component.html","../../../../libs/components/cron-job/src/lib/year/year.component.ts","../../../../libs/components/cron-job/src/lib/year/year.component.html","../../../../libs/components/cron-job/src/lib/cron-job-container/cron-job-container.component.ts","../../../../libs/components/cron-job/src/lib/cron-job-container/cron-job-container.component.html","../../../../libs/components/cron-job/src/lib/cron-job.module.ts","../../../../libs/components/cron-job/src/acorex-components-cron-job.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { DropDownItem, RegexItemsIndex } from './types/shared.model';\n\n@Injectable()\nexport class StringService {\n public addComma(str: string): string {\n if (str !== '')\n // add , to end of string\n str = str.concat(',');\n\n return str;\n }\n\n getRegexItem(cronExpressionPattern: string, itemIndex: RegexItemsIndex): string {\n const expressionItemsList = cronExpressionPattern.split(' ');\n return expressionItemsList[itemIndex] ? expressionItemsList[itemIndex] : '*';\n }\n\n getIntervalCronData(regex: string): { interval: number; startAt: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '/';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n\n return item\n ? { interval: parseInt(item.split('/')[1]), startAt: parseInt(item.split('/')[0]) }\n : undefined;\n }\n\n getSpecificCronData(regex: string, dropDowndara?: Array<string>): Array<DropDownItem> | undefined {\n const regexDataList: Array<string> = regex.split(',');\n // **Regex pattern to find only digits in an array items.**\n const regexPattern = new RegExp('^[0-9]+$');\n const items = regexDataList.filter((item) => regexPattern.test(item));\n\n return items.length ? this.mapItemsToDropDownItem(items, dropDowndara) : undefined;\n }\n\n getRangeCronData(regex: string): { from: number; to: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '-';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n return item\n ? { from: parseInt(item.split(rangePattern)[0]), to: parseInt(item.split(rangePattern)[1]) }\n : undefined;\n }\n\n getDayOfMonthCronData(regex: string): { day: number; xst: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '#';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n return item\n ? { day: parseInt(item.split(rangePattern)[0]), xst: parseInt(item.split(rangePattern)[1]) }\n : undefined;\n }\n\n mapItemsToDropDownItem(items: Array<string>, dropDowndata?: Array<string>): Array<DropDownItem> {\n return items.map((item) => {\n if (dropDowndata) {\n const dropDownItem: string | undefined = dropDowndata[parseInt(item) - 1];\n return dropDownItem ? { id: parseInt(item), text: dropDownItem } : { id: parseInt(item), text: item };\n }\n\n return { id: parseInt(item), text: item };\n });\n }\n}\n","export class Custom {\n specific: Specific = new Specific();\n repeat: Repeat = new Repeat();\n between: Between = new Between();\n}\n\nexport class Repeat {\n isRepeat = false;\n interval = 0;\n startAt = 0;\n}\n\nexport class Specific {\n isSpecific = false;\n values: DropDownItem[] = [];\n}\n\nexport class Between {\n isBetween = false;\n from = 0;\n to = 0;\n}\n\nexport enum Type {\n Every = 'every',\n Custom = 'custom',\n}\n\nexport enum RegexItemsIndex {\n Second = 0,\n Minute = 1,\n Hour = 2,\n DayOfMonth = 3,\n Month = 4,\n DayOfWeek = 5,\n Year = 6,\n}\nexport class DropDownItem {\n constructor(\n public id: number,\n public text: string,\n ) {}\n}\n","import { DropDownItem } from '../types/shared.model';\n\nexport class Day {\n type: DayType = DayType.Every;\n baseOnWeek: BaseOnWeek = new BaseOnWeek();\n baseOnMonth: BaseOnMonth = new BaseOnMonth();\n}\n\nexport class BaseOnMonth {\n type: BaseOnMonthType = BaseOnMonthType.Last;\n custom: BaseOnMonthCustom = new BaseOnMonthCustom();\n before = 1;\n}\n\nexport class BaseOnWeek {\n type: BaseOnWeekType = BaseOnWeekType.Last;\n last: Last = new Last();\n custom: BaseOnWeekCustom = new BaseOnWeekCustom();\n}\n\nexport class BaseOnWeekCustom {\n repeat: BaseOnWeekRepeat = new BaseOnWeekRepeat();\n specific: Specific = new Specific();\n dayOfMonth: DayOfMonth = new DayOfMonth();\n}\n\nexport class BaseOnMonthCustom {\n repeat: BaseOnMonthRepeat = new BaseOnMonthRepeat();\n specific: Specific = new Specific();\n}\n\nexport class Last {\n day = 1;\n}\n\nexport class BaseRepeat {\n isRepeat = false;\n interval = 1;\n}\n\nexport class BaseOnWeekRepeat extends BaseRepeat {\n startAt = 1;\n}\n\nexport class BaseOnMonthRepeat extends BaseRepeat {\n startAt = 1;\n}\n\nexport class Specific {\n isSpecefic = false;\n values: DropDownItem[] = [];\n}\n\nexport class DayOfMonth {\n isDayOfMonth = false;\n xst = 1;\n day = 1;\n}\n\nexport enum DayType {\n Every = 'every',\n BOWeek = 'boweek',\n BOMonth = 'bomonth',\n}\n\nexport enum BaseOnWeekType {\n Last = 'last',\n Custom = 'custom',\n}\n\nexport enum BaseOnMonthType {\n Last = 'last',\n Before = 'before',\n Custom = 'custom',\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex } from '../types/shared.model';\nimport { BaseOnMonthType, BaseOnWeekType, Day, DayType } from './day.model';\n\n@Injectable()\nexport class DayService implements IExpression {\n dayModel: Day;\n daysList: Array<string> = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n constructor(private stringService: StringService) {\n this.dayModel = new Day();\n }\n\n getExpression(): any {\n let boMonthExp = '';\n let boWeekExp = '';\n if (this.dayModel.type === DayType.Every) {\n boMonthExp = '?';\n boWeekExp = '*';\n } else if (this.dayModel.type === DayType.BOMonth) {\n boWeekExp = '?';\n if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Last) {\n boMonthExp = 'L';\n } else if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Before) {\n const before = this.dayModel.baseOnMonth.before;\n\n boMonthExp = `L-${before}`;\n } else if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Custom) {\n if (this.dayModel.baseOnMonth.custom.repeat.isRepeat) {\n const interval = this.dayModel.baseOnMonth.custom.repeat.interval;\n const startAt = this.dayModel.baseOnMonth.custom.repeat.startAt;\n boMonthExp = `${startAt}/${interval}`;\n }\n if (this.dayModel.baseOnMonth.custom.specific.isSpecefic) {\n const specificValues = this.dayModel.baseOnMonth.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) boMonthExp = this.stringService.addComma(boMonthExp);\n\n boMonthExp = boMonthExp.concat(specificValues.join(','));\n }\n if (boMonthExp === '') boMonthExp = '*';\n }\n } else if (this.dayModel.type === DayType.BOWeek) {\n boMonthExp = '?';\n if (this.dayModel.baseOnWeek.type === BaseOnWeekType.Last) {\n const lastDay = this.dayModel.baseOnWeek.last.day;\n\n boWeekExp = `${lastDay}L`;\n } else if (this.dayModel.baseOnWeek.type === BaseOnWeekType.Custom) {\n if (this.dayModel.baseOnWeek.custom.repeat.isRepeat) {\n const interval = this.dayModel.baseOnWeek.custom.repeat.interval;\n const startAt = this.dayModel.baseOnWeek.custom.repeat.startAt;\n boWeekExp = `${startAt}/${interval}`;\n }\n if (this.dayModel.baseOnWeek.custom.specific.isSpecefic) {\n const specificValues = this.dayModel.baseOnWeek.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) boWeekExp = this.stringService.addComma(boWeekExp);\n\n boWeekExp = boWeekExp.concat(specificValues.join(','));\n }\n if (this.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth) {\n boWeekExp = this.stringService.addComma(boWeekExp);\n\n const day = this.dayModel.baseOnWeek.custom.dayOfMonth.day;\n const xst = this.dayModel.baseOnWeek.custom.dayOfMonth.xst;\n\n boWeekExp = boWeekExp.concat(`${day}#${xst}`);\n }\n if (boWeekExp === '') boWeekExp = '*';\n }\n }\n\n return [boWeekExp, boMonthExp];\n }\n\n expressionValidation(preCronExpressionPattern: string, newCronExpressionPattern: string): string {\n const preCronExpressionPatternArray = preCronExpressionPattern.split(' ');\n const newCronExpressionPatternArray = newCronExpressionPattern.split(' ');\n\n const dayOfWeekRegex: string = this.stringService.getRegexItem(\n newCronExpressionPattern,\n RegexItemsIndex.DayOfWeek,\n );\n const dayOfMonthRegex: string = this.stringService.getRegexItem(\n newCronExpressionPattern,\n RegexItemsIndex.DayOfMonth,\n );\n\n const isDayOfWeekChanged =\n preCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] !==\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek];\n const isDayOfMonthChanged =\n preCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] !==\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth];\n\n const isBasedOnWeek = dayOfWeekRegex !== '*' && dayOfWeekRegex !== '?';\n const isBasedOnMonth = dayOfMonthRegex !== '?';\n\n if (isDayOfWeekChanged && isBasedOnMonth) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] = '?';\n return newCronExpressionPatternArray.join(' ');\n } else if (isDayOfWeekChanged && !isBasedOnWeek) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] = '*';\n return newCronExpressionPatternArray.join(' ');\n }\n\n if (isDayOfMonthChanged && isBasedOnWeek) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] = '?';\n return newCronExpressionPatternArray.join(' ');\n } else if (isDayOfMonthChanged && !isBasedOnMonth) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] = '*';\n return newCronExpressionPatternArray.join(' ');\n }\n\n return newCronExpressionPattern;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.dayModel = new Day();\n const dayOfWeekRegex: string = this.stringService.getRegexItem(\n cronExpressionPattern,\n RegexItemsIndex.DayOfWeek,\n );\n const dayOfMonthRegex: string = this.stringService.getRegexItem(\n cronExpressionPattern,\n RegexItemsIndex.DayOfMonth,\n );\n\n const isBasedOnWeek = dayOfWeekRegex !== '*' && dayOfWeekRegex !== '?';\n const isBasedOnMonth = dayOfMonthRegex !== '?';\n const isEveryDay: boolean = !isBasedOnWeek && !isBasedOnMonth;\n if (isEveryDay) {\n this.dayModel.type = DayType.Every;\n return;\n }\n\n if (isBasedOnWeek) {\n this.dayModel.type = DayType.BOWeek;\n this.reversExpressionBasedOnWeek(dayOfWeekRegex);\n return;\n }\n\n if (isBasedOnMonth) {\n this.dayModel.type = DayType.BOMonth;\n this.reversExpressionBasedOnMonth(dayOfMonthRegex);\n return;\n }\n }\n\n reversExpressionBasedOnWeek(regex: string): void {\n // **Regex pattern to check id custom or not**\n const regexPattern = new RegExp('^[0-9]L$');\n const isCustom = !regexPattern.test(regex);\n if (!isCustom) {\n this.dayModel.baseOnWeek.type = BaseOnWeekType.Last;\n this.dayModel.baseOnWeek.last.day = parseInt(regex[0]);\n return;\n }\n\n this.dayModel.baseOnWeek.type = BaseOnWeekType.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.dayModel.baseOnWeek.custom.repeat.isRepeat = true;\n this.dayModel.baseOnWeek.custom.repeat.interval = intervalData?.interval as number;\n this.dayModel.baseOnWeek.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.daysList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.dayModel.baseOnWeek.custom.specific.isSpecefic = true;\n this.dayModel.baseOnWeek.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const dayOfMonthData = this.stringService.getDayOfMonthCronData(regex);\n const hasDayOfMonthDataItem = dayOfMonthData !== undefined;\n if (hasDayOfMonthDataItem) {\n this.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth = true;\n this.dayModel.baseOnWeek.custom.dayOfMonth.day = dayOfMonthData?.day as number;\n this.dayModel.baseOnWeek.custom.dayOfMonth.xst = dayOfMonthData?.xst as number;\n }\n }\n\n reversExpressionBasedOnMonth(regex: string) {\n const isLastDayOfMonth = regex == 'L';\n if (isLastDayOfMonth) {\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Last;\n return;\n }\n\n // **Regex pattern to check if id before or not**\n const regexPattern = new RegExp('^L-[0-9]+$');\n const isCustom = !regexPattern.test(regex);\n if (!isCustom) {\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Before;\n this.dayModel.baseOnMonth.before = parseInt(regex.substr(2));\n return;\n }\n\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.dayModel.baseOnMonth.custom.repeat.isRepeat = true;\n this.dayModel.baseOnMonth.custom.repeat.interval = intervalData?.interval as number;\n this.dayModel.baseOnMonth.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.daysList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.dayModel.baseOnMonth.custom.specific.isSpecefic = true;\n this.dayModel.baseOnMonth.custom.specific.values = specificData as Array<DropDownItem>;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Hours {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Hours } from './hours.model';\n\n@Injectable()\nexport class HoursService implements IExpression {\n hourModel: Hours;\n\n constructor(private stringService: StringService) {\n this.hourModel = new Hours();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.hourModel.type === Type.Every) {\n expression = '*';\n } else if (this.hourModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.hourModel.custom.repeat.isRepeat) {\n const interval = this.hourModel.custom.repeat.interval;\n const startAt = this.hourModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.hourModel.custom.specific.isSpecific) {\n const specificValues = this.hourModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.hourModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.hourModel.custom.between.from;\n const to = this.hourModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.hourModel = new Hours();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Hour);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.hourModel.type = Type.Every;\n return;\n }\n this.hourModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.hourModel.custom.repeat.isRepeat = true;\n this.hourModel.custom.repeat.interval = intervalData?.interval as number;\n this.hourModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.hourModel.custom.specific.isSpecific = true;\n this.hourModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.hourModel.custom.between.isBetween = true;\n this.hourModel.custom.between.from = rangeData?.from as number;\n this.hourModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Minutes {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Minutes } from './minutes.model';\n\n@Injectable()\nexport class MinutesService implements IExpression {\n minuteModel: Minutes;\n\n constructor(private stringService: StringService) {\n this.minuteModel = new Minutes();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.minuteModel.type === Type.Every) {\n expression = '*';\n } else if (this.minuteModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.minuteModel.custom.repeat.isRepeat) {\n const interval = this.minuteModel.custom.repeat.interval;\n const startAt = this.minuteModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.minuteModel.custom.specific.isSpecific) {\n const specificValues = this.minuteModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.minuteModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.minuteModel.custom.between.from;\n const to = this.minuteModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.minuteModel = new Minutes();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Minute);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.minuteModel.type = Type.Every;\n return;\n }\n this.minuteModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.minuteModel.custom.repeat.isRepeat = true;\n this.minuteModel.custom.repeat.interval = intervalData?.interval as number;\n this.minuteModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.minuteModel.custom.specific.isSpecific = true;\n this.minuteModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.minuteModel.custom.between.isBetween = true;\n this.minuteModel.custom.between.from = rangeData?.from as number;\n this.minuteModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Month {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Month } from './month.model';\n\n@Injectable()\nexport class MonthService implements IExpression {\n monthModel: Month;\n monthList: Array<string> = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n constructor(private stringService: StringService) {\n this.monthModel = new Month();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.monthModel.type === Type.Every) {\n expression = '*';\n } else if (this.monthModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.monthModel.custom.repeat.isRepeat) {\n const interval = +this.monthModel.custom.repeat.interval + 1;\n const startAt = this.monthModel.custom.repeat.startAt;\n expression = `${+startAt + 1}/${interval}`;\n }\n //isSpecific\n if (this.monthModel.custom.specific.isSpecific) {\n const specificValues = this.monthModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.monthModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.monthModel.custom.between.from;\n const to = this.monthModel.custom.between.to;\n expression = expression.concat(`${+from + 1}-${+to + 1}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.monthModel = new Month();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Month);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.monthModel.type = Type.Every;\n return;\n }\n this.monthModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.monthModel.custom.repeat.isRepeat = true;\n this.monthModel.custom.repeat.interval = (intervalData?.interval as number) - 1;\n this.monthModel.custom.repeat.startAt = (intervalData?.startAt as number) - 1;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.monthList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.monthModel.custom.specific.isSpecific = true;\n this.monthModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.monthModel.custom.between.isBetween = true;\n this.monthModel.custom.between.from = (rangeData?.from as number) - 1;\n this.monthModel.custom.between.to = (rangeData?.to as number) - 1;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Seconds {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Seconds } from './seconds.model';\n\n@Injectable()\nexport class SecondsService implements IExpression {\n secondModel: Seconds;\n\n constructor(private stringService: StringService) {\n this.secondModel = new Seconds();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.secondModel.type === Type.Every) {\n expression = '*';\n } else if (this.secondModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.secondModel.custom.repeat.isRepeat) {\n const interval = this.secondModel.custom.repeat.interval;\n const startAt = this.secondModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.secondModel.custom.specific.isSpecific) {\n const specificValues = this.secondModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.secondModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.secondModel.custom.between.from;\n const to = this.secondModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.secondModel = new Seconds();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Second);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.secondModel.type = Type.Every;\n return;\n }\n this.secondModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.secondModel.custom.repeat.isRepeat = true;\n this.secondModel.custom.repeat.interval = intervalData?.interval as number;\n this.secondModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.secondModel.custom.specific.isSpecific = true;\n this.secondModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.secondModel.custom.between.isBetween = true;\n this.secondModel.custom.between.from = rangeData?.from as number;\n this.secondModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import {\n Between as sharedBetween,\n Custom as sharedCustom,\n Repeat as sharedRepeat,\n Type,\n} from '../types/shared.model';\n\nexport class Year {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n\nexport class Repeat extends sharedRepeat {\n override startAt = new Date().getFullYear();\n}\n\nexport class Between extends sharedBetween {\n override from = new Date().getFullYear();\n override to = new Date().getFullYear();\n}\n\nexport class Custom extends sharedCustom {\n override repeat = new Repeat();\n override between = new Between();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Year } from './year.model';\n\n@Injectable()\nexport class YearService {\n yearModel: Year;\n\n constructor(private stringService: StringService) {\n this.yearModel = new Year();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.yearModel.type === Type.Every) {\n expression = '*';\n } else if (this.yearModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.yearModel.custom.repeat.isRepeat) {\n const interval = +this.yearModel.custom.repeat.interval + 1;\n const startAt = this.yearModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.yearModel.custom.specific.isSpecific) {\n const specificValues = this.yearModel.custom.specific.values.map((v) => {\n return v.id;\n });\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.yearModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.yearModel.custom.between.from;\n const to = this.yearModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.yearModel = new Year();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Year);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.yearModel.type = Type.Every;\n return;\n }\n this.yearModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.yearModel.custom.repeat.isRepeat = true;\n this.yearModel.custom.repeat.interval = (intervalData?.interval as number) - 1;\n this.yearModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.yearModel.custom.specific.isSpecific = true;\n this.yearModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.yearModel.custom.between.isBetween = true;\n this.yearModel.custom.between.from = rangeData?.from as number;\n this.yearModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem } from '../types/shared.model';\nimport { BaseOnMonthType, BaseOnWeekType, DayType } from './day.model';\nimport { DayService } from './day.service';\n\n@Component({\n selector: 'ax-cron-day',\n templateUrl: './day.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronDayComponent {\n dayService = inject(DayService);\n\n protected boWeekDropDownList: DropDownItem[] = [];\n protected boMonthDropDownList: DropDownItem[] = [];\n\n protected daysIndexInMonth: number[] = [1, 2, 3, 4, 5];\n protected zeroTo30: number[] = [];\n\n #init = afterNextRender(() => {\n for (const [i, day] of this.daysList.entries()) this.boWeekDropDownList[i] = new DropDownItem(i + 1, day);\n\n for (let i = 0; i < 31; i++) {\n this.zeroTo30[i] = i;\n this.boMonthDropDownList[i] = new DropDownItem(i + 1, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.dayService.dayModel.baseOnWeek.custom.specific.values = e.component.selectedItems;\n }\n\n protected changeHandler2(e: AXValueChangedEvent) {\n this.dayService.dayModel.baseOnMonth.custom.specific.values = e.component.selectedItems;\n }\n\n protected get daysList(): Array<string> {\n return this.dayService.daysList;\n }\n\n protected get isBoWeek(): boolean {\n return this.dayService.dayModel.type === DayType.BOWeek ? true : false;\n }\n\n protected get isBoMonth(): boolean {\n return this.dayService.dayModel.type === DayType.BOMonth ? true : false;\n }\n\n protected get isBoWeekCustom(): boolean {\n return this.dayService.dayModel.baseOnWeek.type === BaseOnWeekType.Custom ? true : false;\n }\n\n protected get isBoMonthCustom(): boolean {\n return this.dayService.dayModel.baseOnMonth.type === BaseOnMonthType.Custom ? true : false;\n }\n\n protected get isBoMonthBefore(): boolean {\n return this.dayService.dayModel.baseOnMonth.type === BaseOnMonthType.Before ? true : false;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"dayService.dayModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'Every' | translate | async }} {{ 'time.day' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option2\"\n value=\"boweek\"\n [(ngModel)]=\"dayService.dayModel.type\"\n />\n <label for=\"option2\">{{ 'Base on week' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"boweek\"\n id=\"boweekLast\"\n value=\"last\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.type\"\n [disabled]=\"!isBoWeek\"\n />\n\n <span>{{ 'On the last' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.last.day\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'of the month' | translate | async }}</span>\n </div>\n\n <div>\n <div class=\"ax-radio-container\">\n <input\n type=\"radio\"\n class=\"ax-radio\"\n name=\"boweek\"\n id=\"boweekCustom\"\n value=\"custom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.type\"\n [disabled]=\"!isBoWeek\"\n />\n <label for=\"boweekLast\">{{ 'Custom' | translate | async }}</label>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.isRepeat\"\n >\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"daysList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day(s) starting on' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.specific.isSpecefic\"\n >\n </ax-check-box>\n <label>{{ 'Specific day(s) of week (choose one or many)' | translate | async }}</label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select day(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth\"\n >\n </ax-check-box>\n\n <span>{{ 'On the' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"daysIndexInMonth\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.xst\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'st' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.day\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'of month' | translate | async }}</span>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option3\"\n value=\"bomonth\"\n [(ngModel)]=\"dayService.dayModel.type\"\n />\n <label for=\"option2\">{{ 'Base on Month' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthLast\"\n value=\"last\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n <label for=\"bomonthLast\">{{ 'On the Last day of the month' | translate | async }}</label>\n </div>\n\n <div class=\"ax-week-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthLast\"\n value=\"before\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthBefore\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.before\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day(s) before the end of the month' | translate | async }}</span>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthCustom\"\n value=\"custom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n <label for=\"bomonthCustom\">{{ 'Custom' | translate | async }}</label>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.isRepeat\"\n >\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day(s) starting on' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'st of the month' | translate | async }}</span>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.specific.isSpecefic\"\n >\n </ax-check-box>\n\n <label>{{ 'Specific day(s) of month (choose one or many)' | translate | async }}</label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"boMonthDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select day(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler2($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n </div>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { HoursService } from './hours.service';\n\n@Component({\n selector: 'ax-cron-hours',\n templateUrl: './hours.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronHoursComponent {\n hoursService = inject(HoursService);\n\n protected dropdownList: DropDownItem[] = [];\n protected zeroTo23: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 24; i++) {\n this.zeroTo23[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.hoursService.hourModel.custom.specific.values = e.component.selectedItems;\n }\n protected get isCustom(): boolean {\n return this.hoursService.hourModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"hoursService.hourModel.type\"\n checked\n />\n <label>{{ 'Every' | translate | async }} {{ 'time.hour' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"hoursService.hourModel.type\"\n />\n <label>{{ 'Custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.repeat.isRepeat\">\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'hour(s) starting at hour' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.specific.isSpecific\">\n </ax-check-box>\n <label>{{ 'Specific hour(s) (choose one or many)' | translate | async }} </label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select hour(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.between.isBetween\">\n </ax-check-box>\n <label>\n {{ 'Every' | translate | async }} {{ 'time.hour' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.hour' | translate | async }}\n </label>\n </div>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { MinutesService } from './minutes.service';\n\n@Component({\n selector: 'ax-cron-minutes',\n templateUrl: './minutes.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronMinutesComponent {\n protected minutesService = inject(MinutesService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected zeroTo59: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 60; i++) {\n this.zeroTo59[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.minutesService.minuteModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.minutesService.minuteModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"minutesService.minuteModel.type\"\n checked\n />\n <label>{{ 'Every' | translate | async }} {{ 'time.minute' | translate | async }} </label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"minutesService.minuteModel.type\"\n />\n <label>{{ 'Custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"minutesService.minuteModel.custom.repeat.isRepeat\">\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'minute(s) starting at minute' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isCustom\"\n [(ngModel)]=\"minutesService.minuteModel.custom.specific.isSpecific\"\n >\n </ax-check-box>\n <label>{{ 'Specific minute(s) (choose one or many)' | translate | async }}</label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select minute(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"minutesService.minuteModel.custom.between.isBetween\">\n </ax-check-box>\n <label\n >{{ 'Every' | translate | async }} {{ 'time.minute' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.minute' | translate | async }}</label\n >\n </div>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { MonthService } from './month.service';\n\n@Component({\n selector: 'ax-cron-month',\n templateUrl: './month.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronMonthComponent {\n protected monthService = inject(MonthService);\n\n protected dropdownList: DropDownItem[] = [];\n protected dropdownList2: DropDownItem[] = [];\n protected oneTo12: DropDownItem[] = [];\n\n #init = afterNextRender(() => {\n for (const [i, month] of this.monthsList.entries()) {\n this.dropdownList[i] = new DropDownItem(i, month);\n }\n for (const [i, month] of this.monthsList.entries()) {\n this.dropdownList2[i] = new DropDownItem(i + 1, month);\n }\n\n for (let i = 0; i < 12; i++) {\n this.oneTo12[i] = new DropDownItem(i, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.monthService.monthModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.monthService.monthModel.type === Type.Every ? false : true;\n }\n\n protected get monthsList(): Array<string> {\n return this.monthService.monthList;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"monthService.monthModel.type\"\n checked\n />\n <label>{{ 'Every' | translate | async }} {{ 'time.month' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"monthService.monthModel.type\"\n />\n <label>{{ 'Custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.repeat.isRepeat\">\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"oneTo12\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'month(s) starting at month' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.specific.isSpecific\">\n </ax-check-box>\n <label> {{ 'Specific month(s) (choose one or many)' | translate | async }}</label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList2\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select month(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.between.isBetween\">\n </ax-check-box>\n <label>\n {{ 'Every' | translate | async }} {{ 'time.month' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.month' | translate | async }}\n </label>\n </div>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { SecondsService } from './seconds.service';\n\n@Component({\n selector: 'ax-cron-seconds',\n templateUrl: './seconds.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronSecondsComponent {\n protected secondsService = inject(SecondsService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected zeroTo59: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 60; i++) {\n this.zeroTo59[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.secondsService.secondModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.secondsService.secondModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"secondsService.secondModel.type\"\n checked\n />\n <label>{{ 'Every' | translate | async }} {{ 'time.second' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"secondsService.secondModel.type\"\n />\n <label>{{ 'Custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"secondsService.secondModel.custom.repeat.isRepeat\">\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'second(s) starting at second' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isCustom\"\n [(ngModel)]=\"secondsService.secondModel.custom.specific.isSpecific\"\n >\n </ax-check-box>\n <label>\n {{ 'Specific second(s) (choose one or many)' | translate | async }}\n </label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select second(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"secondsService.secondModel.custom.between.isBetween\">\n </ax-check-box>\n <label>\n {{ 'Every' | translate | async }} {{ 'time.second' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.second' | translate | async }}\n </label>\n </div>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { YearService } from './year.service';\n\n@Component({\n selector: 'ax-cron-year',\n templateUrl: './year.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronYearComponent {\n yearService = inject(YearService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected oneTo100: DropDownItem[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 100; i++) {\n const year = this.getYearByOffset(i);\n this.dropdownList[i] = new DropDownItem(year, year.toString());\n }\n\n for (let i = 0; i < 100; i++) {\n this.oneTo100[i] = new DropDownItem(i, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.yearService.yearModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.yearService.yearModel.type === Type.Every ? false : true;\n }\n\n protected getYearByOffset(offset: number) {\n const currentYear: number = new Date().getFullYear();\n return currentYear + offset;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"yearService.yearModel.type\"\n checked\n />\n <label>{{ 'Every' | translate | async }} {{ 'time.year' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"yearService.yearModel.type\"\n />\n <label>{{ 'Custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.repeat.isRepeat\">\n </ax-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n textField=\"text\"\n valueField=\"id\"\n [disabled]=\"!isCustom\"\n [dataSource]=\"oneTo100\"\n [(ngModel)]=\"yearService.yearModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'year(s) starting at year' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.specific.isSpecific\">\n </ax-check-box>\n <label>\n {{ 'Specific year(s) (choose one or many)' | translate | async }}\n </label>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select year(s)' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.between.isBetween\">\n </ax-check-box>\n <label>\n {{ 'Every' | translate | async }} {{ 'time.year' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.year' | translate | async }}\n </label>\n </div>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXClickEvent } from '@acorex/components/common';\nimport { AXTabLocation, AXTabLook, AXTabsComponent } from '@acorex/components/tabs';\nimport {\n afterNextRender,\n Component,\n inject,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { StringService } from '../cron-job.service';\nimport { DayService } from '../day/day.service';\nimport { HoursService } from '../hours/hours.service';\nimport { MinutesService } from '../minutes/minutes.service';\nimport { MonthService } from '../month/month.service';\nimport { SecondsService } from '../seconds/seconds.service';\nimport { YearService } from '../year/year.service';\n\n@Component({\n selector: 'ax-cron-job-container',\n templateUrl: './cron-job-container.component.html',\n styleUrl: './cron-job-container.component.scss',\n providers: [\n SecondsService,\n MinutesService,\n HoursService,\n DayService,\n MonthService,\n YearService,\n StringService,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronJobContainerComponent {\n protected tabComponent = viewChild(AXTabsComponent);\n protected activeTab = signal('Seconds');\n protected expResult = '* * * ? * * *';\n\n onExpressionChange = output<AXClickEvent>();\n\n #init = afterNextRender(() => {\n this.tabComponent().onActiveTabChanged.subscribe((e) => {\n this.activeTab.set(e.tab.key);\n });\n });\n\n protected options = signal({\n fit: true,\n look: 'with-line' as AXTabLook,\n location: 'bottom' as AXTabLocation,\n });\n\n protected secondsService = inject(SecondsService);\n protected minutesService = inject(MinutesService);\n protected hoursService = inject(HoursService);\n protected monthService = inject(MonthService);\n protected dayService = inject(DayService);\n protected yearService = inject(YearService);\n\n protected onGetModel() {\n const secondsExp = this.secondsService.getExpression();\n const minutesExp = this.minutesService.getExpression();\n const hoursExp = this.hoursService.getExpression();\n const monthExp = this.monthService.getExpression();\n const dayExp = this.dayService.getExpression();\n const yearExp = this.yearService.getExpression();\n this.expResult = `${secondsExp} ${minutesExp} ${hoursExp} ${dayExp[1]} ${monthExp} ${dayExp[0]} ${yearExp}`;\n this.onExpressionChange.emit({ data: this.expResult, component: this });\n }\n\n protected reverseExpression(cronExpressionPattern: string): void {\n this.expResult = this.dayService.expressionValidation(this.expResult, cronExpressionPattern);\n this.secondsService.reversExpression(cronExpressionPattern);\n this.minutesService.reversExpression(cronExpressionPattern);\n this.hoursService.reversExpression(cronExpressionPattern);\n this.dayService.reversExpression(cronExpressionPattern);\n this.monthService.reversExpression(cronExpressionPattern);\n this.yearService.reversExpression(cronExpressionPattern);\n }\n}\n","<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'Generate Expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXCronJobContainerComponent } from './cron-job-container/cron-job-container.component';\nimport { AXCronDayComponent } from './day/day.component';\nimport { AXCronHoursComponent } from './hours/hours.component';\nimport { AXCronMinutesComponent } from './minutes/minutes.component';\nimport { AXCronMonthComponent } from './month/month.component';\nimport { AXCronSecondsComponent } from './seconds/seconds.component';\nimport { AXCronYearComponent } from './year/year.component';\n\nconst COMPONENT = [\n AXCronJobContainerComponent,\n AXCronDayComponent,\n AXCronHoursComponent,\n AXCronMinutesComponent,\n AXCronMonthComponent,\n AXCronSecondsComponent,\n AXCronYearComponent,\n];\n\nconst MODULES = [\n AXTabsModule,\n AXBadgeModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXFormModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTextBoxModule,\n AXTranslationModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES, AXButtonModule, AXLabelModule],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXCronJobModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Specific","Repeat","Between","i1.StringService","Custom","sharedRepeat","sharedBetween","sharedCustom","i1","i2","i3","i4","i5","i6.AXCronDayComponent","i7.AXCronHoursComponent","i8.AXCronMinutesComponent","i9.AXCronMonthComponent","i10.AXCronSecondsComponent","i11.AXCronYearComponent","i12","i13"],"mappings":"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"}
|
@@ -2,7 +2,7 @@ import * as i8 from '@acorex/components/common';
|
|
2
2
|
import { AXEvent, MXInteractiveComponent, MXValueComponent, AXPagedComponent } from '@acorex/components/common';
|
3
3
|
import { AXUnsubscriber, AXHtmlUtil } from '@acorex/core/utils';
|
4
4
|
import * as i0 from '@angular/core';
|
5
|
-
import { Injectable, inject,
|
5
|
+
import { Injectable, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, signal, EventEmitter, forwardRef, Optional, Inject, Output, NgModule } from '@angular/core';
|
6
6
|
import * as i2 from '@acorex/core/translation';
|
7
7
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
8
8
|
import * as i1 from '@angular/common';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i5$1 from '@acorex/components/common';
|
2
2
|
import { MXBaseComponent, convertArrayToDataSource, AXListDataSource, AXPagedComponent, AXCommonModule, AXRippleDirective } from '@acorex/components/common';
|
3
3
|
import * as i0 from '@angular/core';
|
4
|
-
import { EventEmitter, signal, Input, Output,
|
4
|
+
import { EventEmitter, signal, Injectable, Input, Output, Directive, HostListener, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef, NgZone, computed, ContentChildren, NgModule } from '@angular/core';
|
5
5
|
import { isBrowser } from '@acorex/core/platform';
|
6
6
|
import { Subject, debounceTime, buffer, filter } from 'rxjs';
|
7
7
|
import { __decorate, __metadata } from 'tslib';
|
@@ -7,7 +7,7 @@ import { AXDateTimePickerComponent, AXDateTimePickerModule } from '@acorex/compo
|
|
7
7
|
import * as i3 from '@acorex/components/dropdown';
|
8
8
|
import { MXDropdownBoxBaseComponent, AXDropdownBoxComponent, AXDropdownModule } from '@acorex/components/dropdown';
|
9
9
|
import * as i0 from '@angular/core';
|
10
|
-
import { EventEmitter, input, forwardRef,
|
10
|
+
import { EventEmitter, input, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Output, Input, NgModule } from '@angular/core';
|
11
11
|
import * as i1 from '@angular/forms';
|
12
12
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
13
13
|
import { classes } from 'polytype';
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import { MXInputBaseValueComponent, AXComponent, AXFocusableComponent, AXValuableComponent, AXClearableComponent } from '@acorex/components/common';
|
2
2
|
import { AXCalendarService, AXDateTimeModule } from '@acorex/core/date-time';
|
3
|
+
import { AXPlatform } from '@acorex/core/platform';
|
3
4
|
import { AXStringUtil } from '@acorex/core/utils';
|
4
5
|
import * as i0 from '@angular/core';
|
5
|
-
import { inject, input, EventEmitter, forwardRef,
|
6
|
+
import { inject, input, EventEmitter, signal, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, HostListener, NgModule } from '@angular/core';
|
6
7
|
import * as i1 from '@angular/forms';
|
7
8
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
9
|
+
import { map } from 'rxjs';
|
8
10
|
import { CommonModule } from '@angular/common';
|
9
11
|
|
10
12
|
/**
|
@@ -16,6 +18,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
16
18
|
constructor() {
|
17
19
|
super(...arguments);
|
18
20
|
this.calendarService = inject(AXCalendarService);
|
21
|
+
this.platformService = inject(AXPlatform);
|
19
22
|
/**
|
20
23
|
* @ignore
|
21
24
|
*/
|
@@ -110,6 +113,10 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
110
113
|
* @ignore
|
111
114
|
*/
|
112
115
|
this._format = this.calendarService.calendar.formats.dateTimeInput;
|
116
|
+
/**
|
117
|
+
* @description check if page is in rtl or ltr
|
118
|
+
*/
|
119
|
+
this.isRtl = signal(this.platformService.isRtl());
|
113
120
|
}
|
114
121
|
/**
|
115
122
|
* Gets the type of the datetime input.
|
@@ -209,6 +216,14 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
209
216
|
},
|
210
217
|
});
|
211
218
|
}
|
219
|
+
/**
|
220
|
+
* @description listen to direction change to react to it.
|
221
|
+
*/
|
222
|
+
ngOnInit() {
|
223
|
+
this.platformService.directionChange
|
224
|
+
.pipe(map((i) => i.data === 'rtl'))
|
225
|
+
.subscribe((isRtl) => this.isRtl.set(isRtl));
|
226
|
+
}
|
212
227
|
/**
|
213
228
|
* @ignore
|
214
229
|
*/
|
@@ -425,7 +440,8 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
425
440
|
this._clearInputBuffer();
|
426
441
|
next = true;
|
427
442
|
}
|
428
|
-
editing.typedValue =
|
443
|
+
editing.typedValue =
|
444
|
+
editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
429
445
|
const nv = parseInt(editing.typedValue);
|
430
446
|
if (nv > 0) {
|
431
447
|
const newVal = this.editingDateObj.set(part.key, nv);
|
@@ -454,7 +470,8 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
454
470
|
this._clearInputBuffer();
|
455
471
|
next = true;
|
456
472
|
}
|
457
|
-
editing.typedValue =
|
473
|
+
editing.typedValue =
|
474
|
+
editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
458
475
|
const nv = parseInt(editing.typedValue);
|
459
476
|
if (nv > 0) {
|
460
477
|
const newVal = this.editingDateObj.set(part.key, nv);
|
@@ -481,7 +498,8 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
481
498
|
}
|
482
499
|
next = true;
|
483
500
|
}
|
484
|
-
editing.typedValue =
|
501
|
+
editing.typedValue =
|
502
|
+
editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
485
503
|
const newVal = this.editingDateObj.set('hour', parseInt(editing.typedValue));
|
486
504
|
this._editingDateObj = newVal;
|
487
505
|
this._detectValueChanges();
|
@@ -508,7 +526,8 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
508
526
|
this._clearInputBuffer();
|
509
527
|
next = true;
|
510
528
|
}
|
511
|
-
editing.typedValue =
|
529
|
+
editing.typedValue =
|
530
|
+
editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
512
531
|
const newVal = this.editingDateObj.set(part.key, parseInt(editing.typedValue));
|
513
532
|
this._editingDateObj = newVal;
|
514
533
|
this._detectValueChanges();
|
@@ -607,11 +626,20 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
607
626
|
useExisting: forwardRef(() => AXDateTimeInputComponent),
|
608
627
|
multi: true,
|
609
628
|
},
|
610
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input
|
629
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input\n #input\n id=\"input\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n class=\"ax-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-select-none]=\"!allowTyping()\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"true\"\n [ngModel]=\"_editingText\"\n (mouseup)=\"_handleOnInputClickEvent($event)\"\n (blur)=\"_handleBlurEvent($event)\"\n (focus)=\"_handleFocusEvent($event)\"\n style=\"display: flex\"\n [style.justify-items]=\"isRtl() ? 'end' : 'start'\"\n/>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", dependencies: [{ kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
611
630
|
}
|
612
631
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXDateTimeInputComponent, decorators: [{
|
613
632
|
type: Component,
|
614
|
-
args: [{ selector: 'ax-datetime-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id'], host: { class: 'ax-editor-input' }, outputs: [
|
633
|
+
args: [{ selector: 'ax-datetime-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id'], host: { class: 'ax-editor-input' }, outputs: [
|
634
|
+
'valueChange',
|
635
|
+
'stateChange',
|
636
|
+
'onValueChanged',
|
637
|
+
'onBlur',
|
638
|
+
'onFocus',
|
639
|
+
'onClick',
|
640
|
+
'readonlyChange',
|
641
|
+
'disabledChange',
|
642
|
+
], providers: [
|
615
643
|
{ provide: AXComponent, useExisting: AXDateTimeInputComponent },
|
616
644
|
{ provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },
|
617
645
|
{ provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },
|
@@ -621,7 +649,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
621
649
|
useExisting: forwardRef(() => AXDateTimeInputComponent),
|
622
650
|
multi: true,
|
623
651
|
},
|
624
|
-
], template: "<input
|
652
|
+
], template: "<input\n #input\n id=\"input\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n class=\"ax-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-select-none]=\"!allowTyping()\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"true\"\n [ngModel]=\"_editingText\"\n (mouseup)=\"_handleOnInputClickEvent($event)\"\n (blur)=\"_handleBlurEvent($event)\"\n (focus)=\"_handleFocusEvent($event)\"\n style=\"display: flex\"\n [style.justify-items]=\"isRtl() ? 'end' : 'start'\"\n/>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n" }]
|
625
653
|
}], propDecorators: { type: [{
|
626
654
|
type: Input
|
627
655
|
}], input: [{
|