@claspo/renderer 16.7.0-theme.13 → 17.0.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/CompositionRoot.d.ts +2 -35
- package/CompositionRoot.js +1 -1
- package/RouterEvent.d.ts +4 -3
- package/StaticEntryModule.d.ts +21 -18
- package/StaticEntryModule.js +1 -1
- package/UpdatingEntryModule.d.ts +10 -14
- package/UpdatingEntryModule.js +1 -1
- package/ViewRouter.d.ts +8 -7
- package/action/ActionFactory.d.ts +10 -10
- package/action/ActionRegister.d.ts +24 -7
- package/action/InAppActionFactory.d.ts +1 -1
- package/action/SysActionTypes.d.ts +12 -12
- package/action/actions/ActionCategory.d.ts +4 -4
- package/action/actions/BaseRequestAction.d.ts +9 -9
- package/action/actions/BaseRequestAction.js +1 -1
- package/action/actions/CloseWidgetAction.d.ts +5 -5
- package/action/actions/CloseWidgetAction.js +1 -1
- package/action/actions/DispatchEventAction.d.ts +2 -2
- package/action/actions/GoToNextViewAction.d.ts +2 -2
- package/action/actions/GoToNextViewAction.js +1 -1
- package/action/actions/GoToPreviousViewAction.d.ts +2 -2
- package/action/actions/GoToPreviousViewAction.js +1 -1
- package/action/actions/GoToViewAction.d.ts +3 -4
- package/action/actions/GoToViewAction.js +1 -1
- package/action/actions/InAppOpenLinkAction.d.ts +2 -2
- package/action/actions/OpenLinkAction.d.ts +7 -7
- package/action/actions/OpenLinkAction.js +1 -1
- package/action/actions/RequestAction.d.ts +3 -1
- package/action/actions/ShowWidgetAction.d.ts +2 -2
- package/action/actions/SubscribeContactAction.d.ts +4 -1
- package/action/asyncAction.d.ts +2 -2
- package/backward-compatibility/deprecatedCheckboxVariablesMap.d.ts +1 -1
- package/color-libs/color-convert.d.ts +1 -1
- package/color-libs/color-string.d.ts +4 -14
- package/color-libs/color.d.ts +1 -13
- package/color-libs/conversions.d.ts +10 -8
- package/color-libs/rgb.d.ts +1 -1
- package/color-libs/route.d.ts +1 -1
- package/color-libs/simple-swizzle.d.ts +1 -4
- package/common/ConfigService.d.ts +5 -3
- package/common/ConfigService.js +1 -1
- package/common/DefaultState.d.ts +7 -4
- package/common/SysEventTypes.d.ts +6 -6
- package/common/WaitForKeyboardHide.d.ts +1 -1
- package/document-model/ComponentPropsExtractor.d.ts +1 -1
- package/document-model/DocumentModelService.d.ts +32 -0
- package/document-model/{DocumentModel.js → DocumentModelService.js} +1 -1
- package/document-model/DocumentService.d.ts +3 -3
- package/document-model/DocumentService.js +1 -1
- package/document-model/MergeAdaptiveStylesWithEnvIndependentStyles.d.ts +2 -1
- package/document-model/MergeAdaptiveStylesWithEnvIndependentStyles.js +1 -1
- package/document-model/ViewEntryType.d.ts +13 -13
- package/document-model/systemResultStateNames.d.ts +1 -1
- package/form/FormControl.d.ts +22 -25
- package/form/FormControl.interface.d.ts +19 -0
- package/form/FormControl.interface.js +1 -0
- package/form/FormControl.js +1 -1
- package/form/FormControlEvents.d.ts +7 -5
- package/form/FormControlValidator.d.ts +9 -8
- package/form/FormControlValidator.interface.d.ts +23 -0
- package/form/FormControlValidator.interface.js +1 -0
- package/form/FormGroup.d.ts +18 -13
- package/form/FormGroup.interface.d.ts +7 -0
- package/form/FormGroup.interface.js +1 -0
- package/form/FormGroup.js +1 -1
- package/form/FormGroupEvents.d.ts +10 -7
- package/generateRandomValue.d.ts +1 -1
- package/handler/ClickHandler.d.ts +8 -8
- package/handler/ComponentEventHandler.d.ts +1 -1
- package/handler/HandlerFactory.d.ts +3 -3
- package/i18n/TranslateUtils.d.ts +22 -7
- package/i18n/TranslateUtils.js +1 -1
- package/package.json +2 -2
- package/prize-pool/PrizePool.d.ts +1 -1
- package/prize-pool/PrizePoolEvents.d.ts +6 -4
- package/prize-pool/PrizePoolFactory.d.ts +2 -2
- package/renderer/DragEventListener.d.ts +1 -1
- package/renderer/RenderConstants.d.ts +6 -6
- package/renderer/ViewRendererActionType.d.ts +15 -15
- package/renderer/style/ClDocumentResizeListener.d.ts +5 -4
- package/renderer/style/ClDocumentResizeListener.js +1 -1
- package/renderer/style/ColorSchemaListener.d.ts +38 -23
- package/renderer/style/ColorSchemaListener.js +1 -1
- package/renderer/style/CommonStylesService.d.ts +4 -3
- package/renderer/style/DefaultMediaQueryListener.d.ts +15 -9
- package/renderer/style/DefaultMediaQueryListener.js +1 -1
- package/renderer/style/LoopAnimationStylesService.d.ts +1 -1
- package/renderer/style/MobileDeviceOrientationListener.d.ts +19 -6
- package/renderer/style/MobileDeviceOrientationListener.js +1 -1
- package/resource-management/ComponentResourceManager.d.ts +12 -10
- package/resource-management/Counter.d.ts +3 -2
- package/resource-management/ViewResourcesManager.d.ts +2 -2
- package/sdk/ColorUtils.d.ts +7 -7
- package/sdk/ComponentType.d.ts +9 -9
- package/sdk/FormUtils.d.ts +3 -3
- package/sdk/FormUtils.js +1 -1
- package/sdk/HtmlStyleUtils.d.ts +27 -7
- package/sdk/HtmlStyleUtils.js +1 -1
- package/sdk/ModelStyleUtils.d.ts +11 -9
- package/sdk/ModelStyleUtils.js +1 -1
- package/sdk/OverlayUtils.d.ts +44 -28
- package/sdk/OverlayUtils.js +1 -1
- package/sdk/PreviewMode.d.ts +6 -5
- package/sdk/TooltipUtils.d.ts +10 -4
- package/sdk/TooltipUtils.js +1 -1
- package/sdk/TranslationUtils.d.ts +9 -4
- package/sdk/TranslationUtils.js +1 -1
- package/sdk/WcControlledElement.d.ts +48 -23
- package/sdk/WcControlledElement.js +1 -1
- package/sdk/WcElement.d.ts +123 -56
- package/sdk/WcElement.js +1 -1
- package/sdk/context/ContextData.d.ts +26 -7
- package/sdk/context/ContextEvents.d.ts +6 -5
- package/sdk/context/ContextSDK.d.ts +26 -13
- package/sdk/context/Record.d.ts +7 -6
- package/sdk/getComponentCountOnView.d.ts +2 -1
- package/sdk/merge-tags/AbstractMergeTagsProcessor.d.ts +20 -8
- package/sdk/merge-tags/AbstractMergeTagsProcessor.js +1 -1
- package/sdk/merge-tags/MergeTagsProcessorFactory.d.ts +9 -8
- package/sdk/merge-tags/StaticMergeTagsProcessor.d.ts +2 -1
- package/sdk/merge-tags/UpdatingMergeTagsProcessor.d.ts +5 -3
- package/sdk/merge-tags/UpdatingMergeTagsProcessor.js +1 -1
- package/sdk/source/Source.d.ts +14 -6
- package/sdk/source/SourceRegistry.d.ts +15 -7
- package/sdk/source/sources/DataLayerSource.d.ts +24 -9
- package/sdk/source/sources/DataLayerSource.js +1 -1
- package/sdk/source/sources/FormSource.d.ts +6 -4
- package/sdk/source/sources/JSApiVariablesSource.d.ts +28 -10
- package/sdk/source/sources/JSApiVariablesSource.js +1 -1
- package/sdk/source/sources/UrlQueryParamsSource.d.ts +23 -10
- package/sdk/source/sources/UrlQueryParamsSource.js +1 -1
- package/sdk/validators/required.d.ts +4 -4
- package/sdk.d.ts +3 -3
- package/sdk.js +1 -1
- package/wc-renderer/WcFactory.d.ts +17 -17
- package/wc-renderer/WcFactory.js +1 -1
- package/wc-renderer/WcRegister.d.ts +15 -9
- package/wc-renderer/WcRegister.js +1 -1
- package/wc-renderer/WcResolver.d.ts +24 -13
- package/wc-renderer/WcResolver.js +1 -1
- package/wc-renderer/WcViewRenderer.d.ts +4 -5
- package/wc-renderer/WcViewRenderer.js +1 -1
- package/wc-renderer/decorators/wcStaticDecorator.d.ts +4 -7
- package/wc-renderer/decorators/wcStaticDecorator.js +1 -1
- package/wc-renderer/decorators/wcUpdatingDecorator.d.ts +8 -8
- package/wc-renderer/icons/feedbackIcons.d.ts +10 -23
- package/wc-renderer/icons/promoCodeCopyIcons.d.ts +1 -1
- package/wc-renderer/icons/promoCodeStrokeIcons.d.ts +1 -1
- package/wc-renderer/observers/createObservers.d.ts +6 -4
- package/wc-renderer/observers/observerType.d.ts +5 -5
- package/wc-renderer/subscriptions/createSubscriptions.d.ts +7 -4
- package/wc-renderer/utils/platforms.d.ts +5 -5
- package/action/actions/TrackClick.d.ts +0 -5
- package/action/actions/TrackClick.js +0 -1
- package/document-model/DocumentModel.d.ts +0 -30
- package/sdk/ComponentLifeCycleContainerType.d.ts +0 -5
- package/sdk/ComponentLifeCycleContainerType.js +0 -1
- package/sdk/TranslationUtils.spec.d.ts +0 -1
- package/sdk/TranslationUtils.spec.js +0 -1
- package/sdk/context/ContextSDK.spec.d.ts +0 -1
- package/sdk/context/ContextSDK.spec.js +0 -1
- package/wc-renderer/WcFactory.spec.d.ts +0 -1
- package/wc-renderer/WcFactory.spec.js +0 -1
- package/wc-renderer/WcRegister.spec.d.ts +0 -1
- package/wc-renderer/WcRegister.spec.js +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const REQUEST_PRIZE_POOL: string;
|
|
1
|
+
export interface PrizePoolEventsI {
|
|
2
|
+
PRIZE_POOL_UPDATED: 'PRIZE_POOL_UPDATED';
|
|
3
|
+
REQUEST_PRIZE_POOL: 'REQUEST_PRIZE_POOL';
|
|
5
4
|
}
|
|
5
|
+
export type PrizePoolEventT = PrizePoolEventsI[keyof PrizePoolEventsI];
|
|
6
|
+
declare const PrizePoolEvents: PrizePoolEventsI;
|
|
7
|
+
export default PrizePoolEvents;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import PrizePool from "./PrizePool";
|
|
1
2
|
export default class PrizePoolFactory {
|
|
2
|
-
constructor(httpClient: any, configService: any);
|
|
3
3
|
httpClient: any;
|
|
4
4
|
configService: any;
|
|
5
|
+
constructor(httpClient: any, configService: any);
|
|
5
6
|
get(config: any): PrizePool;
|
|
6
7
|
}
|
|
7
|
-
import PrizePool from "./PrizePool";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export default class DragEventListener {
|
|
2
|
-
constructor(eventEmitter: any, documentModel: any);
|
|
3
2
|
eventEmitter: any;
|
|
4
3
|
documentModel: any;
|
|
5
4
|
dragStartSubscription: any;
|
|
6
5
|
dragEndSubscription: any;
|
|
6
|
+
constructor(eventEmitter: any, documentModel: any);
|
|
7
7
|
updateHovered(type: any): void;
|
|
8
8
|
destroy(): void;
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export declare const RenderConstants: {
|
|
2
|
+
readonly SYSTEM_CLASS_PREFIX: "cl-";
|
|
3
|
+
readonly SYSTEM_ATTRIBUTE_PREFIX: "cl-";
|
|
4
|
+
};
|
|
5
|
+
export declare function applySysClassPrefix(str: string): string;
|
|
6
|
+
export declare function applySysAttrPrefix(str: string): string;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
1
|
+
export declare const ViewRendererActionType: {
|
|
2
|
+
COMPONENT_FOCUSED: string;
|
|
3
|
+
REMOVE_FOCUS: string;
|
|
4
|
+
SET_FOCUS: string;
|
|
5
|
+
COMPONENT_MOUSE_MOVE: string;
|
|
6
|
+
COMPONENT_CLICKED: string;
|
|
7
|
+
COMPONENT_DOUBLE_CLICKED: string;
|
|
8
|
+
COMPONENT_DRAGSTART: string;
|
|
9
|
+
COMPONENT_DRAGEND: string;
|
|
10
|
+
COMPONENT_DRAGOVER: string;
|
|
11
|
+
DOCUMENT_DROP: string;
|
|
12
|
+
SHOW_INLINE_EDIT: string;
|
|
13
|
+
VIEW_COMPONENT_RESOURCES_LOADED: string;
|
|
14
|
+
FAILED_TO_LOAD_COMPONENT_RESOURCE: string;
|
|
15
|
+
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import DefaultEventEmitter from '@claspo/common/DefaultEventEmitter';
|
|
2
|
+
export default class ClDocumentResizeListener extends DefaultEventEmitter {
|
|
2
3
|
static changeEventName: string;
|
|
3
|
-
constructor(documentModel: any, containerElement: any);
|
|
4
4
|
documentModel: any;
|
|
5
5
|
containerElement: any;
|
|
6
6
|
mobileBreakpointWidth: any;
|
|
7
|
-
_isMobile:
|
|
8
|
-
|
|
7
|
+
_isMobile: any;
|
|
8
|
+
constructor(documentModel: any, containerElement: any);
|
|
9
|
+
isMobile(): any;
|
|
9
10
|
destroy(): void;
|
|
10
11
|
_calculateMobileFlag(): boolean;
|
|
11
12
|
_getElementsWidthPx(element: any): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import DefaultEventEmitter from"@claspo/common/DefaultEventEmitter";import{DocumentModelUpdateType}from"../../document-model/
|
|
1
|
+
import DefaultEventEmitter from"@claspo/common/DefaultEventEmitter";import{DocumentModelUpdateType}from"../../document-model/DocumentModelService";export default class ClDocumentResizeListener extends DefaultEventEmitter{constructor(e,t){super(),this.documentModel=e,this.containerElement=t,this.mobileBreakpointWidth=this.documentModel.getShared().mobileBreakpointWidth,this._isMobile=this._calculateMobileFlag(),this.documentModel.on(DocumentModelUpdateType.ENVIRONMENT_UPDATE,e=>{this._isMobile=e.isMobileEnv,this.emit(ClDocumentResizeListener.changeEventName,this._isMobile)})}isMobile(){return this._isMobile}destroy(){super.destroy()}_calculateMobileFlag(){return this._getElementsWidthPx(this.containerElement)<=this.mobileBreakpointWidth}_getElementsWidthPx(e){return parseInt(getComputedStyle(e).width)}}ClDocumentResizeListener.changeEventName="CHANGE";
|
|
@@ -1,25 +1,40 @@
|
|
|
1
|
+
import DocumentModelService from "../../document-model/DocumentModelService";
|
|
2
|
+
import HttpClient from "@claspo/common/network/HttpClient";
|
|
3
|
+
import { ClBaseComponentPropsI, ClDocumentSharedI } from "@claspo/common/document/Document.interface";
|
|
4
|
+
import { PlatformEnvT } from "../../sdk/WcElement";
|
|
5
|
+
export interface ParsedBackgroundI {
|
|
6
|
+
url: string | null;
|
|
7
|
+
positionOptions: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface EnvUrlMapValueI {
|
|
10
|
+
originalSVGResourceURL: string;
|
|
11
|
+
inlineSvgString: string | null;
|
|
12
|
+
positionOptions: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface EnvUrlMapsI {
|
|
15
|
+
desktop: Map<string, EnvUrlMapValueI>;
|
|
16
|
+
mobile: Map<string, EnvUrlMapValueI>;
|
|
17
|
+
}
|
|
18
|
+
export interface SubscriptionI {
|
|
19
|
+
off(): void;
|
|
20
|
+
}
|
|
21
|
+
export type GetSharedCallbackT = () => ClDocumentSharedI;
|
|
22
|
+
export type GetPropsCallbackT = () => ClBaseComponentPropsI;
|
|
23
|
+
export type GetEnvCallbackT = () => PlatformEnvT;
|
|
1
24
|
export default class ColorSchemaListener {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} | {
|
|
18
|
-
url: null;
|
|
19
|
-
positionOptions: null;
|
|
20
|
-
};
|
|
21
|
-
apply(env: any): Promise<void>;
|
|
22
|
-
on(): ColorSchemaListener;
|
|
23
|
-
_applyHostElementBackground(value: any, cssVarsMap?: {}): void;
|
|
24
|
-
_buildBackgroundUrl(value: any, cssVarsMap: any): string;
|
|
25
|
+
hostElement: HTMLElement;
|
|
26
|
+
documentModel: DocumentModelService;
|
|
27
|
+
getSharedCb: GetSharedCallbackT;
|
|
28
|
+
getPropsCb: GetPropsCallbackT;
|
|
29
|
+
getEnvCb: GetEnvCallbackT;
|
|
30
|
+
httpClient: typeof HttpClient;
|
|
31
|
+
subscription: SubscriptionI | null;
|
|
32
|
+
envUrlMaps: EnvUrlMapsI;
|
|
33
|
+
constructor(documentModel: DocumentModelService, hostElement: HTMLElement, getSharedCb: GetSharedCallbackT, getPropsCb: GetPropsCallbackT, getEnvCb: GetEnvCallbackT, httpClient: typeof HttpClient);
|
|
34
|
+
parseBackground(background: string | undefined): ParsedBackgroundI;
|
|
35
|
+
apply(env: PlatformEnvT): Promise<void>;
|
|
36
|
+
on(): this;
|
|
37
|
+
_applyHostElementBackground(value: EnvUrlMapValueI | undefined, cssVarsMap: Record<string, string> | undefined): void;
|
|
38
|
+
_buildBackgroundUrl(value: EnvUrlMapValueI, cssVarsMap: Record<string, string>): string;
|
|
39
|
+
off(): void;
|
|
25
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DocumentModelUpdateType}from"../../document-model/
|
|
1
|
+
import{DocumentModelUpdateType}from"../../document-model/DocumentModelService";import ErrorLogger from"../../error/ErrorLogger";export default class ColorSchemaListener{constructor(t,e,n,o,i,s){this.hostElement=e,this.documentModel=t,this.getSharedCb=n,this.getPropsCb=o,this.getEnvCb=i,this.httpClient=s,this.subscription=null,this.envUrlMaps={desktop:new Map,mobile:new Map}}parseBackground(t){const e=String(t||"");if(e.includes("url")){const[t,n]=e.split("(")[1].split(")");return{url:t.replace(/['"]+/g,""),positionOptions:n.replace(";","")}}return{url:null,positionOptions:null}}apply(t){const e=this.getPropsCb();return e.backgroundDynamicInlineSVGElements[t].forEach(n=>{var o,i,s,r,l;const a=null===(i=null===(o=e.adaptiveStyles)||void 0===o?void 0:o[t])||void 0===i?void 0:i.find(t=>t.element===n),c=(null===(s=e.styles)||void 0===s?void 0:s.find(t=>t.element===n))||{},u=(null===(r=null==c?void 0:c.styleAttributes)||void 0===r?void 0:r.background)||(null===(l=null==a?void 0:a.styleAttributes)||void 0===l?void 0:l.background),p=this.parseBackground(u);p.url&&this.envUrlMaps[t].set(n,{originalSVGResourceURL:p.url,inlineSvgString:null,positionOptions:p.positionOptions})}),Promise.all([...this.envUrlMaps[t].entries()].map(([e,n])=>this.httpClient.execute(n.originalSVGResourceURL).then(t=>t.text()).then(o=>{this.envUrlMaps[t].set(e,Object.assign(Object.assign({},n),{inlineSvgString:o}))}))).then(()=>{this._applyHostElementBackground(this.envUrlMaps[t].get("host"),this.getSharedCb().cssVars)}).catch(t=>{console.error(t),ErrorLogger.log(`Failed to load/apply backgroundDynamicInlineSVGElements[${this.getPropsCb().backgroundDynamicInlineSVGElements}] ${t}`)})}on(){return this.subscription=this.documentModel.on(DocumentModelUpdateType.COLOR_SCHEMA_UPDATE,t=>{this._applyHostElementBackground(this.envUrlMaps[this.getEnvCb()].get("host"),t)}),this}_applyHostElementBackground(t,e){t&&e&&(this.hostElement.style.background=this._buildBackgroundUrl(t,e))}_buildBackgroundUrl(t,e){const n=t.inlineSvgString.trim().replace("var(--cl-schema-accent)",e["cl-schema-accent"]);return`url('data:image/svg+xml,${encodeURIComponent(n)}')${t.positionOptions}`}off(){var t;null===(t=this.subscription)||void 0===t||t.off()}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default class CommonStylesService {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
styles: any;
|
|
3
|
+
static applyHostStyles(componentType: any, element: any, componentModel: any, layoutType: any): void;
|
|
4
|
+
constructor();
|
|
4
5
|
setStyles(additionalStyles?: string): void;
|
|
5
|
-
getStyles():
|
|
6
|
+
getStyles(): any;
|
|
6
7
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import DefaultEventEmitter from "@claspo/common/DefaultEventEmitter";
|
|
2
|
+
import DocumentModelService from "../../document-model/DocumentModelService";
|
|
3
|
+
import { WidgetInitConfigI } from "@claspo/common/WidgetInitConfig.interface";
|
|
4
|
+
export interface EnvironmentUpdatePayloadI {
|
|
5
|
+
isMobileEnv: boolean;
|
|
6
|
+
}
|
|
7
|
+
export default class DefaultMediaQueryListener extends DefaultEventEmitter {
|
|
2
8
|
static changeEventName: string;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
isMobile():
|
|
10
|
-
listener(mediaQueryListEvent:
|
|
9
|
+
config: WidgetInitConfigI;
|
|
10
|
+
mobileBreakpointWidth: number | string;
|
|
11
|
+
mediaQueryList: MediaQueryList;
|
|
12
|
+
_isMobile: boolean;
|
|
13
|
+
constructor(documentModel: DocumentModelService, config: WidgetInitConfigI);
|
|
14
|
+
handleMobileBreakpoint(mobileBreakpointWidth: number | string): void;
|
|
15
|
+
isMobile(): boolean;
|
|
16
|
+
listener(mediaQueryListEvent: MediaQueryListEvent): void;
|
|
11
17
|
destroy(): void;
|
|
12
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import DefaultEventEmitter from"@claspo/common/DefaultEventEmitter";import{DocumentModelUpdateType}from"../../document-model/
|
|
1
|
+
import DefaultEventEmitter from"@claspo/common/DefaultEventEmitter";import{DocumentModelUpdateType}from"../../document-model/DocumentModelService";export default class DefaultMediaQueryListener extends DefaultEventEmitter{constructor(e,i){super(),this.config=i,this.handleMobileBreakpoint(e.getShared().mobileBreakpointWidth),e.on(DocumentModelUpdateType.ENVIRONMENT_UPDATE,({isMobileEnv:e})=>{this._isMobile=e,this.emit(DefaultMediaQueryListener.changeEventName,this._isMobile)})}handleMobileBreakpoint(e){this.mobileBreakpointWidth=e;const i=Number.isInteger(this.mobileBreakpointWidth)?`${this.mobileBreakpointWidth}px`:this.mobileBreakpointWidth;this.mediaQueryList=window.matchMedia(`(max-width: ${i})`),this.mediaQueryList.addListener(this.listener.bind(this)),this._isMobile=this.mediaQueryList.matches,this.emit(DefaultMediaQueryListener.changeEventName,this._isMobile)}isMobile(){return this.config.forceMobileEnv||this._isMobile}listener(e){this._isMobile=e.matches,this.emit(DefaultMediaQueryListener.changeEventName,this._isMobile)}destroy(){super.destroy(),this.mediaQueryList.removeListener(this.listener.bind(this))}}DefaultMediaQueryListener.changeEventName="CHANGE";
|
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
import DefaultEventEmitter from '@claspo/common/DefaultEventEmitter';
|
|
2
|
+
import DocumentModelService from '../../document-model/DocumentModelService';
|
|
3
|
+
import ConfigService from '../../common/ConfigService';
|
|
4
|
+
export type OrientationT = 'PORTRAIT' | 'LANDSCAPE';
|
|
5
|
+
export interface EnvironmentUpdateValueI {
|
|
6
|
+
orientation?: OrientationT;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface OrientationEventI {
|
|
10
|
+
detail?: {
|
|
11
|
+
orientation?: OrientationT;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export default class MobileDeviceOrientationListener extends DefaultEventEmitter {
|
|
2
15
|
static changeEventName: string;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
16
|
+
documentModel: DocumentModelService;
|
|
17
|
+
_orientation: OrientationT;
|
|
18
|
+
handleOrientationChangeBound: () => void;
|
|
19
|
+
constructor(documentModel: DocumentModelService, configService: ConfigService);
|
|
7
20
|
isPortrait(): boolean;
|
|
8
|
-
handleOrientationChange(event
|
|
21
|
+
handleOrientationChange(event?: OrientationEventI): void;
|
|
9
22
|
addOrientationChangeListener(): void;
|
|
10
23
|
removeOrientationChangeListener(): void;
|
|
11
24
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import DefaultEventEmitter from"@claspo/common/DefaultEventEmitter";import{detectOrientation}from"@claspo/common/utils/orientationUtils";import{isIOS}from"@claspo/common/utils/deviceUtils";import{DocumentModelUpdateType}from"../../document-model/
|
|
1
|
+
import DefaultEventEmitter from"@claspo/common/DefaultEventEmitter";import{detectOrientation}from"@claspo/common/utils/orientationUtils";import{isIOS}from"@claspo/common/utils/deviceUtils";import{DocumentModelUpdateType}from"../../document-model/DocumentModelService";export default class MobileDeviceOrientationListener extends DefaultEventEmitter{constructor(e,t){var n;super(),this.documentModel=e,this._orientation=null!==(n=t.config.defaultOrientation)&&void 0!==n?n:detectOrientation(),this.documentModel.on(DocumentModelUpdateType.ENVIRONMENT_UPDATE,e=>{e.orientation&&(this._orientation=e.orientation,this.emit(MobileDeviceOrientationListener.changeEventName,this._orientation))}),this.handleOrientationChangeBound=this.handleOrientationChange.bind(this),this.addOrientationChangeListener()}isPortrait(){return"PORTRAIT"===this._orientation}handleOrientationChange(e){var t,n;this._orientation=null!==(n=null===(t=null==e?void 0:e.detail)||void 0===t?void 0:t.orientation)&&void 0!==n?n:detectOrientation(),this.emit(MobileDeviceOrientationListener.changeEventName,this._orientation)}addOrientationChangeListener(){!isIOS()&&window.screen.orientation?window.screen.orientation.addEventListener("change",this.handleOrientationChangeBound):"orientation"in window&&window.addEventListener("orientationchange",this.handleOrientationChangeBound)}removeOrientationChangeListener(){!isIOS()&&window.screen.orientation?window.screen.orientation.removeEventListener("change",this.handleOrientationChangeBound):"orientation"in window&&window.removeEventListener("orientationchange",this.handleOrientationChangeBound)}destroy(){super.destroy(),this.removeOrientationChangeListener()}}MobileDeviceOrientationListener.changeEventName="CHANGE";
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import Counter from "./Counter";
|
|
2
|
+
import DefaultEventEmitter from '@claspo/common/DefaultEventEmitter';
|
|
3
|
+
export interface ResourceCountersI {
|
|
4
|
+
pending: Counter;
|
|
5
|
+
}
|
|
1
6
|
export default class ComponentResourceManager {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
pending: Counter;
|
|
8
|
-
};
|
|
7
|
+
componentId: string;
|
|
8
|
+
systemEventEmitter: DefaultEventEmitter;
|
|
9
|
+
isStaticEntryModule: boolean;
|
|
10
|
+
counters: ResourceCountersI;
|
|
11
|
+
constructor(componentId: string, systemEventEmitter: DefaultEventEmitter, isStaticEntryModule: boolean);
|
|
9
12
|
getPending: () => Counter;
|
|
10
|
-
onCounterStateUpdate: (count:
|
|
11
|
-
onResourceLoadFailure: (src:
|
|
13
|
+
onCounterStateUpdate: (count: number) => void;
|
|
14
|
+
onResourceLoadFailure: (src: string) => void;
|
|
12
15
|
}
|
|
13
|
-
import Counter from "./Counter";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
export type CounterUpdateCallbackT = (count: number) => void;
|
|
1
2
|
export default class Counter {
|
|
2
|
-
constructor(onUpdateCb: any);
|
|
3
3
|
_count: number;
|
|
4
|
-
onUpdateCb:
|
|
4
|
+
onUpdateCb: CounterUpdateCallbackT;
|
|
5
|
+
constructor(onUpdateCb: CounterUpdateCallbackT);
|
|
5
6
|
increment(): void;
|
|
6
7
|
decrement(): void;
|
|
7
8
|
count(): number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default class ViewResourcesManager {
|
|
2
|
-
constructor(systemEventEmitter: any);
|
|
3
2
|
systemEventEmitter: any;
|
|
4
|
-
componentResourcesMap:
|
|
3
|
+
componentResourcesMap: any;
|
|
4
|
+
constructor(systemEventEmitter: any);
|
|
5
5
|
registerComponent(id: any, componentResourceManager: any): void;
|
|
6
6
|
_onComponentResourcesLoaded: (componentId: any) => void;
|
|
7
7
|
viewHasPendingResources(): boolean;
|
package/sdk/ColorUtils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export function
|
|
4
|
-
export function
|
|
5
|
-
export function
|
|
6
|
-
export
|
|
7
|
-
export
|
|
1
|
+
export declare const whiteColor = "rgb(255, 255, 255)";
|
|
2
|
+
export declare const blackColor = "rgb(0, 0, 0)";
|
|
3
|
+
export declare function changeAlpha(color: string, value: number): string;
|
|
4
|
+
export declare function getAlpha(color: string): number;
|
|
5
|
+
export declare function lighten(color: string, value: number): string;
|
|
6
|
+
export declare function darken(color: string, value: number): string;
|
|
7
|
+
export declare function getContrastRatio(color1: string, color2: string): number;
|
package/sdk/ComponentType.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
declare const ComponentType: {
|
|
2
|
+
CONTAINER: string;
|
|
3
|
+
TEXT: string;
|
|
4
|
+
INPUT: string;
|
|
5
|
+
BUTTON: string;
|
|
6
|
+
IMAGE: string;
|
|
7
|
+
VIDEO: string;
|
|
8
|
+
COLUMN: string;
|
|
9
|
+
};
|
|
1
10
|
export default ComponentType;
|
|
2
|
-
declare namespace ComponentType {
|
|
3
|
-
const CONTAINER: string;
|
|
4
|
-
const TEXT: string;
|
|
5
|
-
const INPUT: string;
|
|
6
|
-
const BUTTON: string;
|
|
7
|
-
const IMAGE: string;
|
|
8
|
-
const VIDEO: string;
|
|
9
|
-
const COLUMN: string;
|
|
10
|
-
}
|
package/sdk/FormUtils.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export function setValidStyles(inputElement:
|
|
2
|
-
export function setInvalidStyle(inputElement:
|
|
3
|
-
export function setPendingStyle(inputElement:
|
|
1
|
+
export declare function setValidStyles(inputElement: HTMLElement, tooltipElement: HTMLElement | null): void;
|
|
2
|
+
export declare function setInvalidStyle(inputElement: HTMLElement, tooltipElement: HTMLElement | null, error: string, htmlDocumentObject?: Document): void;
|
|
3
|
+
export declare function setPendingStyle(inputElement: HTMLElement, tooltipElement: HTMLElement | null): void;
|
package/sdk/FormUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addTooltipStyles,createTooltipText,removeTooltipStyles,setTooltipPosition}from"./TooltipUtils";export function setValidStyles(t,i){t.classList.remove("invalid"),i.style.visibility="hidden"}export function setInvalidStyle(t,i,e,o){
|
|
1
|
+
import{addTooltipStyles,createTooltipText,removeTooltipStyles,setTooltipPosition}from"./TooltipUtils";export function setValidStyles(t,i){t.classList.remove("invalid"),i&&(i.style.visibility="hidden")}export function setInvalidStyle(t,i,e,o){o=o||document;let l=null;t.classList.add("invalid"),i&&(i.style.visibility="visible");const s=()=>{addTooltipStyles(o),l=createTooltipText(e),o.body.append(l),l.style.visibility="visible",setTooltipPosition({triggerElement:i,tooltipElement:l,htmlDocumentObject:o})},n=()=>{l&&(l.remove(),removeTooltipStyles(o))};i&&(i.onmouseenter=s,i.onmouseleave=n)}export function setPendingStyle(t,i){i&&(i.style.visibility="hidden"),t.classList.contains("invalid")&&t.classList.remove("invalid")}
|
package/sdk/HtmlStyleUtils.d.ts
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { PlatformEnvT } from './WcElement';
|
|
2
|
+
import { ClBaseComponentPropsI } from '@claspo/common/document/Document.interface';
|
|
3
|
+
export interface LabelParamsI {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
position?: 'TOP' | 'LEFT';
|
|
6
|
+
margin?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface PaddingsI {
|
|
9
|
+
top?: number;
|
|
10
|
+
right?: number;
|
|
11
|
+
bottom?: number;
|
|
12
|
+
left?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ResizeTextParamsI {
|
|
15
|
+
childElement: HTMLElement;
|
|
16
|
+
parentElement: HTMLElement;
|
|
17
|
+
paddings?: PaddingsI;
|
|
18
|
+
allowMultiline?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function setStylesToElement(element: HTMLElement, style: Record<string, string>): void;
|
|
21
|
+
export declare function getStylesFromElement(element: HTMLElement, properties: string[]): Record<string, string>;
|
|
22
|
+
export declare function getLabelParamsFromProps(props: ClBaseComponentPropsI, env: PlatformEnvT): LabelParamsI | undefined;
|
|
23
|
+
export declare function applyInputLabelStyles(props: ClBaseComponentPropsI, env: PlatformEnvT, rootElement: Element | ShadowRoot, selector: string): void;
|
|
24
|
+
export declare function resizeElementTextToFitContainer(params: ResizeTextParamsI): void;
|
|
25
|
+
export declare function resizeElementTextToFitContainer(childElement: HTMLElement, parentElement: HTMLElement, paddings?: PaddingsI): void;
|
|
26
|
+
export declare function setInputHostSize(props: ClBaseComponentPropsI, env: PlatformEnvT, hostElement: HTMLElement, inputElement: HTMLElement, labelElement: HTMLElement | null): void;
|
|
27
|
+
export declare function setFocusOutline(element: HTMLElement | null, elementToApplyVariable?: HTMLElement): string | null;
|
package/sdk/HtmlStyleUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{changeAlpha}from"./ColorUtils";import insertHtmlIntoElement from"@claspo/common/dom/insertHtmlIntoElement";export function setStylesToElement(t,e){Object.keys(e).forEach(l=>{t.style[l]=e[l]})}export function getStylesFromElement(t,e){const l=window.getComputedStyle(t);return e.reduce((t,e)=>(t[e]=l.getPropertyValue(e),t),{})}export function getLabelParamsFromProps(t,e){var l,o;let n;return t.styles&&(n=null===(l=t.styles.find(t=>"label"===t.element))||void 0===l?void 0:l.params),t.adaptiveStyles&&!n&&(n=null===(o=t.adaptiveStyles[e].find(t=>"label"===t.element))||void 0===o?void 0:o.params),n}export function applyInputLabelStyles(t,e,l,o){const
|
|
1
|
+
import{changeAlpha}from"./ColorUtils";import insertHtmlIntoElement from"@claspo/common/dom/insertHtmlIntoElement";export function setStylesToElement(t,e){Object.keys(e).forEach(l=>{t.style[l]=e[l]})}export function getStylesFromElement(t,e){const l=window.getComputedStyle(t);return e.reduce((t,e)=>(t[e]=l.getPropertyValue(e),t),{})}export function getLabelParamsFromProps(t,e){var l,o;let n;return t.styles&&(n=null===(l=t.styles.find(t=>"label"===t.element))||void 0===l?void 0:l.params),t.adaptiveStyles&&!n&&(n=null===(o=t.adaptiveStyles[e].find(t=>"label"===t.element))||void 0===o?void 0:o.params),n}export function applyInputLabelStyles(t,e,l,o){var n;const i=l.querySelector(o),r=getLabelParamsFromProps(t,e);if(!r)return;const s=l.querySelector(".label");s&&(insertHtmlIntoElement({element:s,html:(null===(n=t.content)||void 0===n?void 0:n.label)||""}),"TOP"===r.position?(i.style.flexDirection="column",i.style.alignItems="unset",setStylesToElement(s,{marginRight:"0",marginBottom:`${r.margin}px`})):(i.style.flexDirection="row",i.style.alignItems="center",setStylesToElement(s,{marginRight:`${r.margin}px`,marginBottom:"0"})),r.enabled?s.style.display="":s.style.display="none")}export function resizeElementTextToFitContainer(t,e,l){let o,n,i,r;if(1===arguments.length&&"object"==typeof t&&"childElement"in t){const e=t;o=e.childElement,n=e.parentElement,i=e.paddings,r=e.allowMultiline}else o=t,n=e,i=l;if(r){let t=120,e=!1;for(;!e&&t>12;)t--,o.style.fontSize=`${t}px`,o.style.lineHeight=`${t}px`,e=checkIfTextFitting(o,n,i);return}let s=12,a=!1;for(;!a&&s<120;)s++,o.style.fontSize=`${s}px`,o.style.lineHeight=`${s}px`,a=getIsOverflown(o,n,i);a&&(s--,o.style.fontSize=`${s}px`,o.style.lineHeight=`${s}px`)}function checkIfTextFitting(t,e,{top:l=0,right:o=0,bottom:n=0,left:i=0}={top:0,right:0,bottom:0,left:0}){return t.offsetWidth<=e.clientWidth-(i+o)&&t.offsetHeight<=e.clientHeight-(l+n)}function getIsOverflown(t,e,{top:l=0,right:o=0,bottom:n=0,left:i=0}={top:0,right:0,bottom:0,left:0}){return t.offsetWidth>e.clientWidth-(i+o)||t.offsetHeight>e.clientHeight-(l+n)}function getInputStylesWithSizeFromProps(t,e){var l;let o;if(t.styles){const e=null===(l=t.styles.find(t=>"input"===t.element))||void 0===l?void 0:l.styleAttributes;(null==e?void 0:e.width)&&(o=e)}if(t.adaptiveStyles&&!o){const l=t.adaptiveStyles[e].find(t=>"input"===t.element),n=null==l?void 0:l.styleAttributes;(null==n?void 0:n.width)&&(o=n)}return o}export function setInputHostSize(t,e,l,o,n){const i=getInputStylesWithSizeFromProps(t,e);if(!i)return;const r=getLabelParamsFromProps(t,e),s=n&&r&&r.enabled&&"TOP"===r.position?n.getBoundingClientRect().height+(r.margin||0):0;i.width&&(i.width.includes("100%")?(o.style.width="100%",l.style.width=i.width):l.style.width="auto"),i.height&&(i.height.includes("100%")?(o.style.height="100%",l.style.height=i.height):l.style.height=`${parseFloat(i.height)+s}px`)}export function setFocusOutline(t,e){let l=null;const o=e||t,n=["transparent","initial"];return t?(t.style.borderColor&&!n.includes(t.style.borderColor)&&(parseFloat(t.style.borderWidth)||parseFloat(t.style.borderBottomWidth))&&(l=setElementOutlineData(o,t,"borderColor")),!l&&t.style.getPropertyValue("--borderBottomColor")&&!n.includes(t.style.getPropertyValue("--borderBottomColor"))&&parseFloat(t.style.getPropertyValue("--borderBottomWidth"))&&(l=setElementOutlineData(o,t,"--borderBottomColor")),l||!t.style.backgroundColor||n.includes(t.style.backgroundColor)||(l=setElementOutlineData(o,t,"backgroundColor")),l||!t.style.color||n.includes(t.style.color)||(l=setElementOutlineData(o,t,"color")),l||(o.classList.remove("focus-outline-defined"),null)):null}function setElementOutlineData(t,e,l){const o=parseColorValue(e,l);if(o){const e=changeAlpha(o,.5);return t.classList.add("focus-outline-defined"),t.style.setProperty("--clFocusOutline",`3px solid ${e}`),e}return null}function parseColorValue(t,e){const l=getComputedStyle(t)[e]||t.style.getPropertyValue(e);if(l&&l.includes("rgb")&&(!(l.split("rgb").length>2)||l.includes("#")))return l}
|
package/sdk/ModelStyleUtils.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export function
|
|
4
|
-
export function
|
|
5
|
-
export function
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export function applySharedClasses(elementModel:
|
|
9
|
-
export function getPlaceholderColor(props:
|
|
1
|
+
import { PlatformEnvT } from './WcElement';
|
|
2
|
+
import { BaseComponentAdaptiveStylesI, ClBaseComponentElementParamsI, ClComponentStyleAttributesI, ClDocumentSharedI } from '@claspo/common/document/Document.interface';
|
|
3
|
+
export declare function getAdaptiveStylesForPlatform(adaptiveStyles: BaseComponentAdaptiveStylesI | undefined, platform: PlatformEnvT, element: string): ClBaseComponentElementParamsI | undefined;
|
|
4
|
+
export declare function cloneAdaptiveStyles(adaptiveStyles?: ClBaseComponentElementParamsI[]): ClBaseComponentElementParamsI[];
|
|
5
|
+
export declare function replaceStyleAttributes(adaptiveStyles: BaseComponentAdaptiveStylesI, platform: PlatformEnvT, element: string, styles?: ClComponentStyleAttributesI): BaseComponentAdaptiveStylesI;
|
|
6
|
+
export declare function patchStyleAttributes(adaptiveStyles: BaseComponentAdaptiveStylesI, platform: PlatformEnvT, element: string, styles?: ClComponentStyleAttributesI): BaseComponentAdaptiveStylesI;
|
|
7
|
+
export declare function cloneToAllPlatforms(value: ClBaseComponentElementParamsI[]): BaseComponentAdaptiveStylesI;
|
|
8
|
+
export declare function applySharedClasses(elementModel: ClBaseComponentElementParamsI, shared: ClDocumentSharedI): ClBaseComponentElementParamsI;
|
|
9
|
+
export declare function getPlaceholderColor(props: {
|
|
10
|
+
adaptiveStyles: BaseComponentAdaptiveStylesI;
|
|
11
|
+
}, env: PlatformEnvT, shared: ClDocumentSharedI): string;
|
package/sdk/ModelStyleUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PLATFORMS}from"../wc-renderer/utils/platforms";import{RenderConstants}from"../renderer/RenderConstants";export function getAdaptiveStylesForPlatform(t,e,s){var i;return null===(i=t[e])||void 0===i?void 0:i.find(t=>t.element===s)}export function cloneAdaptiveStyles(t=[]){return t.map(t=>Object.assign(Object.assign({},t),{styleAttributes:Object.assign({},t.styleAttributes)}))}export function replaceStyleAttributes(t,e,s,i={}){return Object.assign(Object.assign({},t),{[e]:t[e].map(t=>t.element===s?Object.assign(Object.assign({},t),{styleAttributes:Object.assign({},i)}):t)})}export function patchStyleAttributes(t,e,s,i={}){return Object.assign(Object.assign({},t),{[e]:t[e].map(t=>t.element===s?Object.assign(Object.assign({},t),{styleAttributes:Object.assign(Object.assign({},t.styleAttributes),i)}):t)})}export function cloneToAllPlatforms(t){return Object.values(PLATFORMS).reduce((e,s)=>Object.assign(e,{[s]:cloneAdaptiveStyles(t)}),{
|
|
1
|
+
import{PLATFORMS}from"../wc-renderer/utils/platforms";import{RenderConstants}from"../renderer/RenderConstants";export function getAdaptiveStylesForPlatform(t,e,s){var i;return null===(i=null==t?void 0:t[e])||void 0===i?void 0:i.find(t=>t.element===s)}export function cloneAdaptiveStyles(t=[]){return t.map(t=>Object.assign(Object.assign({},t),{styleAttributes:Object.assign({},t.styleAttributes)}))}export function replaceStyleAttributes(t,e,s,i={}){return Object.assign(Object.assign({},t),{[e]:t[e].map(t=>t.element===s?Object.assign(Object.assign({},t),{styleAttributes:Object.assign({},i)}):t)})}export function patchStyleAttributes(t,e,s,i={}){return Object.assign(Object.assign({},t),{[e]:t[e].map(t=>t.element===s?Object.assign(Object.assign({},t),{styleAttributes:Object.assign(Object.assign({},t.styleAttributes),i)}):t)})}export function cloneToAllPlatforms(t){return Object.values(PLATFORMS).reduce((e,s)=>Object.assign(e,{[s]:cloneAdaptiveStyles(t)}),{desktop:[],mobile:[]})}export function applySharedClasses(t,e){let s=t;return(s.classes||"").split(" ").filter(t=>t.startsWith(RenderConstants.SYSTEM_CLASS_PREFIX)).forEach(t=>{var i;let l=null===(i=e.textClasses)||void 0===i?void 0:i[t];l&&(l.styleAttributes.fontFamily||(l.isHeader&&e.headerFontFamily&&(l=Object.assign(Object.assign({},l),{styleAttributes:Object.assign(Object.assign({},l.styleAttributes),{fontFamily:e.headerFontFamily})})),!l.isHeader&&e.textFontFamily&&(l=Object.assign(Object.assign({},l),{styleAttributes:Object.assign(Object.assign({},l.styleAttributes),{fontFamily:e.textFontFamily})}))),s=Object.assign(Object.assign({},s),{styleAttributes:Object.assign(Object.assign({},s.styleAttributes),l.styleAttributes),placeholderStyleAttributes:Object.assign(Object.assign({},s.placeholderStyleAttributes),l.placeholderStyleAttributes)}))}),s.styleAttributes.fontFamily||(s=Object.assign(Object.assign({},s),{styleAttributes:Object.assign(Object.assign({},s.styleAttributes),{fontFamily:e.textFontFamily})})),s}export function getPlaceholderColor(t,e,s){var i;let l="rgb(0, 0, 0)";const r=t.adaptiveStyles[e].find(t=>"input"===t.element);if(!r)return l;if(r.placeholderStyleAttributes&&r.placeholderStyleAttributes.color)return r.placeholderStyleAttributes.color;const n=(r.classes||"").split(" ").filter(t=>t.startsWith(RenderConstants.SYSTEM_CLASS_PREFIX));if(!n.length)return l;let a=null===(i=s.textClasses)||void 0===i?void 0:i[n[0]];return a&&a.placeholderStyleAttributes&&a.placeholderStyleAttributes.color?a.placeholderStyleAttributes.color:l}
|
package/sdk/OverlayUtils.d.ts
CHANGED
|
@@ -1,28 +1,44 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
export type OverlayPositionT = 'top' | 'bottom' | 'left' | 'right' | 'undefined';
|
|
2
|
+
export interface MenuOverlayParamsI {
|
|
3
|
+
triggerElement: HTMLElement;
|
|
4
|
+
overlayStyles: string;
|
|
5
|
+
createOverlayContent: (backdrop: HTMLElement, overlayContent: HTMLElement) => void;
|
|
6
|
+
overlayWidth?: number;
|
|
7
|
+
overlayHeight?: number;
|
|
8
|
+
offset?: number;
|
|
9
|
+
onDestroy?: () => void;
|
|
10
|
+
positionByDefault?: OverlayPositionT;
|
|
11
|
+
isHorizontallyCentered?: boolean;
|
|
12
|
+
isBackdropDisabledOnUI?: boolean;
|
|
13
|
+
htmlDocumentObject?: Document;
|
|
14
|
+
}
|
|
15
|
+
export interface MenuOverlayResultI {
|
|
16
|
+
backdrop: HTMLElement;
|
|
17
|
+
overlay: HTMLElement;
|
|
18
|
+
}
|
|
19
|
+
export interface OverlayPlacementDataI {
|
|
20
|
+
coordinates: Record<string, string>;
|
|
21
|
+
position: OverlayPositionT;
|
|
22
|
+
}
|
|
23
|
+
export interface HorizontalOffsetDataI {
|
|
24
|
+
horizontalOffset: number;
|
|
25
|
+
contentWidth: number;
|
|
26
|
+
availableSpaceToTheLeftSideOfTheTrigger: number;
|
|
27
|
+
availableSpaceToTheRightSideOfTheTrigger: number;
|
|
28
|
+
}
|
|
29
|
+
export interface VerticalOffsetDataI {
|
|
30
|
+
verticalOffset: number;
|
|
31
|
+
contentHeight: number;
|
|
32
|
+
availableSpaceAboveTriggerElem: number;
|
|
33
|
+
availableSpaceBelowTriggerElem: number;
|
|
34
|
+
}
|
|
35
|
+
export interface OverlayPositionDataI extends HorizontalOffsetDataI, VerticalOffsetDataI {
|
|
36
|
+
position: OverlayPositionT;
|
|
37
|
+
}
|
|
38
|
+
export declare function getMenuOverlayContentClassName(): string;
|
|
39
|
+
export declare function createBackdrop(isBackdropDisabledOnUI?: boolean): HTMLDivElement;
|
|
40
|
+
export declare function createMenuOverlay(params: MenuOverlayParamsI): MenuOverlayResultI;
|
|
41
|
+
export declare function getOverlayMenuPlacementData(triggerElement: HTMLElement, overlayContent: HTMLElement, offset: number, positionByDefault?: OverlayPositionT, isHorizontallyCentered?: boolean, htmlDocumentObject?: Document): OverlayPlacementDataI;
|
|
42
|
+
export declare function getOverlayBackgroundColor(backgroundColor: string, textColor: string): string;
|
|
43
|
+
export declare function getOverlayBorderRadius(triggerHeight: string | number, overlayStyles: CSSStyleDeclaration): number;
|
|
44
|
+
export declare function getMenuItemHoverColor(backgroundColor: string): string;
|
package/sdk/OverlayUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{applySysClassPrefix}from"../renderer/RenderConstants";import ViewportSize from"@claspo/common/dom/ViewportSize";import nullishCoalescingOperator from"@claspo/common/utils/NullishCoalescingOperator";import{blackColor,changeAlpha,darken,getAlpha,getContrastRatio,lighten,whiteColor}from"./ColorUtils";import{setStylesToElement}from"./HtmlStyleUtils";import insertHtmlIntoElement from"@claspo/common/dom/insertHtmlIntoElement";export function getMenuOverlayContentClassName(){return applySysClassPrefix("overlay-menu-content")}export function createBackdrop(e){const t=document.createElement("div");return t.style.position="fixed",t.style.zIndex=String(Number.MAX_SAFE_INTEGER-1),t.style.top="0",t.style.left="0",t.style.width=e?"0px":"100%",t.style.height=e?"0px":"100%",t}export function createMenuOverlay(e){const{triggerElement:t,overlayStyles:o,createOverlayContent:i,overlayWidth:n,overlayHeight:r,offset:a,onDestroy:l,positionByDefault:s,isHorizontallyCentered:g,isBackdropDisabledOnUI:p}=e,c=e.htmlDocumentObject||document,m=createBackdrop(p),h=document.createElement("div");h.style.position="fixed",h.style.display="block",h.style.zIndex=String(Number.MAX_SAFE_INTEGER),n&&(h.style.width=`${n}px`),r&&(h.style.height=`${r}px`);const d=h.attachShadow({mode:"open"}),u=document.createElement("style");insertHtmlIntoElement({element:u,html:o}),d.append(u);const f=document.createElement("div");f.classList.add(getMenuOverlayContentClassName()),c.body.append(m),c.body.append(h),d.append(f),i(m,f);(()=>{const e=getOverlayMenuPlacementData(t,f,nullishCoalescingOperator(a,5),s,g,c);setPositionAttr(f,e.position),setStylesToElement(h,e.coordinates)})(),h.addEventListener("click",e=>{e.stopPropagation(),e.preventDefault()});const v=e=>{m.remove(),h.remove(),l&&l(),window.removeEventListener("keyup",e,!0)},T=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopImmediatePropagation(),v(T))};return m.addEventListener("click",()=>v(T)),window.addEventListener("keyup",T,!0),{backdrop:m,overlay:h}}export function getOverlayMenuPlacementData(e,t,o,i,n,r){const a=calcOverlayMenuPosition(e,t,o,i,r=r||document);return updateOverlayContentMargins(a,t),{coordinates:getOverlayMenuPosition(a,e.getBoundingClientRect(),t.getBoundingClientRect(),n,r),position:a.position}}function calcOverlayMenuPosition(e,t,o,i,n){const r=getOverlayMenuHorizontalOffset(e,t,o,n),a=getOverlayMenuVerticalOffset(e,t,o,n);let l="undefined";const s={bottom:a.availableSpaceBelowTriggerElem>=a.contentHeight,top:a.availableSpaceAboveTriggerElem>=a.contentHeight,right:r.availableSpaceToTheRightSideOfTheTrigger>=r.contentWidth,left:r.availableSpaceToTheLeftSideOfTheTrigger>=r.contentWidth};if(s.top?l="top":s.bottom?l="bottom":s.right?l="right":s.left&&(l="left"),s[i]&&(l=i),"undefined"===l){const e=Math.max(a.availableSpaceBelowTriggerElem,a.availableSpaceAboveTriggerElem,r.availableSpaceToTheRightSideOfTheTrigger,r.availableSpaceToTheLeftSideOfTheTrigger);e===a.availableSpaceBelowTriggerElem?l="bottom":e===a.availableSpaceAboveTriggerElem?l="top":e===r.availableSpaceToTheRightSideOfTheTrigger?l="right":e===r.availableSpaceToTheLeftSideOfTheTrigger&&(l="left")}return Object.assign(Object.assign(Object.assign({},a),r),{position:l})}function getOverlayMenuHorizontalOffset(e,t,o,i){const n=ViewportSize.width(i),{right:r}=e.getBoundingClientRect(),a=n-o-r-ViewportSize.scrollbarWidth(i);return{horizontalOffset:o,contentWidth:getOverlayMenuDimensions(t).width,availableSpaceToTheLeftSideOfTheTrigger:r-o,availableSpaceToTheRightSideOfTheTrigger:a}}function getOverlayMenuDimensions(e){const{width:t,height:o}=e.getBoundingClientRect(),{marginBottom:i,marginTop:n,marginLeft:r,marginRight:a}=window.getComputedStyle(e);return{width:t+parseInt(r,10)+parseInt(a,10),height:o+parseInt(n,10)+parseInt(i,10)}}function getOverlayMenuVerticalOffset(e,t,o,i){const n=ViewportSize.height(i),{top:r,bottom:a}=e.getBoundingClientRect();return{verticalOffset:o,contentHeight:getOverlayMenuDimensions(t).height,availableSpaceAboveTriggerElem:r-o,availableSpaceBelowTriggerElem:n-a-o}}function getOverlayMenuPosition(e,t,o,i,n){switch(e.position){case"top":return{left:`${getLeftPositionTBForOverlayMenu(t,o,i,n)}px`,top:e.availableSpaceAboveTriggerElem-e.contentHeight-e.verticalOffset+"px"};case"bottom":return{left:`${getLeftPositionTBForOverlayMenu(t,o,i,n)}px`,bottom:e.availableSpaceBelowTriggerElem-e.contentHeight-e.verticalOffset+"px"};case"left":return{left:e.availableSpaceToTheLeftSideOfTheTrigger-t.width-e.contentWidth-e.horizontalOffset+"px",top:`${getTopPositionLRForOverlayMenu(t,e)}px`};case"right":return{right:e.availableSpaceToTheRightSideOfTheTrigger-e.contentWidth-e.horizontalOffset+"px",top:`${getTopPositionLRForOverlayMenu(t,e)}px`}}}function getLeftPositionTBForOverlayMenu(e,t,o,i){let n=o?e.x+e.width/2-t.width/2:e.x;return n<0&&(n=0),n+t.width>ViewportSize.width(i)&&(n-=n+t.width-ViewportSize.width(i)),n}function getTopPositionLRForOverlayMenu(e,t){let o=t.availableSpaceAboveTriggerElem;return t.contentHeight>t.availableSpaceBelowTriggerElem&&(o-=t.contentHeight-t.availableSpaceBelowTriggerElem),o}function setPositionAttr(e,t){e.setAttribute("cl-overlay-position",t)}export function getOverlayBackgroundColor(e,t){if(e.startsWith("transparent")||e.startsWith("none")||!e.startsWith("rgb")||1!==getAlpha(e.slice(0,e.match(/\)/).index+1))){return getContrastRatio(t,whiteColor)>getContrastRatio(t,blackColor)?whiteColor:blackColor}return e}export function getOverlayBorderRadius(e,t){return Math.min(Math.floor(parseInt(e)/2),parseInt(t
|
|
1
|
+
import{applySysClassPrefix}from"../renderer/RenderConstants";import ViewportSize from"@claspo/common/dom/ViewportSize";import nullishCoalescingOperator from"@claspo/common/utils/NullishCoalescingOperator";import{blackColor,changeAlpha,darken,getAlpha,getContrastRatio,lighten,whiteColor}from"./ColorUtils";import{setStylesToElement}from"./HtmlStyleUtils";import insertHtmlIntoElement from"@claspo/common/dom/insertHtmlIntoElement";export function getMenuOverlayContentClassName(){return applySysClassPrefix("overlay-menu-content")}export function createBackdrop(e){const t=document.createElement("div");return t.style.position="fixed",t.style.zIndex=String(Number.MAX_SAFE_INTEGER-1),t.style.top="0",t.style.left="0",t.style.width=e?"0px":"100%",t.style.height=e?"0px":"100%",t}export function createMenuOverlay(e){const{triggerElement:t,overlayStyles:o,createOverlayContent:i,overlayWidth:n,overlayHeight:r,offset:a,onDestroy:l,positionByDefault:s,isHorizontallyCentered:g,isBackdropDisabledOnUI:p}=e,c=e.htmlDocumentObject||document,m=createBackdrop(p),h=document.createElement("div");h.style.position="fixed",h.style.display="block",h.style.zIndex=String(Number.MAX_SAFE_INTEGER),n&&(h.style.width=`${n}px`),r&&(h.style.height=`${r}px`);const d=h.attachShadow({mode:"open"}),u=document.createElement("style");insertHtmlIntoElement({element:u,html:o}),d.append(u);const f=document.createElement("div");f.classList.add(getMenuOverlayContentClassName()),c.body.append(m),c.body.append(h),d.append(f),i(m,f);(()=>{const e=getOverlayMenuPlacementData(t,f,nullishCoalescingOperator(a,5),s,g,c);setPositionAttr(f,e.position),setStylesToElement(h,e.coordinates)})(),h.addEventListener("click",e=>{e.stopPropagation(),e.preventDefault()});const v=e=>{m.remove(),h.remove(),l&&l(),window.removeEventListener("keyup",e,!0)},T=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopImmediatePropagation(),v(T))};return m.addEventListener("click",()=>v(T)),window.addEventListener("keyup",T,!0),{backdrop:m,overlay:h}}export function getOverlayMenuPlacementData(e,t,o,i,n,r){const a=calcOverlayMenuPosition(e,t,o,i,r=r||document);return updateOverlayContentMargins(a,t),{coordinates:getOverlayMenuPosition(a,e.getBoundingClientRect(),t.getBoundingClientRect(),n,r),position:a.position}}function calcOverlayMenuPosition(e,t,o,i,n){const r=getOverlayMenuHorizontalOffset(e,t,o,n),a=getOverlayMenuVerticalOffset(e,t,o,n);let l="undefined";const s={bottom:a.availableSpaceBelowTriggerElem>=a.contentHeight,top:a.availableSpaceAboveTriggerElem>=a.contentHeight,right:r.availableSpaceToTheRightSideOfTheTrigger>=r.contentWidth,left:r.availableSpaceToTheLeftSideOfTheTrigger>=r.contentWidth};if(s.top?l="top":s.bottom?l="bottom":s.right?l="right":s.left&&(l="left"),i&&s[i]&&(l=i),"undefined"===l){const e=Math.max(a.availableSpaceBelowTriggerElem,a.availableSpaceAboveTriggerElem,r.availableSpaceToTheRightSideOfTheTrigger,r.availableSpaceToTheLeftSideOfTheTrigger);e===a.availableSpaceBelowTriggerElem?l="bottom":e===a.availableSpaceAboveTriggerElem?l="top":e===r.availableSpaceToTheRightSideOfTheTrigger?l="right":e===r.availableSpaceToTheLeftSideOfTheTrigger&&(l="left")}return Object.assign(Object.assign(Object.assign({},a),r),{position:l})}function getOverlayMenuHorizontalOffset(e,t,o,i){const n=ViewportSize.width(i),{right:r}=e.getBoundingClientRect(),a=n-o-r-ViewportSize.scrollbarWidth(i);return{horizontalOffset:o,contentWidth:getOverlayMenuDimensions(t).width,availableSpaceToTheLeftSideOfTheTrigger:r-o,availableSpaceToTheRightSideOfTheTrigger:a}}function getOverlayMenuDimensions(e){const{width:t,height:o}=e.getBoundingClientRect(),{marginBottom:i,marginTop:n,marginLeft:r,marginRight:a}=window.getComputedStyle(e);return{width:t+parseInt(r,10)+parseInt(a,10),height:o+parseInt(n,10)+parseInt(i,10)}}function getOverlayMenuVerticalOffset(e,t,o,i){const n=ViewportSize.height(i),{top:r,bottom:a}=e.getBoundingClientRect();return{verticalOffset:o,contentHeight:getOverlayMenuDimensions(t).height,availableSpaceAboveTriggerElem:r-o,availableSpaceBelowTriggerElem:n-a-o}}function getOverlayMenuPosition(e,t,o,i,n){switch(e.position){case"top":return{left:`${getLeftPositionTBForOverlayMenu(t,o,i,n)}px`,top:e.availableSpaceAboveTriggerElem-e.contentHeight-e.verticalOffset+"px"};case"bottom":return{left:`${getLeftPositionTBForOverlayMenu(t,o,i,n)}px`,bottom:e.availableSpaceBelowTriggerElem-e.contentHeight-e.verticalOffset+"px"};case"left":return{left:e.availableSpaceToTheLeftSideOfTheTrigger-t.width-e.contentWidth-e.horizontalOffset+"px",top:`${getTopPositionLRForOverlayMenu(t,e)}px`};case"right":return{right:e.availableSpaceToTheRightSideOfTheTrigger-e.contentWidth-e.horizontalOffset+"px",top:`${getTopPositionLRForOverlayMenu(t,e)}px`}}}function getLeftPositionTBForOverlayMenu(e,t,o,i){let n=o?e.x+e.width/2-t.width/2:e.x;return n<0&&(n=0),n+t.width>ViewportSize.width(i)&&(n-=n+t.width-ViewportSize.width(i)),n}function getTopPositionLRForOverlayMenu(e,t){let o=t.availableSpaceAboveTriggerElem;return t.contentHeight>t.availableSpaceBelowTriggerElem&&(o-=t.contentHeight-t.availableSpaceBelowTriggerElem),o}function setPositionAttr(e,t){e.setAttribute("cl-overlay-position",t)}export function getOverlayBackgroundColor(e,t){if(e.startsWith("transparent")||e.startsWith("none")||!e.startsWith("rgb")||1!==getAlpha(e.slice(0,e.match(/\)/).index+1))){return getContrastRatio(t,whiteColor)>getContrastRatio(t,blackColor)?whiteColor:blackColor}return e}export function getOverlayBorderRadius(e,t){return Math.min(Math.floor(parseInt(String(e))/2),parseInt(t.borderTopLeftRadius),parseInt(t.borderTopRightRadius),parseInt(t.borderBottomLeftRadius),parseInt(t.borderBottomRightRadius))}export function getMenuItemHoverColor(e){const t=getContrastRatio(e,whiteColor),o=getContrastRatio(e,blackColor);let i,n;if(t>o)for(i=whiteColor,n=t;n>5;)i=darken(i,.1),n=getContrastRatio(e,i);else for(i="rgb(10, 10, 10)",n=o;n>5;)i=lighten(i,.1),n=getContrastRatio(e,i);return changeAlpha(i,.2)}function updateOverlayContentMargins(e,t){const{marginBottom:o,marginTop:i}=window.getComputedStyle(t);if("top"===e.position)setStylesToElement(t,{"margin-top":`${parseInt(i,10)+parseInt(o,10)}px`}),setStylesToElement(t,{"margin-bottom":"0px"});else if("bottom"===e.position)setStylesToElement(t,{"margin-bottom":`${parseInt(o,10)+parseInt(i,10)}px`}),setStylesToElement(t,{"margin-top":"0px"});else{const e=(parseInt(o,10)+parseInt(i,10))/2+"px";setStylesToElement(t,{"margin-top":e,"margin-bottom":e})}}
|