@ptsecurity/mosaic 17.5.0 → 17.5.1
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/datepicker/datepicker-module.d.ts +2 -1
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-header.component.mjs +3 -3
- package/esm2022/datepicker/datepicker-module.mjs +7 -4
- package/esm2022/input/input.module.mjs +7 -4
- package/esm2022/select/select.module.mjs +10 -10
- package/esm2022/sidepanel/sidepanel-config.mjs +1 -1
- package/esm2022/sidepanel/sidepanel-container.component.mjs +9 -3
- package/esm2022/textarea/textarea.module.mjs +5 -4
- package/esm2022/timepicker/timepicker.module.mjs +5 -4
- package/esm2022/tree-select/tree-select.component.mjs +15 -5
- package/esm2022/tree-select/tree-select.module.mjs +5 -4
- package/fesm2022/ptsecurity-mosaic-core.mjs +1 -1
- package/fesm2022/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-datepicker.mjs +9 -7
- package/fesm2022/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-input.mjs +7 -5
- package/fesm2022/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-select.mjs +11 -10
- package/fesm2022/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-sidepanel.mjs +8 -2
- package/fesm2022/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-textarea.mjs +4 -4
- package/fesm2022/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-timepicker.mjs +4 -4
- package/fesm2022/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-tree-select.mjs +18 -7
- package/fesm2022/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/input/input.module.d.ts +2 -1
- package/package.json +21 -21
- package/select/select.module.d.ts +2 -2
- package/sidepanel/sidepanel-config.d.ts +4 -0
- package/sidepanel/sidepanel-container.component.d.ts +2 -0
- package/textarea/textarea.module.d.ts +2 -1
- package/timepicker/timepicker.module.d.ts +2 -1
- package/tree-select/tree-select.component.d.ts +5 -2
- package/tree-select/tree-select.module.d.ts +2 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-timepicker.mjs","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\nexport enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n DOWN_ARROW,\n UP_ARROW,\n HOME,\n END,\n LEFT_ARROW,\n RIGHT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n DELETE,\n BACKSPACE,\n hasModifierKey,\n isLetterKey,\n isVerticalMovement,\n isHorizontalMovement,\n TAB\n} from '@ptsecurity/cdk/keycodes';\nimport {\n DateAdapter,\n validationTooltipHideDelay,\n validationTooltipShowDelay\n} from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McWarningTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\nimport { noop, Subject } from 'rxjs';\n\nimport {\n DEFAULT_TIME_FORMAT,\n HOURS_PER_DAY,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeParts,\n AM_PM_FORMAT_REGEXP\n} from './timepicker.constants';\n\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n\n@Directive({\n selector: 'input[mcTimepicker]',\n exportAs: 'mcTimepicker',\n host: {\n class: 'mc-input mc-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n\n '(paste)': 'onPaste($event)',\n\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n MC_TIMEPICKER_VALIDATORS,\n MC_TIMEPICKER_VALUE_ACCESSOR,\n { provide: McFormFieldControl, useExisting: McTimepicker }\n ]\n})\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n readonly errorState: boolean;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format = Object\n .keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set mcValidationTooltip(tooltip: McWarningTooltipTrigger) {\n if (!tooltip) { return; }\n\n tooltip.enterDelay = validationTooltipShowDelay;\n tooltip.trigger = 'manual';\n\n tooltip.initListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isOpen) { return; }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control: AbstractControl;\n\n private defaultPlaceholder = true;\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>\n ) {\n if (!this.dateAdapter) {\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`);\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n if (this.viewValue === this.getTimeStringFromDate(this.value, this.format)) { return; }\n\n this.setViewValue(this.formatUserPaste(this.viewValue));\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) { return; }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n if (!this.viewValue) {\n this.onChange(null);\n } else {\n this.control.updateValueAndValidity();\n }\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\n event.ctrlKey || event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(\n Object.values(match.groups)\n // tslint:disable-next-line:no-magic-numbers\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\n\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\n\n if (hours > HOURS_PER_DAY) { hours = 0; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\n\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\n\n if (hours < 0) { hours = HOURS_PER_DAY; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time valie edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) { return null; }\n\n const date = this.value || this.dateAdapter.today();\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n // tslint:disable:no-magic-numbers\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS && this.isShortFormat) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = this.dateAdapter.getSeconds(date);\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n // tslint:enable\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(date),\n this.dateAdapter.getMonth(date),\n this.dateAdapter.getDate(date),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(date)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused ||\n this.empty ||\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\n }\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.min || !controlValue || this.dateAdapter.compareDateTime(this.min, controlValue) <= 0 ?\n null :\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n }\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.max || !controlValue || this.dateAdapter.compareDateTime(this.max, controlValue) >= 0 ?\n null :\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n }\n\n private getValidDateOrNull(obj: any): D | null {\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n private setControl(control: AbstractControl) {\n if (this.control) { return; }\n\n this.control = control;\n\n this.control.valueChanges\n .subscribe((value) => this._value = value);\n }\n\n // tslint:disable-next-line:no-empty\n private validatorOnChange = () => {};\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { McTimepicker } from './timepicker.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n FormsModule\n ],\n declarations: [McTimepicker],\n exports: [McTimepicker]\n})\nexport class McTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-timepicker.mjs","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\nexport enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n DOWN_ARROW,\n UP_ARROW,\n HOME,\n END,\n LEFT_ARROW,\n RIGHT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n DELETE,\n BACKSPACE,\n hasModifierKey,\n isLetterKey,\n isVerticalMovement,\n isHorizontalMovement,\n TAB\n} from '@ptsecurity/cdk/keycodes';\nimport {\n DateAdapter,\n validationTooltipHideDelay,\n validationTooltipShowDelay\n} from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McWarningTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\nimport { noop, Subject } from 'rxjs';\n\nimport {\n DEFAULT_TIME_FORMAT,\n HOURS_PER_DAY,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeParts,\n AM_PM_FORMAT_REGEXP\n} from './timepicker.constants';\n\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n\n@Directive({\n selector: 'input[mcTimepicker]',\n exportAs: 'mcTimepicker',\n host: {\n class: 'mc-input mc-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n\n '(paste)': 'onPaste($event)',\n\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n MC_TIMEPICKER_VALIDATORS,\n MC_TIMEPICKER_VALUE_ACCESSOR,\n { provide: McFormFieldControl, useExisting: McTimepicker }\n ]\n})\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n readonly errorState: boolean;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format = Object\n .keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set mcValidationTooltip(tooltip: McWarningTooltipTrigger) {\n if (!tooltip) { return; }\n\n tooltip.enterDelay = validationTooltipShowDelay;\n tooltip.trigger = 'manual';\n\n tooltip.initListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isOpen) { return; }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control: AbstractControl;\n\n private defaultPlaceholder = true;\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>\n ) {\n if (!this.dateAdapter) {\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`);\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n if (this.viewValue === this.getTimeStringFromDate(this.value, this.format)) { return; }\n\n this.setViewValue(this.formatUserPaste(this.viewValue));\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) { return; }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n if (!this.viewValue) {\n this.onChange(null);\n } else {\n this.control.updateValueAndValidity();\n }\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\n event.ctrlKey || event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(\n Object.values(match.groups)\n // tslint:disable-next-line:no-magic-numbers\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\n\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\n\n if (hours > HOURS_PER_DAY) { hours = 0; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\n\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\n\n if (hours < 0) { hours = HOURS_PER_DAY; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time valie edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) { return null; }\n\n const date = this.value || this.dateAdapter.today();\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n // tslint:disable:no-magic-numbers\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS && this.isShortFormat) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = this.dateAdapter.getSeconds(date);\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n // tslint:enable\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(date),\n this.dateAdapter.getMonth(date),\n this.dateAdapter.getDate(date),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(date)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused ||\n this.empty ||\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\n }\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.min || !controlValue || this.dateAdapter.compareDateTime(this.min, controlValue) <= 0 ?\n null :\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n }\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.max || !controlValue || this.dateAdapter.compareDateTime(this.max, controlValue) >= 0 ?\n null :\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n }\n\n private getValidDateOrNull(obj: any): D | null {\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n private setControl(control: AbstractControl) {\n if (this.control) { return; }\n\n this.control = control;\n\n this.control.valueChanges\n .subscribe((value) => this._value = value);\n }\n\n // tslint:disable-next-line:no-empty\n private validatorOnChange = () => {};\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { McFormFieldModule } from '@ptsecurity/mosaic/form-field';\n\nimport { McTimepicker } from './timepicker.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n FormsModule\n ],\n declarations: [McTimepicker],\n exports: [McTimepicker, McFormFieldModule]\n})\nexport class McTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -3,11 +3,12 @@ import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
3
3
|
import * as i6 from '@angular/common';
|
4
4
|
import { CommonModule } from '@angular/common';
|
5
5
|
import * as i0 from '@angular/core';
|
6
|
-
import { Directive, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Optional, Self, ViewChild, ViewChildren, ContentChild, Input, Output, NgModule } from '@angular/core';
|
6
|
+
import { Directive, EventEmitter, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Optional, Self, ViewChild, ViewChildren, ContentChild, Input, Output, NgModule } from '@angular/core';
|
7
7
|
import * as i2 from '@ptsecurity/mosaic/core';
|
8
8
|
import { mixinTabIndex, mixinDisabled, mixinErrorState, getMcSelectDynamicMultipleError, getMcSelectNonFunctionValueError, MultipleMode, getMcSelectNonArrayValueError, SELECT_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, MC_SELECT_SCROLL_STRATEGY, MC_PARENT_POPUP, McSelectSearch, mcSelectAnimations, McPseudoCheckboxModule, MC_SELECT_SCROLL_STRATEGY_PROVIDER } from '@ptsecurity/mosaic/core';
|
9
9
|
import * as i7 from '@ptsecurity/mosaic/icon';
|
10
10
|
import { McIconModule } from '@ptsecurity/mosaic/icon';
|
11
|
+
import { McInputModule } from '@ptsecurity/mosaic/input';
|
11
12
|
import { McSelectModule } from '@ptsecurity/mosaic/select';
|
12
13
|
import * as i8 from '@ptsecurity/mosaic/tags';
|
13
14
|
import { McTag, McTagsModule } from '@ptsecurity/mosaic/tags';
|
@@ -19,7 +20,7 @@ import * as i4 from '@angular/forms';
|
|
19
20
|
import { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, ESCAPE, TAB, HOME, END, PAGE_UP, PAGE_DOWN, isSelectAll, hasModifierKey } from '@ptsecurity/cdk/keycodes';
|
20
21
|
import * as i5 from '@ptsecurity/mosaic/form-field';
|
21
22
|
import { McFormFieldControl } from '@ptsecurity/mosaic/form-field';
|
22
|
-
import { Subject, defer, merge, Subscription } from 'rxjs';
|
23
|
+
import { Subject, defer, merge, Subscription, BehaviorSubject } from 'rxjs';
|
23
24
|
import { filter, map, startWith, switchMap, take, distinctUntilChanged, takeUntil, delay } from 'rxjs/operators';
|
24
25
|
|
25
26
|
/* tslint:disable:no-empty */
|
@@ -252,6 +253,7 @@ class McTreeSelect extends McTreeSelectMixinBase {
|
|
252
253
|
this.scrollTop = 0;
|
253
254
|
/** Unique id for this input. */
|
254
255
|
this.uid = `mc-select-${nextUniqueId++}`;
|
256
|
+
this.visibleChanges = new BehaviorSubject(false);
|
255
257
|
/** Emits whenever the component is destroyed. */
|
256
258
|
this.destroy = new Subject();
|
257
259
|
/** `View -> model callback called when value changes` */
|
@@ -289,6 +291,8 @@ class McTreeSelect extends McTreeSelectMixinBase {
|
|
289
291
|
this.changeDetectorRef.markForCheck();
|
290
292
|
}
|
291
293
|
});
|
294
|
+
merge(this.optionSelectionChanges, this.visibleChanges).pipe(takeUntil(this.destroy), distinctUntilChanged())
|
295
|
+
.subscribe(() => setTimeout(() => this.calculateHiddenItems(), 0));
|
292
296
|
}
|
293
297
|
ngAfterContentInit() {
|
294
298
|
if (!this.tree) {
|
@@ -356,6 +360,7 @@ class McTreeSelect extends McTreeSelectMixinBase {
|
|
356
360
|
});
|
357
361
|
}
|
358
362
|
ngDoCheck() {
|
363
|
+
this.visibleChanges.next(this.isVisible());
|
359
364
|
if (this.ngControl) {
|
360
365
|
this.updateErrorState();
|
361
366
|
}
|
@@ -590,6 +595,9 @@ class McTreeSelect extends McTreeSelectMixinBase {
|
|
590
595
|
}
|
591
596
|
this.changeDetectorRef.markForCheck();
|
592
597
|
}
|
598
|
+
isVisible() {
|
599
|
+
return this.elementRef.nativeElement.offsetTop < this.elementRef.nativeElement.offsetHeight;
|
600
|
+
}
|
593
601
|
closingActions() {
|
594
602
|
const backdrop = this.overlayDir.overlayRef.backdropClick();
|
595
603
|
const outsidePointerEvents = this.overlayDir.overlayRef.outsidePointerEvents()
|
@@ -855,7 +863,7 @@ class McTreeSelect extends McTreeSelectMixinBase {
|
|
855
863
|
{ provide: McFormFieldControl, useExisting: McTreeSelect },
|
856
864
|
{ provide: McTree, useExisting: McTreeSelect },
|
857
865
|
{ provide: MC_PARENT_POPUP, useExisting: McTreeSelect }
|
858
|
-
], queries: [{ propertyName: "cleaner", first: true, predicate: ["mcSelectCleaner"], descendants: true }, { propertyName: "customTrigger", first: true, predicate: McTreeSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: McTreeSelectMatcher, descendants: true }, { propertyName: "tree", first: true, predicate: McTreeSelection, descendants: true }, { propertyName: "search", first: true, predicate: McSelectSearch, descendants: true }, { propertyName: "footer", first: true, predicate: McTreeSelectFooter, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcTreeSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div cdk-overlay-origin\n class=\"mc-tree-select__trigger\"\n [class.mc-tree-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <select class=\"cdk-visually-hidden\" [id]=\"id\"></select>\n\n <div class=\"mc-tree-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-tree-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-tree-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-tree-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-tree-select__multiple-matcher\">\n <div class=\"mc-tree-select__match-list\">\n <mc-tag *ngFor=\"let triggerValue of triggerValues\"\n [selectable]=\"false\"\n [disabled]=\"triggerValue.disabled || disabled\"\n [class.mc-error]=\"errorState\">\n\n {{ triggerValue.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!triggerValue.disabled && !disabled\"\n (click)=\"onRemoveSelectedOption(triggerValue, $event)\">\n </i>\n </mc-tag>\n </div>\n <div class=\"mc-tree-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n </div>\n <ng-content select=\"mc-tree-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-tree-select__arrow-wrapper\">\n <i class=\"mc-tree-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-tree-select-matcher, [mc-tree-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\">\n\n <div #panel\n class=\"mc-tree-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-tree-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-selection\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-select-footer,[mc-tree-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-tree-select.mc-disabled .mc-tree-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mc-tree-select__trigger{display:flex;box-sizing:border-box;position:relative;height:var(--mc-form-field-size-height, 32px);cursor:pointer;padding-left:var(--mc-select-size-left-padding, 12px);padding-right:var(--mc-select-size-right-padding, 6px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple{padding-left:var(--mc-select-size-left-padding-multiple, 12px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tree-select__placeholder{margin-left:8px}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-tree-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tree-select__matcher>span{width:100%}.mc-tree-select__multiple-matcher{display:flex;width:100%}.mc-tree-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:var(--mc-form-field-size-height, 28px)}.mc-tree-select__match-list .mc-tag{margin-right:4px}.mc-tree-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-tree-select__match-container .mc-tree-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-tree-select__match-item{display:flex;border:1px solid transparent;border-radius:3px;padding-left:7px;margin-right:4px;max-width:100%}.mc-tree-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-tree-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-tree-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-tree-select__arrow-wrapper{transform:translateY(-25%)}.mc-tree-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-tree-select__panel .mc-optgroup-label,.mc-tree-select__panel .mc-tree-select-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-tree-select__panel .mc-tree-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:var(--mc-size-xxs, 4px) var(--mc-size-m, 12px);border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-tree-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);overflow:auto}.mc-tree-select__content .mc-tree-selection{height:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px)}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i7.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i7.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i8.McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["mcTag"] }, { kind: "directive", type: i8.McTagRemove, selector: "[mcTagRemove]" }], animations: [
|
866
|
+
], queries: [{ propertyName: "cleaner", first: true, predicate: ["mcSelectCleaner"], descendants: true }, { propertyName: "customTrigger", first: true, predicate: McTreeSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: McTreeSelectMatcher, descendants: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["mcSelectTagContent"], descendants: true, read: TemplateRef }, { propertyName: "tree", first: true, predicate: McTreeSelection, descendants: true }, { propertyName: "search", first: true, predicate: McSelectSearch, descendants: true }, { propertyName: "footer", first: true, predicate: McTreeSelectFooter, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcTreeSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div cdk-overlay-origin\n class=\"mc-tree-select__trigger\"\n [class.mc-tree-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <select class=\"cdk-visually-hidden\" [id]=\"id\"></select>\n\n <div class=\"mc-tree-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-tree-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-tree-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-tree-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-tree-select__multiple-matcher\">\n <div class=\"mc-tree-select__match-list\">\n <ng-container *ngIf=\"!customTagTemplateRef\">\n <mc-tag *ngFor=\"let triggerValue of triggerValues\"\n [selectable]=\"false\"\n [disabled]=\"triggerValue.disabled || disabled\"\n [class.mc-error]=\"errorState\">\n\n {{ triggerValue.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!triggerValue.disabled && !disabled\"\n (click)=\"onRemoveSelectedOption(triggerValue, $event)\">\n </i>\n </mc-tag>\n </ng-container>\n <ng-container *ngIf=\"customTagTemplateRef\">\n <ng-container *ngFor=\"let option of triggerValues\"\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{$implicit: option, select: this}\">\n </ng-container>\n </ng-container>\n </div>\n <div class=\"mc-tree-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n </div>\n <ng-content select=\"mc-tree-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-tree-select__arrow-wrapper\">\n <i class=\"mc-tree-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-tree-select-matcher, [mc-tree-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\">\n\n <div #panel\n class=\"mc-tree-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-tree-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-selection\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-select-footer,[mc-tree-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-tree-select.mc-disabled .mc-tree-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mc-tree-select__trigger{display:flex;box-sizing:border-box;position:relative;height:var(--mc-form-field-size-height, 32px);cursor:pointer;padding-left:var(--mc-select-size-left-padding, 12px);padding-right:var(--mc-select-size-right-padding, 6px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple{padding-left:var(--mc-select-size-left-padding-multiple, 12px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tree-select__placeholder{margin-left:8px}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-tree-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tree-select__matcher>span{width:100%}.mc-tree-select__multiple-matcher{display:flex;width:100%}.mc-tree-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:var(--mc-form-field-size-height, 28px)}.mc-tree-select__match-list .mc-tag{margin-right:4px}.mc-tree-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-tree-select__match-container .mc-tree-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-tree-select__match-item{display:flex;border:1px solid transparent;border-radius:3px;padding-left:7px;margin-right:4px;max-width:100%}.mc-tree-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-tree-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-tree-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-tree-select__arrow-wrapper{transform:translateY(-25%)}.mc-tree-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-tree-select__panel .mc-optgroup-label,.mc-tree-select__panel .mc-tree-select-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-tree-select__panel .mc-tree-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:var(--mc-size-xxs, 4px) var(--mc-size-m, 12px);border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-tree-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);overflow:auto}.mc-tree-select__content .mc-tree-selection{height:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px)}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i7.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i7.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i8.McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["mcTag"] }, { kind: "directive", type: i8.McTagRemove, selector: "[mcTagRemove]" }], animations: [
|
859
867
|
mcSelectAnimations.transformPanel,
|
860
868
|
mcSelectAnimations.fadeInContent
|
861
869
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
@@ -880,7 +888,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
880
888
|
{ provide: McFormFieldControl, useExisting: McTreeSelect },
|
881
889
|
{ provide: McTree, useExisting: McTreeSelect },
|
882
890
|
{ provide: MC_PARENT_POPUP, useExisting: McTreeSelect }
|
883
|
-
], template: "<div cdk-overlay-origin\n class=\"mc-tree-select__trigger\"\n [class.mc-tree-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <select class=\"cdk-visually-hidden\" [id]=\"id\"></select>\n\n <div class=\"mc-tree-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-tree-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-tree-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-tree-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-tree-select__multiple-matcher\">\n <div class=\"mc-tree-select__match-list\">\n <mc-tag *ngFor=\"let triggerValue of triggerValues\"\n [selectable]=\"false\"\n [disabled]=\"triggerValue.disabled || disabled\"\n [class.mc-error]=\"errorState\">\n\n {{ triggerValue.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!triggerValue.disabled && !disabled\"\n (click)=\"onRemoveSelectedOption(triggerValue, $event)\">\n </i>\n </mc-tag>\n </div>\n <div class=\"mc-tree-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n </div>\n <ng-content select=\"mc-tree-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-tree-select__arrow-wrapper\">\n <i class=\"mc-tree-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-tree-select-matcher, [mc-tree-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\">\n\n <div #panel\n class=\"mc-tree-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-tree-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-selection\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-select-footer,[mc-tree-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-tree-select.mc-disabled .mc-tree-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mc-tree-select__trigger{display:flex;box-sizing:border-box;position:relative;height:var(--mc-form-field-size-height, 32px);cursor:pointer;padding-left:var(--mc-select-size-left-padding, 12px);padding-right:var(--mc-select-size-right-padding, 6px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple{padding-left:var(--mc-select-size-left-padding-multiple, 12px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tree-select__placeholder{margin-left:8px}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-tree-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tree-select__matcher>span{width:100%}.mc-tree-select__multiple-matcher{display:flex;width:100%}.mc-tree-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:var(--mc-form-field-size-height, 28px)}.mc-tree-select__match-list .mc-tag{margin-right:4px}.mc-tree-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-tree-select__match-container .mc-tree-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-tree-select__match-item{display:flex;border:1px solid transparent;border-radius:3px;padding-left:7px;margin-right:4px;max-width:100%}.mc-tree-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-tree-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-tree-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-tree-select__arrow-wrapper{transform:translateY(-25%)}.mc-tree-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-tree-select__panel .mc-optgroup-label,.mc-tree-select__panel .mc-tree-select-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-tree-select__panel .mc-tree-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:var(--mc-size-xxs, 4px) var(--mc-size-m, 12px);border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-tree-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);overflow:auto}.mc-tree-select__content .mc-tree-selection{height:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px)}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"] }]
|
891
|
+
], template: "<div cdk-overlay-origin\n class=\"mc-tree-select__trigger\"\n [class.mc-tree-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <select class=\"cdk-visually-hidden\" [id]=\"id\"></select>\n\n <div class=\"mc-tree-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-tree-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-tree-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-tree-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-tree-select__multiple-matcher\">\n <div class=\"mc-tree-select__match-list\">\n <ng-container *ngIf=\"!customTagTemplateRef\">\n <mc-tag *ngFor=\"let triggerValue of triggerValues\"\n [selectable]=\"false\"\n [disabled]=\"triggerValue.disabled || disabled\"\n [class.mc-error]=\"errorState\">\n\n {{ triggerValue.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!triggerValue.disabled && !disabled\"\n (click)=\"onRemoveSelectedOption(triggerValue, $event)\">\n </i>\n </mc-tag>\n </ng-container>\n <ng-container *ngIf=\"customTagTemplateRef\">\n <ng-container *ngFor=\"let option of triggerValues\"\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{$implicit: option, select: this}\">\n </ng-container>\n </ng-container>\n </div>\n <div class=\"mc-tree-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n </div>\n <ng-content select=\"mc-tree-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-tree-select__arrow-wrapper\">\n <i class=\"mc-tree-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-tree-select-matcher, [mc-tree-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\">\n\n <div #panel\n class=\"mc-tree-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-tree-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-selection\"></ng-content>\n </div>\n\n <ng-content select=\"mc-tree-select-footer,[mc-tree-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-tree-select.mc-disabled .mc-tree-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mc-tree-select__trigger{display:flex;box-sizing:border-box;position:relative;height:var(--mc-form-field-size-height, 32px);cursor:pointer;padding-left:var(--mc-select-size-left-padding, 12px);padding-right:var(--mc-select-size-right-padding, 6px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple{padding-left:var(--mc-select-size-left-padding-multiple, 12px)}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tree-select__placeholder{margin-left:8px}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-tree-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tree-select__matcher>span{width:100%}.mc-tree-select__multiple-matcher{display:flex;width:100%}.mc-tree-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:var(--mc-form-field-size-height, 28px)}.mc-tree-select__match-list .mc-tag{margin-right:4px}.mc-tree-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-tree-select__match-container .mc-tree-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-tree-select__match-item{display:flex;border:1px solid transparent;border-radius:3px;padding-left:7px;margin-right:4px;max-width:100%}.mc-tree-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-tree-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-tree-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-tree-select__arrow-wrapper{transform:translateY(-25%)}.mc-tree-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-tree-select__panel .mc-optgroup-label,.mc-tree-select__panel .mc-tree-select-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-tree-select__panel .mc-tree-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:var(--mc-size-xxs, 4px) var(--mc-size-m, 12px);border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-tree-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);overflow:auto}.mc-tree-select__content .mc-tree-selection{height:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px)}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"] }]
|
884
892
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i2.ErrorStateMatcher }, { type: undefined, decorators: [{
|
885
893
|
type: Inject,
|
886
894
|
args: [MC_SELECT_SCROLL_STRATEGY]
|
@@ -917,6 +925,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
917
925
|
}], customMatcher: [{
|
918
926
|
type: ContentChild,
|
919
927
|
args: [McTreeSelectMatcher, { static: false }]
|
928
|
+
}], customTagTemplateRef: [{
|
929
|
+
type: ContentChild,
|
930
|
+
args: ['mcSelectTagContent', { static: false, read: TemplateRef }]
|
920
931
|
}], tree: [{
|
921
932
|
type: ContentChild,
|
922
933
|
args: [McTreeSelection, { static: false }]
|
@@ -974,14 +985,14 @@ class McTreeSelectModule {
|
|
974
985
|
McIconModule,
|
975
986
|
McTagsModule,
|
976
987
|
McPseudoCheckboxModule,
|
977
|
-
McSelectModule], exports: [McTreeSelect, McTreeSelectTrigger, McTreeSelectMatcher, McTreeSelectFooter, CommonModule] }); }
|
988
|
+
McSelectModule], exports: [McTreeSelect, McTreeSelectTrigger, McTreeSelectMatcher, McTreeSelectFooter, CommonModule, McInputModule] }); }
|
978
989
|
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McTreeSelectModule, providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [CommonModule,
|
979
990
|
OverlayModule,
|
980
991
|
McTreeModule,
|
981
992
|
McIconModule,
|
982
993
|
McTagsModule,
|
983
994
|
McPseudoCheckboxModule,
|
984
|
-
McSelectModule, CommonModule] }); }
|
995
|
+
McSelectModule, CommonModule, McInputModule] }); }
|
985
996
|
}
|
986
997
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McTreeSelectModule, decorators: [{
|
987
998
|
type: NgModule,
|
@@ -995,7 +1006,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
995
1006
|
McPseudoCheckboxModule,
|
996
1007
|
McSelectModule
|
997
1008
|
],
|
998
|
-
exports: [McTreeSelect, McTreeSelectTrigger, McTreeSelectMatcher, McTreeSelectFooter, CommonModule],
|
1009
|
+
exports: [McTreeSelect, McTreeSelectTrigger, McTreeSelectMatcher, McTreeSelectFooter, CommonModule, McInputModule],
|
999
1010
|
declarations: [McTreeSelect, McTreeSelectTrigger, McTreeSelectMatcher, McTreeSelectFooter],
|
1000
1011
|
providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER]
|
1001
1012
|
}]
|