@3t-transform/threeteeui 0.1.5 → 0.1.7
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/dist/cjs/app-globals-3a1e7e63.js +5 -0
- package/dist/cjs/css-shim-211819bc.js +6 -0
- package/dist/cjs/dom-9deb26c8.js +75 -0
- package/dist/cjs/index-11cfdabe.js +3297 -0
- package/dist/cjs/{index-906c2757.js → index-451f61dd.js} +3 -102
- package/dist/cjs/loader.cjs.js +19 -4
- package/dist/cjs/shadow-css-bf3843d2.js +389 -0
- package/dist/cjs/{tttx-button_2.cjs.entry.js → tttx-button.cjs.entry.js} +24 -50
- package/dist/cjs/tttx-form.cjs.entry.js +364 -364
- package/dist/cjs/tttx-icon.cjs.entry.js +21 -0
- package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +57 -57
- package/dist/cjs/tttx-list.cjs.entry.js +76 -46
- package/dist/cjs/tttx-loading-spinner.cjs.entry.js +16 -16
- package/dist/cjs/tttx-standalone-input.cjs.entry.js +61 -58
- package/dist/cjs/tttx-toolbar.cjs.entry.js +20 -0
- package/dist/cjs/tttx.cjs.js +117 -9
- package/dist/collection/collection-manifest.json +4 -3
- package/dist/collection/components/atoms/tttx-button/test/tttx-button.e2e.js +9 -0
- package/dist/collection/components/atoms/tttx-button/test/tttx-button.spec.js +83 -0
- package/dist/collection/components/atoms/tttx-button/tttx-button.js +110 -116
- package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +14 -14
- package/dist/collection/components/atoms/tttx-icon/test/tttx-icon.e2e.js +9 -0
- package/dist/collection/components/atoms/tttx-icon/test/tttx-icon.spec.js +16 -0
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.css +4 -0
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.js +62 -62
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +22 -22
- package/dist/collection/components/atoms/tttx-keyvalue-block/test/tttx-keyvalue-block.spec.js +216 -0
- package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.js +107 -107
- package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.js +38 -38
- package/dist/collection/components/atoms/tttx-loading-spinner/Test/tttx-loading-spinner.spec.js +64 -0
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +67 -67
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +17 -17
- package/dist/collection/components/molecules/tttx-form/lib/setErrorState.js +35 -35
- package/dist/collection/components/molecules/tttx-form/lib/setErrorState.spec.js +38 -0
- package/dist/collection/components/molecules/tttx-form/lib/validityCheck.js +58 -58
- package/dist/collection/components/molecules/tttx-form/lib/validityCheck.spec.js +214 -0
- package/dist/collection/components/molecules/tttx-form/test/tttx-form.e2e.js +9 -0
- package/dist/collection/components/molecules/tttx-form/test/tttx-form.spec.js +232 -0
- package/dist/collection/components/molecules/tttx-form/tttx-form.css +32 -3
- package/dist/collection/components/molecules/tttx-form/tttx-form.js +364 -364
- package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +127 -127
- package/dist/collection/components/molecules/tttx-list/test/ttttx-list.spec.e2e.js +26 -0
- package/dist/collection/components/molecules/tttx-list/test/tttx-list.spec.js +183 -0
- package/dist/collection/components/molecules/tttx-list/tttx-list.js +105 -105
- package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +43 -43
- package/dist/collection/components/molecules/tttx-standalone-input/test/tttx-standalone-input.e2e.js +9 -0
- package/dist/collection/components/molecules/tttx-standalone-input/test/tttx-standalone-input.spec.js +219 -0
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.css +32 -3
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +627 -572
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +148 -135
- package/dist/collection/components/molecules/tttx-toolbar/test/tttx-toolbar.test.js +0 -0
- package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.css +30 -0
- package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.js +44 -0
- package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.stories.js +20 -0
- package/dist/collection/components/palette.stories.js +7 -7
- package/dist/collection/docs/gettingstarted-developer.stories.js +5 -5
- package/dist/collection/icons.js +2838 -2838
- package/dist/collection/index.js +1 -1
- package/dist/collection/shared/domsanitiser.options.js +14 -14
- package/dist/collection/shared/test/domsanitiser.options.spec.js +23 -0
- package/dist/components/index.d.ts +1 -9
- package/dist/components/index.js +6 -1
- package/dist/components/tttx-button.js +48 -59
- package/dist/components/tttx-form.js +381 -381
- package/dist/components/tttx-icon2.js +29 -29
- package/dist/components/tttx-keyvalue-block.js +74 -74
- package/dist/components/tttx-list.js +98 -68
- package/dist/components/tttx-loading-spinner.js +33 -33
- package/dist/components/tttx-standalone-input.js +108 -102
- package/dist/components/tttx-toolbar.d.ts +11 -0
- package/dist/components/tttx-toolbar.js +36 -0
- package/dist/esm/app-globals-0f993ce5.js +3 -0
- package/dist/esm/css-shim-9d54a2f2.js +4 -0
- package/dist/esm/dom-6be6f662.js +73 -0
- package/dist/esm/{index-4010ad69.js → index-0350f122.js} +4 -101
- package/dist/esm/index-dbe25028.js +3262 -0
- package/dist/esm/loader.js +19 -4
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/shadow-css-ed4599f8.js +387 -0
- package/dist/esm/{tttx-button_2.entry.js → tttx-button.entry.js} +25 -50
- package/dist/esm/tttx-form.entry.js +364 -364
- package/dist/esm/tttx-icon.entry.js +17 -0
- package/dist/esm/tttx-keyvalue-block.entry.js +57 -57
- package/dist/esm/tttx-list.entry.js +76 -46
- package/dist/esm/tttx-loading-spinner.entry.js +16 -16
- package/dist/esm/tttx-standalone-input.entry.js +61 -58
- package/dist/esm/tttx-toolbar.entry.js +16 -0
- package/dist/esm/tttx.js +117 -6
- package/dist/tttx/app-globals-0f993ce5.js +3 -0
- package/dist/tttx/css-shim-9d54a2f2.js +4 -0
- package/dist/tttx/dom-6be6f662.js +73 -0
- package/dist/tttx/index-dbe25028.js +3262 -0
- package/dist/tttx/index.esm.js +1 -0
- package/dist/tttx/p-0a85dda4.entry.js +1 -0
- package/dist/tttx/{p-3281444a.entry.js → p-1b015a9d.entry.js} +1 -1
- package/dist/tttx/p-4f3958fa.entry.js +1 -0
- package/dist/tttx/p-5cae1beb.entry.js +1 -0
- package/dist/tttx/p-62869344.js +2 -0
- package/dist/tttx/p-92465671.entry.js +1 -0
- package/dist/tttx/{p-dab7ee1b.entry.js → p-a0179cb1.entry.js} +1 -1
- package/dist/tttx/p-cc6644c9.entry.js +1 -0
- package/dist/tttx/p-cd1565e0.entry.js +3 -0
- package/dist/tttx/shadow-css-ed4599f8.js +387 -0
- package/dist/tttx/tttx-button.entry.js +30 -0
- package/dist/tttx/tttx-form.entry.js +373 -0
- package/dist/tttx/tttx-icon.entry.js +17 -0
- package/dist/tttx/tttx-keyvalue-block.entry.js +63 -0
- package/dist/tttx/tttx-list.entry.js +1730 -0
- package/dist/tttx/tttx-loading-spinner.entry.js +22 -0
- package/dist/tttx/tttx-standalone-input.entry.js +66 -0
- package/dist/tttx/tttx-toolbar.entry.js +16 -0
- package/dist/tttx/tttx.esm.js +129 -1
- package/dist/types/components/atoms/tttx-button/test/tttx-button.e2e.d.ts +1 -0
- package/dist/types/components/atoms/tttx-button/test/tttx-button.spec.d.ts +1 -0
- package/dist/types/components/atoms/tttx-button/tttx-button.d.ts +10 -13
- package/dist/types/components/atoms/tttx-button/tttx-button.stories.d.ts +10 -10
- package/dist/types/components/atoms/tttx-icon/test/tttx-icon.e2e.d.ts +1 -0
- package/dist/types/components/atoms/tttx-icon/test/tttx-icon.spec.d.ts +1 -0
- package/dist/types/components/atoms/tttx-icon/tttx-icon.d.ts +5 -5
- package/dist/types/components/atoms/tttx-icon/tttx-icon.stories.d.ts +20 -20
- package/dist/types/components/atoms/tttx-keyvalue-block/test/tttx-keyvalue-block.spec.d.ts +1 -0
- package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.d.ts +7 -7
- package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.d.ts +9 -9
- package/dist/types/components/atoms/tttx-loading-spinner/Test/tttx-loading-spinner.spec.d.ts +1 -0
- package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.d.ts +6 -6
- package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.d.ts +17 -17
- package/dist/types/components/molecules/tttx-form/lib/setErrorState.d.ts +13 -13
- package/dist/types/components/molecules/tttx-form/lib/setErrorState.spec.d.ts +1 -0
- package/dist/types/components/molecules/tttx-form/lib/validityCheck.d.ts +17 -17
- package/dist/types/components/molecules/tttx-form/lib/validityCheck.spec.d.ts +1 -0
- package/dist/types/components/molecules/tttx-form/test/tttx-form.e2e.d.ts +1 -0
- package/dist/types/components/molecules/tttx-form/test/tttx-form.spec.d.ts +1 -0
- package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +114 -114
- package/dist/types/components/molecules/tttx-form/tttx-form.stories.d.ts +13 -13
- package/dist/types/components/molecules/tttx-list/test/ttttx-list.spec.e2e.d.ts +1 -0
- package/dist/types/components/molecules/tttx-list/test/tttx-list.spec.d.ts +1 -0
- package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +11 -11
- package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +14 -14
- package/dist/types/components/molecules/tttx-standalone-input/test/tttx-standalone-input.e2e.d.ts +1 -0
- package/dist/types/components/molecules/tttx-standalone-input/test/tttx-standalone-input.spec.d.ts +1 -0
- package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +56 -53
- package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +122 -106
- package/dist/types/components/molecules/tttx-toolbar/test/tttx-toolbar.test.d.ts +0 -0
- package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.d.ts +4 -0
- package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.stories.d.ts +13 -0
- package/dist/types/components/palette.stories.d.ts +6 -6
- package/dist/types/components.d.ts +21 -0
- package/dist/types/docs/gettingstarted-developer.stories.d.ts +5 -5
- package/dist/types/icons.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/shared/domsanitiser.options.d.ts +10 -10
- package/dist/types/shared/test/domsanitiser.options.spec.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +3 -59
- package/loader/index.d.ts +0 -9
- package/package.json +1 -1
- package/dist/collection/transform-tag-name.js +0 -5
- package/dist/tttx/p-083eeedc.entry.js +0 -1
- package/dist/tttx/p-5687f4ad.js +0 -2
- package/dist/tttx/p-5c9a1626.entry.js +0 -3
- package/dist/tttx/p-931e42c9.entry.js +0 -1
- package/dist/tttx/p-b5c1dd86.entry.js +0 -1
- package/dist/types/transform-tag-name.d.ts +0 -1
|
@@ -63,18 +63,6 @@ const isComplexType = (o) => {
|
|
|
63
63
|
o = typeof o;
|
|
64
64
|
return o === 'object' || o === 'function';
|
|
65
65
|
};
|
|
66
|
-
/**
|
|
67
|
-
* Helper method for querying a `meta` tag that contains a nonce value
|
|
68
|
-
* out of a DOM's head.
|
|
69
|
-
*
|
|
70
|
-
* @param doc The DOM containing the `head` to query against
|
|
71
|
-
* @returns The content of the meta tag representing the nonce value, or `undefined` if no tag
|
|
72
|
-
* exists or the tag has no content.
|
|
73
|
-
*/
|
|
74
|
-
function queryNonceMetaTagContent(doc) {
|
|
75
|
-
var _a, _b, _c;
|
|
76
|
-
return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;
|
|
77
|
-
}
|
|
78
66
|
/**
|
|
79
67
|
* Production h() function based on Preact by
|
|
80
68
|
* Jason Miller (@developit)
|
|
@@ -83,6 +71,7 @@ function queryNonceMetaTagContent(doc) {
|
|
|
83
71
|
*
|
|
84
72
|
* Modified for Stencil's compiler and vdom
|
|
85
73
|
*/
|
|
74
|
+
// const stack: any[] = [];
|
|
86
75
|
// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;
|
|
87
76
|
// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;
|
|
88
77
|
const h = (nodeName, vnodeData, ...children) => {
|
|
@@ -133,14 +122,6 @@ const h = (nodeName, vnodeData, ...children) => {
|
|
|
133
122
|
}
|
|
134
123
|
return vnode;
|
|
135
124
|
};
|
|
136
|
-
/**
|
|
137
|
-
* A utility function for creating a virtual DOM node from a tag and some
|
|
138
|
-
* possible text content.
|
|
139
|
-
*
|
|
140
|
-
* @param tag the tag for this element
|
|
141
|
-
* @param text possible text content for the node
|
|
142
|
-
* @returns a newly-minted virtual DOM node
|
|
143
|
-
*/
|
|
144
125
|
const newVNode = (tag, text) => {
|
|
145
126
|
const vnode = {
|
|
146
127
|
$flags$: 0,
|
|
@@ -155,12 +136,6 @@ const newVNode = (tag, text) => {
|
|
|
155
136
|
return vnode;
|
|
156
137
|
};
|
|
157
138
|
const Host = {};
|
|
158
|
-
/**
|
|
159
|
-
* Check whether a given node is a Host node or not
|
|
160
|
-
*
|
|
161
|
-
* @param node the virtual DOM node to check
|
|
162
|
-
* @returns whether it's a Host node or not
|
|
163
|
-
*/
|
|
164
139
|
const isHost = (node) => node && node.$tag$ === Host;
|
|
165
140
|
/**
|
|
166
141
|
* Parse a new property value for a given property type.
|
|
@@ -249,7 +224,6 @@ const registerStyle = (scopeId, cssText, allowCS) => {
|
|
|
249
224
|
styles.set(scopeId, style);
|
|
250
225
|
};
|
|
251
226
|
const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
|
|
252
|
-
var _a;
|
|
253
227
|
let scopeId = getScopeId(cmpMeta);
|
|
254
228
|
const style = styles.get(scopeId);
|
|
255
229
|
// if an element is NOT connected then getRootNode() will return the wrong root node
|
|
@@ -269,11 +243,6 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
|
|
|
269
243
|
styleElm = doc.createElement('style');
|
|
270
244
|
styleElm.innerHTML = style;
|
|
271
245
|
}
|
|
272
|
-
// Apply CSP nonce to the style tag if it exists
|
|
273
|
-
const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
|
|
274
|
-
if (nonce != null) {
|
|
275
|
-
styleElm.setAttribute('nonce', nonce);
|
|
276
|
-
}
|
|
277
246
|
styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
|
|
278
247
|
}
|
|
279
248
|
if (appliedStyles) {
|
|
@@ -481,21 +450,6 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
|
481
450
|
}
|
|
482
451
|
return elm;
|
|
483
452
|
};
|
|
484
|
-
/**
|
|
485
|
-
* Create DOM nodes corresponding to a list of {@link d.Vnode} objects and
|
|
486
|
-
* add them to the DOM in the appropriate place.
|
|
487
|
-
*
|
|
488
|
-
* @param parentElm the DOM node which should be used as a parent for the new
|
|
489
|
-
* DOM nodes
|
|
490
|
-
* @param before a child of the `parentElm` which the new children should be
|
|
491
|
-
* inserted before (optional)
|
|
492
|
-
* @param parentVNode the parent virtual DOM node
|
|
493
|
-
* @param vnodes the new child virtual DOM nodes to produce DOM nodes for
|
|
494
|
-
* @param startIdx the index in the child virtual DOM nodes at which to start
|
|
495
|
-
* creating DOM nodes (inclusive)
|
|
496
|
-
* @param endIdx the index in the child virtual DOM nodes at which to stop
|
|
497
|
-
* creating DOM nodes (inclusive)
|
|
498
|
-
*/
|
|
499
453
|
const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
|
|
500
454
|
let containerElm = (parentElm);
|
|
501
455
|
let childNode;
|
|
@@ -512,19 +466,6 @@ const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) =>
|
|
|
512
466
|
}
|
|
513
467
|
}
|
|
514
468
|
};
|
|
515
|
-
/**
|
|
516
|
-
* Remove the DOM elements corresponding to a list of {@link d.VNode} objects.
|
|
517
|
-
* This can be used to, for instance, clean up after a list of children which
|
|
518
|
-
* should no longer be shown.
|
|
519
|
-
*
|
|
520
|
-
* This function also handles some of Stencil's slot relocation logic.
|
|
521
|
-
*
|
|
522
|
-
* @param vnodes a list of virtual DOM nodes to remove
|
|
523
|
-
* @param startIdx the index at which to start removing nodes (inclusive)
|
|
524
|
-
* @param endIdx the index at which to stop removing nodes (inclusive)
|
|
525
|
-
* @param vnode a VNode
|
|
526
|
-
* @param elm an element
|
|
527
|
-
*/
|
|
528
469
|
const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {
|
|
529
470
|
for (; startIdx <= endIdx; ++startIdx) {
|
|
530
471
|
if ((vnode = vnodes[startIdx])) {
|
|
@@ -717,8 +658,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
|
|
|
717
658
|
*
|
|
718
659
|
* So, in other words, if `key` attrs are not set on VNodes which may be
|
|
719
660
|
* changing order within a `children` array or something along those lines then
|
|
720
|
-
* we could obtain a false
|
|
721
|
-
* (i.e. we'd say two VNodes aren't equal when in fact they should be).
|
|
661
|
+
* we could obtain a false positive and then have to do needless re-rendering.
|
|
722
662
|
*
|
|
723
663
|
* @param leftVNode the first VNode to check
|
|
724
664
|
* @param rightVNode the second VNode to check
|
|
@@ -788,18 +728,6 @@ const callNodeRefs = (vNode) => {
|
|
|
788
728
|
vNode.$children$ && vNode.$children$.map(callNodeRefs);
|
|
789
729
|
}
|
|
790
730
|
};
|
|
791
|
-
/**
|
|
792
|
-
* The main entry point for Stencil's virtual DOM-based rendering engine
|
|
793
|
-
*
|
|
794
|
-
* Given a {@link d.HostRef} container and some virtual DOM nodes, this
|
|
795
|
-
* function will handle creating a virtual DOM tree with a single root, patching
|
|
796
|
-
* the current virtual DOM tree onto an old one (if any), dealing with slot
|
|
797
|
-
* relocation, and reflecting attributes.
|
|
798
|
-
*
|
|
799
|
-
* @param hostRef data needed to root and render the virtual DOM tree, such as
|
|
800
|
-
* the DOM node into which it should be rendered.
|
|
801
|
-
* @param renderFnResults the virtual DOM nodes to be rendered
|
|
802
|
-
*/
|
|
803
731
|
const renderVdom = (hostRef, renderFnResults) => {
|
|
804
732
|
const hostElm = hostRef.$hostElement$;
|
|
805
733
|
const oldVNode = hostRef.$vnode$ || newVNode(null, null);
|
|
@@ -1171,7 +1099,6 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
|
|
|
1171
1099
|
hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;
|
|
1172
1100
|
}
|
|
1173
1101
|
endNewInstance();
|
|
1174
|
-
fireConnectedCallback(hostRef.$lazyInstance$);
|
|
1175
1102
|
}
|
|
1176
1103
|
if (Cstr.style) {
|
|
1177
1104
|
// this component has styles but we haven't registered them yet
|
|
@@ -1200,11 +1127,6 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
|
|
|
1200
1127
|
schedule();
|
|
1201
1128
|
}
|
|
1202
1129
|
};
|
|
1203
|
-
const fireConnectedCallback = (instance) => {
|
|
1204
|
-
{
|
|
1205
|
-
safeCall(instance, 'connectedCallback');
|
|
1206
|
-
}
|
|
1207
|
-
};
|
|
1208
1130
|
const connectedCallback = (elm) => {
|
|
1209
1131
|
if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
|
|
1210
1132
|
const hostRef = getHostRef(elm);
|
|
@@ -1243,10 +1165,6 @@ const connectedCallback = (elm) => {
|
|
|
1243
1165
|
initializeComponent(elm, hostRef, cmpMeta);
|
|
1244
1166
|
}
|
|
1245
1167
|
}
|
|
1246
|
-
else {
|
|
1247
|
-
// fire off connectedCallback() on component instance
|
|
1248
|
-
fireConnectedCallback(hostRef.$lazyInstance$);
|
|
1249
|
-
}
|
|
1250
1168
|
endConnected();
|
|
1251
1169
|
}
|
|
1252
1170
|
};
|
|
@@ -1256,7 +1174,6 @@ const disconnectedCallback = (elm) => {
|
|
|
1256
1174
|
}
|
|
1257
1175
|
};
|
|
1258
1176
|
const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
1259
|
-
var _a;
|
|
1260
1177
|
const endBootstrap = createTime();
|
|
1261
1178
|
const cmpTags = [];
|
|
1262
1179
|
const exclude = options.exclude || [];
|
|
@@ -1283,9 +1200,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1283
1200
|
{
|
|
1284
1201
|
cmpMeta.$watchers$ = {};
|
|
1285
1202
|
}
|
|
1286
|
-
const tagName =
|
|
1287
|
-
? options.transformTagName(cmpMeta.$tagName$)
|
|
1288
|
-
: cmpMeta.$tagName$;
|
|
1203
|
+
const tagName = cmpMeta.$tagName$;
|
|
1289
1204
|
const HostElement = class extends HTMLElement {
|
|
1290
1205
|
// StencilLazyHost
|
|
1291
1206
|
constructor(self) {
|
|
@@ -1335,11 +1250,6 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1335
1250
|
{
|
|
1336
1251
|
visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
|
|
1337
1252
|
visibilityStyle.setAttribute('data-styles', '');
|
|
1338
|
-
// Apply CSP nonce to the style tag if it exists
|
|
1339
|
-
const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
|
|
1340
|
-
if (nonce != null) {
|
|
1341
|
-
visibilityStyle.setAttribute('nonce', nonce);
|
|
1342
|
-
}
|
|
1343
1253
|
head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
|
|
1344
1254
|
}
|
|
1345
1255
|
// Process deferred connectedCallbacks now all components have been registered
|
|
@@ -1355,13 +1265,6 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1355
1265
|
// Fallback appLoad event
|
|
1356
1266
|
endBootstrap();
|
|
1357
1267
|
};
|
|
1358
|
-
/**
|
|
1359
|
-
* Assigns the given value to the nonce property on the runtime platform object.
|
|
1360
|
-
* During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.
|
|
1361
|
-
* @param nonce The value to be assigned to the platform nonce property.
|
|
1362
|
-
* @returns void
|
|
1363
|
-
*/
|
|
1364
|
-
const setNonce = (nonce) => (plt.$nonce$ = nonce);
|
|
1365
1268
|
const hostRefs = /*@__PURE__*/ new WeakMap();
|
|
1366
1269
|
const getHostRef = (ref) => hostRefs.get(ref);
|
|
1367
1270
|
const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
|
|
@@ -1471,8 +1374,6 @@ const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
|
|
|
1471
1374
|
exports.Host = Host;
|
|
1472
1375
|
exports.bootstrapLazy = bootstrapLazy;
|
|
1473
1376
|
exports.createEvent = createEvent;
|
|
1474
|
-
exports.getElement = getElement;
|
|
1475
1377
|
exports.h = h;
|
|
1476
1378
|
exports.promiseResolve = promiseResolve;
|
|
1477
1379
|
exports.registerInstance = registerInstance;
|
|
1478
|
-
exports.setNonce = setNonce;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -2,21 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-11cfdabe.js');
|
|
6
|
+
const appGlobals = require('./app-globals-3a1e7e63.js');
|
|
6
7
|
|
|
7
8
|
/*
|
|
8
|
-
Stencil Client Patch Esm v2.
|
|
9
|
+
Stencil Client Patch Esm v2.20.0 | MIT Licensed | https://stenciljs.com
|
|
9
10
|
*/
|
|
10
11
|
const patchEsm = () => {
|
|
12
|
+
// NOTE!! This fn cannot use async/await!
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
if (index.BUILD.cssVarShim && !(index.CSS && index.CSS.supports && index.CSS.supports('color', 'var(--c)'))) {
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
return Promise.resolve().then(function () { return require(/* webpackChunkName: "polyfills-css-shim" */ './css-shim-211819bc.js'); }).then(() => {
|
|
17
|
+
if ((index.plt.$cssShim$ = index.win.__cssshim)) {
|
|
18
|
+
return index.plt.$cssShim$.i();
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// for better minification
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
11
26
|
return index.promiseResolve();
|
|
12
27
|
};
|
|
13
28
|
|
|
14
29
|
const defineCustomElements = (win, options) => {
|
|
15
30
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
31
|
return patchEsm().then(() => {
|
|
17
|
-
|
|
32
|
+
appGlobals.globalScripts();
|
|
33
|
+
return index.bootstrapLazy([["tttx-button.cjs",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"design":[1]}]]],["tttx-list.cjs",[[1,"tttx-list",{"data":[1025],"name":[1]}]]],["tttx-standalone-input.cjs",[[2,"tttx-standalone-input",{"label":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconright":[1],"inputicon":[1],"inline":[4],"inputAutocapitalize":[1,"input-autocapitalize"],"inputAutofocus":[4,"input-autofocus"],"inputKeyhint":[1,"input-keyhint"],"inputIndex":[8,"input-index"],"inputTitle":[1,"input-title"],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-form.cjs",[[1,"tttx-form",{"formschema":[1032],"submitValue":[1032,"submit-value"]}]]],["tttx-keyvalue-block.cjs",[[1,"tttx-keyvalue-block",{"keyvalues":[8],"horizontal":[4]}]]],["tttx-loading-spinner.cjs",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-toolbar.cjs",[[1,"tttx-toolbar",{"border":[4]}]]],["tttx-icon.cjs",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]]], options);
|
|
18
34
|
});
|
|
19
35
|
};
|
|
20
36
|
|
|
21
|
-
exports.setNonce = index.setNonce;
|
|
22
37
|
exports.defineCustomElements = defineCustomElements;
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
Stencil Client Platform v2.20.0 | MIT Licensed | https://stenciljs.com
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @license
|
|
8
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
9
|
+
*
|
|
10
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
11
|
+
* found in the LICENSE file at https://angular.io/license
|
|
12
|
+
*
|
|
13
|
+
* This file is a port of shadowCSS from webcomponents.js to TypeScript.
|
|
14
|
+
* https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js
|
|
15
|
+
* https://github.com/angular/angular/blob/master/packages/compiler/src/shadow_css.ts
|
|
16
|
+
*/
|
|
17
|
+
const safeSelector = (selector) => {
|
|
18
|
+
const placeholders = [];
|
|
19
|
+
let index = 0;
|
|
20
|
+
// Replaces attribute selectors with placeholders.
|
|
21
|
+
// The WS in [attr="va lue"] would otherwise be interpreted as a selector separator.
|
|
22
|
+
selector = selector.replace(/(\[[^\]]*\])/g, (_, keep) => {
|
|
23
|
+
const replaceBy = `__ph-${index}__`;
|
|
24
|
+
placeholders.push(keep);
|
|
25
|
+
index++;
|
|
26
|
+
return replaceBy;
|
|
27
|
+
});
|
|
28
|
+
// Replaces the expression in `:nth-child(2n + 1)` with a placeholder.
|
|
29
|
+
// WS and "+" would otherwise be interpreted as selector separators.
|
|
30
|
+
const content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => {
|
|
31
|
+
const replaceBy = `__ph-${index}__`;
|
|
32
|
+
placeholders.push(exp);
|
|
33
|
+
index++;
|
|
34
|
+
return pseudo + replaceBy;
|
|
35
|
+
});
|
|
36
|
+
const ss = {
|
|
37
|
+
content,
|
|
38
|
+
placeholders,
|
|
39
|
+
};
|
|
40
|
+
return ss;
|
|
41
|
+
};
|
|
42
|
+
const restoreSafeSelector = (placeholders, content) => {
|
|
43
|
+
return content.replace(/__ph-(\d+)__/g, (_, index) => placeholders[+index]);
|
|
44
|
+
};
|
|
45
|
+
const _polyfillHost = '-shadowcsshost';
|
|
46
|
+
const _polyfillSlotted = '-shadowcssslotted';
|
|
47
|
+
// note: :host-context pre-processed to -shadowcsshostcontext.
|
|
48
|
+
const _polyfillHostContext = '-shadowcsscontext';
|
|
49
|
+
const _parenSuffix = ')(?:\\((' + '(?:\\([^)(]*\\)|[^)(]*)+?' + ')\\))?([^,{]*)';
|
|
50
|
+
const _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim');
|
|
51
|
+
const _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim');
|
|
52
|
+
const _cssColonSlottedRe = new RegExp('(' + _polyfillSlotted + _parenSuffix, 'gim');
|
|
53
|
+
const _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';
|
|
54
|
+
const _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/;
|
|
55
|
+
const _shadowDOMSelectorsRe = [/::shadow/g, /::content/g];
|
|
56
|
+
const _selectorReSuffix = '([>\\s~+[.,{:][\\s\\S]*)?$';
|
|
57
|
+
const _polyfillHostRe = /-shadowcsshost/gim;
|
|
58
|
+
const _colonHostRe = /:host/gim;
|
|
59
|
+
const _colonSlottedRe = /::slotted/gim;
|
|
60
|
+
const _colonHostContextRe = /:host-context/gim;
|
|
61
|
+
const _commentRe = /\/\*\s*[\s\S]*?\*\//g;
|
|
62
|
+
const stripComments = (input) => {
|
|
63
|
+
return input.replace(_commentRe, '');
|
|
64
|
+
};
|
|
65
|
+
const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;
|
|
66
|
+
const extractCommentsWithHash = (input) => {
|
|
67
|
+
return input.match(_commentWithHashRe) || [];
|
|
68
|
+
};
|
|
69
|
+
const _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
|
|
70
|
+
const _curlyRe = /([{}])/g;
|
|
71
|
+
const _selectorPartsRe = /(^.*?[^\\])??((:+)(.*)|$)/;
|
|
72
|
+
const OPEN_CURLY = '{';
|
|
73
|
+
const CLOSE_CURLY = '}';
|
|
74
|
+
const BLOCK_PLACEHOLDER = '%BLOCK%';
|
|
75
|
+
const processRules = (input, ruleCallback) => {
|
|
76
|
+
const inputWithEscapedBlocks = escapeBlocks(input);
|
|
77
|
+
let nextBlockIndex = 0;
|
|
78
|
+
return inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m) => {
|
|
79
|
+
const selector = m[2];
|
|
80
|
+
let content = '';
|
|
81
|
+
let suffix = m[4];
|
|
82
|
+
let contentPrefix = '';
|
|
83
|
+
if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {
|
|
84
|
+
content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
|
|
85
|
+
suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
|
|
86
|
+
contentPrefix = '{';
|
|
87
|
+
}
|
|
88
|
+
const cssRule = {
|
|
89
|
+
selector,
|
|
90
|
+
content,
|
|
91
|
+
};
|
|
92
|
+
const rule = ruleCallback(cssRule);
|
|
93
|
+
return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const escapeBlocks = (input) => {
|
|
97
|
+
const inputParts = input.split(_curlyRe);
|
|
98
|
+
const resultParts = [];
|
|
99
|
+
const escapedBlocks = [];
|
|
100
|
+
let bracketCount = 0;
|
|
101
|
+
let currentBlockParts = [];
|
|
102
|
+
for (let partIndex = 0; partIndex < inputParts.length; partIndex++) {
|
|
103
|
+
const part = inputParts[partIndex];
|
|
104
|
+
if (part === CLOSE_CURLY) {
|
|
105
|
+
bracketCount--;
|
|
106
|
+
}
|
|
107
|
+
if (bracketCount > 0) {
|
|
108
|
+
currentBlockParts.push(part);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
if (currentBlockParts.length > 0) {
|
|
112
|
+
escapedBlocks.push(currentBlockParts.join(''));
|
|
113
|
+
resultParts.push(BLOCK_PLACEHOLDER);
|
|
114
|
+
currentBlockParts = [];
|
|
115
|
+
}
|
|
116
|
+
resultParts.push(part);
|
|
117
|
+
}
|
|
118
|
+
if (part === OPEN_CURLY) {
|
|
119
|
+
bracketCount++;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (currentBlockParts.length > 0) {
|
|
123
|
+
escapedBlocks.push(currentBlockParts.join(''));
|
|
124
|
+
resultParts.push(BLOCK_PLACEHOLDER);
|
|
125
|
+
}
|
|
126
|
+
const strEscapedBlocks = {
|
|
127
|
+
escapedString: resultParts.join(''),
|
|
128
|
+
blocks: escapedBlocks,
|
|
129
|
+
};
|
|
130
|
+
return strEscapedBlocks;
|
|
131
|
+
};
|
|
132
|
+
const insertPolyfillHostInCssText = (selector) => {
|
|
133
|
+
selector = selector
|
|
134
|
+
.replace(_colonHostContextRe, _polyfillHostContext)
|
|
135
|
+
.replace(_colonHostRe, _polyfillHost)
|
|
136
|
+
.replace(_colonSlottedRe, _polyfillSlotted);
|
|
137
|
+
return selector;
|
|
138
|
+
};
|
|
139
|
+
const convertColonRule = (cssText, regExp, partReplacer) => {
|
|
140
|
+
// m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule
|
|
141
|
+
return cssText.replace(regExp, (...m) => {
|
|
142
|
+
if (m[2]) {
|
|
143
|
+
const parts = m[2].split(',');
|
|
144
|
+
const r = [];
|
|
145
|
+
for (let i = 0; i < parts.length; i++) {
|
|
146
|
+
const p = parts[i].trim();
|
|
147
|
+
if (!p)
|
|
148
|
+
break;
|
|
149
|
+
r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
|
|
150
|
+
}
|
|
151
|
+
return r.join(',');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return _polyfillHostNoCombinator + m[3];
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
const colonHostPartReplacer = (host, part, suffix) => {
|
|
159
|
+
return host + part.replace(_polyfillHost, '') + suffix;
|
|
160
|
+
};
|
|
161
|
+
const convertColonHost = (cssText) => {
|
|
162
|
+
return convertColonRule(cssText, _cssColonHostRe, colonHostPartReplacer);
|
|
163
|
+
};
|
|
164
|
+
const colonHostContextPartReplacer = (host, part, suffix) => {
|
|
165
|
+
if (part.indexOf(_polyfillHost) > -1) {
|
|
166
|
+
return colonHostPartReplacer(host, part, suffix);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
return host + part + suffix + ', ' + part + ' ' + host + suffix;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const convertColonSlotted = (cssText, slotScopeId) => {
|
|
173
|
+
const slotClass = '.' + slotScopeId + ' > ';
|
|
174
|
+
const selectors = [];
|
|
175
|
+
cssText = cssText.replace(_cssColonSlottedRe, (...m) => {
|
|
176
|
+
if (m[2]) {
|
|
177
|
+
const compound = m[2].trim();
|
|
178
|
+
const suffix = m[3];
|
|
179
|
+
const slottedSelector = slotClass + compound + suffix;
|
|
180
|
+
let prefixSelector = '';
|
|
181
|
+
for (let i = m[4] - 1; i >= 0; i--) {
|
|
182
|
+
const char = m[5][i];
|
|
183
|
+
if (char === '}' || char === ',') {
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
prefixSelector = char + prefixSelector;
|
|
187
|
+
}
|
|
188
|
+
const orgSelector = prefixSelector + slottedSelector;
|
|
189
|
+
const addedSelector = `${prefixSelector.trimRight()}${slottedSelector.trim()}`;
|
|
190
|
+
if (orgSelector.trim() !== addedSelector.trim()) {
|
|
191
|
+
const updatedSelector = `${addedSelector}, ${orgSelector}`;
|
|
192
|
+
selectors.push({
|
|
193
|
+
orgSelector,
|
|
194
|
+
updatedSelector,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return slottedSelector;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
return _polyfillHostNoCombinator + m[3];
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
selectors,
|
|
205
|
+
cssText,
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
const convertColonHostContext = (cssText) => {
|
|
209
|
+
return convertColonRule(cssText, _cssColonHostContextRe, colonHostContextPartReplacer);
|
|
210
|
+
};
|
|
211
|
+
const convertShadowDOMSelectors = (cssText) => {
|
|
212
|
+
return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText);
|
|
213
|
+
};
|
|
214
|
+
const makeScopeMatcher = (scopeSelector) => {
|
|
215
|
+
const lre = /\[/g;
|
|
216
|
+
const rre = /\]/g;
|
|
217
|
+
scopeSelector = scopeSelector.replace(lre, '\\[').replace(rre, '\\]');
|
|
218
|
+
return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');
|
|
219
|
+
};
|
|
220
|
+
const selectorNeedsScoping = (selector, scopeSelector) => {
|
|
221
|
+
const re = makeScopeMatcher(scopeSelector);
|
|
222
|
+
return !re.test(selector);
|
|
223
|
+
};
|
|
224
|
+
const injectScopingSelector = (selector, scopingSelector) => {
|
|
225
|
+
return selector.replace(_selectorPartsRe, (_, before = '', _colonGroup, colon = '', after = '') => {
|
|
226
|
+
return before + scopingSelector + colon + after;
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
const applySimpleSelectorScope = (selector, scopeSelector, hostSelector) => {
|
|
230
|
+
// In Android browser, the lastIndex is not reset when the regex is used in String.replace()
|
|
231
|
+
_polyfillHostRe.lastIndex = 0;
|
|
232
|
+
if (_polyfillHostRe.test(selector)) {
|
|
233
|
+
const replaceBy = `.${hostSelector}`;
|
|
234
|
+
return selector
|
|
235
|
+
.replace(_polyfillHostNoCombinatorRe, (_, selector) => injectScopingSelector(selector, replaceBy))
|
|
236
|
+
.replace(_polyfillHostRe, replaceBy + ' ');
|
|
237
|
+
}
|
|
238
|
+
return scopeSelector + ' ' + selector;
|
|
239
|
+
};
|
|
240
|
+
const applyStrictSelectorScope = (selector, scopeSelector, hostSelector) => {
|
|
241
|
+
const isRe = /\[is=([^\]]*)\]/g;
|
|
242
|
+
scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]);
|
|
243
|
+
const className = '.' + scopeSelector;
|
|
244
|
+
const _scopeSelectorPart = (p) => {
|
|
245
|
+
let scopedP = p.trim();
|
|
246
|
+
if (!scopedP) {
|
|
247
|
+
return '';
|
|
248
|
+
}
|
|
249
|
+
if (p.indexOf(_polyfillHostNoCombinator) > -1) {
|
|
250
|
+
scopedP = applySimpleSelectorScope(p, scopeSelector, hostSelector);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
// remove :host since it should be unnecessary
|
|
254
|
+
const t = p.replace(_polyfillHostRe, '');
|
|
255
|
+
if (t.length > 0) {
|
|
256
|
+
scopedP = injectScopingSelector(t, className);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return scopedP;
|
|
260
|
+
};
|
|
261
|
+
const safeContent = safeSelector(selector);
|
|
262
|
+
selector = safeContent.content;
|
|
263
|
+
let scopedSelector = '';
|
|
264
|
+
let startIndex = 0;
|
|
265
|
+
let res;
|
|
266
|
+
const sep = /( |>|\+|~(?!=))\s*/g;
|
|
267
|
+
// If a selector appears before :host it should not be shimmed as it
|
|
268
|
+
// matches on ancestor elements and not on elements in the host's shadow
|
|
269
|
+
// `:host-context(div)` is transformed to
|
|
270
|
+
// `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`
|
|
271
|
+
// the `div` is not part of the component in the 2nd selectors and should not be scoped.
|
|
272
|
+
// Historically `component-tag:host` was matching the component so we also want to preserve
|
|
273
|
+
// this behavior to avoid breaking legacy apps (it should not match).
|
|
274
|
+
// The behavior should be:
|
|
275
|
+
// - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)
|
|
276
|
+
// - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a
|
|
277
|
+
// `:host-context(tag)`)
|
|
278
|
+
const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;
|
|
279
|
+
// Only scope parts after the first `-shadowcsshost-no-combinator` when it is present
|
|
280
|
+
let shouldScope = !hasHost;
|
|
281
|
+
while ((res = sep.exec(selector)) !== null) {
|
|
282
|
+
const separator = res[1];
|
|
283
|
+
const part = selector.slice(startIndex, res.index).trim();
|
|
284
|
+
shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;
|
|
285
|
+
const scopedPart = shouldScope ? _scopeSelectorPart(part) : part;
|
|
286
|
+
scopedSelector += `${scopedPart} ${separator} `;
|
|
287
|
+
startIndex = sep.lastIndex;
|
|
288
|
+
}
|
|
289
|
+
const part = selector.substring(startIndex);
|
|
290
|
+
shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;
|
|
291
|
+
scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;
|
|
292
|
+
// replace the placeholders with their original values
|
|
293
|
+
return restoreSafeSelector(safeContent.placeholders, scopedSelector);
|
|
294
|
+
};
|
|
295
|
+
const scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) => {
|
|
296
|
+
return selector
|
|
297
|
+
.split(',')
|
|
298
|
+
.map((shallowPart) => {
|
|
299
|
+
if (slotSelector && shallowPart.indexOf('.' + slotSelector) > -1) {
|
|
300
|
+
return shallowPart.trim();
|
|
301
|
+
}
|
|
302
|
+
if (selectorNeedsScoping(shallowPart, scopeSelectorText)) {
|
|
303
|
+
return applyStrictSelectorScope(shallowPart, scopeSelectorText, hostSelector).trim();
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
return shallowPart.trim();
|
|
307
|
+
}
|
|
308
|
+
})
|
|
309
|
+
.join(', ');
|
|
310
|
+
};
|
|
311
|
+
const scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
|
|
312
|
+
return processRules(cssText, (rule) => {
|
|
313
|
+
let selector = rule.selector;
|
|
314
|
+
let content = rule.content;
|
|
315
|
+
if (rule.selector[0] !== '@') {
|
|
316
|
+
selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);
|
|
317
|
+
}
|
|
318
|
+
else if (rule.selector.startsWith('@media') ||
|
|
319
|
+
rule.selector.startsWith('@supports') ||
|
|
320
|
+
rule.selector.startsWith('@page') ||
|
|
321
|
+
rule.selector.startsWith('@document')) {
|
|
322
|
+
content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector);
|
|
323
|
+
}
|
|
324
|
+
const cssRule = {
|
|
325
|
+
selector: selector.replace(/\s{2,}/g, ' ').trim(),
|
|
326
|
+
content,
|
|
327
|
+
};
|
|
328
|
+
return cssRule;
|
|
329
|
+
});
|
|
330
|
+
};
|
|
331
|
+
const scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector) => {
|
|
332
|
+
cssText = insertPolyfillHostInCssText(cssText);
|
|
333
|
+
cssText = convertColonHost(cssText);
|
|
334
|
+
cssText = convertColonHostContext(cssText);
|
|
335
|
+
const slotted = convertColonSlotted(cssText, slotScopeId);
|
|
336
|
+
cssText = slotted.cssText;
|
|
337
|
+
cssText = convertShadowDOMSelectors(cssText);
|
|
338
|
+
if (scopeId) {
|
|
339
|
+
cssText = scopeSelectors(cssText, scopeId, hostScopeId, slotScopeId);
|
|
340
|
+
}
|
|
341
|
+
cssText = cssText.replace(/-shadowcsshost-no-combinator/g, `.${hostScopeId}`);
|
|
342
|
+
cssText = cssText.replace(/>\s*\*\s+([^{, ]+)/gm, ' $1 ');
|
|
343
|
+
return {
|
|
344
|
+
cssText: cssText.trim(),
|
|
345
|
+
slottedSelectors: slotted.selectors,
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
const scopeCss = (cssText, scopeId, commentOriginalSelector) => {
|
|
349
|
+
const hostScopeId = scopeId + '-h';
|
|
350
|
+
const slotScopeId = scopeId + '-s';
|
|
351
|
+
const commentsWithHash = extractCommentsWithHash(cssText);
|
|
352
|
+
cssText = stripComments(cssText);
|
|
353
|
+
const orgSelectors = [];
|
|
354
|
+
if (commentOriginalSelector) {
|
|
355
|
+
const processCommentedSelector = (rule) => {
|
|
356
|
+
const placeholder = `/*!@___${orgSelectors.length}___*/`;
|
|
357
|
+
const comment = `/*!@${rule.selector}*/`;
|
|
358
|
+
orgSelectors.push({ placeholder, comment });
|
|
359
|
+
rule.selector = placeholder + rule.selector;
|
|
360
|
+
return rule;
|
|
361
|
+
};
|
|
362
|
+
cssText = processRules(cssText, (rule) => {
|
|
363
|
+
if (rule.selector[0] !== '@') {
|
|
364
|
+
return processCommentedSelector(rule);
|
|
365
|
+
}
|
|
366
|
+
else if (rule.selector.startsWith('@media') ||
|
|
367
|
+
rule.selector.startsWith('@supports') ||
|
|
368
|
+
rule.selector.startsWith('@page') ||
|
|
369
|
+
rule.selector.startsWith('@document')) {
|
|
370
|
+
rule.content = processRules(rule.content, processCommentedSelector);
|
|
371
|
+
return rule;
|
|
372
|
+
}
|
|
373
|
+
return rule;
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
const scoped = scopeCssText(cssText, scopeId, hostScopeId, slotScopeId);
|
|
377
|
+
cssText = [scoped.cssText, ...commentsWithHash].join('\n');
|
|
378
|
+
if (commentOriginalSelector) {
|
|
379
|
+
orgSelectors.forEach(({ placeholder, comment }) => {
|
|
380
|
+
cssText = cssText.replace(placeholder, comment);
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
scoped.slottedSelectors.forEach((slottedSelector) => {
|
|
384
|
+
cssText = cssText.replace(slottedSelector.orgSelector, slottedSelector.updatedSelector);
|
|
385
|
+
});
|
|
386
|
+
return cssText;
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
exports.scopeCss = scopeCss;
|