@patternfly/pfe-core 4.0.0 → 4.0.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.
- package/controllers/internals-controller.js +1 -1
- package/controllers/internals-controller.js.map +1 -1
- package/controllers/overflow-controller.js +3 -1
- package/controllers/overflow-controller.js.map +1 -1
- package/custom-elements.json +18 -0
- package/package.json +6 -1
- package/ssr-shims.d.ts +17 -0
- package/ssr-shims.js +55 -0
- package/ssr-shims.js.map +1 -0
|
@@ -226,7 +226,7 @@ _InternalsController_instances = new WeakSet(), _InternalsController_polyfillDis
|
|
|
226
226
|
};
|
|
227
227
|
};
|
|
228
228
|
InternalsController.instances = new WeakMap();
|
|
229
|
-
InternalsController.isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
229
|
+
InternalsController.isSafari = !isServer && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
230
230
|
__decorate([
|
|
231
231
|
aria
|
|
232
232
|
], InternalsController.prototype, "role", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals-controller.js","sourceRoot":"","sources":["internals-controller.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,QAAQ,GAIT,MAAM,KAAK,CAAC;AAEb,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAMD,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AAE7B,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAMhC;;;;GAIG;AACH,SAAS,IAAI,CACX,MAA2B,EAC3B,GAA8B;IAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,oCAAoC;IACpC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;QACjC,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,KAAK;QACnB,GAAG;YACD,6CAA6C;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,GAAG,CAA4B,KAAoB;YACjD,gCAAgC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACnD,6BAA6B;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB;IACtC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,mBAAmB;IAWvB,MAAM,CAAC,SAAS,CAAC,IAA4B;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE,CAAc,CAAC;IACnF,CAAC;IAIM,MAAM,CAAC,EAAE,CACd,IAA4B,EAC5B,OAAoC;QAEpC,mBAAmB,GAAG,IAAI,CAAC;QAC3B,kCAAkC;QAClC,qEAAqE;QACrE,6CAA6C;QAC7C,MAAM,QAAQ,GACZ,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;eACpC,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpC,mBAAmB,GAAG,KAAK,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAiED,6EAA6E;IAC7E,IAAI,YAAY;QACd,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,6EAA6E;IAC7E,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS;eAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAiC,CAAC;iBAC1D,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACrB,GAAG,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAY,OAAO;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,qDAAqD;YACrD,wDAAwD;YACxD,OAAO,IAAI,CAAC,IAAkB,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;IAMD,YACS,IAA4B,EAC3B,OAAoC;;QADrC,SAAI,GAAJ,IAAI,CAAwB;QAC3B,YAAO,GAAP,OAAO,CAA6B;QAxGxC,SAAI,GAAkB,IAAI,CAAC;QAE3B,yBAAoB,GAAkB,IAAI,CAAC;QAC3C,eAAU,GAAkB,IAAI,CAAC;QACjC,qBAAgB,GAAkB,IAAI,CAAC;QACvC,aAAQ,GAAkB,IAAI,CAAC;QAC/B,qBAAgB,GAAkB,IAAI,CAAC;QACvC,+BAA0B,GAAkB,IAAI,CAAC;QACjD,gBAAW,GAAkB,IAAI,CAAC;QAClC,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,qBAAgB,GAAkB,IAAI,CAAC;QACvC,gBAAW,GAAkB,IAAI,CAAC;QAClC,gBAAW,GAAkB,IAAI,CAAC;QAClC,oBAAe,GAAkB,IAAI,CAAC;QACtC,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,eAAU,GAAkB,IAAI,CAAC;QACjC,gBAAW,GAAkB,IAAI,CAAC;QAClC,qBAAgB,GAAkB,IAAI,CAAC;QACvC,cAAS,GAAkB,IAAI,CAAC;QAChC,cAAS,GAAkB,IAAI,CAAC;QAChC,aAAQ,GAAkB,IAAI,CAAC;QAC/B,cAAS,GAAkB,IAAI,CAAC;QAChC,kBAAa,GAAkB,IAAI,CAAC;QACpC,wBAAmB,GAAkB,IAAI,CAAC;QAC1C,oBAAe,GAAkB,IAAI,CAAC;QACtC,oBAAe,GAAkB,IAAI,CAAC;QACtC,iBAAY,GAAkB,IAAI,CAAC;QACnC,gBAAW,GAAkB,IAAI,CAAC;QAClC,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,wBAAmB,GAAkB,IAAI,CAAC;QAC1C,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,qBAAgB,GAAkB,IAAI,CAAC;QACvC,gBAAW,GAAkB,IAAI,CAAC;QAClC,iBAAY,GAAkB,IAAI,CAAC;QACnC,gBAAW,GAAkB,IAAI,CAAC;QAClC,aAAQ,GAAkB,IAAI,CAAC;QAC/B,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,iBAAY,GAAkB,IAAI,CAAC;QACnC,kBAAa,GAAkB,IAAI,CAAC;QAE1C,6DAA6D;QACvD,gCAA2B,GAAmB,IAAI,CAAC;QACzD,6DAA6D;QACvD,yBAAoB,GAAqB,IAAI,CAAC;QACpD,6DAA6D;QACvD,4BAAuB,GAAqB,IAAI,CAAC;QACvD,6DAA6D;QACvD,wBAAmB,GAAqB,IAAI,CAAC;QACnD,6DAA6D;QACvD,6BAAwB,GAAqB,IAAI,CAAC;QACxD,6DAA6D;QACvD,uBAAkB,GAAqB,IAAI,CAAC;QAClD,6DAA6D;QACvD,2BAAsB,GAAqB,IAAI,CAAC;QACtD,6DAA6D;QACvD,qBAAgB,GAAqB,IAAI,CAAC;QAuCxC,kBAAa,GAAG,KAAK,CAAC;QAM5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,uBAAA,IAAI,mFAAwB,MAA5B,IAAI,CAA0B,CAAC;IACjC,CAAC;IAkBD;;;;;;;;OAQG;IACK,yBAAyB;QAC/B,IAAI,CAAC,SAAS,KAAd,IAAI,CAAC,SAAS,GAAK,IAAI,CAAC,OAAQ,CAAC,eAAe,EAAE,EAAC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,iBAAiB,CAAC,OAA4B;;QACpD,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,OAAO,IAAI,EAAE,EAAC;QAC/B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACjD,MAAA,IAAI,CAAC,OAAO,EAAC,cAAc,QAAd,cAAc,GAAK,cAAc,EAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAiB,CAAC,GAAG,GAAuB,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAID,YAAY,CAAC,GAAG,IAAkD;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,GAAG,IAAiD;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,GAAG,IAAmD;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,GAAG,IAAoD;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;;;IA5DC,0BAA0B;IAC1B,gCAAgC;IAChC,6EAA6E;IAC7E,MAAM,IAAI,GAAI,IAAI,CAAC,OAAgB,CAAC,oBAAoB,CAAC;IACxD,IAAI,CAAC,OAAgB,CAAC,oBAAoB,GAAG,QAAQ,CAAC,EAAE;QACvD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClC,wBAAwB;IACxB,CAAC,CAAC;AACJ,CAAC;AAtKc,6BAAS,GAAG,IAAI,OAAO,EAA+C,AAA7D,CAA8D;AAcxE,4BAAQ,GAAY,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,AAAtE,CAAuE;AAkBvF;IAAL,IAAI;iDAA4B;AAE3B;IAAL,IAAI;iEAA4C;AAC3C;IAAL,IAAI;uDAAkC;AACjC;IAAL,IAAI;6DAAwC;AACvC;IAAL,IAAI;qDAAgC;AAC/B;IAAL,IAAI;6DAAwC;AACvC;IAAL,IAAI;uEAAkD;AACjD;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;6DAAwC;AACvC;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;4DAAuC;AACtC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;uDAAkC;AACjC;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;6DAAwC;AACvC;IAAL,IAAI;sDAAiC;AAChC;IAAL,IAAI;sDAAiC;AAChC;IAAL,IAAI;qDAAgC;AAC/B;IAAL,IAAI;sDAAiC;AAChC;IAAL,IAAI;0DAAqC;AACpC;IAAL,IAAI;gEAA2C;AAC1C;IAAL,IAAI;4DAAuC;AACtC;IAAL,IAAI;4DAAuC;AACtC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;gEAA2C;AAC1C;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;6DAAwC;AACvC;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;wDAAmC;AAClC;IAAL,IAAI;qDAAgC;AAC/B;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;yDAAoC;AACnC;IAAL,IAAI;0DAAqC;AAGpC;IAAL,IAAI;wEAAoD;AAEnD;IAAL,IAAI;iEAA+C;AAE9C;IAAL,IAAI;oEAAkD;AAEjD;IAAL,IAAI;gEAA8C;AAE7C;IAAL,IAAI;qEAAmD;AAElD;IAAL,IAAI;+DAA6C;AAE5C;IAAL,IAAI;mEAAiD;AAEhD;IAAL,IAAI;6DAA2C","sourcesContent":["import {\n isServer,\n type ReactiveController,\n type ReactiveControllerHost,\n type LitElement,\n} from 'lit';\n\nfunction isARIAMixinProp(key: string): key is keyof ARIAMixin {\n return key === 'role' || key.startsWith('aria');\n}\n\ntype FACE = HTMLElement & {\n formDisabledCallback?(disabled: boolean): void;\n};\n\nconst protos = new WeakMap();\n\nlet constructingAllowed = false;\n\ninterface InternalsControllerOptions extends Partial<ARIAMixin> {\n getHTMLElement?(): HTMLElement;\n}\n\n/**\n * reactively forward the internals object's aria mixin prototype\n * @param target\n * @param key\n */\nfunction aria(\n target: InternalsController,\n key: keyof InternalsController,\n) {\n if (!protos.has(target)) {\n protos.set(target, new Set());\n }\n if (protos.get(target).has(key)) {\n return;\n }\n if (!isARIAMixinProp(key)) {\n throw new Error('@aria can only be called on ARIAMixin properties');\n }\n // typescript experimental decorator\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: false,\n get(this: InternalsController) {\n // @ts-expect-error: because i'm bad, i'm bad\n const internals = this.attachOrRetrieveInternals();\n return internals[key];\n },\n set(this: InternalsController, value: string | null) {\n // @ts-expect-error: ya know it!\n const internals = this.attachOrRetrieveInternals();\n // @ts-expect-error: shamone!\n internals[key] = value;\n this.host.requestUpdate();\n },\n });\n protos.get(target).add(key);\n}\n\nfunction getLabelText(label: HTMLElement) {\n if (label.hidden) {\n return '';\n } else {\n const ariaLabel = label.getAttribute?.('aria-label');\n return ariaLabel ?? label.textContent;\n }\n}\n\nexport class InternalsController implements ReactiveController, ARIAMixin {\n private static instances = new WeakMap<ReactiveControllerHost, InternalsController>();\n\n declare readonly form: ElementInternals['form'];\n declare readonly shadowRoot: ElementInternals['shadowRoot'];\n\n // https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n declare readonly states: unknown;\n declare readonly willValidate: ElementInternals['willValidate'];\n declare readonly validationMessage: ElementInternals['validationMessage'];\n\n public static getLabels(host: ReactiveControllerHost): Element[] {\n return Array.from(this.instances.get(host)?.internals.labels ?? []) as Element[];\n }\n\n public static isSafari: boolean = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n public static of(\n host: ReactiveControllerHost,\n options?: InternalsControllerOptions,\n ): InternalsController {\n constructingAllowed = true;\n // implement the singleton pattern\n // using a public static constructor method is much easier to manage,\n // due to the quirks of our typescript config\n const instance: InternalsController =\n InternalsController.instances.get(host)\n ?? new InternalsController(host, options);\n instance.initializeOptions(options);\n constructingAllowed = false;\n return instance;\n }\n\n @aria role: string | null = null;\n\n @aria ariaActivedescendant: string | null = null;\n @aria ariaAtomic: string | null = null;\n @aria ariaAutoComplete: string | null = null;\n @aria ariaBusy: string | null = null;\n @aria ariaBrailleLabel: string | null = null;\n @aria ariaBrailleRoleDescription: string | null = null;\n @aria ariaChecked: string | null = null;\n @aria ariaColCount: string | null = null;\n @aria ariaColIndex: string | null = null;\n @aria ariaColIndexText: string | null = null;\n @aria ariaColSpan: string | null = null;\n @aria ariaCurrent: string | null = null;\n @aria ariaDescription: string | null = null;\n @aria ariaDisabled: string | null = null;\n @aria ariaExpanded: string | null = null;\n @aria ariaHasPopup: string | null = null;\n @aria ariaHidden: string | null = null;\n @aria ariaInvalid: string | null = null;\n @aria ariaKeyShortcuts: string | null = null;\n @aria ariaLabel: string | null = null;\n @aria ariaLevel: string | null = null;\n @aria ariaLive: string | null = null;\n @aria ariaModal: string | null = null;\n @aria ariaMultiLine: string | null = null;\n @aria ariaMultiSelectable: string | null = null;\n @aria ariaOrientation: string | null = null;\n @aria ariaPlaceholder: string | null = null;\n @aria ariaPosInSet: string | null = null;\n @aria ariaPressed: string | null = null;\n @aria ariaReadOnly: string | null = null;\n @aria ariaRequired: string | null = null;\n @aria ariaRoleDescription: string | null = null;\n @aria ariaRowCount: string | null = null;\n @aria ariaRowIndex: string | null = null;\n @aria ariaRowIndexText: string | null = null;\n @aria ariaRowSpan: string | null = null;\n @aria ariaSelected: string | null = null;\n @aria ariaSetSize: string | null = null;\n @aria ariaSort: string | null = null;\n @aria ariaValueMax: string | null = null;\n @aria ariaValueMin: string | null = null;\n @aria ariaValueNow: string | null = null;\n @aria ariaValueText: string | null = null;\n\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaActiveDescendantElement: Element | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaControlsElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaDescribedByElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaDetailsElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaErrorMessageElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaFlowToElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaLabelledByElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaOwnsElements: Element[] | null = null;\n\n /** True when the control is disabled via it's containing fieldset element */\n get formDisabled(): boolean {\n if (isServer) {\n return this._formDisabled;\n } else {\n return this.element?.matches(':disabled') || this._formDisabled;\n }\n }\n\n get labels(): NodeList {\n return this.internals.labels;\n }\n\n get validity(): ValidityState {\n return this.internals.validity;\n }\n\n /** A best-attempt based on observed behaviour in FireFox 115 on fedora 38 */\n get computedLabelText(): string {\n return this.internals.ariaLabel\n || Array.from(this.internals.labels as NodeListOf<HTMLElement>)\n .reduce((acc, label) =>\n `${acc}${getLabelText(label)}`, '');\n }\n\n private get element() {\n if (isServer) {\n // FIXME(bennyp): a little white lie, which may break\n // when the controller is applied to non-lit frameworks.\n return this.host as LitElement;\n } else {\n return this.host instanceof HTMLElement ? this.host : this.options?.getHTMLElement?.();\n }\n }\n\n private internals!: ElementInternals;\n\n private _formDisabled = false;\n\n private constructor(\n public host: ReactiveControllerHost,\n private options?: InternalsControllerOptions,\n ) {\n if (!constructingAllowed) {\n throw new Error('InternalsController must be constructed with `InternalsController.for()`');\n }\n if (!this.element) {\n throw new Error(\n `InternalsController must be instantiated with an HTMLElement or a \\`getHTMLElement\\` function`,\n );\n }\n this.attachOrRetrieveInternals();\n this.initializeOptions(options);\n InternalsController.instances.set(host, this);\n this.#polyfillDisabledPseudo();\n }\n\n /**\n * We need to polyfill :disabled\n * see https://github.com/calebdwilliams/element-internals-polyfill/issues/88\n */\n #polyfillDisabledPseudo() {\n // START polyfill-disabled\n // We need to polyfill :disabled\n // see https://github.com/calebdwilliams/element-internals-polyfill/issues/88\n const orig = (this.element as FACE).formDisabledCallback;\n (this.element as FACE).formDisabledCallback = disabled => {\n this._formDisabled = disabled;\n orig?.call(this.host, disabled);\n // END polyfill-disabled\n };\n }\n\n /**\n * Typescript (with experimental decorators) will compile the class\n * such that the order of operations is:\n * 1. set up constructor parameter fields\n * 2. run decorated field setters with initializers as the value\n * 3. run the rest of the constructor\n * Because of that, `this.internals` may not be available in the decorator setter\n * so we cheat here with nullish coalescing assignment operator `??=`;\n */\n private attachOrRetrieveInternals() {\n this.internals ??= this.element!.attachInternals();\n return this.internals;\n }\n\n private initializeOptions(options?: Partial<ARIAMixin>) {\n this.options ??= options ?? {};\n const { getHTMLElement, ...aria } = this.options;\n this.options.getHTMLElement ??= getHTMLElement;\n for (const [key, val] of Object.entries(aria)) {\n if (isARIAMixinProp(key)) {\n this[key as keyof this] = val as this[keyof this];\n }\n }\n }\n\n hostConnected?(): void;\n\n setFormValue(...args: Parameters<ElementInternals['setFormValue']>): void {\n return this.internals.setFormValue(...args);\n }\n\n setValidity(...args: Parameters<ElementInternals['setValidity']>): void {\n return this.internals.setValidity(...args);\n }\n\n checkValidity(...args: Parameters<ElementInternals['checkValidity']>): boolean {\n return this.internals.checkValidity(...args);\n }\n\n reportValidity(...args: Parameters<ElementInternals['reportValidity']>): boolean {\n return this.internals.reportValidity(...args);\n }\n\n submit(): void {\n this.internals.form?.requestSubmit();\n }\n\n reset(): void {\n this.internals.form?.reset();\n }\n}\n\n/** @see https://w3c.github.io/aria/#ref-for-dom-ariamixin-ariaactivedescendantelement-1 */\ndeclare global {\n interface ARIAMixin {\n ariaActiveDescendantElement: Element | null;\n ariaControlsElements: readonly Element[] | null;\n ariaDescribedByElements: readonly Element[] | null;\n ariaDetailsElements: readonly Element[] | null;\n ariaErrorMessageElements: readonly Element[] | null;\n ariaFlowToElements: readonly Element[] | null;\n ariaLabelledByElements: readonly Element[] | null;\n ariaOwnsElements: readonly Element[] | null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"internals-controller.js","sourceRoot":"","sources":["internals-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isServer,\n type ReactiveController,\n type ReactiveControllerHost,\n type LitElement,\n} from 'lit';\n\nfunction isARIAMixinProp(key: string): key is keyof ARIAMixin {\n return key === 'role' || key.startsWith('aria');\n}\n\ntype FACE = HTMLElement & {\n formDisabledCallback?(disabled: boolean): void;\n};\n\nconst protos = new WeakMap();\n\nlet constructingAllowed = false;\n\ninterface InternalsControllerOptions extends Partial<ARIAMixin> {\n getHTMLElement?(): HTMLElement;\n}\n\n/**\n * reactively forward the internals object's aria mixin prototype\n * @param target\n * @param key\n */\nfunction aria(\n target: InternalsController,\n key: keyof InternalsController,\n) {\n if (!protos.has(target)) {\n protos.set(target, new Set());\n }\n if (protos.get(target).has(key)) {\n return;\n }\n if (!isARIAMixinProp(key)) {\n throw new Error('@aria can only be called on ARIAMixin properties');\n }\n // typescript experimental decorator\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: false,\n get(this: InternalsController) {\n // @ts-expect-error: because i'm bad, i'm bad\n const internals = this.attachOrRetrieveInternals();\n return internals[key];\n },\n set(this: InternalsController, value: string | null) {\n // @ts-expect-error: ya know it!\n const internals = this.attachOrRetrieveInternals();\n // @ts-expect-error: shamone!\n internals[key] = value;\n this.host.requestUpdate();\n },\n });\n protos.get(target).add(key);\n}\n\nfunction getLabelText(label: HTMLElement) {\n if (label.hidden) {\n return '';\n } else {\n const ariaLabel = label.getAttribute?.('aria-label');\n return ariaLabel ?? label.textContent;\n }\n}\n\nexport class InternalsController implements ReactiveController, ARIAMixin {\n private static instances = new WeakMap<ReactiveControllerHost, InternalsController>();\n\n declare readonly form: ElementInternals['form'];\n declare readonly shadowRoot: ElementInternals['shadowRoot'];\n\n // https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n declare readonly states: unknown;\n declare readonly willValidate: ElementInternals['willValidate'];\n declare readonly validationMessage: ElementInternals['validationMessage'];\n\n public static getLabels(host: ReactiveControllerHost): Element[] {\n return Array.from(this.instances.get(host)?.internals.labels ?? []) as Element[];\n }\n\n public static isSafari: boolean =\n !isServer && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n public static of(\n host: ReactiveControllerHost,\n options?: InternalsControllerOptions,\n ): InternalsController {\n constructingAllowed = true;\n // implement the singleton pattern\n // using a public static constructor method is much easier to manage,\n // due to the quirks of our typescript config\n const instance: InternalsController =\n InternalsController.instances.get(host)\n ?? new InternalsController(host, options);\n instance.initializeOptions(options);\n constructingAllowed = false;\n return instance;\n }\n\n @aria role: string | null = null;\n\n @aria ariaActivedescendant: string | null = null;\n @aria ariaAtomic: string | null = null;\n @aria ariaAutoComplete: string | null = null;\n @aria ariaBusy: string | null = null;\n @aria ariaBrailleLabel: string | null = null;\n @aria ariaBrailleRoleDescription: string | null = null;\n @aria ariaChecked: string | null = null;\n @aria ariaColCount: string | null = null;\n @aria ariaColIndex: string | null = null;\n @aria ariaColIndexText: string | null = null;\n @aria ariaColSpan: string | null = null;\n @aria ariaCurrent: string | null = null;\n @aria ariaDescription: string | null = null;\n @aria ariaDisabled: string | null = null;\n @aria ariaExpanded: string | null = null;\n @aria ariaHasPopup: string | null = null;\n @aria ariaHidden: string | null = null;\n @aria ariaInvalid: string | null = null;\n @aria ariaKeyShortcuts: string | null = null;\n @aria ariaLabel: string | null = null;\n @aria ariaLevel: string | null = null;\n @aria ariaLive: string | null = null;\n @aria ariaModal: string | null = null;\n @aria ariaMultiLine: string | null = null;\n @aria ariaMultiSelectable: string | null = null;\n @aria ariaOrientation: string | null = null;\n @aria ariaPlaceholder: string | null = null;\n @aria ariaPosInSet: string | null = null;\n @aria ariaPressed: string | null = null;\n @aria ariaReadOnly: string | null = null;\n @aria ariaRequired: string | null = null;\n @aria ariaRoleDescription: string | null = null;\n @aria ariaRowCount: string | null = null;\n @aria ariaRowIndex: string | null = null;\n @aria ariaRowIndexText: string | null = null;\n @aria ariaRowSpan: string | null = null;\n @aria ariaSelected: string | null = null;\n @aria ariaSetSize: string | null = null;\n @aria ariaSort: string | null = null;\n @aria ariaValueMax: string | null = null;\n @aria ariaValueMin: string | null = null;\n @aria ariaValueNow: string | null = null;\n @aria ariaValueText: string | null = null;\n\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaActiveDescendantElement: Element | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaControlsElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaDescribedByElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaDetailsElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaErrorMessageElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaFlowToElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaLabelledByElements: Element[] | null = null;\n /** WARNING: be careful of cross-root ARIA browser support */\n @aria ariaOwnsElements: Element[] | null = null;\n\n /** True when the control is disabled via it's containing fieldset element */\n get formDisabled(): boolean {\n if (isServer) {\n return this._formDisabled;\n } else {\n return this.element?.matches(':disabled') || this._formDisabled;\n }\n }\n\n get labels(): NodeList {\n return this.internals.labels;\n }\n\n get validity(): ValidityState {\n return this.internals.validity;\n }\n\n /** A best-attempt based on observed behaviour in FireFox 115 on fedora 38 */\n get computedLabelText(): string {\n return this.internals.ariaLabel\n || Array.from(this.internals.labels as NodeListOf<HTMLElement>)\n .reduce((acc, label) =>\n `${acc}${getLabelText(label)}`, '');\n }\n\n private get element() {\n if (isServer) {\n // FIXME(bennyp): a little white lie, which may break\n // when the controller is applied to non-lit frameworks.\n return this.host as LitElement;\n } else {\n return this.host instanceof HTMLElement ? this.host : this.options?.getHTMLElement?.();\n }\n }\n\n private internals!: ElementInternals;\n\n private _formDisabled = false;\n\n private constructor(\n public host: ReactiveControllerHost,\n private options?: InternalsControllerOptions,\n ) {\n if (!constructingAllowed) {\n throw new Error('InternalsController must be constructed with `InternalsController.for()`');\n }\n if (!this.element) {\n throw new Error(\n `InternalsController must be instantiated with an HTMLElement or a \\`getHTMLElement\\` function`,\n );\n }\n this.attachOrRetrieveInternals();\n this.initializeOptions(options);\n InternalsController.instances.set(host, this);\n this.#polyfillDisabledPseudo();\n }\n\n /**\n * We need to polyfill :disabled\n * see https://github.com/calebdwilliams/element-internals-polyfill/issues/88\n */\n #polyfillDisabledPseudo() {\n // START polyfill-disabled\n // We need to polyfill :disabled\n // see https://github.com/calebdwilliams/element-internals-polyfill/issues/88\n const orig = (this.element as FACE).formDisabledCallback;\n (this.element as FACE).formDisabledCallback = disabled => {\n this._formDisabled = disabled;\n orig?.call(this.host, disabled);\n // END polyfill-disabled\n };\n }\n\n /**\n * Typescript (with experimental decorators) will compile the class\n * such that the order of operations is:\n * 1. set up constructor parameter fields\n * 2. run decorated field setters with initializers as the value\n * 3. run the rest of the constructor\n * Because of that, `this.internals` may not be available in the decorator setter\n * so we cheat here with nullish coalescing assignment operator `??=`;\n */\n private attachOrRetrieveInternals() {\n this.internals ??= this.element!.attachInternals();\n return this.internals;\n }\n\n private initializeOptions(options?: Partial<ARIAMixin>) {\n this.options ??= options ?? {};\n const { getHTMLElement, ...aria } = this.options;\n this.options.getHTMLElement ??= getHTMLElement;\n for (const [key, val] of Object.entries(aria)) {\n if (isARIAMixinProp(key)) {\n this[key as keyof this] = val as this[keyof this];\n }\n }\n }\n\n hostConnected?(): void;\n\n setFormValue(...args: Parameters<ElementInternals['setFormValue']>): void {\n return this.internals.setFormValue(...args);\n }\n\n setValidity(...args: Parameters<ElementInternals['setValidity']>): void {\n return this.internals.setValidity(...args);\n }\n\n checkValidity(...args: Parameters<ElementInternals['checkValidity']>): boolean {\n return this.internals.checkValidity(...args);\n }\n\n reportValidity(...args: Parameters<ElementInternals['reportValidity']>): boolean {\n return this.internals.reportValidity(...args);\n }\n\n submit(): void {\n this.internals.form?.requestSubmit();\n }\n\n reset(): void {\n this.internals.form?.reset();\n }\n}\n\n/** @see https://w3c.github.io/aria/#ref-for-dom-ariamixin-ariaactivedescendantelement-1 */\ndeclare global {\n interface ARIAMixin {\n ariaActiveDescendantElement: Element | null;\n ariaControlsElements: readonly Element[] | null;\n ariaDescribedByElements: readonly Element[] | null;\n ariaDetailsElements: readonly Element[] | null;\n ariaErrorMessageElements: readonly Element[] | null;\n ariaFlowToElements: readonly Element[] | null;\n ariaLabelledByElements: readonly Element[] | null;\n ariaOwnsElements: readonly Element[] | null;\n }\n}\n"]}
|
|
@@ -30,7 +30,9 @@ export class OverflowController {
|
|
|
30
30
|
}
|
|
31
31
|
}));
|
|
32
32
|
_OverflowController_ro.set(this, new ResizeObserver(() => {
|
|
33
|
-
|
|
33
|
+
requestAnimationFrame(() => {
|
|
34
|
+
__classPrivateFieldGet(this, _OverflowController_instances, "m", _OverflowController_setOverflowState).call(this);
|
|
35
|
+
});
|
|
34
36
|
}));
|
|
35
37
|
this.showScrollButtons = false;
|
|
36
38
|
this.overflowLeft = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflow-controller.js","sourceRoot":"","sources":["overflow-controller.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAapF,MAAM,OAAO,kBAAkB;
|
|
1
|
+
{"version":3,"file":"overflow-controller.js","sourceRoot":"","sources":["overflow-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController, ReactiveElement } from 'lit';\n\nimport { isElementInView } from '@patternfly/pfe-core/functions/isElementInView.js';\n\nexport interface Options {\n /**\n * Force hide the scroll buttons regardless of overflow\n */\n hideOverflowButtons?: boolean;\n /**\n * Delay in ms to wait before checking for overflow\n */\n scrollTimeoutDelay?: number;\n}\n\nexport class OverflowController implements ReactiveController {\n static #instances = new Set<OverflowController>();\n\n static {\n // on resize check for overflows to add or remove scroll buttons\n globalThis.addEventListener?.('resize', () => {\n for (const instance of this.#instances) {\n instance.onScroll();\n }\n }, { capture: false, passive: true });\n }\n\n /** Overflow container */\n #container?: HTMLElement;\n /** Children that can overflow */\n #items: HTMLElement[] = [];\n\n #scrollTimeoutDelay: number;\n #scrollTimeout?: ReturnType<typeof setTimeout>;\n\n /** Default state */\n #hideOverflowButtons: boolean;\n\n #mo = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n this.#setOverflowState();\n }\n }\n });\n\n #ro = new ResizeObserver(() => {\n requestAnimationFrame(() => {\n this.#setOverflowState();\n });\n });\n\n showScrollButtons = false;\n overflowLeft = false;\n overflowRight = false;\n\n get firstItem(): HTMLElement | undefined {\n return this.#items.at(0);\n }\n\n get lastItem(): HTMLElement | undefined {\n return this.#items.at(-1);\n }\n\n constructor(\n // TODO: widen this type to ReactiveControllerHost\n public host: ReactiveElement,\n private options?: Options | undefined,\n ) {\n this.#hideOverflowButtons = options?.hideOverflowButtons ?? false;\n this.#scrollTimeoutDelay = options?.scrollTimeoutDelay ?? 0;\n if (host.isConnected) {\n OverflowController.#instances.add(this);\n }\n host.addController(this);\n if (host.isConnected) {\n this.hostConnected();\n }\n }\n\n #setOverflowState(): void {\n if (!this.firstItem || !this.lastItem || !this.#container) {\n return;\n }\n const prevLeft = this.overflowLeft;\n const prevRight = this.overflowRight;\n\n this.overflowLeft = !this.#hideOverflowButtons\n && !isElementInView(this.#container, this.firstItem);\n this.overflowRight = !this.#hideOverflowButtons\n && !isElementInView(this.#container, this.lastItem);\n let scrollButtonsWidth = 0;\n if (this.overflowLeft || this.overflowRight) {\n scrollButtonsWidth =\n (this.#container.parentElement?.querySelector('button')?.getBoundingClientRect().width || 0)\n * 2;\n }\n this.showScrollButtons = !this.#hideOverflowButtons\n && this.#container.scrollWidth > (this.#container.clientWidth + scrollButtonsWidth);\n\n // only request update if there has been a change\n if ((prevLeft !== this.overflowLeft) || (prevRight !== this.overflowRight)) {\n this.host.requestUpdate();\n }\n }\n\n init(container: HTMLElement, items: HTMLElement[]): void {\n this.#container = container;\n // convert HTMLCollection to HTMLElement[]\n this.#items = items;\n }\n\n onScroll = (): void => {\n clearTimeout(this.#scrollTimeout);\n this.#scrollTimeout = setTimeout(() => this.#setOverflowState(), this.#scrollTimeoutDelay);\n };\n\n scrollLeft(): void {\n if (!this.#container) {\n return;\n }\n const leftScroll = this.#container.scrollLeft - this.#container.clientWidth;\n this.#container.scroll({ left: leftScroll, behavior: 'smooth' });\n this.#setOverflowState();\n }\n\n scrollRight(): void {\n if (!this.#container) {\n return;\n }\n const leftScroll = this.#container.scrollLeft + this.#container.clientWidth;\n this.#container.scroll({ left: leftScroll, behavior: 'smooth' });\n this.#setOverflowState();\n }\n\n update(): void {\n this.#setOverflowState();\n }\n\n hostConnected(): void {\n this.#mo.observe(this.host, { attributes: false, childList: true, subtree: true });\n this.#ro.observe(this.host);\n this.onScroll();\n this.#setOverflowState();\n }\n}\n"]}
|
package/custom-elements.json
CHANGED
|
@@ -404,6 +404,24 @@
|
|
|
404
404
|
}
|
|
405
405
|
]
|
|
406
406
|
},
|
|
407
|
+
{
|
|
408
|
+
"kind": "javascript-module",
|
|
409
|
+
"path": "ssr-shims.d.ts",
|
|
410
|
+
"declarations": [],
|
|
411
|
+
"exports": []
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"kind": "javascript-module",
|
|
415
|
+
"path": "ssr-shims.js",
|
|
416
|
+
"declarations": [],
|
|
417
|
+
"exports": []
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"kind": "javascript-module",
|
|
421
|
+
"path": "ssr-shims.ts",
|
|
422
|
+
"declarations": [],
|
|
423
|
+
"exports": []
|
|
424
|
+
},
|
|
407
425
|
{
|
|
408
426
|
"kind": "javascript-module",
|
|
409
427
|
"path": "controllers/activedescendant-controller.d.ts",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/pfe-core",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "PatternFly Elements Core Library",
|
|
6
6
|
"customElements": "custom-elements.json",
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
"exports": {
|
|
12
12
|
".": "./core.js",
|
|
13
13
|
"./*": "./*",
|
|
14
|
+
"./ssr-shims.js": {
|
|
15
|
+
"node": "./ssr-shims.js",
|
|
16
|
+
"import": "./core.js",
|
|
17
|
+
"default": "./core.js"
|
|
18
|
+
},
|
|
14
19
|
"./controllers/*": "./controllers/*",
|
|
15
20
|
"./decorators/*": "./decorators/*",
|
|
16
21
|
"./functions/*": "./functions/*",
|
package/ssr-shims.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare class ObserverShim {
|
|
2
|
+
observe(): void;
|
|
3
|
+
disconnect(): void;
|
|
4
|
+
}
|
|
5
|
+
declare class MiniHTMLElement {
|
|
6
|
+
tagName: string;
|
|
7
|
+
innerHTML: string;
|
|
8
|
+
constructor(tagName: string);
|
|
9
|
+
}
|
|
10
|
+
declare class MiniHTMLTemplateElement extends MiniHTMLElement {
|
|
11
|
+
content: {
|
|
12
|
+
cloneNode: () => string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
declare class MiniDocument {
|
|
16
|
+
createElement(tagName: string): MiniHTMLElement;
|
|
17
|
+
}
|
package/ssr-shims.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
class ObserverShim {
|
|
3
|
+
observe() {
|
|
4
|
+
void 0;
|
|
5
|
+
}
|
|
6
|
+
disconnect() {
|
|
7
|
+
void 0;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
class MiniHTMLElement {
|
|
11
|
+
constructor(tagName) {
|
|
12
|
+
this.tagName = tagName;
|
|
13
|
+
this.innerHTML = '';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
class MiniHTMLTemplateElement extends MiniHTMLElement {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.content = { cloneNode: () => this.innerHTML };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class MiniDocument {
|
|
23
|
+
createElement(tagName) {
|
|
24
|
+
switch (tagName) {
|
|
25
|
+
case 'template':
|
|
26
|
+
return new MiniHTMLTemplateElement(tagName);
|
|
27
|
+
default:
|
|
28
|
+
return new MiniHTMLElement(tagName);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// @ts-expect-error: this runs in node
|
|
33
|
+
globalThis.window ?? (globalThis.window = globalThis);
|
|
34
|
+
// @ts-expect-error: this runs in node
|
|
35
|
+
globalThis.document ?? (globalThis.document = new MiniDocument());
|
|
36
|
+
// @ts-expect-error: this runs in node
|
|
37
|
+
globalThis.navigator ?? (globalThis.navigator = { userAgent: '' });
|
|
38
|
+
// @ts-expect-error: this runs in node
|
|
39
|
+
globalThis.ErrorEvent ?? (globalThis.ErrorEvent = Event);
|
|
40
|
+
// @ts-expect-error: this runs in node
|
|
41
|
+
globalThis.IntersectionObserver ?? (globalThis.IntersectionObserver = ObserverShim);
|
|
42
|
+
// @ts-expect-error: this runs in node
|
|
43
|
+
globalThis.MutationObserver ?? (globalThis.MutationObserver = ObserverShim);
|
|
44
|
+
// @ts-expect-error: this runs in node
|
|
45
|
+
globalThis.getComputedStyle ?? (globalThis.getComputedStyle = function () {
|
|
46
|
+
return {
|
|
47
|
+
getPropertyPriority() {
|
|
48
|
+
return '';
|
|
49
|
+
},
|
|
50
|
+
getPropertyValue() {
|
|
51
|
+
return '';
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=ssr-shims.js.map
|
package/ssr-shims.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssr-shims.js","sourceRoot":"","sources":["ssr-shims.ts"],"names":[],"mappings":";AAAA,MAAM,YAAY;IAChB,OAAO;QACL,KAAK,CAAC,CAAC;IACT,CAAC;IAED,UAAU;QACR,KAAK,CAAC,CAAC;IACT,CAAC;CACF;AAED,MAAM,eAAe;IAEnB,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QADlC,cAAS,GAAG,EAAE,CAAC;IACuB,CAAC;CACxC;AAED,MAAM,uBAAwB,SAAQ,eAAe;IAArD;;QACE,YAAO,GAAG,EAAE,SAAS,EAAE,GAAW,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACxD,CAAC;CAAA;AAED,MAAM,YAAY;IAChB,aAAa,CAAC,OAAe;QAC3B,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,UAAU;gBACb,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC9C;gBACE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AAED,sCAAsC;AACtC,UAAU,CAAC,MAAM,KAAjB,UAAU,CAAC,MAAM,GAAK,UAAU,EAAC;AACjC,sCAAsC;AACtC,UAAU,CAAC,QAAQ,KAAnB,UAAU,CAAC,QAAQ,GAAK,IAAI,YAAY,EAAE,EAAC;AAC3C,sCAAsC;AACtC,UAAU,CAAC,SAAS,KAApB,UAAU,CAAC,SAAS,GAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAC;AAC3C,sCAAsC;AACtC,UAAU,CAAC,UAAU,KAArB,UAAU,CAAC,UAAU,GAAK,KAAK,EAAC;AAChC,sCAAsC;AACtC,UAAU,CAAC,oBAAoB,KAA/B,UAAU,CAAC,oBAAoB,GAAK,YAAY,EAAC;AACjD,sCAAsC;AACtC,UAAU,CAAC,gBAAgB,KAA3B,UAAU,CAAC,gBAAgB,GAAK,YAAY,EAAC;AAC7C,sCAAsC;AACtC,UAAU,CAAC,gBAAgB,KAA3B,UAAU,CAAC,gBAAgB,GAAK;IAC9B,OAAO;QACL,mBAAmB;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,gBAAgB;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC,EAEA","sourcesContent":["class ObserverShim {\n observe(): void {\n void 0;\n }\n\n disconnect(): void {\n void 0;\n }\n}\n\nclass MiniHTMLElement {\n innerHTML = '';\n constructor(public tagName: string) { }\n}\n\nclass MiniHTMLTemplateElement extends MiniHTMLElement {\n content = { cloneNode: (): string => this.innerHTML };\n}\n\nclass MiniDocument {\n createElement(tagName: string): MiniHTMLElement {\n switch (tagName) {\n case 'template':\n return new MiniHTMLTemplateElement(tagName);\n default:\n return new MiniHTMLElement(tagName);\n }\n }\n}\n\n// @ts-expect-error: this runs in node\nglobalThis.window ??= globalThis;\n// @ts-expect-error: this runs in node\nglobalThis.document ??= new MiniDocument();\n// @ts-expect-error: this runs in node\nglobalThis.navigator ??= { userAgent: '' };\n// @ts-expect-error: this runs in node\nglobalThis.ErrorEvent ??= Event;\n// @ts-expect-error: this runs in node\nglobalThis.IntersectionObserver ??= ObserverShim;\n// @ts-expect-error: this runs in node\nglobalThis.MutationObserver ??= ObserverShim;\n// @ts-expect-error: this runs in node\nglobalThis.getComputedStyle ??= function() {\n return {\n getPropertyPriority() {\n return '';\n },\n getPropertyValue() {\n return '';\n },\n };\n}\n\n;\n\n"]}
|