@hiver/connector-admin 4.19.0 → 4.19.1-appsEventTracking-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.es.js +8566 -8431
- package/index.umd.js +425 -425
- package/package.json +1 -1
- package/v2/app/connectors/pages/api-view/index.d.ts.map +1 -1
- package/v2/app/connectors/pages/initial-setup/index.d.ts.map +1 -1
- package/v2/app/connectors/pages/settings/auth/index.d.ts.map +1 -1
- package/v2/app/connectors/pages/settings/index.d.ts.map +1 -1
- package/v2/constants/gainsight.d.ts +26 -0
- package/v2/constants/gainsight.d.ts.map +1 -1
- package/v2/hooks/__tests__/use-app-event.test.d.ts +2 -0
- package/v2/hooks/__tests__/use-app-event.test.d.ts.map +1 -0
- package/v2/hooks/use-app-event.d.ts +22 -0
- package/v2/hooks/use-app-event.d.ts.map +1 -0
- package/v2/utils/__tests__/app-event-metadata.test.d.ts +2 -0
- package/v2/utils/__tests__/app-event-metadata.test.d.ts.map +1 -0
- package/v2/utils/__tests__/get-pit-connector-stats.test.d.ts +2 -0
- package/v2/utils/__tests__/get-pit-connector-stats.test.d.ts.map +1 -0
- package/v2/utils/app-event-metadata.d.ts +37 -0
- package/v2/utils/app-event-metadata.d.ts.map +1 -0
- package/v2/utils/index.d.ts +1 -0
- package/v2/utils/index.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/v2/app/connectors/pages/api-view/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/v2/app/connectors/pages/api-view/index.tsx"],"names":[],"mappings":"AAkCA,eAAO,MAAM,OAAO,+CA0GnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/v2/app/connectors/pages/initial-setup/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/v2/app/connectors/pages/initial-setup/index.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,YAAY,+CAmIxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/v2/app/connectors/pages/settings/auth/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/v2/app/connectors/pages/settings/auth/index.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,UAAU,YAAY;IACpB,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,YAAY,sBAAuB,YAAY,4CA8S3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/v2/app/connectors/pages/settings/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/v2/app/connectors/pages/settings/index.tsx"],"names":[],"mappings":"AA+CA,eAAO,MAAM,QAAQ,+CAmKpB,CAAC"}
|
|
@@ -39,6 +39,32 @@ export declare const GAINSIGHTEVENT: {
|
|
|
39
39
|
FIELD_MAP_BUTTON_CLICKED: string;
|
|
40
40
|
FIELD_MAP_CONFIG_SAVED: string;
|
|
41
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* The Apps onboarding funnel. Separate event names rather than one event with a
|
|
44
|
+
* step param, because half of these are outcomes (`*_success` / `*_failure`)
|
|
45
|
+
* which are not page views and cannot be values of a `page` field.
|
|
46
|
+
*
|
|
47
|
+
* Every `*_viewed` event fires when its screen RENDERS, never on the click that
|
|
48
|
+
* navigates there — a click can be followed by a redirect or a failed fetch, and
|
|
49
|
+
* counting it would inflate every step above the one actually reached.
|
|
50
|
+
*/
|
|
51
|
+
export declare const APP_ONBOARDING_EVENTS: {
|
|
52
|
+
/** App overview screen (the api-view surface) rendered. */
|
|
53
|
+
readonly APP_OVERVIEW_VIEWED: "app_overview_viewed";
|
|
54
|
+
/** Marketplace auth screen rendered: /connector/settings/:id without isEdit. */
|
|
55
|
+
readonly MARKETPLACE_AUTH_PAGE_VIEWED: "marketplace_auth_page_viewed";
|
|
56
|
+
/** Inbox + role visibility screen rendered. */
|
|
57
|
+
readonly INITIAL_SETUP_VIEWED: "initial_setup_viewed";
|
|
58
|
+
readonly INITIAL_SETUP_SUCCESS: "initial_setup_success";
|
|
59
|
+
readonly INITIAL_SETUP_FAILURE: "initial_setup_failure";
|
|
60
|
+
/** Auth outcome. Carries setup_context to separate marketplace from installed. */
|
|
61
|
+
readonly AUTHENTICATION_SUCCESS: "authentication_success";
|
|
62
|
+
readonly AUTHENTICATION_FAILURE: "authentication_failure";
|
|
63
|
+
/** Post-install Settings tabs (?isEdit=true). */
|
|
64
|
+
readonly AUTHENTICATION_TAB_VIEWED: "authentication_tab_viewed";
|
|
65
|
+
readonly VISIBILITY_TAB_VIEWED: "visibility_tab_viewed";
|
|
66
|
+
};
|
|
67
|
+
export type AppOnboardingEvent = (typeof APP_ONBOARDING_EVENTS)[keyof typeof APP_ONBOARDING_EVENTS];
|
|
42
68
|
export declare const GAINSIGHT_CONSTANTS: {
|
|
43
69
|
AUTH_PAGE: string;
|
|
44
70
|
DETAILS_PAGE: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gainsight.d.ts","sourceRoot":"","sources":["../../../src/v2/constants/gainsight.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC1B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"gainsight.d.ts","sourceRoot":"","sources":["../../../src/v2/constants/gainsight.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB;IAChC,2DAA2D;;IAE3D,gFAAgF;;IAEhF,+CAA+C;;;;IAI/C,kFAAkF;;;IAGlF,iDAAiD;;;CAGzC,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAEpG,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-app-event.test.d.ts","sourceRoot":"","sources":["../../../../src/v2/hooks/__tests__/use-app-event.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AppOnboardingEvent } from '../constants/gainsight';
|
|
2
|
+
import { AppEventMetadata } from '../utils/app-event-metadata';
|
|
3
|
+
interface IUseAppEventOnViewParams {
|
|
4
|
+
/** Which `*_viewed` event this screen is. */
|
|
5
|
+
event: AppOnboardingEvent;
|
|
6
|
+
/** Metadata from `buildAppEventMetadata`, plus anything page-specific. */
|
|
7
|
+
data?: AppEventMetadata;
|
|
8
|
+
/**
|
|
9
|
+
* False while the screen is not the one actually being shown — still fetching,
|
|
10
|
+
* about to redirect, or a tab that is mounted but hidden. Rules of hooks mean
|
|
11
|
+
* the hook is always called; this gates the emit instead.
|
|
12
|
+
*/
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare const useAppEventOnView: ({ event, data, enabled }: IUseAppEventOnViewParams) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Imperative sender for the outcome events. Returns a stable function, so it is
|
|
18
|
+
* safe in an effect's dependency array.
|
|
19
|
+
*/
|
|
20
|
+
export declare const useAppEventSender: () => (event: AppOnboardingEvent, data?: AppEventMetadata) => void;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=use-app-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-app-event.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/use-app-event.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwCtE,UAAU,wBAAwB;IAChC,6CAA6C;IAC7C,KAAK,EAAE,kBAAkB,CAAC;IAC1B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,6BAAqC,wBAAwB,KAAG,IA+B7F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,gBAQlB,kBAAkB,SAAS,gBAAgB,SAStD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-event-metadata.test.d.ts","sourceRoot":"","sources":["../../../../src/v2/utils/__tests__/app-event-metadata.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pit-connector-stats.test.d.ts","sourceRoot":"","sources":["../../../../src/v2/utils/__tests__/get-pit-connector-stats.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IConnectorDetails } from '../types/connector';
|
|
2
|
+
/**
|
|
3
|
+
* Shared metadata for the Apps onboarding analytics events.
|
|
4
|
+
*
|
|
5
|
+
* Every one of these events answers "which app, in what state" before it answers
|
|
6
|
+
* anything else, so the same block rides on all of them and analysts can group
|
|
7
|
+
* across the funnel without joining back to the connectors collection.
|
|
8
|
+
*
|
|
9
|
+
* Two rules this file exists to enforce:
|
|
10
|
+
*
|
|
11
|
+
* 1. **Allow-list, never spread the row.** `IConnectorDetails` carries
|
|
12
|
+
* `authDetails` — client secrets, tokens, API keys. Spreading a connector into
|
|
13
|
+
* an analytics payload would ship credentials to a third party. Every field
|
|
14
|
+
* below is named on purpose.
|
|
15
|
+
* 2. **Omit what is not known; never fabricate.** A template row has no
|
|
16
|
+
* `isAuthenticated`/`isEnabled` because it is not installed yet, and an absent
|
|
17
|
+
* key is honest where `false` would read as "installed but disabled".
|
|
18
|
+
*/
|
|
19
|
+
export interface IAppEventMetadataInput {
|
|
20
|
+
/** The `:id` in the URL — a template id pre-install, an install id post-install. */
|
|
21
|
+
id?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the page is looking at an installed connector (`?isEdit=true`) rather
|
|
24
|
+
* than a marketplace template. Drives both which id key is used and
|
|
25
|
+
* `setup_context`, the connector-vs-template identifier.
|
|
26
|
+
*/
|
|
27
|
+
isEdit?: boolean;
|
|
28
|
+
/** The connector or template row the page already holds. */
|
|
29
|
+
row?: IConnectorDetails | null;
|
|
30
|
+
/** Install id when the page knows one independently of `:id` (initial setup). */
|
|
31
|
+
connectorId?: string | null;
|
|
32
|
+
/** Overrides `setup_context` for flows where `isEdit` is not the right signal. */
|
|
33
|
+
setupContext?: 'connector' | 'template';
|
|
34
|
+
}
|
|
35
|
+
export type AppEventMetadata = Record<string, string | number | boolean>;
|
|
36
|
+
export declare const buildAppEventMetadata: ({ id, isEdit, row, connectorId, setupContext }: IAppEventMetadataInput) => AppEventMetadata;
|
|
37
|
+
//# sourceMappingURL=app-event-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-event-metadata.d.ts","sourceRoot":"","sources":["../../../src/v2/utils/app-event-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/B,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kFAAkF;IAClF,YAAY,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CACzC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEzE,eAAO,MAAM,qBAAqB,mDAM/B,sBAAsB,KAAG,gBAuB3B,CAAC"}
|
package/v2/utils/index.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ export declare const devLogger: {
|
|
|
53
53
|
export declare const getPITConnectorStats: (connectorsObj: Record<string, IConnectorDetails>) => {
|
|
54
54
|
total_authenticated_apps: number;
|
|
55
55
|
total_enabled_apps: number;
|
|
56
|
+
total_apps_activated: number;
|
|
56
57
|
total_apps_setup: number;
|
|
57
58
|
apps_list: string;
|
|
58
59
|
apps_auth_status: Record<string, boolean>;
|
package/v2/utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAStF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,YAEhE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAQjH;AACD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,sBAAuB,aAAa,2BAAoB,MAAM,YAM5F,CAAC;AAEF,eAAO,MAAM,aAAa,sBAAuB,aAAa,YAK7D,CAAC;AAEF,eAAO,MAAM,YAAY,sBAAuB,aAAa,YACG,CAAC;AAEjE,eAAO,MAAM,0BAA0B,sBAAuB,aAAa,YACP,CAAC;AAErE,eAAO,MAAM,cAAc,WAAY,MAAM,SAAS,MAAM,aAAa,MAAM,SAe9E,CAAC;AAoBF,eAAO,MAAM,QAAQ,aAAoB,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,kBAWtF,CAAC;AAEF,eAAO,MAAM,0BAA0B,oBAAqB,MAAM,EAAE,YAGnE,CAAC;AAEF,eAAO,MAAM,YAAY,oBAAqB,MAAM,EAAE,YAGrD,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,WAIjE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,KAAG,CAAC,EAEhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,MAAM,UAAU;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,KAAG,MAElG,CAAC;AAEF,eAAO,MAAM,4BAA4B,sBACpB,kBAAkB,qBAClB,aAAa,YAMjC,CAAC;AAEF,eAAO,MAAM,WAAW,8BAGrB;IACD,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,KAAG,iBAgBH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SACnB,UAAU,cAAc,MAAM,eAC3B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,SAIrC,CAAC;AAEJ,eAAO,MAAM,SAAS;mBANV,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;oBAA5B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;qBAA5B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;oBAA5B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;CAWvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kBAAmB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAStF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,YAEhE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAQjH;AACD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,sBAAuB,aAAa,2BAAoB,MAAM,YAM5F,CAAC;AAEF,eAAO,MAAM,aAAa,sBAAuB,aAAa,YAK7D,CAAC;AAEF,eAAO,MAAM,YAAY,sBAAuB,aAAa,YACG,CAAC;AAEjE,eAAO,MAAM,0BAA0B,sBAAuB,aAAa,YACP,CAAC;AAErE,eAAO,MAAM,cAAc,WAAY,MAAM,SAAS,MAAM,aAAa,MAAM,SAe9E,CAAC;AAoBF,eAAO,MAAM,QAAQ,aAAoB,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,kBAWtF,CAAC;AAEF,eAAO,MAAM,0BAA0B,oBAAqB,MAAM,EAAE,YAGnE,CAAC;AAEF,eAAO,MAAM,YAAY,oBAAqB,MAAM,EAAE,YAGrD,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,WAIjE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,KAAG,CAAC,EAEhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,MAAM,UAAU;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,KAAG,MAElG,CAAC;AAEF,eAAO,MAAM,4BAA4B,sBACpB,kBAAkB,qBAClB,aAAa,YAMjC,CAAC;AAEF,eAAO,MAAM,WAAW,8BAGrB;IACD,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,KAAG,iBAgBH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SACnB,UAAU,cAAc,MAAM,eAC3B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,SAIrC,CAAC;AAEJ,eAAO,MAAM,SAAS;mBANV,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;oBAA5B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;qBAA5B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;oBAA5B,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;CAWvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kBAAmB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;;;;;;;;;CA6CpF,CAAC"}
|