@spectrum-web-components/dialog 1.0.0-rc.1 → 1.0.0-rc.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/package.json +11 -11
- package/src/Dialog.dev.js +1 -1
- package/src/Dialog.dev.js.map +2 -2
- package/src/Dialog.js +2 -2
- package/src/Dialog.js.map +2 -2
- package/src/DialogWrapper.d.ts +1 -2
- package/src/DialogWrapper.dev.js +0 -13
- package/src/DialogWrapper.dev.js.map +2 -2
- package/src/DialogWrapper.js +8 -8
- package/src/DialogWrapper.js.map +3 -3
- package/test/dialog-wrapper.test.js +0 -36
- package/test/dialog-wrapper.test.js.map +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/dialog",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -74,15 +74,15 @@
|
|
|
74
74
|
"lit-html"
|
|
75
75
|
],
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@spectrum-web-components/alert-dialog": "^1.0.0-rc.
|
|
78
|
-
"@spectrum-web-components/base": "^1.0.0-rc.
|
|
79
|
-
"@spectrum-web-components/button": "^1.0.0-rc.
|
|
80
|
-
"@spectrum-web-components/button-group": "^1.0.0-rc.
|
|
81
|
-
"@spectrum-web-components/divider": "^1.0.0-rc.
|
|
82
|
-
"@spectrum-web-components/icons-workflow": "^1.0.0-rc.
|
|
83
|
-
"@spectrum-web-components/modal": "^1.0.0-rc.
|
|
84
|
-
"@spectrum-web-components/shared": "^1.0.0-rc.
|
|
85
|
-
"@spectrum-web-components/underlay": "^1.0.0-rc.
|
|
77
|
+
"@spectrum-web-components/alert-dialog": "^1.0.0-rc.2",
|
|
78
|
+
"@spectrum-web-components/base": "^1.0.0-rc.2",
|
|
79
|
+
"@spectrum-web-components/button": "^1.0.0-rc.2",
|
|
80
|
+
"@spectrum-web-components/button-group": "^1.0.0-rc.2",
|
|
81
|
+
"@spectrum-web-components/divider": "^1.0.0-rc.2",
|
|
82
|
+
"@spectrum-web-components/icons-workflow": "^1.0.0-rc.2",
|
|
83
|
+
"@spectrum-web-components/modal": "^1.0.0-rc.2",
|
|
84
|
+
"@spectrum-web-components/shared": "^1.0.0-rc.2",
|
|
85
|
+
"@spectrum-web-components/underlay": "^1.0.0-rc.2"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
88
|
"@spectrum-css/dialog": "^11.0.0-s2-foundations.15"
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"./sp-*.js",
|
|
94
94
|
"./**/*.dev.js"
|
|
95
95
|
],
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "45ad539f37a4325a83d02253ea9135c90e1b8b3d"
|
|
97
97
|
}
|
package/src/Dialog.dev.js
CHANGED
|
@@ -125,7 +125,7 @@ export class Dialog extends ObserveSlotPresence(AlertDialog, [
|
|
|
125
125
|
}
|
|
126
126
|
updated(changes) {
|
|
127
127
|
super.updated(changes);
|
|
128
|
-
if (changes.has("error") &&
|
|
128
|
+
if (changes.has("error") && this.error) {
|
|
129
129
|
if (true) {
|
|
130
130
|
window.__swc.warn(
|
|
131
131
|
this,
|
package/src/Dialog.dev.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["Dialog.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport '@spectrum-web-components/divider/sp-divider.js';\nimport '@spectrum-web-components/button/sp-close-button.js';\nimport '@spectrum-web-components/button-group/sp-button-group.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-alert.js';\nimport { ObserveSlotPresence } from '@spectrum-web-components/shared';\n\nimport styles from './dialog.css.js';\nimport type { CloseButton } from '@spectrum-web-components/button';\nimport { AlertDialog } from '@spectrum-web-components/alert-dialog/src/AlertDialog.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\n\n/**\n * @element sp-dialog\n *\n * @slot hero - Accepts a hero image to display at the top of the dialog\n * @slot heading - Acts as the heading of the dialog. This should be an actual heading tag `<h1-6 />`\n * @slot - Content not addressed to a specific slot will be interpreted as the main content of the dialog\n * @slot footer - Content addressed to the `footer` will be placed below the main content and to the side of any `[slot='button']` content\n * @slot button - Button elements addressed to this slot may be placed below the content when not delivered in a fullscreen mode\n * @fires close - Announces that the dialog has been closed.\n */\nexport class Dialog extends ObserveSlotPresence(AlertDialog, [\n '[slot=\"hero\"]',\n '[slot=\"footer\"]',\n '[slot=\"button\"]',\n]) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @query('.close-button')\n closeButton?: CloseButton;\n\n /**\n * @deprecated Use the Alert Dialog component with `variant=\"error\"` instead.\n */\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ type: Boolean, reflect: true })\n public dismissable = false;\n\n @property({ type: String, reflect: true, attribute: 'dismiss-label' })\n public dismissLabel = 'Close';\n\n protected get hasFooter(): boolean {\n return this.getSlotContentPresence('[slot=\"footer\"]');\n }\n\n protected get hasButtons(): boolean {\n return this.getSlotContentPresence('[slot=\"button\"]');\n }\n\n /* c8 ignore next 3 */\n protected get hasHero(): boolean {\n return this.getSlotContentPresence('[slot=\"hero\"]');\n }\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public mode?: 'fullscreen' | 'fullscreenTakeover';\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n public close(): void {\n this.dispatchEvent(\n new Event('close', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n protected renderHero(): TemplateResult {\n return html`\n <slot name=\"hero\"></slot>\n `;\n }\n\n protected renderFooter(): TemplateResult {\n return html`\n <div class=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n protected override renderButtons(): TemplateResult {\n const classes = {\n 'button-group': true,\n 'button-group--noFooter': !this.hasFooter,\n };\n return html`\n <sp-button-group class=${classMap(classes)}>\n <slot name=\"button\"></slot>\n </sp-button-group>\n `;\n }\n\n protected renderDismiss(): TemplateResult {\n return html`\n <sp-close-button\n class=\"close-button\"\n label=${this.dismissLabel}\n quiet\n size=\"m\"\n @click=${this.close}\n ></sp-close-button>\n `;\n }\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"grid\">\n ${this.renderHero()} ${this.renderHeading()}\n ${this.error\n ? html`\n <sp-icon-alert class=\"type-icon\"></sp-icon-alert>\n `\n : nothing}\n ${this.noDivider\n ? nothing\n : html`\n <sp-divider size=\"m\" class=\"divider\"></sp-divider>\n `}\n ${this.renderContent()}\n ${this.hasFooter ? this.renderFooter() : nothing}\n ${this.hasButtons ? this.renderButtons() : nothing}\n ${this.dismissable ? this.renderDismiss() : nothing}\n </div>\n `;\n }\n\n protected override shouldUpdate(changes: PropertyValues): boolean {\n if (changes.has('mode') && !!this.mode) {\n this.dismissable = false;\n }\n if (changes.has('dismissable') && this.dismissable) {\n this.dismissable = !this.mode;\n }\n return super.shouldUpdate(changes);\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'dialog');\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EACA;AAAA,OAGG;AACP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,2BAA2B;AAEpC,OAAO,YAAY;AAEnB,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AAYlB,aAAM,eAAe,oBAAoB,aAAa;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AACJ,CAAC,EAAE;AAAA,EAJI;AAAA;AAgBH,SAAO,QAAQ;AAGf,SAAO,cAAc;AAGrB,SAAO,eAAe;AAgBtB,SAAO,YAAY;AAAA;AAAA,EAjCnB,WAA2B,SAAyB;AAChD,WAAO,CAAC,MAAM;AAAA,EAClB;AAAA,EAiBA,IAAc,YAAqB;AAC/B,WAAO,KAAK,uBAAuB,iBAAiB;AAAA,EACxD;AAAA,EAEA,IAAc,aAAsB;AAChC,WAAO,KAAK,uBAAuB,iBAAiB;AAAA,EACxD;AAAA;AAAA,EAGA,IAAc,UAAmB;AAC7B,WAAO,KAAK,uBAAuB,eAAe;AAAA,EACtD;AAAA,EAWO,QAAc;AACjB,SAAK;AAAA,MACD,IAAI,MAAM,SAAS;AAAA,QACf,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,MAChB,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEU,aAA6B;AACnC,WAAO;AAAA;AAAA;AAAA,EAGX;AAAA,EAEU,eAA+B;AACrC,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKX;AAAA,EAEmB,gBAAgC;AAC/C,UAAM,UAAU;AAAA,MACZ,gBAAgB;AAAA,MAChB,0BAA0B,CAAC,KAAK;AAAA,IACpC;AACA,WAAO;AAAA,qCACsB,SAAS,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,EAIlD;AAAA,EAEU,gBAAgC;AACtC,WAAO;AAAA;AAAA;AAAA,wBAGS,KAAK,YAAY;AAAA;AAAA;AAAA,yBAGhB,KAAK,KAAK;AAAA;AAAA;AAAA,EAG/B;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA;AAAA,kBAEG,KAAK,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC;AAAA,kBACzC,KAAK,QACD;AAAA;AAAA,0BAGA,OAAO;AAAA,kBACX,KAAK,YACD,UACA;AAAA;AAAA,uBAEC;AAAA,kBACL,KAAK,cAAc,CAAC;AAAA,kBACpB,KAAK,YAAY,KAAK,aAAa,IAAI,OAAO;AAAA,kBAC9C,KAAK,aAAa,KAAK,cAAc,IAAI,OAAO;AAAA,kBAChD,KAAK,cAAc,KAAK,cAAc,IAAI,OAAO;AAAA;AAAA;AAAA,EAG/D;AAAA,EAEmB,aAAa,SAAkC;AAC9D,QAAI,QAAQ,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM;AACpC,WAAK,cAAc;AAAA,IACvB;AACA,QAAI,QAAQ,IAAI,aAAa,KAAK,KAAK,aAAa;AAChD,WAAK,cAAc,CAAC,KAAK;AAAA,IAC7B;AACA,WAAO,MAAM,aAAa,OAAO;AAAA,EACrC;AAAA,EAEmB,aAAa,SAA+B;AAC3D,UAAM,aAAa,OAAO;AAC1B,SAAK,aAAa,QAAQ,QAAQ;AAAA,EACtC;AAAA,EAEmB,QAAQ,SAA+B;AACtD,UAAM,QAAQ,OAAO;AACrB,
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport '@spectrum-web-components/divider/sp-divider.js';\nimport '@spectrum-web-components/button/sp-close-button.js';\nimport '@spectrum-web-components/button-group/sp-button-group.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-alert.js';\nimport { ObserveSlotPresence } from '@spectrum-web-components/shared';\n\nimport styles from './dialog.css.js';\nimport type { CloseButton } from '@spectrum-web-components/button';\nimport { AlertDialog } from '@spectrum-web-components/alert-dialog/src/AlertDialog.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\n\n/**\n * @element sp-dialog\n *\n * @slot hero - Accepts a hero image to display at the top of the dialog\n * @slot heading - Acts as the heading of the dialog. This should be an actual heading tag `<h1-6 />`\n * @slot - Content not addressed to a specific slot will be interpreted as the main content of the dialog\n * @slot footer - Content addressed to the `footer` will be placed below the main content and to the side of any `[slot='button']` content\n * @slot button - Button elements addressed to this slot may be placed below the content when not delivered in a fullscreen mode\n * @fires close - Announces that the dialog has been closed.\n */\nexport class Dialog extends ObserveSlotPresence(AlertDialog, [\n '[slot=\"hero\"]',\n '[slot=\"footer\"]',\n '[slot=\"button\"]',\n]) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @query('.close-button')\n closeButton?: CloseButton;\n\n /**\n * @deprecated Use the Alert Dialog component with `variant=\"error\"` instead.\n */\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ type: Boolean, reflect: true })\n public dismissable = false;\n\n @property({ type: String, reflect: true, attribute: 'dismiss-label' })\n public dismissLabel = 'Close';\n\n protected get hasFooter(): boolean {\n return this.getSlotContentPresence('[slot=\"footer\"]');\n }\n\n protected get hasButtons(): boolean {\n return this.getSlotContentPresence('[slot=\"button\"]');\n }\n\n /* c8 ignore next 3 */\n protected get hasHero(): boolean {\n return this.getSlotContentPresence('[slot=\"hero\"]');\n }\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public mode?: 'fullscreen' | 'fullscreenTakeover';\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n public close(): void {\n this.dispatchEvent(\n new Event('close', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n protected renderHero(): TemplateResult {\n return html`\n <slot name=\"hero\"></slot>\n `;\n }\n\n protected renderFooter(): TemplateResult {\n return html`\n <div class=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n protected override renderButtons(): TemplateResult {\n const classes = {\n 'button-group': true,\n 'button-group--noFooter': !this.hasFooter,\n };\n return html`\n <sp-button-group class=${classMap(classes)}>\n <slot name=\"button\"></slot>\n </sp-button-group>\n `;\n }\n\n protected renderDismiss(): TemplateResult {\n return html`\n <sp-close-button\n class=\"close-button\"\n label=${this.dismissLabel}\n quiet\n size=\"m\"\n @click=${this.close}\n ></sp-close-button>\n `;\n }\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"grid\">\n ${this.renderHero()} ${this.renderHeading()}\n ${this.error\n ? html`\n <sp-icon-alert class=\"type-icon\"></sp-icon-alert>\n `\n : nothing}\n ${this.noDivider\n ? nothing\n : html`\n <sp-divider size=\"m\" class=\"divider\"></sp-divider>\n `}\n ${this.renderContent()}\n ${this.hasFooter ? this.renderFooter() : nothing}\n ${this.hasButtons ? this.renderButtons() : nothing}\n ${this.dismissable ? this.renderDismiss() : nothing}\n </div>\n `;\n }\n\n protected override shouldUpdate(changes: PropertyValues): boolean {\n if (changes.has('mode') && !!this.mode) {\n this.dismissable = false;\n }\n if (changes.has('dismissable') && this.dismissable) {\n this.dismissable = !this.mode;\n }\n return super.shouldUpdate(changes);\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'dialog');\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('error') && this.error) {\n if (window.__swc.DEBUG) {\n window.__swc.warn(\n this,\n `The \"error\" attribute of <${this.localName}> has been deprecated. Use the Alert Dialog component with the \"variant='error'\" instead. \"error\" will be removed in a future release.`,\n 'https://opensource.adobe.com/spectrum-web-components/components/alert-dialog/#error',\n { level: 'deprecation' }\n );\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/src/Dialog.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var t=(d,i,e,n)=>{for(var r=n>1?void 0:n?c(i,e):i,
|
|
1
|
+
"use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var t=(d,i,e,n)=>{for(var r=n>1?void 0:n?c(i,e):i,p=d.length-1,u;p>=0;p--)(u=d[p])&&(r=(n?u(i,e,r):u(r))||r);return n&&r&&a(i,e,r),r};import{html as o,nothing as l}from"@spectrum-web-components/base";import{property as s,query as m}from"@spectrum-web-components/base/src/decorators.js";import"@spectrum-web-components/divider/sp-divider.js";import"@spectrum-web-components/button/sp-close-button.js";import"@spectrum-web-components/button-group/sp-button-group.js";import"@spectrum-web-components/icons-workflow/icons/sp-icon-alert.js";import{ObserveSlotPresence as b}from"@spectrum-web-components/shared";import h from"./dialog.css.js";import{AlertDialog as f}from"@spectrum-web-components/alert-dialog/src/AlertDialog.js";import{classMap as v}from"@spectrum-web-components/base/src/directives.js";export class Dialog extends b(f,['[slot="hero"]','[slot="footer"]','[slot="button"]']){constructor(){super(...arguments);this.error=!1;this.dismissable=!1;this.dismissLabel="Close";this.noDivider=!1}static get styles(){return[h]}get hasFooter(){return this.getSlotContentPresence('[slot="footer"]')}get hasButtons(){return this.getSlotContentPresence('[slot="button"]')}get hasHero(){return this.getSlotContentPresence('[slot="hero"]')}close(){this.dispatchEvent(new Event("close",{bubbles:!0,composed:!0,cancelable:!0}))}renderHero(){return o`
|
|
2
2
|
<slot name="hero"></slot>
|
|
3
3
|
`}renderFooter(){return o`
|
|
4
4
|
<div class="footer">
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
${this.hasButtons?this.renderButtons():l}
|
|
31
31
|
${this.dismissable?this.renderDismiss():l}
|
|
32
32
|
</div>
|
|
33
|
-
`}shouldUpdate(e){return e.has("mode")&&this.mode&&(this.dismissable=!1),e.has("dismissable")&&this.dismissable&&(this.dismissable=!this.mode),super.shouldUpdate(e)}firstUpdated(e){super.firstUpdated(e),this.setAttribute("role","dialog")}updated(e){super.updated(e),e.has("error")&&
|
|
33
|
+
`}shouldUpdate(e){return e.has("mode")&&this.mode&&(this.dismissable=!1),e.has("dismissable")&&this.dismissable&&(this.dismissable=!this.mode),super.shouldUpdate(e)}firstUpdated(e){super.firstUpdated(e),this.setAttribute("role","dialog")}updated(e){super.updated(e),e.has("error")&&this.error}}t([m(".close-button")],Dialog.prototype,"closeButton",2),t([s({type:Boolean,reflect:!0})],Dialog.prototype,"error",2),t([s({type:Boolean,reflect:!0})],Dialog.prototype,"dismissable",2),t([s({type:String,reflect:!0,attribute:"dismiss-label"})],Dialog.prototype,"dismissLabel",2),t([s({type:Boolean,reflect:!0,attribute:"no-divider"})],Dialog.prototype,"noDivider",2),t([s({type:String,reflect:!0})],Dialog.prototype,"mode",2),t([s({type:String,reflect:!0})],Dialog.prototype,"size",2);
|
|
34
34
|
//# sourceMappingURL=Dialog.js.map
|
package/src/Dialog.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["Dialog.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport '@spectrum-web-components/divider/sp-divider.js';\nimport '@spectrum-web-components/button/sp-close-button.js';\nimport '@spectrum-web-components/button-group/sp-button-group.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-alert.js';\nimport { ObserveSlotPresence } from '@spectrum-web-components/shared';\n\nimport styles from './dialog.css.js';\nimport type { CloseButton } from '@spectrum-web-components/button';\nimport { AlertDialog } from '@spectrum-web-components/alert-dialog/src/AlertDialog.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\n\n/**\n * @element sp-dialog\n *\n * @slot hero - Accepts a hero image to display at the top of the dialog\n * @slot heading - Acts as the heading of the dialog. This should be an actual heading tag `<h1-6 />`\n * @slot - Content not addressed to a specific slot will be interpreted as the main content of the dialog\n * @slot footer - Content addressed to the `footer` will be placed below the main content and to the side of any `[slot='button']` content\n * @slot button - Button elements addressed to this slot may be placed below the content when not delivered in a fullscreen mode\n * @fires close - Announces that the dialog has been closed.\n */\nexport class Dialog extends ObserveSlotPresence(AlertDialog, [\n '[slot=\"hero\"]',\n '[slot=\"footer\"]',\n '[slot=\"button\"]',\n]) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @query('.close-button')\n closeButton?: CloseButton;\n\n /**\n * @deprecated Use the Alert Dialog component with `variant=\"error\"` instead.\n */\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ type: Boolean, reflect: true })\n public dismissable = false;\n\n @property({ type: String, reflect: true, attribute: 'dismiss-label' })\n public dismissLabel = 'Close';\n\n protected get hasFooter(): boolean {\n return this.getSlotContentPresence('[slot=\"footer\"]');\n }\n\n protected get hasButtons(): boolean {\n return this.getSlotContentPresence('[slot=\"button\"]');\n }\n\n /* c8 ignore next 3 */\n protected get hasHero(): boolean {\n return this.getSlotContentPresence('[slot=\"hero\"]');\n }\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public mode?: 'fullscreen' | 'fullscreenTakeover';\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n public close(): void {\n this.dispatchEvent(\n new Event('close', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n protected renderHero(): TemplateResult {\n return html`\n <slot name=\"hero\"></slot>\n `;\n }\n\n protected renderFooter(): TemplateResult {\n return html`\n <div class=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n protected override renderButtons(): TemplateResult {\n const classes = {\n 'button-group': true,\n 'button-group--noFooter': !this.hasFooter,\n };\n return html`\n <sp-button-group class=${classMap(classes)}>\n <slot name=\"button\"></slot>\n </sp-button-group>\n `;\n }\n\n protected renderDismiss(): TemplateResult {\n return html`\n <sp-close-button\n class=\"close-button\"\n label=${this.dismissLabel}\n quiet\n size=\"m\"\n @click=${this.close}\n ></sp-close-button>\n `;\n }\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"grid\">\n ${this.renderHero()} ${this.renderHeading()}\n ${this.error\n ? html`\n <sp-icon-alert class=\"type-icon\"></sp-icon-alert>\n `\n : nothing}\n ${this.noDivider\n ? nothing\n : html`\n <sp-divider size=\"m\" class=\"divider\"></sp-divider>\n `}\n ${this.renderContent()}\n ${this.hasFooter ? this.renderFooter() : nothing}\n ${this.hasButtons ? this.renderButtons() : nothing}\n ${this.dismissable ? this.renderDismiss() : nothing}\n </div>\n `;\n }\n\n protected override shouldUpdate(changes: PropertyValues): boolean {\n if (changes.has('mode') && !!this.mode) {\n this.dismissable = false;\n }\n if (changes.has('dismissable') && this.dismissable) {\n this.dismissable = !this.mode;\n }\n return super.shouldUpdate(changes);\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'dialog');\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (
|
|
5
|
-
"mappings": "qNAYA,OAEI,QAAAA,EACA,WAAAC,MAGG,gCACP,OACI,YAAAC,EACA,SAAAC,MACG,kDAEP,MAAO,iDACP,MAAO,qDACP,MAAO,2DACP,MAAO,iEACP,OAAS,uBAAAC,MAA2B,kCAEpC,OAAOC,MAAY,kBAEnB,OAAS,eAAAC,MAAmB,2DAC5B,OAAS,YAAAC,MAAgB,kDAYlB,aAAM,eAAeH,EAAoBE,EAAa,CACzD,gBACA,kBACA,iBACJ,CAAC,CAAE,CAJI,kCAgBH,KAAO,MAAQ,GAGf,KAAO,YAAc,GAGrB,KAAO,aAAe,QAgBtB,KAAO,UAAY,GAjCnB,WAA2B,QAAyB,CAChD,MAAO,CAACD,CAAM,CAClB,CAiBA,IAAc,WAAqB,CAC/B,OAAO,KAAK,uBAAuB,iBAAiB,CACxD,CAEA,IAAc,YAAsB,CAChC,OAAO,KAAK,uBAAuB,iBAAiB,CACxD,CAGA,IAAc,SAAmB,CAC7B,OAAO,KAAK,uBAAuB,eAAe,CACtD,CAWO,OAAc,CACjB,KAAK,cACD,IAAI,MAAM,QAAS,CACf,QAAS,GACT,SAAU,GACV,WAAY,EAChB,CAAC,CACL,CACJ,CAEU,YAA6B,CACnC,OAAOL;AAAA;AAAA,SAGX,CAEU,cAA+B,CACrC,OAAOA;AAAA;AAAA;AAAA;AAAA,SAKX,CAEmB,eAAgC,CAC/C,MAAMQ,EAAU,CACZ,eAAgB,GAChB,yBAA0B,CAAC,KAAK,SACpC,EACA,OAAOR;AAAA,qCACsBO,EAASC,CAAO,CAAC;AAAA;AAAA;AAAA,SAIlD,CAEU,eAAgC,CACtC,OAAOR;AAAA;AAAA;AAAA,wBAGS,KAAK,YAAY;AAAA;AAAA;AAAA,yBAGhB,KAAK,KAAK;AAAA;AAAA,SAG/B,CAEmB,QAAyB,CACxC,OAAOA;AAAA;AAAA,kBAEG,KAAK,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC;AAAA,kBACzC,KAAK,MACDA;AAAA;AAAA,wBAGAC,CAAO;AAAA,kBACX,KAAK,UACDA,EACAD;AAAA;AAAA,uBAEC;AAAA,kBACL,KAAK,cAAc,CAAC;AAAA,kBACpB,KAAK,UAAY,KAAK,aAAa,EAAIC,CAAO;AAAA,kBAC9C,KAAK,WAAa,KAAK,cAAc,EAAIA,CAAO;AAAA,kBAChD,KAAK,YAAc,KAAK,cAAc,EAAIA,CAAO;AAAA;AAAA,SAG/D,CAEmB,aAAaQ,EAAkC,CAC9D,OAAIA,EAAQ,IAAI,MAAM,GAAO,KAAK,OAC9B,KAAK,YAAc,IAEnBA,EAAQ,IAAI,aAAa,GAAK,KAAK,cACnC,KAAK,YAAc,CAAC,KAAK,MAEtB,MAAM,aAAaA,CAAO,CACrC,CAEmB,aAAaA,EAA+B,CAC3D,MAAM,aAAaA,CAAO,EAC1B,KAAK,aAAa,OAAQ,QAAQ,CACtC,CAEmB,QAAQA,EAA+B,CACtD,MAAM,QAAQA,CAAO,
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport '@spectrum-web-components/divider/sp-divider.js';\nimport '@spectrum-web-components/button/sp-close-button.js';\nimport '@spectrum-web-components/button-group/sp-button-group.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-alert.js';\nimport { ObserveSlotPresence } from '@spectrum-web-components/shared';\n\nimport styles from './dialog.css.js';\nimport type { CloseButton } from '@spectrum-web-components/button';\nimport { AlertDialog } from '@spectrum-web-components/alert-dialog/src/AlertDialog.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\n\n/**\n * @element sp-dialog\n *\n * @slot hero - Accepts a hero image to display at the top of the dialog\n * @slot heading - Acts as the heading of the dialog. This should be an actual heading tag `<h1-6 />`\n * @slot - Content not addressed to a specific slot will be interpreted as the main content of the dialog\n * @slot footer - Content addressed to the `footer` will be placed below the main content and to the side of any `[slot='button']` content\n * @slot button - Button elements addressed to this slot may be placed below the content when not delivered in a fullscreen mode\n * @fires close - Announces that the dialog has been closed.\n */\nexport class Dialog extends ObserveSlotPresence(AlertDialog, [\n '[slot=\"hero\"]',\n '[slot=\"footer\"]',\n '[slot=\"button\"]',\n]) {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @query('.close-button')\n closeButton?: CloseButton;\n\n /**\n * @deprecated Use the Alert Dialog component with `variant=\"error\"` instead.\n */\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ type: Boolean, reflect: true })\n public dismissable = false;\n\n @property({ type: String, reflect: true, attribute: 'dismiss-label' })\n public dismissLabel = 'Close';\n\n protected get hasFooter(): boolean {\n return this.getSlotContentPresence('[slot=\"footer\"]');\n }\n\n protected get hasButtons(): boolean {\n return this.getSlotContentPresence('[slot=\"button\"]');\n }\n\n /* c8 ignore next 3 */\n protected get hasHero(): boolean {\n return this.getSlotContentPresence('[slot=\"hero\"]');\n }\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public mode?: 'fullscreen' | 'fullscreenTakeover';\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n public close(): void {\n this.dispatchEvent(\n new Event('close', {\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n }\n\n protected renderHero(): TemplateResult {\n return html`\n <slot name=\"hero\"></slot>\n `;\n }\n\n protected renderFooter(): TemplateResult {\n return html`\n <div class=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n protected override renderButtons(): TemplateResult {\n const classes = {\n 'button-group': true,\n 'button-group--noFooter': !this.hasFooter,\n };\n return html`\n <sp-button-group class=${classMap(classes)}>\n <slot name=\"button\"></slot>\n </sp-button-group>\n `;\n }\n\n protected renderDismiss(): TemplateResult {\n return html`\n <sp-close-button\n class=\"close-button\"\n label=${this.dismissLabel}\n quiet\n size=\"m\"\n @click=${this.close}\n ></sp-close-button>\n `;\n }\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"grid\">\n ${this.renderHero()} ${this.renderHeading()}\n ${this.error\n ? html`\n <sp-icon-alert class=\"type-icon\"></sp-icon-alert>\n `\n : nothing}\n ${this.noDivider\n ? nothing\n : html`\n <sp-divider size=\"m\" class=\"divider\"></sp-divider>\n `}\n ${this.renderContent()}\n ${this.hasFooter ? this.renderFooter() : nothing}\n ${this.hasButtons ? this.renderButtons() : nothing}\n ${this.dismissable ? this.renderDismiss() : nothing}\n </div>\n `;\n }\n\n protected override shouldUpdate(changes: PropertyValues): boolean {\n if (changes.has('mode') && !!this.mode) {\n this.dismissable = false;\n }\n if (changes.has('dismissable') && this.dismissable) {\n this.dismissable = !this.mode;\n }\n return super.shouldUpdate(changes);\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'dialog');\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('error') && this.error) {\n if (window.__swc.DEBUG) {\n window.__swc.warn(\n this,\n `The \"error\" attribute of <${this.localName}> has been deprecated. Use the Alert Dialog component with the \"variant='error'\" instead. \"error\" will be removed in a future release.`,\n 'https://opensource.adobe.com/spectrum-web-components/components/alert-dialog/#error',\n { level: 'deprecation' }\n );\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["html", "nothing", "property", "query", "ObserveSlotPresence", "styles", "AlertDialog", "classMap", "classes", "changes", "__decorateClass"]
|
|
7
7
|
}
|
package/src/DialogWrapper.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CSSResultArray,
|
|
1
|
+
import { CSSResultArray, TemplateResult } from '@spectrum-web-components/base';
|
|
2
2
|
import '@spectrum-web-components/underlay/sp-underlay.js';
|
|
3
3
|
import '@spectrum-web-components/button/sp-button.js';
|
|
4
4
|
import '@spectrum-web-components/dialog/sp-dialog.js';
|
|
@@ -34,6 +34,5 @@ export declare class DialogWrapper extends DialogBase {
|
|
|
34
34
|
private clickSecondary;
|
|
35
35
|
private clickCancel;
|
|
36
36
|
private clickConfirm;
|
|
37
|
-
protected updated(changes: PropertyValues<this>): void;
|
|
38
37
|
protected renderDialog(): TemplateResult;
|
|
39
38
|
}
|
package/src/DialogWrapper.dev.js
CHANGED
|
@@ -60,19 +60,6 @@ export class DialogWrapper extends DialogBase {
|
|
|
60
60
|
})
|
|
61
61
|
);
|
|
62
62
|
}
|
|
63
|
-
updated(changes) {
|
|
64
|
-
super.updated(changes);
|
|
65
|
-
if (changes.has("error") && (this.error !== void 0 || changes.get("error") !== void 0)) {
|
|
66
|
-
if (true) {
|
|
67
|
-
window.__swc.warn(
|
|
68
|
-
this,
|
|
69
|
-
`The "error" attribute of <${this.localName}> has been deprecated. Use the Alert Dialog component with the "variant='error'" instead. "error" will be removed in a future release.`,
|
|
70
|
-
"https://opensource.adobe.com/spectrum-web-components/components/alert-dialog/#error",
|
|
71
|
-
{ level: "deprecation" }
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
63
|
renderDialog() {
|
|
77
64
|
const hideDivider = this.noDivider || !this.headline || this.headlineVisibility === "none";
|
|
78
65
|
if (true) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["DialogWrapper.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EACA;AAAA,
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/underlay/sp-underlay.js';\nimport '@spectrum-web-components/button/sp-button.js';\n\n// Leveraged in build systems that use aliasing to prevent multiple registrations: https://github.com/adobe/spectrum-web-components/pull/3225\nimport '@spectrum-web-components/dialog/sp-dialog.js';\nimport { DialogBase } from './DialogBase.dev.js'\nimport { Dialog } from './Dialog.dev.js'\n\n/**\n * @element sp-dialog-wrapper\n *\n * @slot - content for the dialog\n * @fires secondary - Announces that the \"secondary\" button has been clicked.\n * @fires cancel - Announces that the \"cancel\" button has been clicked.\n * @fires confirm - Announces that the \"confirm\" button has been clicked.\n * @fires close - Announces that the dialog has been closed.\n */\nexport class DialogWrapper extends DialogBase {\n public static override get styles(): CSSResultArray {\n return [...super.styles];\n }\n\n /**\n * @deprecated Use the Alert Dialog component with `variant=\"error\"` instead.\n */\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ attribute: 'cancel-label' })\n public cancelLabel = '';\n\n @property({ attribute: 'confirm-label' })\n public confirmLabel = '';\n\n @property({ attribute: 'dismiss-label' })\n public dismissLabel = 'Close';\n\n @property()\n public footer = '';\n\n @property()\n public hero = '';\n\n @property({ attribute: 'hero-label' })\n public heroLabel = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n @property({ attribute: 'secondary-label' })\n public secondaryLabel = '';\n\n @property()\n public headline = '';\n\n @property({ type: String, attribute: 'headline-visibility' })\n public headlineVisibility: 'none' | undefined;\n\n protected override get dialog(): Dialog {\n return this.shadowRoot.querySelector('sp-dialog') as Dialog;\n }\n\n private clickSecondary(): void {\n this.dispatchEvent(\n new Event('secondary', {\n bubbles: true,\n })\n );\n }\n\n private clickCancel(): void {\n this.dispatchEvent(\n new Event('cancel', {\n bubbles: true,\n })\n );\n }\n\n private clickConfirm(): void {\n this.dispatchEvent(\n new Event('confirm', {\n bubbles: true,\n })\n );\n }\n\n protected override renderDialog(): TemplateResult {\n const hideDivider =\n this.noDivider ||\n !this.headline ||\n this.headlineVisibility === 'none';\n\n if (window.__swc.DEBUG) {\n if (!this.headline) {\n window.__swc.warn(\n this,\n `<${this.localName}> elements will not be accessible to screen readers without a \"headline\" attribute or property.`,\n 'https://opensource.adobe.com/spectrum-web-components/components/dialog-wrapper/#accessibility',\n {\n type: 'accessibility',\n }\n );\n }\n }\n\n return html`\n <sp-dialog\n ?dismissable=${this.dismissable}\n dismiss-label=${this.dismissLabel}\n ?no-divider=${hideDivider}\n ?error=${this.error}\n mode=${ifDefined(this.mode)}\n size=${ifDefined(this.size)}\n >\n ${this.hero\n ? html`\n <img\n src=\"${this.hero}\"\n slot=\"hero\"\n aria-hidden=${ifDefined(\n this.heroLabel ? undefined : 'true'\n )}\n alt=${ifDefined(\n this.heroLabel ? this.heroLabel : undefined\n )}\n />\n `\n : nothing}\n ${this.headline\n ? html`\n <h2\n slot=\"heading\"\n ?hidden=${this.headlineVisibility === 'none'}\n >\n ${this.headline}\n </h2>\n `\n : nothing}\n <slot></slot>\n ${this.footer\n ? html`\n <div slot=\"footer\">${this.footer}</div>\n `\n : nothing}\n ${this.cancelLabel\n ? html`\n <sp-button\n variant=\"secondary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickCancel}\n >\n ${this.cancelLabel}\n </sp-button>\n `\n : nothing}\n ${this.secondaryLabel\n ? html`\n <sp-button\n variant=\"primary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickSecondary}\n >\n ${this.secondaryLabel}\n </sp-button>\n `\n : nothing}\n ${this.confirmLabel\n ? html`\n <sp-button\n variant=\"accent\"\n slot=\"button\"\n @click=${this.clickConfirm}\n >\n ${this.confirmLabel}\n </sp-button>\n `\n : nothing}\n </sp-dialog>\n `;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/src/DialogWrapper.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var h=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var e=(c,
|
|
1
|
+
"use strict";var h=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var e=(c,o,r,n)=>{for(var i=n>1?void 0:n?u(o,r):o,b=c.length-1,d;b>=0;b--)(d=c[b])&&(i=(n?d(o,r,i):d(i))||i);return n&&i&&h(o,r,i),i};import{html as s,nothing as l}from"@spectrum-web-components/base";import{property as t}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as a}from"@spectrum-web-components/base/src/directives.js";import"@spectrum-web-components/underlay/sp-underlay.js";import"@spectrum-web-components/button/sp-button.js";import"@spectrum-web-components/dialog/sp-dialog.js";import{DialogBase as m}from"./DialogBase.js";export class DialogWrapper extends m{constructor(){super(...arguments);this.error=!1;this.cancelLabel="";this.confirmLabel="";this.dismissLabel="Close";this.footer="";this.hero="";this.heroLabel="";this.noDivider=!1;this.secondaryLabel="";this.headline=""}static get styles(){return[...super.styles]}get dialog(){return this.shadowRoot.querySelector("sp-dialog")}clickSecondary(){this.dispatchEvent(new Event("secondary",{bubbles:!0}))}clickCancel(){this.dispatchEvent(new Event("cancel",{bubbles:!0}))}clickConfirm(){this.dispatchEvent(new Event("confirm",{bubbles:!0}))}renderDialog(){const r=this.noDivider||!this.headline||this.headlineVisibility==="none";return s`
|
|
2
2
|
<sp-dialog
|
|
3
3
|
?dismissable=${this.dismissable}
|
|
4
4
|
dismiss-label=${this.dismissLabel}
|
|
5
|
-
?no-divider=${
|
|
5
|
+
?no-divider=${r}
|
|
6
6
|
?error=${this.error}
|
|
7
7
|
mode=${a(this.mode)}
|
|
8
8
|
size=${a(this.size)}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
aria-hidden=${a(this.heroLabel?void 0:"true")}
|
|
15
15
|
alt=${a(this.heroLabel?this.heroLabel:void 0)}
|
|
16
16
|
/>
|
|
17
|
-
`:
|
|
17
|
+
`:l}
|
|
18
18
|
${this.headline?s`
|
|
19
19
|
<h2
|
|
20
20
|
slot="heading"
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
>
|
|
23
23
|
${this.headline}
|
|
24
24
|
</h2>
|
|
25
|
-
`:
|
|
25
|
+
`:l}
|
|
26
26
|
<slot></slot>
|
|
27
27
|
${this.footer?s`
|
|
28
28
|
<div slot="footer">${this.footer}</div>
|
|
29
|
-
`:
|
|
29
|
+
`:l}
|
|
30
30
|
${this.cancelLabel?s`
|
|
31
31
|
<sp-button
|
|
32
32
|
variant="secondary"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
>
|
|
37
37
|
${this.cancelLabel}
|
|
38
38
|
</sp-button>
|
|
39
|
-
`:
|
|
39
|
+
`:l}
|
|
40
40
|
${this.secondaryLabel?s`
|
|
41
41
|
<sp-button
|
|
42
42
|
variant="primary"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
>
|
|
47
47
|
${this.secondaryLabel}
|
|
48
48
|
</sp-button>
|
|
49
|
-
`:
|
|
49
|
+
`:l}
|
|
50
50
|
${this.confirmLabel?s`
|
|
51
51
|
<sp-button
|
|
52
52
|
variant="accent"
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
>
|
|
56
56
|
${this.confirmLabel}
|
|
57
57
|
</sp-button>
|
|
58
|
-
`:
|
|
58
|
+
`:l}
|
|
59
59
|
</sp-dialog>
|
|
60
60
|
`}}e([t({type:Boolean,reflect:!0})],DialogWrapper.prototype,"error",2),e([t({attribute:"cancel-label"})],DialogWrapper.prototype,"cancelLabel",2),e([t({attribute:"confirm-label"})],DialogWrapper.prototype,"confirmLabel",2),e([t({attribute:"dismiss-label"})],DialogWrapper.prototype,"dismissLabel",2),e([t()],DialogWrapper.prototype,"footer",2),e([t()],DialogWrapper.prototype,"hero",2),e([t({attribute:"hero-label"})],DialogWrapper.prototype,"heroLabel",2),e([t({type:Boolean,reflect:!0,attribute:"no-divider"})],DialogWrapper.prototype,"noDivider",2),e([t({type:String,reflect:!0})],DialogWrapper.prototype,"size",2),e([t({attribute:"secondary-label"})],DialogWrapper.prototype,"secondaryLabel",2),e([t()],DialogWrapper.prototype,"headline",2),e([t({type:String,attribute:"headline-visibility"})],DialogWrapper.prototype,"headlineVisibility",2);
|
|
61
61
|
//# sourceMappingURL=DialogWrapper.js.map
|
package/src/DialogWrapper.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["DialogWrapper.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n
|
|
5
|
-
"mappings": "qNAYA,OAEI,QAAAA,EACA,WAAAC,
|
|
6
|
-
"names": ["html", "nothing", "property", "ifDefined", "DialogBase", "
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/underlay/sp-underlay.js';\nimport '@spectrum-web-components/button/sp-button.js';\n\n// Leveraged in build systems that use aliasing to prevent multiple registrations: https://github.com/adobe/spectrum-web-components/pull/3225\nimport '@spectrum-web-components/dialog/sp-dialog.js';\nimport { DialogBase } from './DialogBase.js';\nimport { Dialog } from './Dialog.js';\n\n/**\n * @element sp-dialog-wrapper\n *\n * @slot - content for the dialog\n * @fires secondary - Announces that the \"secondary\" button has been clicked.\n * @fires cancel - Announces that the \"cancel\" button has been clicked.\n * @fires confirm - Announces that the \"confirm\" button has been clicked.\n * @fires close - Announces that the dialog has been closed.\n */\nexport class DialogWrapper extends DialogBase {\n public static override get styles(): CSSResultArray {\n return [...super.styles];\n }\n\n /**\n * @deprecated Use the Alert Dialog component with `variant=\"error\"` instead.\n */\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ attribute: 'cancel-label' })\n public cancelLabel = '';\n\n @property({ attribute: 'confirm-label' })\n public confirmLabel = '';\n\n @property({ attribute: 'dismiss-label' })\n public dismissLabel = 'Close';\n\n @property()\n public footer = '';\n\n @property()\n public hero = '';\n\n @property({ attribute: 'hero-label' })\n public heroLabel = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n @property({ attribute: 'secondary-label' })\n public secondaryLabel = '';\n\n @property()\n public headline = '';\n\n @property({ type: String, attribute: 'headline-visibility' })\n public headlineVisibility: 'none' | undefined;\n\n protected override get dialog(): Dialog {\n return this.shadowRoot.querySelector('sp-dialog') as Dialog;\n }\n\n private clickSecondary(): void {\n this.dispatchEvent(\n new Event('secondary', {\n bubbles: true,\n })\n );\n }\n\n private clickCancel(): void {\n this.dispatchEvent(\n new Event('cancel', {\n bubbles: true,\n })\n );\n }\n\n private clickConfirm(): void {\n this.dispatchEvent(\n new Event('confirm', {\n bubbles: true,\n })\n );\n }\n\n protected override renderDialog(): TemplateResult {\n const hideDivider =\n this.noDivider ||\n !this.headline ||\n this.headlineVisibility === 'none';\n\n if (window.__swc.DEBUG) {\n if (!this.headline) {\n window.__swc.warn(\n this,\n `<${this.localName}> elements will not be accessible to screen readers without a \"headline\" attribute or property.`,\n 'https://opensource.adobe.com/spectrum-web-components/components/dialog-wrapper/#accessibility',\n {\n type: 'accessibility',\n }\n );\n }\n }\n\n return html`\n <sp-dialog\n ?dismissable=${this.dismissable}\n dismiss-label=${this.dismissLabel}\n ?no-divider=${hideDivider}\n ?error=${this.error}\n mode=${ifDefined(this.mode)}\n size=${ifDefined(this.size)}\n >\n ${this.hero\n ? html`\n <img\n src=\"${this.hero}\"\n slot=\"hero\"\n aria-hidden=${ifDefined(\n this.heroLabel ? undefined : 'true'\n )}\n alt=${ifDefined(\n this.heroLabel ? this.heroLabel : undefined\n )}\n />\n `\n : nothing}\n ${this.headline\n ? html`\n <h2\n slot=\"heading\"\n ?hidden=${this.headlineVisibility === 'none'}\n >\n ${this.headline}\n </h2>\n `\n : nothing}\n <slot></slot>\n ${this.footer\n ? html`\n <div slot=\"footer\">${this.footer}</div>\n `\n : nothing}\n ${this.cancelLabel\n ? html`\n <sp-button\n variant=\"secondary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickCancel}\n >\n ${this.cancelLabel}\n </sp-button>\n `\n : nothing}\n ${this.secondaryLabel\n ? html`\n <sp-button\n variant=\"primary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickSecondary}\n >\n ${this.secondaryLabel}\n </sp-button>\n `\n : nothing}\n ${this.confirmLabel\n ? html`\n <sp-button\n variant=\"accent\"\n slot=\"button\"\n @click=${this.clickConfirm}\n >\n ${this.confirmLabel}\n </sp-button>\n `\n : nothing}\n </sp-dialog>\n `;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["html", "nothing", "property", "ifDefined", "DialogBase", "hideDivider", "__decorateClass"]
|
|
7
7
|
}
|
|
@@ -316,41 +316,5 @@ describe("dev mode", () => {
|
|
|
316
316
|
window.__swc.verbose = false;
|
|
317
317
|
consoleWarnStub.restore();
|
|
318
318
|
});
|
|
319
|
-
it("warns that `error` is deprecated", async () => {
|
|
320
|
-
const el = await styledFixture(
|
|
321
|
-
wrapperDismissableUnderlayError()
|
|
322
|
-
);
|
|
323
|
-
await elementUpdated(el);
|
|
324
|
-
expect(consoleWarnStub.called).to.be.true;
|
|
325
|
-
const dialogWrapperSpyCall = consoleWarnStub.getCall(1);
|
|
326
|
-
const dialogSpyCall = consoleWarnStub.getCall(2);
|
|
327
|
-
expect(
|
|
328
|
-
dialogWrapperSpyCall.args.at(0).includes('"error"'),
|
|
329
|
-
"confirm error-centric message in dialog wrapper"
|
|
330
|
-
).to.be.true;
|
|
331
|
-
expect(
|
|
332
|
-
dialogWrapperSpyCall.args.at(-1),
|
|
333
|
-
"confirm `data` shape"
|
|
334
|
-
).to.deep.equal({
|
|
335
|
-
data: {
|
|
336
|
-
localName: "sp-dialog-wrapper",
|
|
337
|
-
type: "api",
|
|
338
|
-
level: "deprecation"
|
|
339
|
-
}
|
|
340
|
-
});
|
|
341
|
-
expect(
|
|
342
|
-
dialogSpyCall.args.at(0).includes('"error"'),
|
|
343
|
-
"confirm error-centric message in extended dialog class"
|
|
344
|
-
).to.be.true;
|
|
345
|
-
expect(dialogSpyCall.args.at(-1), "confirm `data` shape").to.deep.equal(
|
|
346
|
-
{
|
|
347
|
-
data: {
|
|
348
|
-
localName: "sp-dialog",
|
|
349
|
-
type: "api",
|
|
350
|
-
level: "deprecation"
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
);
|
|
354
|
-
});
|
|
355
319
|
});
|
|
356
320
|
//# sourceMappingURL=dialog-wrapper.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["dialog-wrapper.test.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n elementUpdated,\n expect,\n fixture,\n oneEvent,\n waitUntil,\n} from '@open-wc/testing';\nimport { SinonStub, spy, stub } from 'sinon';\n\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { Dialog, DialogWrapper } from '@spectrum-web-components/dialog';\nimport { Button } from '@spectrum-web-components/button';\nimport { Underlay } from '@spectrum-web-components/underlay';\nimport {\n lazyHero,\n longContent,\n wrapperButtons,\n wrapperButtonsUnderlay,\n wrapperDismissable,\n wrapperDismissableUnderlayError,\n wrapperFullscreen,\n wrapperHeadlineVisibilityNone,\n wrapperLabeledHero,\n wrapperWithHeadline,\n wrapperWithHeadlineNoDivider,\n} from '../stories/dialog-wrapper.stories.js';\nimport { OverlayTrigger } from '@spectrum-web-components/overlay';\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\nimport { Divider } from '@spectrum-web-components/divider/src/Divider.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { nextFrame } from '@spectrum-web-components/overlay/src/AbstractOverlay.js';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"dark\">\n ${story}\n </sp-theme>\n `);\n return test.children[0] as T;\n}\n\ndescribe('Dialog Wrapper', () => {\n testForLitDevWarnings(\n async () => await styledFixture<DialogWrapper>(wrapperDismissable())\n );\n it('loads wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads labeled hero dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperLabeledHero());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads fullscreen wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperFullscreen());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n xit('loads with underlay and no headline accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n el.headline = '';\n await elementUpdated(el);\n await expect(el).to.be.accessible();\n });\n it('opens and closes', async () => {\n const closeSpy = spy();\n const openedSpy = spy();\n const test = await styledFixture<OverlayTrigger>(html`\n <div @sp-opened=${() => openedSpy()}>${longContent()}</div>\n `);\n const overlayTrigger = test.querySelector(\n 'overlay-trigger'\n ) as OverlayTrigger;\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n await waitUntil(\n () => openedSpy.calledOnce,\n 'click content projected to overlay',\n { timeout: 2000 }\n );\n\n expect(el.open).to.be.true;\n const closed = oneEvent(overlayTrigger, 'sp-closed');\n overlayTrigger.open = undefined;\n await closed;\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it('opens and closes when element is recycled', async () => {\n const closeSpy = spy();\n const openedSpy = spy();\n const test = await styledFixture<OverlayTrigger>(html`\n <div @sp-opened=${() => openedSpy()}>${longContent()}</div>\n `);\n const overlayTrigger = test.querySelector(\n 'overlay-trigger'\n ) as OverlayTrigger;\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n\n await waitUntil(\n () => openedSpy.calledOnce,\n 'click content projected to overlay',\n { timeout: 2000 }\n );\n\n expect(el.open).to.be.true;\n const closed = oneEvent(overlayTrigger, 'sp-closed');\n overlayTrigger.open = undefined;\n await closed;\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it(\"shows header divider when there's a header\", async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperWithHeadline()\n );\n await elementUpdated(wrapper);\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.not.null;\n });\n it('hides header divider when there\\'s a header but \"no-divider\"', async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperWithHeadlineNoDivider()\n );\n await elementUpdated(wrapper);\n\n await expect(wrapper).to.be.accessible();\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.null;\n });\n it(\"hides header divider when there's no header\", async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperHeadlineVisibilityNone()\n );\n await elementUpdated(wrapper);\n\n await expect(wrapper).to.be.accessible();\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.null;\n });\n it('dismisses via clicking the underlay when [dismissable]', async () => {\n const test = await styledFixture<DialogWrapper>(\n wrapperDismissableUnderlayError()\n );\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n await elementUpdated(el);\n expect(el.open).to.be.true;\n el.dismissable = true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('does not dismiss via clicking the underlay :not([dismissable])', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n expect(el.open).to.be.true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.true;\n });\n it('dismisses', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n const root = el.shadowRoot ? el.shadowRoot : el;\n const dialog = root.querySelector('sp-dialog') as Dialog;\n const dialogRoot = dialog.shadowRoot ? dialog.shadowRoot : dialog;\n const dismissButton = dialogRoot.querySelector(\n '.close-button'\n ) as HTMLButtonElement;\n expect(dismissButton.ariaLabel).to.be.equals('Close');\n dismissButton.click();\n\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('manages entry focus - buttons', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n expect(document.activeElement !== el, 'no focused').to.be.true;\n\n const button = el.shadowRoot.querySelector('sp-button') as Button;\n\n el.focus();\n await elementUpdated(el);\n expect(\n document.activeElement === el,\n `focused generally, ${document.activeElement}`\n ).to.be.true;\n expect(\n (button.getRootNode() as Document).activeElement === button,\n `focused specifically, ${\n (button.getRootNode() as Document).activeElement?.outerHTML\n }`\n ).to.be.true;\n });\n it('dispatches `confirm`, `cancel` and `secondary`', async () => {\n const confirmSpy = spy();\n const cancelSpy = spy();\n const secondarySpy = spy();\n const handleConfirm = (): void => confirmSpy();\n const handleCancel = (): void => cancelSpy();\n const handleSecondary = (): void => secondarySpy();\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n el.addEventListener('confirm', handleConfirm);\n el.addEventListener('cancel', handleCancel);\n el.addEventListener('secondary', handleSecondary);\n\n await elementUpdated(el);\n expect(confirmSpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n expect(secondarySpy.called).to.be.false;\n\n const accentButton = el.shadowRoot.querySelector(\n '[variant=\"accent\"]'\n ) as Button;\n const primaryButton = el.shadowRoot.querySelector(\n '[variant=\"primary\"]'\n ) as Button;\n const secondaryButton = el.shadowRoot.querySelector(\n '[variant=\"secondary\"]'\n ) as Button;\n\n accentButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.called, 'dispatched `confirm`').to.be.true;\n expect(secondarySpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n\n primaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.called, 'dispatched `cancel`').to.be.true;\n expect(cancelSpy.called).to.be.false;\n\n secondaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.callCount).to.equal(1);\n expect(cancelSpy.called, 'dispatched `secondary`').to.be.true;\n });\n\n describe('dev mode', () => {\n let consoleWarnStub!: SinonStub;\n before(() => {\n consoleWarnStub = stub(console, 'warn');\n });\n afterEach(() => {\n consoleWarnStub.resetHistory();\n });\n after(() => {\n consoleWarnStub.restore();\n });\n it('warns in Dev Mode when accessible attributes are not leveraged', async () => {\n const el = await fixture<DialogWrapper>(html`\n <sp-dialog-wrapper></sp-dialog-wrapper>\n `);\n\n await elementUpdated(el);\n\n expect(consoleWarnStub.called).to.be.true;\n const spyCall = consoleWarnStub.getCall(0);\n expect(\n spyCall.args.at(0).includes('accessible'),\n 'confirm accessibility-centric message'\n ).to.be.true;\n expect(spyCall.args.at(-1), 'confirm `data` shape').to.deep.equal({\n data: {\n localName: 'sp-dialog-wrapper',\n type: 'accessibility',\n level: 'default',\n },\n });\n });\n });\n\n it('manages content element tabindex on resize observer time', async () => {\n const imgReadyPromise = new Promise((res) => {\n const img = document.createElement('img');\n img.onload = res;\n img.src = lazyHero.args.src;\n });\n const test = await styledFixture(lazyHero(lazyHero.args));\n const dialog = document.querySelector(\n 'sp-dialog-wrapper'\n ) as DialogWrapper;\n const button = document.querySelector('sp-button') as Button;\n const rect = button.getBoundingClientRect();\n const contentElement = (\n (dialog as unknown as { dialog: Dialog }).dialog as unknown as {\n contentElement: HTMLElement;\n }\n ).contentElement;\n expect(contentElement.hasAttribute('tabindex')).to.be.false;\n await elementUpdated(dialog);\n const opened = oneEvent(test, 'sp-opened');\n await sendMouse({\n steps: [\n {\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n type: 'click',\n },\n ],\n });\n await opened;\n await elementUpdated(dialog);\n await imgReadyPromise;\n // Resize observer timing.\n await nextFrame();\n await nextFrame();\n expect(contentElement.hasAttribute('tabindex')).to.be.true;\n });\n});\n\ndescribe('dev mode', () => {\n let consoleWarnStub!: ReturnType<typeof stub>;\n before(() => {\n window.__swc.verbose = true;\n consoleWarnStub = stub(console, 'warn');\n });\n afterEach(() => {\n consoleWarnStub.resetHistory();\n });\n after(() => {\n window.__swc.verbose = false;\n consoleWarnStub.restore();\n });\n\n it('warns that `error` is deprecated', async () => {\n const el = await styledFixture<DialogWrapper>(\n wrapperDismissableUnderlayError()\n );\n await elementUpdated(el);\n\n expect(consoleWarnStub.called).to.be.true;\n const dialogWrapperSpyCall = consoleWarnStub.getCall(1);\n const dialogSpyCall = consoleWarnStub.getCall(2);\n expect(\n (dialogWrapperSpyCall.args.at(0) as string).includes('\"error\"'),\n 'confirm error-centric message in dialog wrapper'\n ).to.be.true;\n expect(\n dialogWrapperSpyCall.args.at(-1),\n 'confirm `data` shape'\n ).to.deep.equal({\n data: {\n localName: 'sp-dialog-wrapper',\n type: 'api',\n level: 'deprecation',\n },\n });\n expect(\n (dialogSpyCall.args.at(0) as string).includes('\"error\"'),\n 'confirm error-centric message in extended dialog class'\n ).to.be.true;\n expect(dialogSpyCall.args.at(-1), 'confirm `data` shape').to.deep.equal(\n {\n data: {\n localName: 'sp-dialog',\n type: 'api',\n level: 'deprecation',\n },\n }\n );\n });\n});\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n elementUpdated,\n expect,\n fixture,\n oneEvent,\n waitUntil,\n} from '@open-wc/testing';\nimport { SinonStub, spy, stub } from 'sinon';\n\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { Dialog, DialogWrapper } from '@spectrum-web-components/dialog';\nimport { Button } from '@spectrum-web-components/button';\nimport { Underlay } from '@spectrum-web-components/underlay';\nimport {\n lazyHero,\n longContent,\n wrapperButtons,\n wrapperButtonsUnderlay,\n wrapperDismissable,\n wrapperDismissableUnderlayError,\n wrapperFullscreen,\n wrapperHeadlineVisibilityNone,\n wrapperLabeledHero,\n wrapperWithHeadline,\n wrapperWithHeadlineNoDivider,\n} from '../stories/dialog-wrapper.stories.js';\nimport { OverlayTrigger } from '@spectrum-web-components/overlay';\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\nimport { Divider } from '@spectrum-web-components/divider/src/Divider.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { nextFrame } from '@spectrum-web-components/overlay/src/AbstractOverlay.js';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"dark\">\n ${story}\n </sp-theme>\n `);\n return test.children[0] as T;\n}\n\ndescribe('Dialog Wrapper', () => {\n testForLitDevWarnings(\n async () => await styledFixture<DialogWrapper>(wrapperDismissable())\n );\n it('loads wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads labeled hero dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperLabeledHero());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads fullscreen wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperFullscreen());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n xit('loads with underlay and no headline accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n el.headline = '';\n await elementUpdated(el);\n await expect(el).to.be.accessible();\n });\n it('opens and closes', async () => {\n const closeSpy = spy();\n const openedSpy = spy();\n const test = await styledFixture<OverlayTrigger>(html`\n <div @sp-opened=${() => openedSpy()}>${longContent()}</div>\n `);\n const overlayTrigger = test.querySelector(\n 'overlay-trigger'\n ) as OverlayTrigger;\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n await waitUntil(\n () => openedSpy.calledOnce,\n 'click content projected to overlay',\n { timeout: 2000 }\n );\n\n expect(el.open).to.be.true;\n const closed = oneEvent(overlayTrigger, 'sp-closed');\n overlayTrigger.open = undefined;\n await closed;\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it('opens and closes when element is recycled', async () => {\n const closeSpy = spy();\n const openedSpy = spy();\n const test = await styledFixture<OverlayTrigger>(html`\n <div @sp-opened=${() => openedSpy()}>${longContent()}</div>\n `);\n const overlayTrigger = test.querySelector(\n 'overlay-trigger'\n ) as OverlayTrigger;\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n\n await waitUntil(\n () => openedSpy.calledOnce,\n 'click content projected to overlay',\n { timeout: 2000 }\n );\n\n expect(el.open).to.be.true;\n const closed = oneEvent(overlayTrigger, 'sp-closed');\n overlayTrigger.open = undefined;\n await closed;\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it(\"shows header divider when there's a header\", async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperWithHeadline()\n );\n await elementUpdated(wrapper);\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.not.null;\n });\n it('hides header divider when there\\'s a header but \"no-divider\"', async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperWithHeadlineNoDivider()\n );\n await elementUpdated(wrapper);\n\n await expect(wrapper).to.be.accessible();\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.null;\n });\n it(\"hides header divider when there's no header\", async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperHeadlineVisibilityNone()\n );\n await elementUpdated(wrapper);\n\n await expect(wrapper).to.be.accessible();\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.null;\n });\n it('dismisses via clicking the underlay when [dismissable]', async () => {\n const test = await styledFixture<DialogWrapper>(\n wrapperDismissableUnderlayError()\n );\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n await elementUpdated(el);\n expect(el.open).to.be.true;\n el.dismissable = true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('does not dismiss via clicking the underlay :not([dismissable])', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n expect(el.open).to.be.true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.true;\n });\n it('dismisses', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n const root = el.shadowRoot ? el.shadowRoot : el;\n const dialog = root.querySelector('sp-dialog') as Dialog;\n const dialogRoot = dialog.shadowRoot ? dialog.shadowRoot : dialog;\n const dismissButton = dialogRoot.querySelector(\n '.close-button'\n ) as HTMLButtonElement;\n expect(dismissButton.ariaLabel).to.be.equals('Close');\n dismissButton.click();\n\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('manages entry focus - buttons', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n expect(document.activeElement !== el, 'no focused').to.be.true;\n\n const button = el.shadowRoot.querySelector('sp-button') as Button;\n\n el.focus();\n await elementUpdated(el);\n expect(\n document.activeElement === el,\n `focused generally, ${document.activeElement}`\n ).to.be.true;\n expect(\n (button.getRootNode() as Document).activeElement === button,\n `focused specifically, ${\n (button.getRootNode() as Document).activeElement?.outerHTML\n }`\n ).to.be.true;\n });\n it('dispatches `confirm`, `cancel` and `secondary`', async () => {\n const confirmSpy = spy();\n const cancelSpy = spy();\n const secondarySpy = spy();\n const handleConfirm = (): void => confirmSpy();\n const handleCancel = (): void => cancelSpy();\n const handleSecondary = (): void => secondarySpy();\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n el.addEventListener('confirm', handleConfirm);\n el.addEventListener('cancel', handleCancel);\n el.addEventListener('secondary', handleSecondary);\n\n await elementUpdated(el);\n expect(confirmSpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n expect(secondarySpy.called).to.be.false;\n\n const accentButton = el.shadowRoot.querySelector(\n '[variant=\"accent\"]'\n ) as Button;\n const primaryButton = el.shadowRoot.querySelector(\n '[variant=\"primary\"]'\n ) as Button;\n const secondaryButton = el.shadowRoot.querySelector(\n '[variant=\"secondary\"]'\n ) as Button;\n\n accentButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.called, 'dispatched `confirm`').to.be.true;\n expect(secondarySpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n\n primaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.called, 'dispatched `cancel`').to.be.true;\n expect(cancelSpy.called).to.be.false;\n\n secondaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.callCount).to.equal(1);\n expect(cancelSpy.called, 'dispatched `secondary`').to.be.true;\n });\n\n describe('dev mode', () => {\n let consoleWarnStub!: SinonStub;\n before(() => {\n consoleWarnStub = stub(console, 'warn');\n });\n afterEach(() => {\n consoleWarnStub.resetHistory();\n });\n after(() => {\n consoleWarnStub.restore();\n });\n it('warns in Dev Mode when accessible attributes are not leveraged', async () => {\n const el = await fixture<DialogWrapper>(html`\n <sp-dialog-wrapper></sp-dialog-wrapper>\n `);\n\n await elementUpdated(el);\n\n expect(consoleWarnStub.called).to.be.true;\n const spyCall = consoleWarnStub.getCall(0);\n expect(\n spyCall.args.at(0).includes('accessible'),\n 'confirm accessibility-centric message'\n ).to.be.true;\n expect(spyCall.args.at(-1), 'confirm `data` shape').to.deep.equal({\n data: {\n localName: 'sp-dialog-wrapper',\n type: 'accessibility',\n level: 'default',\n },\n });\n });\n });\n\n it('manages content element tabindex on resize observer time', async () => {\n const imgReadyPromise = new Promise((res) => {\n const img = document.createElement('img');\n img.onload = res;\n img.src = lazyHero.args.src;\n });\n const test = await styledFixture(lazyHero(lazyHero.args));\n const dialog = document.querySelector(\n 'sp-dialog-wrapper'\n ) as DialogWrapper;\n const button = document.querySelector('sp-button') as Button;\n const rect = button.getBoundingClientRect();\n const contentElement = (\n (dialog as unknown as { dialog: Dialog }).dialog as unknown as {\n contentElement: HTMLElement;\n }\n ).contentElement;\n expect(contentElement.hasAttribute('tabindex')).to.be.false;\n await elementUpdated(dialog);\n const opened = oneEvent(test, 'sp-opened');\n await sendMouse({\n steps: [\n {\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n type: 'click',\n },\n ],\n });\n await opened;\n await elementUpdated(dialog);\n await imgReadyPromise;\n // Resize observer timing.\n await nextFrame();\n await nextFrame();\n expect(contentElement.hasAttribute('tabindex')).to.be.true;\n });\n});\n\ndescribe('dev mode', () => {\n let consoleWarnStub!: ReturnType<typeof stub>;\n before(() => {\n window.__swc.verbose = true;\n consoleWarnStub = stub(console, 'warn');\n });\n afterEach(() => {\n consoleWarnStub.resetHistory();\n });\n after(() => {\n window.__swc.verbose = false;\n consoleWarnStub.restore();\n });\n});\n"],
|
|
5
|
+
"mappings": ";AAYA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAoB,KAAK,YAAY;AAErC,OAAO;AACP,OAAO;AACP,OAAO;AAIP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,YAA4B;AAErC,SAAS,6BAA6B;AAEtC,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAE1B,eAAe,cACX,OACU;AACV,QAAM,OAAO,MAAM,QAAe;AAAA;AAAA,cAExB,KAAK;AAAA;AAAA,KAEd;AACD,SAAO,KAAK,SAAS,CAAC;AAC1B;AAEA,SAAS,kBAAkB,MAAM;AAC7B;AAAA,IACI,YAAY,MAAM,cAA6B,mBAAmB,CAAC;AAAA,EACvE;AACA,KAAG,mCAAmC,YAAY;AAC9C,UAAM,KAAK,MAAM,cAA6B,mBAAmB,CAAC;AAElE,UAAM,eAAe,EAAE;AAEvB,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,KAAG,wCAAwC,YAAY;AACnD,UAAM,KAAK,MAAM,cAA6B,mBAAmB,CAAC;AAElE,UAAM,eAAe,EAAE;AAEvB,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,KAAG,8CAA8C,YAAY;AACzD,UAAM,KAAK,MAAM,cAA6B,kBAAkB,CAAC;AAEjE,UAAM,eAAe,EAAE;AAEvB,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,MAAI,kDAAkD,YAAY;AAC9D,UAAM,KAAK,MAAM,cAA6B,uBAAuB,CAAC;AACtE,UAAM,eAAe,EAAE;AACvB,OAAG,WAAW;AACd,UAAM,eAAe,EAAE;AACvB,UAAM,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW;AAAA,EACtC,CAAC;AACD,KAAG,oBAAoB,YAAY;AAC/B,UAAM,WAAW,IAAI;AACrB,UAAM,YAAY,IAAI;AACtB,UAAM,OAAO,MAAM,cAA8B;AAAA,8BAC3B,MAAM,UAAU,CAAC,IAAI,YAAY,CAAC;AAAA,SACvD;AACD,UAAM,iBAAiB,KAAK;AAAA,MACxB;AAAA,IACJ;AACA,UAAM,KAAK,KAAK,cAAc,mBAAmB;AACjD,OAAG,iBAAiB,SAAS,MAAM,SAAS,CAAC;AAC7C,UAAM;AAAA,MACF,MAAM,UAAU;AAAA,MAChB;AAAA,MACA,EAAE,SAAS,IAAK;AAAA,IACpB;AAEA,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,UAAM,SAAS,SAAS,gBAAgB,WAAW;AACnD,mBAAe,OAAO;AACtB,UAAM;AAEN,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,WAAO,SAAS,SAAS,EAAE,GAAG,MAAM,CAAC;AAAA,EACzC,CAAC;AACD,KAAG,6CAA6C,YAAY;AACxD,UAAM,WAAW,IAAI;AACrB,UAAM,YAAY,IAAI;AACtB,UAAM,OAAO,MAAM,cAA8B;AAAA,8BAC3B,MAAM,UAAU,CAAC,IAAI,YAAY,CAAC;AAAA,SACvD;AACD,UAAM,iBAAiB,KAAK;AAAA,MACxB;AAAA,IACJ;AACA,UAAM,KAAK,KAAK,cAAc,mBAAmB;AACjD,OAAG,iBAAiB,SAAS,MAAM,SAAS,CAAC;AAE7C,UAAM;AAAA,MACF,MAAM,UAAU;AAAA,MAChB;AAAA,MACA,EAAE,SAAS,IAAK;AAAA,IACpB;AAEA,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,UAAM,SAAS,SAAS,gBAAgB,WAAW;AACnD,mBAAe,OAAO;AACtB,UAAM;AAEN,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,WAAO,SAAS,SAAS,EAAE,GAAG,MAAM,CAAC;AAAA,EACzC,CAAC;AACD,KAAG,8CAA8C,YAAY;AACzD,UAAM,UAAU,MAAM;AAAA,MAClB,oBAAoB;AAAA,IACxB;AACA,UAAM,eAAe,OAAO;AAE5B,UAAM,SAAS,QAAQ,WAAW,cAAc,WAAW;AAC3D,UAAM,UAAU,OAAO,WAAW;AAAA,MAC9B;AAAA,IACJ;AAEA,WAAO,OAAO,EAAE,GAAG,GAAG,IAAI;AAAA,EAC9B,CAAC;AACD,KAAG,+DAAgE,YAAY;AAC3E,UAAM,UAAU,MAAM;AAAA,MAClB,6BAA6B;AAAA,IACjC;AACA,UAAM,eAAe,OAAO;AAE5B,UAAM,OAAO,OAAO,EAAE,GAAG,GAAG,WAAW;AAEvC,UAAM,SAAS,QAAQ,WAAW,cAAc,WAAW;AAC3D,UAAM,UAAU,OAAO,WAAW;AAAA,MAC9B;AAAA,IACJ;AAEA,WAAO,OAAO,EAAE,GAAG,GAAG;AAAA,EAC1B,CAAC;AACD,KAAG,+CAA+C,YAAY;AAC1D,UAAM,UAAU,MAAM;AAAA,MAClB,8BAA8B;AAAA,IAClC;AACA,UAAM,eAAe,OAAO;AAE5B,UAAM,OAAO,OAAO,EAAE,GAAG,GAAG,WAAW;AAEvC,UAAM,SAAS,QAAQ,WAAW,cAAc,WAAW;AAC3D,UAAM,UAAU,OAAO,WAAW;AAAA,MAC9B;AAAA,IACJ;AAEA,WAAO,OAAO,EAAE,GAAG,GAAG;AAAA,EAC1B,CAAC;AACD,KAAG,0DAA0D,YAAY;AACrE,UAAM,OAAO,MAAM;AAAA,MACf,gCAAgC;AAAA,IACpC;AACA,UAAM,KAAK,KAAK,cAAc,mBAAmB;AACjD,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,OAAG,cAAc;AACjB,UAAM,WAAW,GAAG,WAAW,cAAc,aAAa;AAC1D,aAAS,MAAM;AACf,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AAAA,EAC1B,CAAC;AACD,KAAG,kEAAkE,YAAY;AAC7E,UAAM,KAAK,MAAM,cAA6B,uBAAuB,CAAC;AACtE,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,UAAM,WAAW,GAAG,WAAW,cAAc,aAAa;AAC1D,aAAS,MAAM;AACf,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AAAA,EAC1B,CAAC;AACD,KAAG,aAAa,YAAY;AACxB,UAAM,KAAK,MAAM,cAA6B,mBAAmB,CAAC;AAElE,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AAEtB,UAAM,OAAO,GAAG,aAAa,GAAG,aAAa;AAC7C,UAAM,SAAS,KAAK,cAAc,WAAW;AAC7C,UAAM,aAAa,OAAO,aAAa,OAAO,aAAa;AAC3D,UAAM,gBAAgB,WAAW;AAAA,MAC7B;AAAA,IACJ;AACA,WAAO,cAAc,SAAS,EAAE,GAAG,GAAG,OAAO,OAAO;AACpD,kBAAc,MAAM;AAEpB,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AAAA,EAC1B,CAAC;AACD,KAAG,iCAAiC,YAAY;AAjOpD;AAkOQ,UAAM,KAAK,MAAM,cAA6B,eAAe,CAAC;AAE9D,UAAM,eAAe,EAAE;AACvB,WAAO,GAAG,IAAI,EAAE,GAAG,GAAG;AACtB,WAAO,SAAS,kBAAkB,IAAI,YAAY,EAAE,GAAG,GAAG;AAE1D,UAAM,SAAS,GAAG,WAAW,cAAc,WAAW;AAEtD,OAAG,MAAM;AACT,UAAM,eAAe,EAAE;AACvB;AAAA,MACI,SAAS,kBAAkB;AAAA,MAC3B,sBAAsB,SAAS,aAAa;AAAA,IAChD,EAAE,GAAG,GAAG;AACR;AAAA,MACK,OAAO,YAAY,EAAe,kBAAkB;AAAA,MACrD,0BACK,YAAO,YAAY,EAAe,kBAAlC,mBAAiD,SACtD;AAAA,IACJ,EAAE,GAAG,GAAG;AAAA,EACZ,CAAC;AACD,KAAG,kDAAkD,YAAY;AAC7D,UAAM,aAAa,IAAI;AACvB,UAAM,YAAY,IAAI;AACtB,UAAM,eAAe,IAAI;AACzB,UAAM,gBAAgB,MAAY,WAAW;AAC7C,UAAM,eAAe,MAAY,UAAU;AAC3C,UAAM,kBAAkB,MAAY,aAAa;AACjD,UAAM,KAAK,MAAM,cAA6B,eAAe,CAAC;AAC9D,OAAG,iBAAiB,WAAW,aAAa;AAC5C,OAAG,iBAAiB,UAAU,YAAY;AAC1C,OAAG,iBAAiB,aAAa,eAAe;AAEhD,UAAM,eAAe,EAAE;AACvB,WAAO,WAAW,MAAM,EAAE,GAAG,GAAG;AAChC,WAAO,UAAU,MAAM,EAAE,GAAG,GAAG;AAC/B,WAAO,aAAa,MAAM,EAAE,GAAG,GAAG;AAElC,UAAM,eAAe,GAAG,WAAW;AAAA,MAC/B;AAAA,IACJ;AACA,UAAM,gBAAgB,GAAG,WAAW;AAAA,MAChC;AAAA,IACJ;AACA,UAAM,kBAAkB,GAAG,WAAW;AAAA,MAClC;AAAA,IACJ;AAEA,iBAAa,MAAM;AAEnB,UAAM,eAAe,EAAE;AACvB,WAAO,WAAW,QAAQ,sBAAsB,EAAE,GAAG,GAAG;AACxD,WAAO,aAAa,MAAM,EAAE,GAAG,GAAG;AAClC,WAAO,UAAU,MAAM,EAAE,GAAG,GAAG;AAE/B,kBAAc,MAAM;AAEpB,UAAM,eAAe,EAAE;AACvB,WAAO,WAAW,SAAS,EAAE,GAAG,MAAM,CAAC;AACvC,WAAO,aAAa,QAAQ,qBAAqB,EAAE,GAAG,GAAG;AACzD,WAAO,UAAU,MAAM,EAAE,GAAG,GAAG;AAE/B,oBAAgB,MAAM;AAEtB,UAAM,eAAe,EAAE;AACvB,WAAO,WAAW,SAAS,EAAE,GAAG,MAAM,CAAC;AACvC,WAAO,aAAa,SAAS,EAAE,GAAG,MAAM,CAAC;AACzC,WAAO,UAAU,QAAQ,wBAAwB,EAAE,GAAG,GAAG;AAAA,EAC7D,CAAC;AAED,WAAS,YAAY,MAAM;AACvB,QAAI;AACJ,WAAO,MAAM;AACT,wBAAkB,KAAK,SAAS,MAAM;AAAA,IAC1C,CAAC;AACD,cAAU,MAAM;AACZ,sBAAgB,aAAa;AAAA,IACjC,CAAC;AACD,UAAM,MAAM;AACR,sBAAgB,QAAQ;AAAA,IAC5B,CAAC;AACD,OAAG,kEAAkE,YAAY;AAC7E,YAAM,KAAK,MAAM,QAAuB;AAAA;AAAA,aAEvC;AAED,YAAM,eAAe,EAAE;AAEvB,aAAO,gBAAgB,MAAM,EAAE,GAAG,GAAG;AACrC,YAAM,UAAU,gBAAgB,QAAQ,CAAC;AACzC;AAAA,QACI,QAAQ,KAAK,GAAG,CAAC,EAAE,SAAS,YAAY;AAAA,QACxC;AAAA,MACJ,EAAE,GAAG,GAAG;AACR,aAAO,QAAQ,KAAK,GAAG,EAAE,GAAG,sBAAsB,EAAE,GAAG,KAAK,MAAM;AAAA,QAC9D,MAAM;AAAA,UACF,WAAW;AAAA,UACX,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAAA,EACL,CAAC;AAED,KAAG,4DAA4D,YAAY;AACvE,UAAM,kBAAkB,IAAI,QAAQ,CAAC,QAAQ;AACzC,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,SAAS;AACb,UAAI,MAAM,SAAS,KAAK;AAAA,IAC5B,CAAC;AACD,UAAM,OAAO,MAAM,cAAc,SAAS,SAAS,IAAI,CAAC;AACxD,UAAM,SAAS,SAAS;AAAA,MACpB;AAAA,IACJ;AACA,UAAM,SAAS,SAAS,cAAc,WAAW;AACjD,UAAM,OAAO,OAAO,sBAAsB;AAC1C,UAAM,iBACD,OAAyC,OAG5C;AACF,WAAO,eAAe,aAAa,UAAU,CAAC,EAAE,GAAG,GAAG;AACtD,UAAM,eAAe,MAAM;AAC3B,UAAM,SAAS,SAAS,MAAM,WAAW;AACzC,UAAM,UAAU;AAAA,MACZ,OAAO;AAAA,QACH;AAAA,UACI,UAAU;AAAA,YACN,KAAK,OAAO,KAAK,QAAQ;AAAA,YACzB,KAAK,MAAM,KAAK,SAAS;AAAA,UAC7B;AAAA,UACA,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ,CAAC;AACD,UAAM;AACN,UAAM,eAAe,MAAM;AAC3B,UAAM;AAEN,UAAM,UAAU;AAChB,UAAM,UAAU;AAChB,WAAO,eAAe,aAAa,UAAU,CAAC,EAAE,GAAG,GAAG;AAAA,EAC1D,CAAC;AACL,CAAC;AAED,SAAS,YAAY,MAAM;AACvB,MAAI;AACJ,SAAO,MAAM;AACT,WAAO,MAAM,UAAU;AACvB,sBAAkB,KAAK,SAAS,MAAM;AAAA,EAC1C,CAAC;AACD,YAAU,MAAM;AACZ,oBAAgB,aAAa;AAAA,EACjC,CAAC;AACD,QAAM,MAAM;AACR,WAAO,MAAM,UAAU;AACvB,oBAAgB,QAAQ;AAAA,EAC5B,CAAC;AACL,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|