@sitecore-feaas/clientside 0.4.0-alpha.0 → 0.4.0-alpha.2

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.
@@ -40,9 +40,11 @@ export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPick
40
40
  }
41
41
  render(
42
42
  { placeholder, context, mode, dialog, children, variant }: React.PropsWithChildren<FEAASPickerProps>,
43
- { Picker, React, useLibrary, useSDK }: typeof FEAASPickerImports
43
+ { Picker, React, useContext, EnvironmentContext, useLibrary, useSDK, BYOC }: typeof FEAASPickerImports
44
44
  ) {
45
45
  const [renders, forceRender] = React.useReducer((c) => c + 1, 0)
46
+ const sdk = useSDK()
47
+ const env = useContext(EnvironmentContext)
46
48
  const collections = useLibrary('collections')
47
49
  const components = useLibrary('components')
48
50
  const datasources = useSDK('datasources')
@@ -50,26 +52,35 @@ export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPick
50
52
  // @ts-ignore temporary workaround until we release all environments
51
53
  const rules = library.stylesheets?.first?.rules || library?.stylesheet?.styles
52
54
  const component = components.find((c) => c.id == context?.getAttribute('component'))
53
- const componentName = context?.getAttribute('data-external-id')
54
- const externalComponent = useSDK('externalComponents').find((c) => c.name == componentName)
55
+ const externalComponents = useSDK('externalComponents')
55
56
  var settings = context?.getAttribute('data')
56
57
  if (settings) {
57
58
  try {
58
59
  settings = JSON.parse(settings)
59
60
  } catch (e) {}
60
61
  }
62
+ if (context) {
63
+ var embedDefinition = sdk.ExternalComponent.getDefinition(context)
64
+ var isUnconfigured = embedDefinition && !embedDefinition.getConfiguration(context)
65
+ var externalComponent =
66
+ embedDefinition?.type == 'feaas'
67
+ ? components.find((c) => c.id == context.getAttribute('component'))
68
+ : BYOC?.getComponent(String(context.getAttribute('data-external-id')))
69
+ }
61
70
  return (
62
71
  <Picker
72
+ cdn={env.cdn}
63
73
  rules={rules}
64
74
  collections={collections}
65
75
  themeContext={context}
66
76
  placeholder={placeholder}
67
77
  component={component}
68
78
  embed={externalComponent}
79
+ externalComponents={externalComponents}
69
80
  datasources={datasources}
70
81
  data={settings}
71
82
  versionId={context?.getAttribute('version')}
72
- mode={mode || (component || componentName ? 'context' : null)}
83
+ mode={mode || (isUnconfigured ? 'library' : externalComponent ? 'context' : null)}
73
84
  setAttribute={(context, attribute, value) => {
74
85
  if (attribute == 'data' && value) value = JSON.stringify(value)
75
86
  this.props.setAttribute(context, attribute, value)
package/src/ui/react.tsx CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  parseComponentSource,
13
13
  parseStylesheetSource
14
14
  } from './index.js'
15
- import * as BYOC from '@sitecore/byoc'
15
+ import * as BYOC from '@sitecore/byoc/react'
16
16
  export * from '../headless.js'
17
17
  export { External, FEAASExternalPropsObject, getComponent, linkComponents, registerComponent } from './FEAASExternal.js'
18
18
  export * from './index.js'
@@ -51,7 +51,7 @@ export declare class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof F
51
51
  };
52
52
  load(): Promise<typeof FEAASPickerImports>;
53
53
  connectedCallback(): void;
54
- render({ placeholder, context, mode, dialog, children, variant }: React.PropsWithChildren<FEAASPickerProps>, { Picker, React, useLibrary, useSDK }: typeof FEAASPickerImports): JSX.Element;
54
+ render({ placeholder, context, mode, dialog, children, variant }: React.PropsWithChildren<FEAASPickerProps>, { Picker, React, useContext, EnvironmentContext, useLibrary, useSDK, BYOC }: typeof FEAASPickerImports): JSX.Element;
55
55
  }
56
56
  declare global {
57
57
  namespace JSX {
@@ -1 +1 @@
1
- {"version":3,"file":"FEAASPicker.d.ts","sourceRoot":"","sources":["../../src/ui/FEAASPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,kBAAkB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;uBAY5B,GAAG,EAAE,KAAK,IAAI;;;EAIjD;AACD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAElE,qBAAa,WAAY,SAAQ,YAAY,CAAC,gBAAgB,EAAE,OAAO,kBAAkB,CAAC;IACxF,MAAM,CAAC,kBAAkB,WAAwE;IAEjG,YAAY;;;;;;;;;;;;;;OAEkB;IAE9B,QAAQ;;;;;;;;;;;;;;;IAIR,IAAI;IAGJ,iBAAiB;IAIjB,MAAM,CACJ,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EACpG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,kBAAkB;CA+CnE;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,cAAc,EAAE,OAAO,CAAC,OAAO,kBAAkB,CAAC,CAAA;SACnD;KACF;CACF;AAED,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"FEAASPicker.d.ts","sourceRoot":"","sources":["../../src/ui/FEAASPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,kBAAkB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;uBAY5B,GAAG,EAAE,KAAK,IAAI;;;EAIjD;AACD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAElE,qBAAa,WAAY,SAAQ,YAAY,CAAC,gBAAgB,EAAE,OAAO,kBAAkB,CAAC;IACxF,MAAM,CAAC,kBAAkB,WAAwE;IAEjG,YAAY;;;;;;;;;;;;;;OAEkB;IAE9B,QAAQ;;;;;;;;;;;;;;;IAIR,IAAI;IAGJ,iBAAiB;IAIjB,MAAM,CACJ,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EACpG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,kBAAkB;CA0DzG;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,cAAc,EAAE,OAAO,CAAC,OAAO,kBAAkB,CAAC,CAAA;SACnD;KACF;CACF;AAED,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { HTMLNode, renderHTMLContent } from '../dom/html.js';
3
3
  import { FEAASCDNStylesheetParams, FEAASCDNStylesheetSource, FEAASComponentProps } from './index.js';
4
- import * as BYOC from '@sitecore/byoc';
4
+ import * as BYOC from '@sitecore/byoc/react';
5
5
  export * from '../headless.js';
6
6
  export { External, FEAASExternalPropsObject, getComponent, linkComponents, registerComponent } from './FEAASExternal.js';
7
7
  export * from './index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/ui/react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAoB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE9E,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EAOpB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACxH,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,UAAW,wBAAwB,GAAG,wBAAwB,gBAK9F,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,iBAAwB,wBAAwB,yBAerF,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,eA8C/E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC/G,GAAG,CAAC,EAAE,GAAG,GACR,KAAK,CAAC,SAAS,CA+BjB;AAED,eAAO,MAAM,8BAA8B,4CAAsC,CAAA;AACjF,eAAO,MAAM,uBAAuB,oBAAc,CAAA;AAClD,eAAO,MAAM,iBAAiB,uBAAiB,CAAA;AAC/C,eAAO,MAAM,sBAAsB,8BAAwB,CAAA;AAC3D,eAAO,MAAM,qBAAqB,2BAAqB,CAAA;AACvD,eAAO,MAAM,SAAS,4BAAsB,CAAA;AAC5C,eAAO,MAAM,eAAe,iBA3HkC,wBAAwB,yBA2H9B,CAAA;AACxD,eAAO,MAAM,UAAU,UA1IqB,wBAAwB,GAAG,wBAAwB,gBA0IjD,CAAA"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/ui/react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAoB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE9E,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EAOpB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACxH,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,UAAW,wBAAwB,GAAG,wBAAwB,gBAK9F,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,iBAAwB,wBAAwB,yBAerF,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,eA8C/E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC/G,GAAG,CAAC,EAAE,GAAG,GACR,KAAK,CAAC,SAAS,CA+BjB;AAED,eAAO,MAAM,8BAA8B,4CAAsC,CAAA;AACjF,eAAO,MAAM,uBAAuB,oBAAc,CAAA;AAClD,eAAO,MAAM,iBAAiB,uBAAiB,CAAA;AAC/C,eAAO,MAAM,sBAAsB,8BAAwB,CAAA;AAC3D,eAAO,MAAM,qBAAqB,2BAAqB,CAAA;AACvD,eAAO,MAAM,SAAS,4BAAsB,CAAA;AAC5C,eAAO,MAAM,eAAe,iBA3HkC,wBAAwB,yBA2H9B,CAAA;AACxD,eAAO,MAAM,UAAU,UA1IqB,wBAAwB,GAAG,wBAAwB,gBA0IjD,CAAA"}
@@ -1,13 +0,0 @@
1
- export function kebabCase(str) {
2
- const KEBAB_REGEX = /[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;
3
- return str.replace(KEBAB_REGEX, function (match) {
4
- return '-' + match.toLowerCase();
5
- });
6
- }
7
- export function reverseKebabCase(str) {
8
- const REVERSE_KEBAB_REGEX = /-[a-z\u00E0-\u00F6\u00F8-\u00FE]/g;
9
- return str.replace(REVERSE_KEBAB_REGEX, function (match) {
10
- return match.slice(1).toUpperCase();
11
- });
12
- }
13
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,MAAM,WAAW,GAAG,kCAAkC,CAAA;IACtD,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,KAAK;QAC7C,OAAO,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,mBAAmB,GAAG,mCAAmC,CAAA;IAC/D,OAAO,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,KAAK;QACrD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC"}