@tylertech/forge 2.12.1 → 2.13.0-next.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/custom-elements.json +91 -25
- package/dist/esm/chunks/{chunk.WDIL7ZO7.js → chunk.2ZSAAJDN.js} +2 -2
- package/dist/esm/chunks/{chunk.WDIL7ZO7.js.map → chunk.2ZSAAJDN.js.map} +0 -0
- package/dist/esm/chunks/{chunk.3LZEQWAL.js → chunk.32SMESZX.js} +2 -2
- package/dist/esm/chunks/{chunk.3LZEQWAL.js.map → chunk.32SMESZX.js.map} +0 -0
- package/dist/esm/chunks/{chunk.MUY647D6.js → chunk.E4ZTNVXI.js} +2 -2
- package/dist/esm/chunks/{chunk.MUY647D6.js.map → chunk.E4ZTNVXI.js.map} +0 -0
- package/dist/esm/chunks/chunk.VQKRN5IQ.js +7 -0
- package/dist/esm/chunks/chunk.VQKRN5IQ.js.map +7 -0
- package/dist/esm/chunks/{chunk.SALQP6J3.js → chunk.YK2PXI6D.js} +2 -2
- package/dist/esm/chunks/{chunk.SALQP6J3.js.map → chunk.YK2PXI6D.js.map} +1 -1
- package/dist/esm/dialog/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/esm/dialog/dialog-adapter.d.ts +5 -5
- package/esm/dialog/dialog-adapter.js +30 -31
- package/esm/dialog/dialog-foundation.d.ts +4 -2
- package/esm/dialog/dialog-foundation.js +55 -38
- package/esm/dialog/dialog.d.ts +4 -0
- package/esm/dialog/dialog.js +7 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/package.json +1 -1
- package/dist/esm/chunks/chunk.YSE5EMB3.js +0 -7
- package/dist/esm/chunks/chunk.YSE5EMB3.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/dialog/dialog-constants.ts", "../../src/dialog/dialog-foundation.ts", "../../src/dialog/dialog-adapter.ts", "../../src/dialog/dialog.ts", "../../src/dialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { BACKDROP_CONSTANTS } from '../backdrop';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}dialog`;\n\nconst classes = {\n ANIMATING: 'forge-dialog--animating',\n OPEN: 'forge-dialog--open',\n ACTION_BUTTON: 'forge-dialog__action__button',\n BUTTON_TEXT: 'forge-button__text',\n SCROLLABLE: 'forge-dialog--scrollable',\n FULLSCREEN: 'forge-dialog--fullscreen',\n MOVEABLE: 'forge-dialog--moveable'\n};\n\nconst attributes = {\n BACKDROP_CLOSE: 'backdrop-close',\n ESCAPE_CLOSE: 'escape-close',\n FULLSCREEN: 'fullscreen',\n POSITION_TYPE: 'position-type',\n POSITION_X: 'position-x',\n POSITION_Y: 'position-y',\n MOVEABLE: 'moveable',\n MOVE_TARGET: 'move-target',\n OPEN: 'forge-dialog-open',\n INITIAL_FOCUS: 'forge-dialog-focus',\n DFEAULT_MOVE_TARGET: 'forge-dialog-move-target'\n};\n\nconst selectors = {\n CONTAINER: '.forge-dialog',\n SURFACE: '.forge-dialog__surface',\n BACKDROP: BACKDROP_CONSTANTS.elementName,\n INITIAL_FOCUS: `[${attributes.INITIAL_FOCUS}]`,\n DFEAULT_MOVE_TARGET: `[${attributes.DFEAULT_MOVE_TARGET}]`,\n CONTENT: '.forge-dialog__body'\n};\n\nconst events = {\n BEFORE_CLOSE: `${elementName}-before-close`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n READY: `${elementName}-ready`,\n MOVE_START: `${elementName}-move-start`,\n MOVED: `${elementName}-move`,\n MOVE_END: `${elementName}-move-end`\n};\n\nconst numbers = {\n ANIMATION_DURATION: 150,\n BACKDROP_MAX_OPACITY: 0.3\n};\n\nexport const DIALOG_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IDialogMoveEventData {\n x: number;\n y: number;\n}\n\nexport interface IDialogMoveContext {\n top: number;\n left: number;\n height: number;\n width: number;\n}\n\nexport interface IDialogMoveStartEventData extends IDialogMoveEventData {}\n\nexport type DialogPositionType = 'absolute' | 'relative';\nexport type DialogStateCallback = () => boolean | void | Promise<boolean | void>;\n", "import { ICustomElementFoundation, isDefined, isNumber, isString } from '@tylertech/forge-core';\nimport { IDialogAdapter } from './dialog-adapter';\nimport { DialogPositionType, DialogStateCallback, DIALOG_CONSTANTS, IDialogMoveContext, IDialogMoveStartEventData } from './dialog-constants';\n\nexport interface IDialogFoundation extends ICustomElementFoundation {\n backdropClose: boolean;\n escapeClose: boolean;\n open: boolean;\n fullscreen: boolean;\n openCallback: DialogStateCallback;\n closeCallback: DialogStateCallback;\n beforeCloseCallback: DialogStateCallback;\n positionType: DialogPositionType;\n positionX: number | string | null | undefined;\n positionY: number | string | null | undefined;\n moveable: boolean;\n moveTarget: string;\n initializeMoveTarget(): void;\n resetPosition(): void;\n}\n\nexport class DialogFoundation implements IDialogFoundation {\n // Private vars\n private _open = false;\n private _backdropClose = true;\n private _escapeClose = true;\n private _fullscreen = false;\n private _openCallback: DialogStateCallback;\n private _closeCallback: DialogStateCallback;\n private _beforeCloseCallback: DialogStateCallback;\n private _positionType: DialogPositionType = 'absolute';\n private _positionX: string | null = null;\n private _positionY: string | null = null;\n private _moveable = false;\n private _moveTarget = DIALOG_CONSTANTS.selectors.DFEAULT_MOVE_TARGET;\n private _isAnimating = false;\n private _isMoving = false;\n private _moveContext: IDialogMoveContext | undefined;\n private _lastPosition: { x: number; y: number } | undefined;\n\n // Event handlers\n private _transitionEndHandler: (evt: TransitionEvent) => void;\n private _documentKeydownHandler: (evt: KeyboardEvent) => void;\n private _backdropClickHandler: (evt: CustomEvent) => void;\n private _moveTargetMouseDownHandler: (evt: MouseEvent) => void;\n private _moveTargetMouseMoveHandler: (evt: MouseEvent) => void;\n private _moveTargetMouseUpHandler: (evt: MouseEvent) => void;\n\n // Event handler states\n private _attachedDocumentKeydownHandler = false;\n private _attachedBackdropClickHandler = false;\n\n constructor(public _adapter: IDialogAdapter) {\n this._transitionEndHandler = (evt: TransitionEvent) => this._onTransitionEnd();\n this._documentKeydownHandler = (evt: KeyboardEvent) => this._onDocumentKeydown(evt);\n this._backdropClickHandler = (evt: CustomEvent) => this._onBackdropClick(evt);\n this._moveTargetMouseDownHandler = (evt: MouseEvent) => this._onMoveTargetMouseDown(evt);\n this._moveTargetMouseMoveHandler = (evt: MouseEvent) => this._onMoveTargetMouseMove(evt);\n this._moveTargetMouseUpHandler = (evt: MouseEvent) => this._onMoveTargetMouseUp(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeAccessibility();\n if (this._open) {\n if (this._moveable) {\n this._adapter.setMoveable(this._moveable);\n this._initMoveTarget();\n }\n }\n }\n\n public destroy(): void {\n if (this._open) {\n this._removeDragHandlers();\n this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);\n if (this._attachedDocumentKeydownHandler) {\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n }\n if (this._attachedBackdropClickHandler) {\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n }\n }\n\n private async _applyOpen(value: boolean): Promise<void> {\n if (value) {\n if (typeof this._openCallback === 'function' && !await this._executeOpenCallback()) {\n return;\n }\n this._open = value;\n this._openDialog();\n } else {\n if (typeof this._closeCallback === 'function' && !await this._executeCloseCallback()) {\n return;\n }\n this._open = value;\n this._closeDialog();\n }\n \n this._adapter.toggleHostAttribute(DIALOG_CONSTANTS.attributes.OPEN, this._open);\n }\n\n private async _executeOpenCallback(): Promise<boolean> {\n try {\n return await Promise.resolve(this._openCallback()) !== false;\n } catch (e) {\n return false;\n }\n }\n\n private async _executeCloseCallback(): Promise<boolean> {\n try {\n return await Promise.resolve(this._closeCallback()) !== false;\n } catch (e) {\n return false;\n }\n }\n\n public initializeMoveTarget(): void {\n if (!this._moveTarget) {\n this._moveTarget = DIALOG_CONSTANTS.selectors.DFEAULT_MOVE_TARGET;\n }\n this._initMoveTarget();\n }\n\n public resetPosition(): void {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n\n private _normalizePositionValue(value: number | string | null | undefined): string | null {\n if (isNumber(value)) {\n return `${value}px`;\n } else if (isString(value)) {\n return value;\n }\n return null;\n }\n\n private _openDialog(): void {\n this._adapter.attach();\n\n if (!this._fullscreen) {\n if (this._moveable) {\n this._adapter.setMoveable(this._moveable);\n }\n if (this._positionX != null || this._positionY != null) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n\n this._adapter.setBodyAttribute(DIALOG_CONSTANTS.attributes.OPEN, 'true');\n this._adapter.registerTransitionEndHandler(this._transitionEndHandler);\n this._setDocumentKeydownListener(this._escapeClose);\n this._setBackdropClickListener(this._backdropClose);\n this._adapter.setAnimating(true);\n this._isAnimating = true;\n\n // Ensure transitions are triggered properly\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n this._adapter.setVisibility(true);\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.OPEN);\n this._adapter.trySetInitialFocus();\n if (this._adapter.isScrollable()) {\n this._adapter.addRootClass(DIALOG_CONSTANTS.classes.SCROLLABLE);\n }\n });\n });\n\n // Wait for the dialog to finish animating open, then emit the ready event and attach any listeners\n setTimeout(() => {\n window.requestAnimationFrame(() => {\n if (this._open && this._isAnimating) {\n this._onTransitionEnd();\n }\n });\n }, DIALOG_CONSTANTS.numbers.ANIMATION_DURATION);\n }\n\n private _closeDialog(): void {\n if (this._moveTarget) {\n this._removeDragHandlers();\n }\n\n this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);\n if (this._attachedDocumentKeydownHandler) {\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n }\n if (this._attachedBackdropClickHandler) {\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n\n this._isAnimating = false;\n this._adapter.setAnimating(true);\n this._adapter.setVisibility(false);\n\n setTimeout(() => {\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.CLOSE);\n this._adapter.detach();\n const openDialogs = this._adapter.getOpenDialogs(DIALOG_CONSTANTS.elementName);\n if (!openDialogs.length) {\n this._adapter.removeBodyAttribute(DIALOG_CONSTANTS.attributes.OPEN);\n }\n }, DIALOG_CONSTANTS.numbers.ANIMATION_DURATION);\n }\n\n private _onTransitionEnd(): void {\n if (!this._isAnimating) {\n return;\n }\n this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);\n this._adapter.setAnimating(false);\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.READY);\n this._adapter.tryLayoutChildren();\n if (this._moveable) {\n this._initMoveTarget();\n }\n this._isAnimating = false;\n }\n\n private _initMoveTarget(): void {\n if (!this._fullscreen && this._moveable && this._moveTarget && this._adapter.setMoveTarget(this._moveTarget)) {\n this._adapter.setMoveTargetHandler('mousedown', this._moveTargetMouseDownHandler);\n }\n }\n\n private _removeDragHandlers(): void {\n this._adapter.removeDragTargetHandler('mousedown', this._moveTargetMouseDownHandler);\n this._adapter.removeDocumentListener('mousemove', this._moveTargetMouseMoveHandler);\n this._adapter.removeDocumentListener('mouseup', this._moveTargetMouseUpHandler);\n }\n\n private _onMoveTargetMouseDown(evt: MouseEvent): void {\n evt.preventDefault();\n this._adapter.captureActiveElement();\n const bounds = this._adapter.getSurfaceBounds();\n this._moveContext = {\n top: evt.clientY - bounds.top,\n left: evt.clientX - bounds.left,\n height: bounds.height,\n width: bounds.width\n };\n this._adapter.setDocumentListener('mousemove', this._moveTargetMouseMoveHandler);\n this._adapter.setDocumentListener('mouseup', this._moveTargetMouseUpHandler);\n }\n\n private _onMoveTargetMouseMove(evt: MouseEvent): void {\n evt.preventDefault();\n const position = this._calculateOffsetPosition(evt.pageX, evt.pageY, this._moveContext);\n\n // If this is the beginning of the move sequence, we emit the start event (to allow for preventing default) and\n // then update the surface position if not prevented\n if (!this._isMoving) {\n this._isMoving = true;\n const canDrag = this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.MOVE_START, position as IDialogMoveStartEventData, true, true);\n if (!canDrag) {\n return;\n }\n }\n\n // Ensure that the surface position stays within the bounds of the screen\n const newPosition = this._clampPosition(position, this._moveContext);\n\n // Only update the position if it actually changed\n if (!this._lastPosition || newPosition.x !== this._lastPosition.x || newPosition.y !== this._lastPosition.y) {\n const canMove = this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.MOVED, newPosition as IDialogMoveStartEventData, true, true);\n if (canMove) {\n this._lastPosition = { ...newPosition };\n const newX = this._normalizePositionValue(newPosition.x);\n const newY = this._normalizePositionValue(newPosition.y);\n this._adapter.setSurfacePosition(newX, newY, 'absolute');\n }\n }\n }\n\n private _onMoveTargetMouseUp(evt: MouseEvent): void {\n if (this._isMoving) {\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.MOVE_END);\n }\n this._moveComplete();\n }\n\n private _moveComplete(): void {\n this._adapter.tryRestoreActiveElement();\n this._adapter.removeDocumentListener('mousemove', this._moveTargetMouseMoveHandler);\n this._adapter.removeDocumentListener('mouseup', this._moveTargetMouseUpHandler);\n this._lastPosition = undefined;\n this._moveContext = undefined;\n this._isMoving = false;\n }\n\n private _onDocumentKeydown(evt: KeyboardEvent): void {\n evt.stopPropagation();\n if (evt.key && (evt.key === 'Escape' || evt.key === 'Esc')) {\n this._tryClose();\n }\n }\n\n private _onBackdropClick(evt: CustomEvent): void {\n evt.stopPropagation();\n this._tryClose();\n }\n\n private async _tryClose(): Promise<void> {\n const isCancelled = !this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.BEFORE_CLOSE, undefined, undefined, true);\n if (isCancelled) {\n return;\n }\n\n if (!this._beforeCloseCallback) {\n this.open = false;\n return;\n }\n\n try {\n const shouldClose = await Promise.resolve(this._beforeCloseCallback()) !== false;\n if (shouldClose) {\n this.open = false;\n return;\n }\n } catch (err) {\n return;\n }\n }\n\n private _setBackdropClickListener(attach: boolean): void {\n if (!this._open) {\n return;\n }\n\n if (attach && !this._attachedBackdropClickHandler) {\n this._adapter.registerBackdropClickHandler(this._backdropClickHandler);\n this._attachedBackdropClickHandler = true;\n } else if (!attach && this._attachedBackdropClickHandler) {\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n this._attachedBackdropClickHandler = false;\n }\n }\n\n private _setDocumentKeydownListener(attach: boolean): void {\n if (!this._open) {\n return;\n }\n\n if (attach && !this._attachedDocumentKeydownHandler) {\n this._adapter.setDocumentListener('keydown', this._documentKeydownHandler);\n this._attachedDocumentKeydownHandler = true;\n } else if (!attach && this._attachedDocumentKeydownHandler) {\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n this._attachedDocumentKeydownHandler = false;\n }\n }\n\n private _calculateOffsetPosition(pageX: number, pageY: number, context?: IDialogMoveContext): { x: number; y: number } {\n return {\n x: pageX - (context?.left || 0),\n y: pageY - (context?.top || 0)\n };\n }\n\n private _clampPosition({ x, y }: { x: number; y: number }, context?: IDialogMoveContext): { x: number; y: number } {\n let width = 0;\n let height = 0;\n\n if (context) {\n width = context.width;\n height = context.height;\n }\n\n if (x <= 0) {\n x = 0;\n } else if (x + width >= window.innerWidth) {\n x = window.innerWidth - width;\n }\n\n if (y <= 0) {\n y = 0;\n } else if (y + height >= window.innerHeight) {\n y = window.innerHeight - height;\n }\n\n return { x, y };\n }\n\n /** Controls whether clicking the backdrop closes the dialog or not. */\n public set backdropClose(value: boolean) {\n value = Boolean(value);\n if (this._backdropClose !== value) {\n this._backdropClose = value;\n\n this._setBackdropClickListener(this._backdropClose);\n\n if (isDefined(this._backdropClose)) {\n this._adapter.setHostAttribute(DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE, this._backdropClose.toString());\n } else {\n this._adapter.removeHostAttribute(DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE);\n }\n }\n }\n public get backdropClose(): boolean {\n return this._backdropClose;\n }\n\n /** Controls whether pressing the escape key closes the dialog or not. */\n public set escapeClose(value: boolean) {\n value = Boolean(value);\n if (this._escapeClose !== value) {\n this._escapeClose = value;\n this._setDocumentKeydownListener(this._escapeClose);\n if (isDefined(this._escapeClose)) {\n this._adapter.setHostAttribute(DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE, this._escapeClose.toString());\n } else {\n this._adapter.removeHostAttribute(DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE);\n }\n }\n }\n public get escapeClose(): boolean {\n return this._escapeClose;\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n value = Boolean(value);\n if (value !== this._open) {\n this._applyOpen(value);\n }\n }\n }\n\n public get fullscreen(): boolean {\n return this._fullscreen;\n }\n public set fullscreen(value: boolean) {\n if (this._fullscreen !== value) {\n this._fullscreen = value;\n this._adapter.setFullscreen(this._fullscreen);\n }\n }\n\n public get openCallback(): DialogStateCallback {\n return this._openCallback;\n }\n public set openCallback(callback: DialogStateCallback) {\n this._openCallback = callback;\n }\n\n public get closeCallback(): DialogStateCallback {\n return this._closeCallback;\n }\n public set closeCallback(callback: DialogStateCallback) {\n this._closeCallback = callback;\n }\n\n public get beforeCloseCallback(): DialogStateCallback {\n return this._beforeCloseCallback;\n }\n public set beforeCloseCallback(callback: DialogStateCallback) {\n this._beforeCloseCallback = callback;\n }\n\n public get positionType(): DialogPositionType {\n return this._positionType;\n }\n public set positionType(value: DialogPositionType) {\n if (this._positionType !== value) {\n this._positionType = value;\n if (this._open) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n }\n\n public get positionX(): number | string | null | undefined {\n return this._positionX;\n }\n public set positionX(value: number | string | null | undefined) {\n if (this._positionX !== value) {\n this._positionX = this._normalizePositionValue(value);\n if (this._open) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n }\n\n public get positionY(): number | string | null | undefined {\n return this._positionY;\n }\n public set positionY(value: number | string | null | undefined) {\n if (this._positionY !== value) {\n this._positionY = this._normalizePositionValue(value);\n if (this._open) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n }\n\n public get moveable(): boolean {\n return this._moveable;\n }\n public set moveable(value: boolean) {\n if (this._moveable !== value) {\n this._moveable = value;\n if (this._open) {\n this._adapter.setMoveable(this._moveable);\n if (this._moveable) {\n this._initMoveTarget();\n } else {\n this._removeDragHandlers();\n this._isMoving = false;\n }\n }\n }\n }\n\n public get moveTarget(): string {\n return this._moveTarget;\n }\n public set moveTarget(value: string) {\n this._moveTarget = value;\n }\n}\n", "import { getShadowElement, removeElement, deepQuerySelectorAll, getActiveElement, toggleClass } from '@tylertech/forge-core';\nimport { BACKDROP_CONSTANTS, IBackdropComponent } from '../backdrop';\nimport { CHECKBOX_CONSTANTS } from '../checkbox';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { ICON_BUTTON_CONSTANTS } from '../icon-button';\nimport { RADIO_CONSTANTS } from '../radio';\nimport { SWITCH_CONSTANTS } from '../switch';\nimport { IDialogComponent } from './dialog';\nimport { DialogPositionType, DIALOG_CONSTANTS } from './dialog-constants';\n\nexport interface IDialogAdapter extends IBaseAdapter {\n initializeAccessibility(): void;\n setAnimating(animating: boolean): void;\n setVisibility(visible: boolean): void;\n attach(): void;\n detach(): void;\n setDocumentListener(type: string, listener: (evt: Event) => void): void;\n removeDocumentListener(type: string, listener: (evt: Event) => void): void;\n registerTransitionEndHandler: (handler: (evt: TransitionEvent) => void) => void;\n deregisterTransitionEndHandler: (handler: (evt: TransitionEvent) => void) => void;\n registerBackdropClickHandler: (handler: (evt: CustomEvent) => void) => void;\n deregisterBackdropClickHandler: (handler: (evt: CustomEvent) => void) => void;\n getOpenDialogs: (selector: string) => NodeListOf<HTMLElement>;\n setBodyAttribute: (name: string, value: string) => void;\n removeBodyAttribute: (name: string) => void;\n trySetInitialFocus: () => void;\n isScrollable(): boolean;\n addRootClass(name: string): void;\n setFullscreen(value: boolean): void;\n setMoveable(value: boolean): void;\n tryLayoutChildren(): void;\n setMoveTarget(selector: string): boolean;\n setMoveTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;\n removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;\n getSurfaceBounds(): DOMRect;\n setSurfacePosition(x: string | null, y: string | null, positionType: DialogPositionType): void;\n captureActiveElement(): void;\n tryRestoreActiveElement(): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `DialogComponent`.\n */\nexport class DialogAdapter extends BaseAdapter<IDialogComponent> implements IDialogAdapter {\n private _backdropElement: IBackdropComponent;\n private _containerElement: HTMLElement;\n private _surfaceElement: HTMLElement;\n private _moveTargetElement: HTMLElement | null;\n private _activeElement: HTMLElement | undefined;\n\n constructor(component: IDialogComponent) {\n super(component);\n this._backdropElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.BACKDROP) as IBackdropComponent;\n this._containerElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.CONTAINER);\n this._surfaceElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.SURFACE);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'dialog');\n }\n this._component.setAttribute('aria-modal', 'true');\n }\n\n public setAnimating(animating: boolean): void {\n if (animating) {\n this._containerElement.classList.add(DIALOG_CONSTANTS.classes.ANIMATING);\n } else {\n this._containerElement.classList.remove(DIALOG_CONSTANTS.classes.ANIMATING);\n }\n }\n\n public setVisibility(visible: boolean): void {\n if (visible) {\n this._containerElement.classList.add(DIALOG_CONSTANTS.classes.OPEN);\n } else {\n this._containerElement.classList.remove(DIALOG_CONSTANTS.classes.OPEN);\n }\n }\n\n public attach(): void {\n document.body.appendChild(this._component);\n }\n\n public detach(): void {\n if (this._activeElement) {\n this._activeElement = undefined;\n }\n removeElement(this._component);\n }\n\n public registerTransitionEndHandler(handler: (evt: TransitionEvent) => void): void {\n this._surfaceElement.addEventListener('transitionend', handler);\n }\n\n public deregisterTransitionEndHandler(handler: (evt: TransitionEvent) => void): void {\n this._surfaceElement.removeEventListener('transitionend', handler);\n }\n\n public setDocumentListener(type: string, listener: (evt: Event) => void): void {\n document.addEventListener(type, listener);\n }\n\n public removeDocumentListener(type: string, listener: (evt: Event) => void): void {\n document.removeEventListener(type, listener);\n }\n\n public registerBackdropClickHandler(handler: (evt: CustomEvent) => void): void {\n this._backdropElement.addEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, handler);\n }\n\n public deregisterBackdropClickHandler(handler: (evt: CustomEvent) => void): void {\n this._backdropElement.removeEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, handler);\n }\n\n public getOpenDialogs(selector: string): NodeListOf<HTMLElement> {\n return document.querySelectorAll(selector);\n }\n\n public setBodyAttribute(name: string, value: string): void {\n document.body.setAttribute(name, value);\n }\n\n public removeBodyAttribute(name: string): void {\n document.body.removeAttribute(name);\n }\n\n public trySetInitialFocus(): void {\n const elements = deepQuerySelectorAll(this._component, DIALOG_CONSTANTS.selectors.INITIAL_FOCUS);\n if (elements && elements.length) {\n const initialElement = elements[elements.length - 1] as HTMLElement;\n initialElement.focus();\n }\n }\n\n public isScrollable(): boolean {\n const contentElement = this._component.querySelector(DIALOG_CONSTANTS.selectors.CONTENT) as HTMLElement;\n if (contentElement) {\n return contentElement.scrollHeight > contentElement.offsetHeight;\n }\n return false;\n }\n\n public addRootClass(name: string): void {\n this._component.classList.add(name);\n }\n\n public setFullscreen(value: boolean): void {\n if (value) {\n this._containerElement.classList.add(DIALOG_CONSTANTS.classes.FULLSCREEN);\n } else {\n this._containerElement.classList.remove(DIALOG_CONSTANTS.classes.FULLSCREEN);\n }\n }\n\n public setMoveable(value: boolean): void {\n toggleClass(this._containerElement, value, DIALOG_CONSTANTS.classes.MOVEABLE);\n }\n\n public tryLayoutChildren(): void {\n const layoutChildren = [ICON_BUTTON_CONSTANTS.elementName, SWITCH_CONSTANTS.elementName, CHECKBOX_CONSTANTS.elementName, RADIO_CONSTANTS.elementName];\n const commonLayoutElements = Array.from(this._component.querySelectorAll(layoutChildren.join(','))) as any[];\n commonLayoutElements.filter(el => typeof el.layout === 'function').forEach(el => el.layout());\n }\n\n public setMoveTarget(selector: string): boolean {\n if (!selector) {\n return false;\n }\n this._moveTargetElement = this._component.querySelector(selector);\n return !!this._moveTargetElement;\n }\n\n public setMoveTargetHandler(type: string, listener: (evt: MouseEvent) => void): void {\n if (this._moveTargetElement) {\n this._moveTargetElement.addEventListener(type, listener);\n }\n }\n\n public removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void {\n if (this._moveTargetElement) {\n this._moveTargetElement.removeEventListener(type, listener);\n }\n }\n\n public getSurfaceBounds(): DOMRect {\n return this._surfaceElement.getBoundingClientRect() as DOMRect;\n }\n\n public setSurfacePosition(x: string | null, y: string | null, positionType: DialogPositionType): void {\n this._surfaceElement.style.position = positionType === 'absolute' ? positionType : 'relative';\n if (y != null) {\n this._surfaceElement.style.top = y;\n } else {\n this._surfaceElement.style.removeProperty('top');\n }\n if (x != null) {\n this._surfaceElement.style.left = x;\n } else {\n this._surfaceElement.style.removeProperty('left');\n }\n }\n\n public captureActiveElement(): void {\n this._activeElement = getActiveElement() as HTMLElement;\n if (this._activeElement) {\n this._activeElement.blur();\n }\n }\n\n public tryRestoreActiveElement(): void {\n if (this._activeElement) {\n if (this._activeElement.isConnected) {\n this._activeElement.focus();\n }\n this._activeElement = undefined;\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\n\nimport { DialogFoundation } from './dialog-foundation';\nimport { DialogAdapter } from './dialog-adapter';\nimport { DIALOG_CONSTANTS, DialogPositionType, IDialogMoveStartEventData, IDialogMoveEventData, DialogStateCallback } from './dialog-constants';\nimport { BackdropComponent } from '../backdrop';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-dialog\\\" part=\\\"root\\\"><forge-backdrop part=\\\"scrim\\\"></forge-backdrop><div class=\\\"forge-dialog__surface\\\" part=\\\"surface\\\"><slot></slot></div></div></template>';\nconst styles = '.forge-dialog{position:fixed;top:0;bottom:0;left:0;right:0;z-index:8;z-index:var(--forge-z-index-dialog,8);-webkit-box-align:center;align-items:center;-webkit-box-align:var(--forge-dialog-align-items,center);align-items:var(--forge-dialog-align-items,center);top:0;top:var(--forge-dialog-top,0);padding:24px;padding:var(--forge-dialog-padding,24px);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;visibility:hidden}@media (max-width:599px){.forge-dialog{padding:0}}.forge-dialog--moveable:not(.forge-dialog--fullscreen) ::slotted([forge-dialog-move-target]){cursor:move}.forge-dialog--animating{visibility:visible}.forge-dialog--animating .forge-dialog--open .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--animating .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--scrollable .forge-dialog__footer,.forge-dialog--scrollable .forge-dialog__title{border-color:rgba(0,0,0,.12)}.forge-dialog--open{visibility:visible!important}.forge-dialog--open .forge-dialog__surface{-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-dialog__surface{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);width:auto;width:var(--forge-dialog-width,auto);height:auto;height:var(--forge-dialog-height,auto);min-width:280px;min-width:var(--forge-dialog-min-width,280px);max-width:100%;max-width:var(--forge-dialog-max-width,100%);max-height:100%;max-height:var(--forge-dialog-max-height,100%);border-radius:4px;border-radius:var(--forge-dialog-border-radius,var(--mdc-shape-medium,4px));display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;overflow:hidden;z-index:inherit}.forge-dialog__header{margin:0;padding:0 24px 9px;border-bottom:1px solid transparent}.forge-dialog__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.forge-dialog__title::before{display:inline-block;width:0;height:40px;content:\\\"\\\";vertical-align:0}.forge-dialog__body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-body1-font-size, 1rem);line-height:1.5rem;line-height:var(--mdc-typography-body1-line-height, 1.5rem);font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);padding-top:20px;padding:0 24px 24px;overflow:auto}.forge-dialog__body--scrollable{max-height:195px;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.forge-dialog__footer{display:-webkit-box;display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid transparent}.forge-dialog--fullscreen{padding:0}.forge-dialog--fullscreen .forge-dialog__surface{height:100%;width:100%;min-width:auto;max-width:100%;border-radius:0}:host{display:block}:host([hidden]){display:none}';\n\nexport interface IDialogComponent extends IBaseComponent {\n backdropClose: boolean;\n escapeClose: boolean;\n open: boolean;\n fullscreen: boolean;\n openCallback: DialogStateCallback;\n closeCallback: DialogStateCallback;\n beforeCloseCallback: () => boolean | Promise<boolean>;\n positionType: DialogPositionType;\n positionX: number | string | null | undefined;\n positionY: number | string | null | undefined;\n moveable: boolean;\n moveTarget: string;\n initializeMoveTarget(): void;\n resetPosition(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-dialog': IDialogComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-dialog-before-close': CustomEvent<void>;\n 'forge-dialog-open': CustomEvent<void>;\n 'forge-dialog-close': CustomEvent<void>;\n 'forge-dialog-ready': CustomEvent<void>;\n 'forge-dialog-move-start': CustomEvent<IDialogMoveStartEventData>;\n 'forge-dialog-move': CustomEvent<IDialogMoveEventData>;\n 'forge-dialog-move-end': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-dialog>` custom element.\n * \n * @tag forge-dialog\n */\n@CustomElement({\n name: DIALOG_CONSTANTS.elementName,\n dependencies: [BackdropComponent]\n})\nexport class DialogComponent extends BaseComponent implements IDialogComponent {\n public static get observedAttributes(): string[] {\n return [\n DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE,\n DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE,\n DIALOG_CONSTANTS.attributes.OPEN,\n DIALOG_CONSTANTS.attributes.FULLSCREEN,\n DIALOG_CONSTANTS.attributes.POSITION_TYPE,\n DIALOG_CONSTANTS.attributes.POSITION_X,\n DIALOG_CONSTANTS.attributes.POSITION_Y,\n DIALOG_CONSTANTS.attributes.MOVEABLE,\n DIALOG_CONSTANTS.attributes.MOVE_TARGET\n ];\n }\n\n private _foundation: DialogFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new DialogFoundation(new DialogAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.destroy();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE:\n this.backdropClose = newValue === 'true';\n break;\n case DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE:\n this.escapeClose = newValue === 'true';\n break;\n case DIALOG_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case DIALOG_CONSTANTS.attributes.FULLSCREEN:\n this.fullscreen = coerceBoolean(newValue);\n break;\n case DIALOG_CONSTANTS.attributes.POSITION_TYPE:\n this.positionType = newValue as DialogPositionType;\n break;\n case DIALOG_CONSTANTS.attributes.POSITION_X:\n this.positionX = newValue;\n break;\n case DIALOG_CONSTANTS.attributes.POSITION_Y:\n this.positionY = newValue;\n break;\n case DIALOG_CONSTANTS.attributes.MOVEABLE:\n this.moveable = coerceBoolean(newValue);\n break;\n case DIALOG_CONSTANTS.attributes.MOVE_TARGET:\n this.moveTarget = newValue;\n break;\n }\n }\n\n /** Controls whether clicking the backdrop closes the dialog or not. Default is true. */\n @FoundationProperty()\n public backdropClose: boolean;\n\n /** Controls whether pressing the escape key closes the dialog or not. Default is true. */\n @FoundationProperty()\n public escapeClose: boolean;\n\n /** Controls whether the dialog is open or not. Default is false. */\n @FoundationProperty()\n public open: boolean;\n\n /** Controls whether the dialog is full screen or not. Default is false. */\n @FoundationProperty()\n public fullscreen: boolean;\n\n /** The function to call when the dialog wants to open. */\n @FoundationProperty()\n public openCallback: DialogStateCallback;\n\n /** the function to call when the dialog wants to close. */\n @FoundationProperty()\n public closeCallback: DialogStateCallback;\n\n /** the function to call when the dialog wants to close. */\n @FoundationProperty()\n public beforeCloseCallback: () => boolean | Promise<boolean>;\n\n /** Gets/sets the position type when using custom positioning values. Default is 'absolute'. */\n @FoundationProperty()\n public positionType: DialogPositionType;\n\n /** Controls the horizontal position of the dialog surface. */\n @FoundationProperty()\n public positionX: number | string | null | undefined;\n\n /** Controls the vertical position of the dialog surface. */\n @FoundationProperty()\n public positionY: number | string | null | undefined;\n\n /** Gets/sets whether the dialog surface can be moved or not. */\n @FoundationProperty()\n public moveable: boolean;\n\n /** Gets/sets the selector used to target the element that is used as the drag target. */\n @FoundationProperty()\n public moveTarget: string;\n\n public initializeMoveTarget(): void {\n this._foundation.initializeMoveTarget();\n }\n\n public resetPosition(): void {\n this._foundation.resetPosition();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { DialogComponent } from './dialog';\n\nexport * from './dialog-adapter';\nexport * from './dialog-constants';\nexport * from './dialog-foundation';\nexport * from './dialog';\n\nexport function defineDialogComponent(): void {\n defineCustomElement(DialogComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|