@ptsecurity/mosaic 13.1.1 → 13.2.0
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/_theming.scss +321 -121
- package/_visual.scss +79 -26
- package/design-tokens/legacy-2017/tokens/components/badge.json5 +28 -38
- package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -0
- package/design-tokens/legacy-2017/tokens/components/form-field.json5 +39 -0
- package/design-tokens/legacy-2017/tokens/components/tabs.json5 +80 -4
- package/design-tokens/legacy-2017/tokens/properties/colors.json5 +4 -0
- package/design-tokens/legacy-2017/tokens/properties/globals.json5 +20 -1
- package/design-tokens/legacy-2017/tokens.d.ts +79 -26
- package/design-tokens/pt-2022/tokens/components/badge.json5 +30 -40
- package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -0
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +40 -1
- package/design-tokens/pt-2022/tokens/components/tabs.json5 +82 -6
- package/design-tokens/pt-2022/tokens/properties/colors.json5 +4 -0
- package/design-tokens/pt-2022/tokens/properties/globals.json5 +20 -1
- package/design-tokens/pt-2022/tokens.d.ts +79 -26
- package/dl/README.md +0 -0
- package/dl/dl.component.d.ts +26 -0
- package/dl/dl.module.d.ts +10 -0
- package/dl/index.d.ts +1 -0
- package/dl/package.json +10 -0
- package/dl/ptsecurity-mosaic-dl.d.ts +5 -0
- package/dl/public-api.d.ts +2 -0
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +80 -27
- package/esm2020/design-tokens/pt-2022/tokens.mjs +80 -27
- package/esm2020/dl/dl.component.mjs +78 -0
- package/esm2020/dl/dl.module.mjs +42 -0
- package/esm2020/dl/index.mjs +2 -0
- package/esm2020/dl/ptsecurity-mosaic-dl.mjs +5 -0
- package/esm2020/dl/public-api.mjs +3 -0
- package/esm2020/form-field/form-field.mjs +44 -24
- package/esm2020/form-field/form-field.module.mjs +6 -1
- package/esm2020/form-field/hint.mjs +3 -3
- package/esm2020/form-field/password-hint.mjs +115 -0
- package/esm2020/form-field/public-api.mjs +2 -1
- package/esm2020/input/input-password.mjs +367 -0
- package/esm2020/input/input.module.mjs +48 -6
- package/esm2020/input/public-api.mjs +2 -1
- package/esm2020/sidepanel/sidepanel-directives.mjs +3 -3
- package/esm2020/tabs/tab-group.component.mjs +3 -3
- package/esm2020/tabs/tab-header.component.mjs +2 -2
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +5 -5
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +238 -79
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dl.mjs +124 -0
- package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -0
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +169 -27
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +412 -11
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +8 -8
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +238 -79
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dl.mjs +124 -0
- package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -0
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +158 -27
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +405 -11
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +8 -8
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/form-field/form-field.d.ts +9 -2
- package/form-field/form-field.module.d.ts +8 -7
- package/form-field/password-hint.d.ts +38 -0
- package/form-field/public-api.d.ts +1 -0
- package/input/input-password.d.ts +120 -0
- package/input/input.module.d.ts +7 -6
- package/input/public-api.d.ts +1 -0
- package/package.json +12 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-input.mjs","sources":["../../../packages/mosaic/input/input-errors.ts","../../../packages/mosaic/input/input-value-accessor.ts","../../../packages/mosaic/input/input-number.ts","../../../packages/mosaic/input/input.ts","../../../packages/mosaic/input/input-number-validators.ts","../../../packages/mosaic/input/input.module.ts","../../../packages/mosaic/input/ptsecurity-mosaic-input.ts"],"sourcesContent":["export function getMcInputUnsupportedTypeError(inputType: string): Error {\n return Error(`Input type \"${inputType}\" isn't supported by mcInput.`);\n}\n","import { InjectionToken } from '@angular/core';\n\n\nexport const MC_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('MC_INPUT_VALUE_ACCESSOR');\n","import {\n Attribute,\n Directive,\n ElementRef,\n Input,\n Optional,\n Self\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport {\n END, C, V, X, A, Z, DELETE, BACKSPACE, TAB, ENTER,\n ESCAPE, ZERO, NINE, NUMPAD_ZERO, NUMPAD_NINE, NUMPAD_MINUS, DASH,\n FF_MINUS, LEFT_ARROW, RIGHT_ARROW, HOME, UP_ARROW, DOWN_ARROW, F1, F12\n} from '@ptsecurity/cdk/keycodes';\nimport { Subject } from 'rxjs';\n\n\nexport const BIG_STEP = 10;\nexport const SMALL_STEP = 1;\n\nexport function normalizeSplitter(value: string): string {\n return value ? value.replace(/,/g, '.') : value;\n}\n\nexport function isFloat(value: string): boolean {\n return /^-?\\d+\\.\\d+$/.test(value);\n}\n\nexport function isInt(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\n\nexport function isDigit(value: string): boolean {\n return isFloat(value) || isInt(value);\n}\n\nexport function getPrecision(value: number): number {\n const arr = value.toString().split('.');\n\n return arr.length === 1\n ? 1\n // tslint:disable-next-line:no-magic-numbers\n : Math.pow(10, arr[1].length);\n}\n\nexport function add(value1: number, value2: number): number {\n const precision = Math.max(getPrecision(value1), getPrecision(value2));\n\n return (value1 * precision + value2 * precision) / precision;\n}\n\n\n@Directive({\n selector: `input[mcInput][type=\"number\"]`,\n exportAs: 'mcNumericalInput',\n host: {\n '(blur)': 'focusChanged(false)',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class McNumberInput {\n @Input()\n bigStep: number;\n\n @Input()\n step: number;\n\n @Input()\n min: number;\n\n @Input()\n max: number;\n\n value: any;\n\n focused: boolean = false;\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n get nativeElement(): HTMLInputElement {\n return this.elementRef.nativeElement;\n }\n\n constructor(\n private elementRef: ElementRef,\n @Optional() @Self() private ngControl: NgControl,\n @Attribute('step') step: string,\n @Attribute('big-step') bigStep: string,\n @Attribute('min') min: string,\n @Attribute('max') max: string\n ) {\n this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;\n this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;\n this.min = isDigit(min) ? parseFloat(min) : -Infinity;\n this.max = isDigit(max) ? parseFloat(max) : Infinity;\n\n if ('valueAsNumber' in this.nativeElement) {\n Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {\n // tslint:disable-next-line:no-reserved-keywords\n get() {\n const res = parseFloat(normalizeSplitter(this.value));\n\n return isNaN(res) ? null : res;\n }\n });\n }\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode;\n\n const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);\n const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);\n const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);\n const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);\n const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);\n\n const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;\n\n const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||\n (e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);\n\n const isPeriod = (e) => e.key === '.' || e.key === ',';\n\n const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];\n const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];\n const arrows = [LEFT_ARROW, RIGHT_ARROW];\n const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);\n\n if (allowedKeys.indexOf(keyCode) !== -1 ||\n isCtrlA(event) ||\n isCtrlC(event) ||\n isCtrlV(event) ||\n isCtrlX(event) ||\n isCtrlZ(event) ||\n isFKey(event) ||\n isPeriod(event)\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is not a number and stop the keypress\n if (event.shiftKey || !isNumber(event)) {\n event.preventDefault();\n\n // process steps\n const step = event.shiftKey ? this.bigStep : this.step;\n\n if (keyCode === UP_ARROW) {\n this.stepUp(step);\n }\n\n if (keyCode === DOWN_ARROW) {\n this.stepDown(step);\n }\n }\n }\n\n onPaste(event) {\n if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {\n event.preventDefault();\n }\n }\n\n stepUp(step: number) {\n this.elementRef.nativeElement.focus();\n\n const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);\n\n this.nativeElement.value = res.toString();\n\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\n }\n\n stepDown(step: number) {\n this.elementRef.nativeElement.focus();\n\n const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);\n\n this.nativeElement.value = res.toString();\n\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\n }\n\n private viewToModelUpdate(value: number) {\n if (this.ngControl) {\n this.ngControl.control!.setValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self\n} from '@angular/core';\nimport {\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport {\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n MC_VALIDATION,\n McValidationOptions,\n mixinErrorState,\n setMosaicValidation\n} from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { Subject } from 'rxjs';\n\nimport { getMcInputUnsupportedTypeError } from './input-errors';\nimport { McNumberInput } from './input-number';\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\n\nconst MC_INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\nlet nextUniqueId = 0;\n\nexport class McInputBase {\n constructor(\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McInputMixinBase: CanUpdateErrorStateCtor & typeof McInputBase = mixinErrorState(McInputBase);\n\n\n@Directive({\n selector: `input[mcInput]`,\n exportAs: 'mcInput',\n host: {\n class: 'mc-input',\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 '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(input)': 'onInput()'\n },\n providers: [{\n provide: McFormFieldControl, useExisting: McInput\n }]\n})\nexport class McInput extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\n CanUpdateErrorState, AfterContentInit, OnChanges {\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\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 readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'input';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n protected uid = `mc-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\n protected neverEmptyInputTypes = [\n 'date',\n 'datetime',\n 'datetime-local',\n 'month',\n 'time',\n 'week'\n ].filter((t) => getSupportedInputTypes().has(t));\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\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 this.stateChanges.next();\n }\n }\n\n private _disabled = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\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 = false;\n\n // tslint:disable no-reserved-keywords\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value || 'text';\n this.validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (getSupportedInputTypes().has(this._type)) {\n this.elementRef.nativeElement.type = this._type;\n }\n }\n // tslint:enable no-reserved-keywords\n\n private _type = 'text';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n // tslint:disable-next-line: orthodox-getter-and-setter\n private _inputValueAccessor: { value: any };\n\n // tslint:disable-next-line: naming-convention\n constructor(\n protected elementRef: ElementRef,\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Self() public numberInput: McNumberInput,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any\n ) {\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngAfterContentInit(): void {\n if (!this.ngControl) { return; }\n\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n onBlur(): void {\n this.focusChanged(false);\n\n if (this.ngControl && this.ngControl.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n\n /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected validateType() {\n if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw getMcInputUnsupportedTypeError(this._type);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected isNeverEmpty() {\n return this.neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLInputElement).validity;\n\n return validity && validity.badInput;\n }\n}\n\n@Directive({\n selector: 'input[mcInputMonospace]',\n exportAs: 'McInputMonospace',\n host: { class: 'mc-input_monospace' }\n})\nexport class McInputMono {}\n","import { Directive, forwardRef, Input, OnChanges, Provider, SimpleChanges } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\n\n\nexport const MIN_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n\n/**\n * A directive which installs the {@link MinValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n *\n * @experimental\n */\n@Directive({\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [MIN_VALIDATOR],\n host: {\n '[attr.min]': 'min ? min : null'\n }\n})\nexport class MinValidator implements Validator, OnChanges {\n\n @Input() min: number;\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('min' in changes) {\n this.createValidator();\n\n if (this.onChange) { this.onChange(); }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.min(parseInt(this.min as unknown as string, 10));\n }\n}\n\n\nexport const MAX_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n\n/**\n * A directive which installs the {@link MaxValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n *\n * @experimental\n */\n@Directive({\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [MAX_VALIDATOR],\n host: {\n '[attr.max]': 'max ? max : null'\n }\n})\nexport class MaxValidator implements Validator,\n OnChanges {\n\n @Input() max: number | string;\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('max' in changes) {\n this.createValidator();\n\n if (this.onChange) { this.onChange(); }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.max(parseInt(this.max as unknown as string, 10));\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McInput, McInputMono } from './input';\nimport { McNumberInput } from './input-number';\nimport { MaxValidator, MinValidator } from './input-number-validators';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule, FormsModule],\n exports: [McInput, McNumberInput, McInputMono, MinValidator, MaxValidator],\n declarations: [McInput, McNumberInput, McInputMono, MinValidator, MaxValidator ]\n})\nexport class McInputModule {}\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-input.mjs","sources":["../../../packages/mosaic/input/input-errors.ts","../../../packages/mosaic/input/input-value-accessor.ts","../../../packages/mosaic/input/input-number.ts","../../../packages/mosaic/input/input.ts","../../../packages/mosaic/input/input-number-validators.ts","../../../packages/mosaic/input/input-password.ts","../../../packages/mosaic/input/input.module.ts","../../../packages/mosaic/input/ptsecurity-mosaic-input.ts"],"sourcesContent":["export function getMcInputUnsupportedTypeError(inputType: string): Error {\n return Error(`Input type \"${inputType}\" isn't supported by mcInput.`);\n}\n","import { InjectionToken } from '@angular/core';\n\n\nexport const MC_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('MC_INPUT_VALUE_ACCESSOR');\n","import {\n Attribute,\n Directive,\n ElementRef,\n Input,\n Optional,\n Self\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport {\n END, C, V, X, A, Z, DELETE, BACKSPACE, TAB, ENTER,\n ESCAPE, ZERO, NINE, NUMPAD_ZERO, NUMPAD_NINE, NUMPAD_MINUS, DASH,\n FF_MINUS, LEFT_ARROW, RIGHT_ARROW, HOME, UP_ARROW, DOWN_ARROW, F1, F12\n} from '@ptsecurity/cdk/keycodes';\nimport { Subject } from 'rxjs';\n\n\nexport const BIG_STEP = 10;\nexport const SMALL_STEP = 1;\n\nexport function normalizeSplitter(value: string): string {\n return value ? value.replace(/,/g, '.') : value;\n}\n\nexport function isFloat(value: string): boolean {\n return /^-?\\d+\\.\\d+$/.test(value);\n}\n\nexport function isInt(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\n\nexport function isDigit(value: string): boolean {\n return isFloat(value) || isInt(value);\n}\n\nexport function getPrecision(value: number): number {\n const arr = value.toString().split('.');\n\n return arr.length === 1\n ? 1\n // tslint:disable-next-line:no-magic-numbers\n : Math.pow(10, arr[1].length);\n}\n\nexport function add(value1: number, value2: number): number {\n const precision = Math.max(getPrecision(value1), getPrecision(value2));\n\n return (value1 * precision + value2 * precision) / precision;\n}\n\n\n@Directive({\n selector: `input[mcInput][type=\"number\"]`,\n exportAs: 'mcNumericalInput',\n host: {\n '(blur)': 'focusChanged(false)',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class McNumberInput {\n @Input()\n bigStep: number;\n\n @Input()\n step: number;\n\n @Input()\n min: number;\n\n @Input()\n max: number;\n\n value: any;\n\n focused: boolean = false;\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n get nativeElement(): HTMLInputElement {\n return this.elementRef.nativeElement;\n }\n\n constructor(\n private elementRef: ElementRef,\n @Optional() @Self() private ngControl: NgControl,\n @Attribute('step') step: string,\n @Attribute('big-step') bigStep: string,\n @Attribute('min') min: string,\n @Attribute('max') max: string\n ) {\n this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;\n this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;\n this.min = isDigit(min) ? parseFloat(min) : -Infinity;\n this.max = isDigit(max) ? parseFloat(max) : Infinity;\n\n if ('valueAsNumber' in this.nativeElement) {\n Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {\n // tslint:disable-next-line:no-reserved-keywords\n get() {\n const res = parseFloat(normalizeSplitter(this.value));\n\n return isNaN(res) ? null : res;\n }\n });\n }\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode;\n\n const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);\n const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);\n const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);\n const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);\n const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);\n\n const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;\n\n const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||\n (e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);\n\n const isPeriod = (e) => e.key === '.' || e.key === ',';\n\n const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];\n const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];\n const arrows = [LEFT_ARROW, RIGHT_ARROW];\n const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);\n\n if (allowedKeys.indexOf(keyCode) !== -1 ||\n isCtrlA(event) ||\n isCtrlC(event) ||\n isCtrlV(event) ||\n isCtrlX(event) ||\n isCtrlZ(event) ||\n isFKey(event) ||\n isPeriod(event)\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is not a number and stop the keypress\n if (event.shiftKey || !isNumber(event)) {\n event.preventDefault();\n\n // process steps\n const step = event.shiftKey ? this.bigStep : this.step;\n\n if (keyCode === UP_ARROW) {\n this.stepUp(step);\n }\n\n if (keyCode === DOWN_ARROW) {\n this.stepDown(step);\n }\n }\n }\n\n onPaste(event) {\n if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {\n event.preventDefault();\n }\n }\n\n stepUp(step: number) {\n this.elementRef.nativeElement.focus();\n\n const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);\n\n this.nativeElement.value = res.toString();\n\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\n }\n\n stepDown(step: number) {\n this.elementRef.nativeElement.focus();\n\n const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);\n\n this.nativeElement.value = res.toString();\n\n this.viewToModelUpdate(this.nativeElement.valueAsNumber);\n }\n\n private viewToModelUpdate(value: number) {\n if (this.ngControl) {\n this.ngControl.control!.setValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self\n} from '@angular/core';\nimport {\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport {\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n MC_VALIDATION,\n McValidationOptions,\n mixinErrorState,\n setMosaicValidation\n} from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { Subject } from 'rxjs';\n\nimport { getMcInputUnsupportedTypeError } from './input-errors';\nimport { McNumberInput } from './input-number';\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\n\nconst MC_INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\nlet nextUniqueId = 0;\n\nexport class McInputBase {\n constructor(\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McInputMixinBase: CanUpdateErrorStateCtor & typeof McInputBase = mixinErrorState(McInputBase);\n\n\n@Directive({\n selector: `input[mcInput]`,\n exportAs: 'mcInput',\n host: {\n class: 'mc-input',\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 '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(input)': 'onInput()'\n },\n providers: [{\n provide: McFormFieldControl, useExisting: McInput\n }]\n})\nexport class McInput extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\n CanUpdateErrorState, AfterContentInit, OnChanges {\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\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 readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'input';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n protected uid = `mc-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\n protected neverEmptyInputTypes = [\n 'date',\n 'datetime',\n 'datetime-local',\n 'month',\n 'time',\n 'week'\n ].filter((t) => getSupportedInputTypes().has(t));\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\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 this.stateChanges.next();\n }\n }\n\n private _disabled = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\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 = false;\n\n // tslint:disable no-reserved-keywords\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value || 'text';\n this.validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (getSupportedInputTypes().has(this._type)) {\n this.elementRef.nativeElement.type = this._type;\n }\n }\n // tslint:enable no-reserved-keywords\n\n private _type = 'text';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n // tslint:disable-next-line: orthodox-getter-and-setter\n private _inputValueAccessor: { value: any };\n\n // tslint:disable-next-line: naming-convention\n constructor(\n protected elementRef: ElementRef,\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Self() public numberInput: McNumberInput,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any\n ) {\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngAfterContentInit(): void {\n if (!this.ngControl) { return; }\n\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n onBlur(): void {\n this.focusChanged(false);\n\n if (this.ngControl && this.ngControl.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n\n /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected validateType() {\n if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw getMcInputUnsupportedTypeError(this._type);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected isNeverEmpty() {\n return this.neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLInputElement).validity;\n\n return validity && validity.badInput;\n }\n}\n\n@Directive({\n selector: 'input[mcInputMonospace]',\n exportAs: 'McInputMonospace',\n host: { class: 'mc-input_monospace' }\n})\nexport class McInputMono {}\n","import { Directive, forwardRef, Input, OnChanges, Provider, SimpleChanges } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\n\n\nexport const MIN_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n\n/**\n * A directive which installs the {@link MinValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n *\n * @experimental\n */\n@Directive({\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [MIN_VALIDATOR],\n host: {\n '[attr.min]': 'min ? min : null'\n }\n})\nexport class MinValidator implements Validator, OnChanges {\n\n @Input() min: number;\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('min' in changes) {\n this.createValidator();\n\n if (this.onChange) { this.onChange(); }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.min(parseInt(this.min as unknown as string, 10));\n }\n}\n\n\nexport const MAX_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n\n/**\n * A directive which installs the {@link MaxValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n *\n * @experimental\n */\n@Directive({\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [MAX_VALIDATOR],\n host: {\n '[attr.max]': 'max ? max : null'\n }\n})\nexport class MaxValidator implements Validator,\n OnChanges {\n\n @Input() max: number | string;\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('max' in changes) {\n this.createValidator();\n\n if (this.onChange) { this.onChange(); }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.max(parseInt(this.max as unknown as string, 10));\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Self,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n MC_VALIDATION,\n McValidationOptions,\n PopUpTriggers,\n setMosaicValidation\n} from '@ptsecurity/mosaic/core';\nimport { McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { MC_TOOLTIP_SCROLL_STRATEGY, McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\nimport { Subject } from 'rxjs';\n\nimport { McInputMixinBase } from './input';\nimport { MC_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\n\nlet nextUniqueId = 0;\n\n\n@Component({\n selector: `mc-password-toggle`,\n exportAs: 'mcPasswordToggle',\n template: '<ng-content></ng-content>',\n host: {\n class: 'mc-password-toggle mc',\n '[class.mc-eye_16]': 'hidden',\n '[class.mc-eye-crossed_16]': '!hidden',\n\n '[attr.tabindex]': 'disabled ? null : tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(click)': 'toggle()',\n '(keydown.ENTER)': 'toggle()',\n '(keydown.SPACE)': 'toggle()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McPasswordToggle extends McTooltipTrigger implements OnDestroy {\n @Input('mcTooltipNotHidden')\n get content(): string | TemplateRef<any> {\n return (this.formField.control as McInputPassword).elementType === 'password' ?\n this.mcTooltipHidden :\n this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input() mcTooltipHidden: string | TemplateRef<any>;\n\n @Input()\n get disabled() {\n return this._disabled === undefined ? this.formField.disabled : this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\n }\n\n // tslint:disable-next-line:naming-convention\n protected _disabled: boolean;\n\n @Input()\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? coerceNumberProperty(value) : 0;\n }\n\n private _tabIndex: number = 0;\n\n get hidden(): boolean {\n return (this.formField.control as McInputPassword).elementType === 'password';\n }\n\n constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(MC_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n\n private focusMonitor: FocusMonitor,\n private formField: McFormField\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n\n this.trigger = `${PopUpTriggers.Hover}`;\n\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n toggle() {\n if (this.disabled) { return; }\n\n this.hide();\n\n const input = this.formField.control as McInputPassword;\n\n input.toggleType();\n\n this.updateData();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef)\n .subscribe((origin) => {\n if (origin === 'keyboard') {\n this.show();\n } else if (origin === null) {\n this.hide();\n }\n });\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n}\n\n@Directive({\n selector: `input[mcInputPassword]`,\n exportAs: 'mcInputPassword',\n host: {\n class: 'mc-input mc-input-password',\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.type]': 'elementType',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[required]': 'required',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(input)': 'onInput()'\n },\n providers: [{\n provide: McFormFieldControl, useExisting: McInputPassword\n }]\n})\nexport class McInputPassword extends McInputMixinBase implements McFormFieldControl<any>, OnChanges, OnDestroy, DoCheck,\n CanUpdateErrorState, AfterContentInit, OnChanges {\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\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 readonly stateChanges: Subject<any> = new Subject<any>();\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'input-password';\n\n elementType: string = 'password';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n protected uid = `mc-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl?.disabled !== null) {\n return this.ngControl.disabled;\n }\n\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 this.stateChanges.next();\n }\n }\n\n private _disabled = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\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 = false;\n\n // this.elementRef.nativeElement.type = this._type;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value === this.value) { return; }\n\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n\n // tslint:disable-next-line: orthodox-getter-and-setter\n private _inputValueAccessor: { value: any };\n\n // tslint:disable-next-line: naming-convention\n constructor(\n protected elementRef: ElementRef,\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(MC_INPUT_VALUE_ACCESSOR) inputValueAccessor: any\n ) {\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngAfterContentInit(): void {\n if (!this.ngControl) { return; }\n\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\n }\n\n toggleType() {\n this.elementType = this.elementType === 'password' ? 'text' : 'password';\n }\n\n /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n onBlur(): void {\n if (this.ngControl?.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n\n this.focusChanged(false);\n }\n\n /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) { return; }\n\n this.focused = isFocused;\n this.stateChanges.next({ focused: this.focused });\n }\n\n onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected dirtyCheckNativeValue() {\n if (this.previousNativeValue !== this.value) {\n this.previousNativeValue = this.value;\n this.stateChanges.next();\n }\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n return (this.elementRef.nativeElement as HTMLInputElement).validity?.badInput;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McInput, McInputMono } from './input';\nimport { McNumberInput } from './input-number';\nimport { MaxValidator, MinValidator } from './input-number-validators';\nimport { McInputPassword, McPasswordToggle } from './input-password';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McCommonModule,\n FormsModule\n ],\n declarations: [\n McInput,\n McNumberInput,\n McInputPassword,\n McPasswordToggle,\n McInputMono,\n MinValidator,\n MaxValidator\n ],\n exports: [\n McInput,\n McNumberInput,\n McInputPassword,\n McPasswordToggle,\n McInputMono,\n MinValidator,\n MaxValidator\n ]\n})\nexport class McInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i3"],"mappings":"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"}
|
@@ -436,7 +436,7 @@ class McSidepanelHeader {
|
|
436
436
|
</div>
|
437
437
|
<button *ngIf="closeable" mc-sidepanel-close>
|
438
438
|
<span class="mc-sidepanel-close-x">
|
439
|
-
<i mc-icon="mc-close-L_16" class="mc-icon mc-icon_light" [color]="themePalette.
|
439
|
+
<i mc-icon="mc-close-L_16" class="mc-icon mc-icon_light" [color]="themePalette.Second"></i>
|
440
440
|
</span>
|
441
441
|
</button>
|
442
442
|
`, isInline: true, components: [{ type: i3$1.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: McSidepanelClose, selector: "button[mc-sidepanel-close], button[mcSidepanelClose]", inputs: ["mc-sidepanel-close", "mcSidepanelClose"] }, { type: i3$1.McIconCSSStyler, selector: "[mc-icon]" }] });
|
@@ -450,7 +450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
450
450
|
</div>
|
451
451
|
<button *ngIf="closeable" mc-sidepanel-close>
|
452
452
|
<span class="mc-sidepanel-close-x">
|
453
|
-
<i mc-icon="mc-close-L_16" class="mc-icon mc-icon_light" [color]="themePalette.
|
453
|
+
<i mc-icon="mc-close-L_16" class="mc-icon mc-icon_light" [color]="themePalette.Second"></i>
|
454
454
|
</span>
|
455
455
|
</button>
|
456
456
|
`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-sidepanel.mjs","sources":["../../../packages/mosaic/sidepanel/sidepanel-config.ts","../../../packages/mosaic/sidepanel/sidepanel-animations.ts","../../../packages/mosaic/sidepanel/sidepanel-ref.ts","../../../packages/mosaic/sidepanel/sidepanel-container.component.ts","../../../packages/mosaic/sidepanel/sidepanel-container.component.html","../../../packages/mosaic/sidepanel/sidepanel.service.ts","../../../packages/mosaic/sidepanel/sidepanel-directives.ts","../../../packages/mosaic/sidepanel/sidepanel.module.ts","../../../packages/mosaic/sidepanel/ptsecurity-mosaic-sidepanel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n\n/** Injection token that can be used to access the data that was passed in to a sidepanel. */\nexport const MC_SIDEPANEL_DATA = new InjectionToken<any>('McSidepanelData');\n\nexport enum McSidepanelPosition {\n Right = 'right',\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom'\n}\n\nexport class McSidepanelConfig<D = any> {\n /** ID for the sidepanel. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n position?: McSidepanelPosition = McSidepanelPosition.Right;\n\n /** Whether the sidepanel has a backdrop. */\n hasBackdrop?: boolean = true;\n\n backdropClass?: string;\n\n /** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */\n requiredBackdrop?: boolean = false;\n\n /** Whether the user can use escape or clicking outside to close the sidepanel. */\n disableClose?: boolean = false;\n\n /** Custom class for the overlay pane. */\n overlayPanelClass?: string | string[] = '';\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from '@ptsecurity/mosaic/core';\n\nimport { McSidepanelPosition } from './sidepanel-config';\n\n\nexport enum McSidepanelAnimationState {\n Void = 'void',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\n// TODO Find a way to use dynamic keys and avoid error \"Expression form not supported.\"\n// tslint:disable-next-line\nexport const mcSidepanelTransformAnimation: Record<McSidepanelPosition, { in: string; out: string }> = {\n right: { in: 'translateX(100%)', out: 'translateX(0%)' },\n left: { in: 'translateX(-100%)', out: 'translateX(0%)' },\n top: { in: 'translateY(-100%)', out: 'translateY(0%)' },\n bottom: { in: 'translateY(100%)', out: 'translateY(0%)' }\n};\n\nexport const mcSidepanelAnimations: { readonly sidepanelState: AnimationTriggerMetadata } = {\n sidepanelState: trigger('state', [\n state(\n 'hidden',\n style({ transform: '{{transformIn}}' }),\n { params: { transformIn: mcSidepanelTransformAnimation[McSidepanelPosition.Right].in }}\n ),\n state(\n 'visible',\n style({ transform: '{{transformOut}}' }),\n { params: { transformOut: mcSidepanelTransformAnimation[McSidepanelPosition.Right].out }}\n ),\n transition(\n 'visible => void, visible => hidden',\n animate(`200ms ${AnimationCurves.AccelerationCurve}`)\n ),\n transition(\n 'void => visible',\n animate(`200ms ${AnimationCurves.DecelerationCurve}`)\n )\n ])\n};\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ESCAPE } from '@ptsecurity/cdk/keycodes';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nimport { McSidepanelAnimationState } from './sidepanel-animations';\nimport { McSidepanelConfig } from './sidepanel-config';\nimport { McSidepanelContainerComponent } from './sidepanel-container.component';\n\n\n// Counter for unique sidepanel ids.\nlet uniqueId = 0;\n\nexport class McSidepanelRef<T = any, R = any> {\n readonly id: string;\n\n /** Instance of the component making up the content of the sidepanel. */\n instance: T;\n\n /** Subject for notifying the user that the sidepanel has been closed and dismissed. */\n private readonly afterClosed$ = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the sidepanel has opened and appeared. */\n private readonly afterOpened$ = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private result: R | undefined;\n\n constructor(\n public containerInstance: McSidepanelContainerComponent,\n private overlayRef: OverlayRef,\n public config: McSidepanelConfig) {\n\n this.id = this.config.id || `mc-sidepanel-${uniqueId++}`;\n this.containerInstance.id = this.id;\n\n // Emit when opening animation completes\n containerInstance.animationStateChanged.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === McSidepanelAnimationState.Visible\n ),\n take(1)\n ).subscribe(() => {\n this.afterOpened$.next();\n this.afterOpened$.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationStateChanged.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === McSidepanelAnimationState.Hidden\n ),\n take(1)\n ).subscribe(() => {\n overlayRef.dispose();\n this.afterClosed$.next(this.result);\n this.afterClosed$.complete();\n });\n\n if (!containerInstance.sidepanelConfig.disableClose) {\n merge(\n overlayRef.backdropClick(),\n overlayRef.keydownEvents().pipe(\n // tslint:disable:deprecation\n // keyCode is deprecated, but IE11 and Edge don't support code property, which we need use instead\n filter((event) => event.keyCode === ESCAPE)\n )\n ).subscribe(() => this.close());\n }\n }\n\n close(result?: R): void {\n if (!this.afterClosed$.closed) {\n // Transition the backdrop in parallel to the sidepanel.\n this.containerInstance.animationStateChanged.pipe(\n filter((event) => event.phaseName === 'done'),\n take(1)\n ).subscribe(() => this.overlayRef.detachBackdrop());\n\n this.result = result;\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the sidepanel is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this.afterClosed$.asObservable();\n }\n\n /** Gets an observable that is notified when the sidepanel has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.afterOpened$.asObservable();\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n InjectionToken,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n mcSidepanelAnimations,\n McSidepanelAnimationState,\n mcSidepanelTransformAnimation\n} from './sidepanel-animations';\nimport { McSidepanelConfig, McSidepanelPosition } from './sidepanel-config';\n\n\nexport const MC_SIDEPANEL_WITH_INDENT = new InjectionToken<boolean>('mc-sidepanel-with-indent');\n\nexport const MC_SIDEPANEL_WITH_SHADOW = new InjectionToken<boolean>('mc-sidepanel-with-shadow');\n\n@Component({\n selector: 'mc-sidepanel-container',\n templateUrl: './sidepanel-container.component.html',\n styleUrls: ['./sidepanel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [mcSidepanelAnimations.sidepanelState],\n host: {\n class: 'mc-sidepanel-container',\n '[class.mc-sidepanel_nested]': 'withIndent',\n '[class.mc-sidepanel-container_shadowed]': 'withShadow',\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n '[@state]': `{\n value: animationState,\n params: animationTransform\n }`,\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)'\n }\n})\nexport class McSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {\n /** ID for the container DOM element. */\n id: string;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet: CdkPortalOutlet;\n\n /** The state of the sidepanel animations. */\n animationState: McSidepanelAnimationState = McSidepanelAnimationState.Void;\n\n animationTransform: { transformIn: string; transformOut: string };\n\n /** Emits whenever the state of the animation changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the component has been destroyed. */\n private destroyed: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n public sidepanelConfig: McSidepanelConfig,\n @Inject(MC_SIDEPANEL_WITH_INDENT) public withIndent: boolean,\n @Inject(MC_SIDEPANEL_WITH_SHADOW) public withShadow: boolean\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /** Attach a component portal as content to this sidepanel container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this sidepanel container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of the sidepanel entrance into view. */\n enter(): void {\n if (this.destroyed) { return; }\n\n this.animationState = McSidepanelAnimationState.Visible;\n this.changeDetectorRef.detectChanges();\n }\n\n /** Begin animation of the sidepanel exiting from view. */\n exit(): void {\n if (this.destroyed) { return; }\n\n this.animationState = McSidepanelAnimationState.Hidden;\n this.changeDetectorRef.markForCheck();\n }\n\n onAnimation(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n private setAnimation() {\n const position: McSidepanelPosition = this.sidepanelConfig.position!;\n\n this.animationTransform = {\n transformIn: mcSidepanelTransformAnimation[position].in,\n transformOut: mcSidepanelTransformAnimation[position].out\n };\n }\n\n private setPanelClass() {\n const element: HTMLElement = this.elementRef.nativeElement;\n const position: McSidepanelPosition = this.sidepanelConfig.position!;\n\n element.classList.add(`mc-sidepanel-container_${position}`);\n }\n\n private validatePortalAttached() {\n if (this.portalOutlet.hasAttached()) {\n throw Error('Attempting to attach sidepanel content after content is already attached');\n }\n }\n}\n","<div class=\"mc-sidepanel-wrapper\">\n\n <div *ngIf=\"withIndent\" class=\"mc-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"mc-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType, PortalInjector, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector, OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef\n} from '@angular/core';\n\nimport { MC_SIDEPANEL_DATA, McSidepanelConfig } from './sidepanel-config';\nimport {\n McSidepanelContainerComponent,\n MC_SIDEPANEL_WITH_INDENT,\n MC_SIDEPANEL_WITH_SHADOW\n} from './sidepanel-container.component';\nimport { McSidepanelRef } from './sidepanel-ref';\n\n\n/** Injection token that can be used to specify default sidepanel options. */\nexport const MC_SIDEPANEL_DEFAULT_OPTIONS =\n new InjectionToken<McSidepanelConfig>('mc-sidepanel-default-options');\n\n@Injectable()\nexport class McSidepanelService implements OnDestroy {\n private openedSidepanelsAtThisLevel: McSidepanelRef[] = [];\n\n /** Keeps track of the currently-open sidepanels. */\n get openedSidepanels(): McSidepanelRef[] {\n return this.parentSidepanelService ? this.parentSidepanelService.openedSidepanels :\n this.openedSidepanelsAtThisLevel;\n }\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Optional() @Inject(MC_SIDEPANEL_DEFAULT_OPTIONS) private defaultOptions: McSidepanelConfig,\n @Optional() @SkipSelf() private parentSidepanelService: McSidepanelService) {\n }\n\n ngOnDestroy() {\n // Only close the sidepanels at this level on destroy\n // since the parent service may still be active.\n this.closeSidepanels(this.openedSidepanelsAtThisLevel);\n }\n\n open<T, D = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: McSidepanelConfig<D>\n ): McSidepanelRef<T> {\n const fullConfig = {\n ...(this.defaultOptions || new McSidepanelConfig()),\n ...config\n };\n\n if (fullConfig.id && this.getSidepanelById(fullConfig.id)) {\n throw Error(`Sidepanel with id \"${fullConfig.id}\" exists already. The sidepanel id must be unique.`);\n }\n\n const overlayRef = this.createOverlay(fullConfig);\n const container = this.attachContainer(overlayRef, fullConfig);\n const ref = new McSidepanelRef(container, overlayRef, fullConfig);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: fullConfig.data,\n sidepanelRef: ref\n } as any));\n } else {\n const injector = this.createInjector(fullConfig, ref, container);\n const portal = new ComponentPortal(componentOrTemplateRef, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n\n ref.instance = contentRef.instance;\n }\n\n this.openedSidepanels.push(ref);\n ref.afterClosed()\n .subscribe(() => this.removeOpenSidepanel(ref));\n\n container.enter();\n\n return ref;\n }\n\n /**\n * Closes all of the currently-open sidepanels.\n */\n closeAll(): void {\n this.closeSidepanels(this.openedSidepanels);\n }\n\n /**\n * Finds an open sidepanel by its id.\n * @param id ID to use when looking up the sidepanel.\n */\n getSidepanelById(id: string): McSidepanelRef | undefined {\n return this.openedSidepanels.find((sidepanel) => sidepanel.id === id);\n }\n\n /**\n * Attaches the sidepanel container component to the overlay.\n */\n private attachContainer(overlayRef: OverlayRef, config: McSidepanelConfig): McSidepanelContainerComponent {\n const openedSidepanelsWithSamePosition = this.getOpenedSidepanelsWithSamePosition(config);\n\n // tslint:disable-next-line:deprecation\n const injector = new PortalInjector(this.injector, new WeakMap<any>([\n [McSidepanelConfig, config],\n [MC_SIDEPANEL_WITH_INDENT, openedSidepanelsWithSamePosition.length >= 1],\n [MC_SIDEPANEL_WITH_SHADOW, openedSidepanelsWithSamePosition.length < 2] // tslint:disable-line\n ]));\n\n const containerPortal = new ComponentPortal(McSidepanelContainerComponent, undefined, injector);\n const containerRef: ComponentRef<McSidepanelContainerComponent> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Creates a custom injector to be used inside the sidepanel. This allows a component loaded inside\n * of a sidepanel to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the sidepanel.\n * @param sidepanelRef Reference to the sidepanel.\n * @param sidepanelContainer Sidepanel container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the sidepanel.\n */\n private createInjector<T>(\n config: McSidepanelConfig,\n sidepanelRef: McSidepanelRef<T>,\n // tslint:disable-next-line:deprecation\n sidepanelContainer: McSidepanelContainerComponent): PortalInjector {\n\n // The McSidepanelContainerComponent is injected in the portal as the McSidepanelContainerComponent and\n // the sidepanel's content are created out of the same ViewContainerRef and as such, are siblings for injector\n // purposes. To allow the hierarchy that is expected, the McSidepanelContainerComponent is explicitly\n // added to the injection tokens.\n const injectionTokens = new WeakMap<any>([\n [McSidepanelContainerComponent, sidepanelContainer],\n [MC_SIDEPANEL_DATA, config.data],\n [McSidepanelRef, sidepanelRef]\n ]);\n\n // tslint:disable-next-line:deprecation\n return new PortalInjector(this.injector, injectionTokens);\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified sidepanel config.\n */\n private createOverlay(config: McSidepanelConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: this.getBackdropClass(config),\n maxWidth: '100%',\n panelClass: config.overlayPanelClass,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global()\n });\n\n return this.overlay.create(overlayConfig);\n }\n\n private closeSidepanels(sidepanels: McSidepanelRef[]) {\n const reversedOpenedSidepanels = [...sidepanels.reverse()];\n\n reversedOpenedSidepanels.forEach((sidepanelRef: McSidepanelRef) => {\n sidepanelRef.close();\n });\n }\n\n private getBackdropClass(config: McSidepanelConfig): string {\n if (config.hasBackdrop && config.backdropClass) {\n return config.backdropClass;\n }\n\n const hasOpenedSidepanelWithBackdrop =\n this.openedSidepanels.some((sidepanelRef) => sidepanelRef.config.hasBackdrop!);\n\n return config.requiredBackdrop || !hasOpenedSidepanelWithBackdrop ? 'cdk-overlay-dark-backdrop' :\n 'cdk-overlay-transparent-backdrop';\n }\n\n private getOpenedSidepanelsWithSamePosition(config: McSidepanelConfig): McSidepanelRef[] {\n return this.openedSidepanels.filter((sidepanelRef) => sidepanelRef.config.position === config.position);\n }\n\n /**\n * Removes a sidepanel from the array of open sidepanels.\n * @param sidepanelRef Sidepanel to be removed.\n */\n private removeOpenSidepanel(sidepanelRef: McSidepanelRef) {\n const index = this.openedSidepanels.indexOf(sidepanelRef);\n\n if (index > -1) {\n this.openedSidepanels.splice(index, 1);\n }\n }\n}\n","import {\n Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\n\nimport { McSidepanelRef } from './sidepanel-ref';\nimport { McSidepanelService } from './sidepanel.service';\n\n\n/**\n * Button that will close the current sidepanel.\n */\n@Directive({\n selector: 'button[mc-sidepanel-close], button[mcSidepanelClose]',\n host: {\n '(click)': 'sidepanelRef.close(sidepanelResult)',\n class: 'mc-sidepanel-close'\n }\n})\nexport class McSidepanelClose implements OnInit, OnChanges {\n @Input('mc-sidepanel-close') sidepanelResult: any;\n\n @Input('mcSidepanelClose') mcSidepanelClose: any;\n\n constructor(\n @Optional() public sidepanelRef: McSidepanelRef,\n private elementRef: ElementRef<HTMLElement>,\n private sidepanelService: McSidepanelService\n ) {}\n\n ngOnInit() {\n if (!this.sidepanelRef) {\n // When this directive is included in a sidepanel via TemplateRef (rather than being\n // in a Component), the SidepanelRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the SidepanelRef by\n // ID.\n // This must occur in `onInit`, as the ID binding for the sidepanel container won't\n // be resolved at constructor time. We use setTimeout by same reason.\n setTimeout(() => {\n this.sidepanelRef = getClosestSidepanel(this.elementRef, this.sidepanelService.openedSidepanels)!;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes.mcSidepanelClose || changes.sidepanelResult;\n\n if (proxiedChange) {\n this.sidepanelResult = proxiedChange.currentValue;\n }\n }\n}\n\n/**\n * Header of a sidepanel.\n */\n@Component({\n selector: 'mc-sidepanel-header',\n template: `\n <div class=\"mc-sidepanel-title\">\n <ng-content></ng-content>\n </div>\n <button *ngIf=\"closeable\" mc-sidepanel-close>\n <span class=\"mc-sidepanel-close-x\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Primary\"></i>\n </span>\n </button>\n `,\n host: {\n class: 'mc-sidepanel-header'\n }\n})\nexport class McSidepanelHeader {\n themePalette = ThemePalette;\n\n @Input() closeable: boolean;\n}\n\n/**\n * Scrollable content container of a sidepanel.\n */\n@Directive({\n selector: 'mc-sidepanel-body, [mc-sidepanel-body], mcSidepanelBody',\n host: {\n class: 'mc-sidepanel-body'\n }\n})\nexport class McSidepanelBody {}\n\n/**\n * Footer of a sidepanel.\n */\n@Directive({\n selector: 'mc-sidepanel-footer, [mc-sidepanel-footer], mcSidepanelFooter',\n host: {\n class: 'mc-sidepanel-footer'\n }\n})\nexport class McSidepanelFooter {}\n\n/**\n * Actions block of a sidepanel footer.\n */\n@Directive({\n selector: 'mc-sidepanel-actions, [mc-sidepanel-actions], mcSidepanelActions',\n host: {\n class: 'mc-sidepanel-actions'\n }\n})\nexport class McSidepanelActions {}\n\n/**\n * Finds the closest McSidepanelRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a sidepanel.\n * @param openSidepanels References to the currently-open sidepanels.\n */\nfunction getClosestSidepanel(element: ElementRef<HTMLElement>, openSidepanels: McSidepanelRef[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('mc-sidepanel-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openSidepanels.find((sidepanel) => sidepanel.id === parent!.id) : null;\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McSidepanelContainerComponent } from './sidepanel-container.component';\nimport {\n McSidepanelActions,\n McSidepanelBody,\n McSidepanelClose,\n McSidepanelFooter,\n McSidepanelHeader\n} from './sidepanel-directives';\nimport { McSidepanelService } from './sidepanel.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n McCommonModule,\n McButtonModule,\n McIconModule,\n A11yModule\n ],\n providers: [McSidepanelService],\n declarations: [\n McSidepanelContainerComponent,\n McSidepanelClose,\n McSidepanelHeader,\n McSidepanelBody,\n McSidepanelFooter,\n McSidepanelActions\n ],\n entryComponents: [McSidepanelContainerComponent],\n exports: [\n McSidepanelContainerComponent,\n McSidepanelClose,\n McSidepanelHeader,\n McSidepanelBody,\n McSidepanelFooter,\n McSidepanelActions\n ]\n})\nexport class McSidepanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.McSidepanelConfig","i1.McSidepanelRef","i2.McSidepanelService","i3","i4"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-sidepanel.mjs","sources":["../../../packages/mosaic/sidepanel/sidepanel-config.ts","../../../packages/mosaic/sidepanel/sidepanel-animations.ts","../../../packages/mosaic/sidepanel/sidepanel-ref.ts","../../../packages/mosaic/sidepanel/sidepanel-container.component.ts","../../../packages/mosaic/sidepanel/sidepanel-container.component.html","../../../packages/mosaic/sidepanel/sidepanel.service.ts","../../../packages/mosaic/sidepanel/sidepanel-directives.ts","../../../packages/mosaic/sidepanel/sidepanel.module.ts","../../../packages/mosaic/sidepanel/ptsecurity-mosaic-sidepanel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n\n/** Injection token that can be used to access the data that was passed in to a sidepanel. */\nexport const MC_SIDEPANEL_DATA = new InjectionToken<any>('McSidepanelData');\n\nexport enum McSidepanelPosition {\n Right = 'right',\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom'\n}\n\nexport class McSidepanelConfig<D = any> {\n /** ID for the sidepanel. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n position?: McSidepanelPosition = McSidepanelPosition.Right;\n\n /** Whether the sidepanel has a backdrop. */\n hasBackdrop?: boolean = true;\n\n backdropClass?: string;\n\n /** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */\n requiredBackdrop?: boolean = false;\n\n /** Whether the user can use escape or clicking outside to close the sidepanel. */\n disableClose?: boolean = false;\n\n /** Custom class for the overlay pane. */\n overlayPanelClass?: string | string[] = '';\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from '@ptsecurity/mosaic/core';\n\nimport { McSidepanelPosition } from './sidepanel-config';\n\n\nexport enum McSidepanelAnimationState {\n Void = 'void',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\n// TODO Find a way to use dynamic keys and avoid error \"Expression form not supported.\"\n// tslint:disable-next-line\nexport const mcSidepanelTransformAnimation: Record<McSidepanelPosition, { in: string; out: string }> = {\n right: { in: 'translateX(100%)', out: 'translateX(0%)' },\n left: { in: 'translateX(-100%)', out: 'translateX(0%)' },\n top: { in: 'translateY(-100%)', out: 'translateY(0%)' },\n bottom: { in: 'translateY(100%)', out: 'translateY(0%)' }\n};\n\nexport const mcSidepanelAnimations: { readonly sidepanelState: AnimationTriggerMetadata } = {\n sidepanelState: trigger('state', [\n state(\n 'hidden',\n style({ transform: '{{transformIn}}' }),\n { params: { transformIn: mcSidepanelTransformAnimation[McSidepanelPosition.Right].in }}\n ),\n state(\n 'visible',\n style({ transform: '{{transformOut}}' }),\n { params: { transformOut: mcSidepanelTransformAnimation[McSidepanelPosition.Right].out }}\n ),\n transition(\n 'visible => void, visible => hidden',\n animate(`200ms ${AnimationCurves.AccelerationCurve}`)\n ),\n transition(\n 'void => visible',\n animate(`200ms ${AnimationCurves.DecelerationCurve}`)\n )\n ])\n};\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ESCAPE } from '@ptsecurity/cdk/keycodes';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nimport { McSidepanelAnimationState } from './sidepanel-animations';\nimport { McSidepanelConfig } from './sidepanel-config';\nimport { McSidepanelContainerComponent } from './sidepanel-container.component';\n\n\n// Counter for unique sidepanel ids.\nlet uniqueId = 0;\n\nexport class McSidepanelRef<T = any, R = any> {\n readonly id: string;\n\n /** Instance of the component making up the content of the sidepanel. */\n instance: T;\n\n /** Subject for notifying the user that the sidepanel has been closed and dismissed. */\n private readonly afterClosed$ = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the sidepanel has opened and appeared. */\n private readonly afterOpened$ = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private result: R | undefined;\n\n constructor(\n public containerInstance: McSidepanelContainerComponent,\n private overlayRef: OverlayRef,\n public config: McSidepanelConfig) {\n\n this.id = this.config.id || `mc-sidepanel-${uniqueId++}`;\n this.containerInstance.id = this.id;\n\n // Emit when opening animation completes\n containerInstance.animationStateChanged.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === McSidepanelAnimationState.Visible\n ),\n take(1)\n ).subscribe(() => {\n this.afterOpened$.next();\n this.afterOpened$.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationStateChanged.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === McSidepanelAnimationState.Hidden\n ),\n take(1)\n ).subscribe(() => {\n overlayRef.dispose();\n this.afterClosed$.next(this.result);\n this.afterClosed$.complete();\n });\n\n if (!containerInstance.sidepanelConfig.disableClose) {\n merge(\n overlayRef.backdropClick(),\n overlayRef.keydownEvents().pipe(\n // tslint:disable:deprecation\n // keyCode is deprecated, but IE11 and Edge don't support code property, which we need use instead\n filter((event) => event.keyCode === ESCAPE)\n )\n ).subscribe(() => this.close());\n }\n }\n\n close(result?: R): void {\n if (!this.afterClosed$.closed) {\n // Transition the backdrop in parallel to the sidepanel.\n this.containerInstance.animationStateChanged.pipe(\n filter((event) => event.phaseName === 'done'),\n take(1)\n ).subscribe(() => this.overlayRef.detachBackdrop());\n\n this.result = result;\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the sidepanel is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this.afterClosed$.asObservable();\n }\n\n /** Gets an observable that is notified when the sidepanel has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.afterOpened$.asObservable();\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n InjectionToken,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n mcSidepanelAnimations,\n McSidepanelAnimationState,\n mcSidepanelTransformAnimation\n} from './sidepanel-animations';\nimport { McSidepanelConfig, McSidepanelPosition } from './sidepanel-config';\n\n\nexport const MC_SIDEPANEL_WITH_INDENT = new InjectionToken<boolean>('mc-sidepanel-with-indent');\n\nexport const MC_SIDEPANEL_WITH_SHADOW = new InjectionToken<boolean>('mc-sidepanel-with-shadow');\n\n@Component({\n selector: 'mc-sidepanel-container',\n templateUrl: './sidepanel-container.component.html',\n styleUrls: ['./sidepanel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [mcSidepanelAnimations.sidepanelState],\n host: {\n class: 'mc-sidepanel-container',\n '[class.mc-sidepanel_nested]': 'withIndent',\n '[class.mc-sidepanel-container_shadowed]': 'withShadow',\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n '[@state]': `{\n value: animationState,\n params: animationTransform\n }`,\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)'\n }\n})\nexport class McSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {\n /** ID for the container DOM element. */\n id: string;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet: CdkPortalOutlet;\n\n /** The state of the sidepanel animations. */\n animationState: McSidepanelAnimationState = McSidepanelAnimationState.Void;\n\n animationTransform: { transformIn: string; transformOut: string };\n\n /** Emits whenever the state of the animation changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the component has been destroyed. */\n private destroyed: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n public sidepanelConfig: McSidepanelConfig,\n @Inject(MC_SIDEPANEL_WITH_INDENT) public withIndent: boolean,\n @Inject(MC_SIDEPANEL_WITH_SHADOW) public withShadow: boolean\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /** Attach a component portal as content to this sidepanel container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this sidepanel container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of the sidepanel entrance into view. */\n enter(): void {\n if (this.destroyed) { return; }\n\n this.animationState = McSidepanelAnimationState.Visible;\n this.changeDetectorRef.detectChanges();\n }\n\n /** Begin animation of the sidepanel exiting from view. */\n exit(): void {\n if (this.destroyed) { return; }\n\n this.animationState = McSidepanelAnimationState.Hidden;\n this.changeDetectorRef.markForCheck();\n }\n\n onAnimation(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n private setAnimation() {\n const position: McSidepanelPosition = this.sidepanelConfig.position!;\n\n this.animationTransform = {\n transformIn: mcSidepanelTransformAnimation[position].in,\n transformOut: mcSidepanelTransformAnimation[position].out\n };\n }\n\n private setPanelClass() {\n const element: HTMLElement = this.elementRef.nativeElement;\n const position: McSidepanelPosition = this.sidepanelConfig.position!;\n\n element.classList.add(`mc-sidepanel-container_${position}`);\n }\n\n private validatePortalAttached() {\n if (this.portalOutlet.hasAttached()) {\n throw Error('Attempting to attach sidepanel content after content is already attached');\n }\n }\n}\n","<div class=\"mc-sidepanel-wrapper\">\n\n <div *ngIf=\"withIndent\" class=\"mc-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"mc-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType, PortalInjector, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector, OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef\n} from '@angular/core';\n\nimport { MC_SIDEPANEL_DATA, McSidepanelConfig } from './sidepanel-config';\nimport {\n McSidepanelContainerComponent,\n MC_SIDEPANEL_WITH_INDENT,\n MC_SIDEPANEL_WITH_SHADOW\n} from './sidepanel-container.component';\nimport { McSidepanelRef } from './sidepanel-ref';\n\n\n/** Injection token that can be used to specify default sidepanel options. */\nexport const MC_SIDEPANEL_DEFAULT_OPTIONS =\n new InjectionToken<McSidepanelConfig>('mc-sidepanel-default-options');\n\n@Injectable()\nexport class McSidepanelService implements OnDestroy {\n private openedSidepanelsAtThisLevel: McSidepanelRef[] = [];\n\n /** Keeps track of the currently-open sidepanels. */\n get openedSidepanels(): McSidepanelRef[] {\n return this.parentSidepanelService ? this.parentSidepanelService.openedSidepanels :\n this.openedSidepanelsAtThisLevel;\n }\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Optional() @Inject(MC_SIDEPANEL_DEFAULT_OPTIONS) private defaultOptions: McSidepanelConfig,\n @Optional() @SkipSelf() private parentSidepanelService: McSidepanelService) {\n }\n\n ngOnDestroy() {\n // Only close the sidepanels at this level on destroy\n // since the parent service may still be active.\n this.closeSidepanels(this.openedSidepanelsAtThisLevel);\n }\n\n open<T, D = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: McSidepanelConfig<D>\n ): McSidepanelRef<T> {\n const fullConfig = {\n ...(this.defaultOptions || new McSidepanelConfig()),\n ...config\n };\n\n if (fullConfig.id && this.getSidepanelById(fullConfig.id)) {\n throw Error(`Sidepanel with id \"${fullConfig.id}\" exists already. The sidepanel id must be unique.`);\n }\n\n const overlayRef = this.createOverlay(fullConfig);\n const container = this.attachContainer(overlayRef, fullConfig);\n const ref = new McSidepanelRef(container, overlayRef, fullConfig);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: fullConfig.data,\n sidepanelRef: ref\n } as any));\n } else {\n const injector = this.createInjector(fullConfig, ref, container);\n const portal = new ComponentPortal(componentOrTemplateRef, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n\n ref.instance = contentRef.instance;\n }\n\n this.openedSidepanels.push(ref);\n ref.afterClosed()\n .subscribe(() => this.removeOpenSidepanel(ref));\n\n container.enter();\n\n return ref;\n }\n\n /**\n * Closes all of the currently-open sidepanels.\n */\n closeAll(): void {\n this.closeSidepanels(this.openedSidepanels);\n }\n\n /**\n * Finds an open sidepanel by its id.\n * @param id ID to use when looking up the sidepanel.\n */\n getSidepanelById(id: string): McSidepanelRef | undefined {\n return this.openedSidepanels.find((sidepanel) => sidepanel.id === id);\n }\n\n /**\n * Attaches the sidepanel container component to the overlay.\n */\n private attachContainer(overlayRef: OverlayRef, config: McSidepanelConfig): McSidepanelContainerComponent {\n const openedSidepanelsWithSamePosition = this.getOpenedSidepanelsWithSamePosition(config);\n\n // tslint:disable-next-line:deprecation\n const injector = new PortalInjector(this.injector, new WeakMap<any>([\n [McSidepanelConfig, config],\n [MC_SIDEPANEL_WITH_INDENT, openedSidepanelsWithSamePosition.length >= 1],\n [MC_SIDEPANEL_WITH_SHADOW, openedSidepanelsWithSamePosition.length < 2] // tslint:disable-line\n ]));\n\n const containerPortal = new ComponentPortal(McSidepanelContainerComponent, undefined, injector);\n const containerRef: ComponentRef<McSidepanelContainerComponent> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Creates a custom injector to be used inside the sidepanel. This allows a component loaded inside\n * of a sidepanel to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the sidepanel.\n * @param sidepanelRef Reference to the sidepanel.\n * @param sidepanelContainer Sidepanel container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the sidepanel.\n */\n private createInjector<T>(\n config: McSidepanelConfig,\n sidepanelRef: McSidepanelRef<T>,\n // tslint:disable-next-line:deprecation\n sidepanelContainer: McSidepanelContainerComponent): PortalInjector {\n\n // The McSidepanelContainerComponent is injected in the portal as the McSidepanelContainerComponent and\n // the sidepanel's content are created out of the same ViewContainerRef and as such, are siblings for injector\n // purposes. To allow the hierarchy that is expected, the McSidepanelContainerComponent is explicitly\n // added to the injection tokens.\n const injectionTokens = new WeakMap<any>([\n [McSidepanelContainerComponent, sidepanelContainer],\n [MC_SIDEPANEL_DATA, config.data],\n [McSidepanelRef, sidepanelRef]\n ]);\n\n // tslint:disable-next-line:deprecation\n return new PortalInjector(this.injector, injectionTokens);\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified sidepanel config.\n */\n private createOverlay(config: McSidepanelConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: this.getBackdropClass(config),\n maxWidth: '100%',\n panelClass: config.overlayPanelClass,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global()\n });\n\n return this.overlay.create(overlayConfig);\n }\n\n private closeSidepanels(sidepanels: McSidepanelRef[]) {\n const reversedOpenedSidepanels = [...sidepanels.reverse()];\n\n reversedOpenedSidepanels.forEach((sidepanelRef: McSidepanelRef) => {\n sidepanelRef.close();\n });\n }\n\n private getBackdropClass(config: McSidepanelConfig): string {\n if (config.hasBackdrop && config.backdropClass) {\n return config.backdropClass;\n }\n\n const hasOpenedSidepanelWithBackdrop =\n this.openedSidepanels.some((sidepanelRef) => sidepanelRef.config.hasBackdrop!);\n\n return config.requiredBackdrop || !hasOpenedSidepanelWithBackdrop ? 'cdk-overlay-dark-backdrop' :\n 'cdk-overlay-transparent-backdrop';\n }\n\n private getOpenedSidepanelsWithSamePosition(config: McSidepanelConfig): McSidepanelRef[] {\n return this.openedSidepanels.filter((sidepanelRef) => sidepanelRef.config.position === config.position);\n }\n\n /**\n * Removes a sidepanel from the array of open sidepanels.\n * @param sidepanelRef Sidepanel to be removed.\n */\n private removeOpenSidepanel(sidepanelRef: McSidepanelRef) {\n const index = this.openedSidepanels.indexOf(sidepanelRef);\n\n if (index > -1) {\n this.openedSidepanels.splice(index, 1);\n }\n }\n}\n","import {\n Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\n\nimport { McSidepanelRef } from './sidepanel-ref';\nimport { McSidepanelService } from './sidepanel.service';\n\n\n/**\n * Button that will close the current sidepanel.\n */\n@Directive({\n selector: 'button[mc-sidepanel-close], button[mcSidepanelClose]',\n host: {\n '(click)': 'sidepanelRef.close(sidepanelResult)',\n class: 'mc-sidepanel-close'\n }\n})\nexport class McSidepanelClose implements OnInit, OnChanges {\n @Input('mc-sidepanel-close') sidepanelResult: any;\n\n @Input('mcSidepanelClose') mcSidepanelClose: any;\n\n constructor(\n @Optional() public sidepanelRef: McSidepanelRef,\n private elementRef: ElementRef<HTMLElement>,\n private sidepanelService: McSidepanelService\n ) {}\n\n ngOnInit() {\n if (!this.sidepanelRef) {\n // When this directive is included in a sidepanel via TemplateRef (rather than being\n // in a Component), the SidepanelRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the SidepanelRef by\n // ID.\n // This must occur in `onInit`, as the ID binding for the sidepanel container won't\n // be resolved at constructor time. We use setTimeout by same reason.\n setTimeout(() => {\n this.sidepanelRef = getClosestSidepanel(this.elementRef, this.sidepanelService.openedSidepanels)!;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes.mcSidepanelClose || changes.sidepanelResult;\n\n if (proxiedChange) {\n this.sidepanelResult = proxiedChange.currentValue;\n }\n }\n}\n\n/**\n * Header of a sidepanel.\n */\n@Component({\n selector: 'mc-sidepanel-header',\n template: `\n <div class=\"mc-sidepanel-title\">\n <ng-content></ng-content>\n </div>\n <button *ngIf=\"closeable\" mc-sidepanel-close>\n <span class=\"mc-sidepanel-close-x\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\n </span>\n </button>\n `,\n host: {\n class: 'mc-sidepanel-header'\n }\n})\nexport class McSidepanelHeader {\n themePalette = ThemePalette;\n\n @Input() closeable: boolean;\n}\n\n/**\n * Scrollable content container of a sidepanel.\n */\n@Directive({\n selector: 'mc-sidepanel-body, [mc-sidepanel-body], mcSidepanelBody',\n host: {\n class: 'mc-sidepanel-body'\n }\n})\nexport class McSidepanelBody {}\n\n/**\n * Footer of a sidepanel.\n */\n@Directive({\n selector: 'mc-sidepanel-footer, [mc-sidepanel-footer], mcSidepanelFooter',\n host: {\n class: 'mc-sidepanel-footer'\n }\n})\nexport class McSidepanelFooter {}\n\n/**\n * Actions block of a sidepanel footer.\n */\n@Directive({\n selector: 'mc-sidepanel-actions, [mc-sidepanel-actions], mcSidepanelActions',\n host: {\n class: 'mc-sidepanel-actions'\n }\n})\nexport class McSidepanelActions {}\n\n/**\n * Finds the closest McSidepanelRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a sidepanel.\n * @param openSidepanels References to the currently-open sidepanels.\n */\nfunction getClosestSidepanel(element: ElementRef<HTMLElement>, openSidepanels: McSidepanelRef[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('mc-sidepanel-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openSidepanels.find((sidepanel) => sidepanel.id === parent!.id) : null;\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McSidepanelContainerComponent } from './sidepanel-container.component';\nimport {\n McSidepanelActions,\n McSidepanelBody,\n McSidepanelClose,\n McSidepanelFooter,\n McSidepanelHeader\n} from './sidepanel-directives';\nimport { McSidepanelService } from './sidepanel.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n McCommonModule,\n McButtonModule,\n McIconModule,\n A11yModule\n ],\n providers: [McSidepanelService],\n declarations: [\n McSidepanelContainerComponent,\n McSidepanelClose,\n McSidepanelHeader,\n McSidepanelBody,\n McSidepanelFooter,\n McSidepanelActions\n ],\n entryComponents: [McSidepanelContainerComponent],\n exports: [\n McSidepanelContainerComponent,\n McSidepanelClose,\n McSidepanelHeader,\n McSidepanelBody,\n McSidepanelFooter,\n McSidepanelActions\n ]\n})\nexport class McSidepanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.McSidepanelConfig","i1.McSidepanelRef","i2.McSidepanelService","i3","i4"],"mappings":"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"}
|