{"version":3,"file":"index.js","sources":["../../../../src/packages/core/notification/layouts/default/notification-layout-default.element.ts","../../../../src/packages/core/notification/notification-handler.ts","../../../../src/packages/core/notification/notification.context.ts","../../../../src/packages/core/notification/controllers/peek-error/peek-error-notification.element.ts","../../../../src/packages/core/notification/controllers/peek-error/peek-error.controller.ts","../../../../src/packages/core/notification/extractUmbNotificationColor.function.ts","../../../../src/packages/core/notification/isUmbNotifications.function.ts"],"sourcesContent":["import {\r\n\thtml,\r\n\tLitElement,\r\n\tcustomElement,\r\n\tproperty,\r\n\tifDefined,\r\n\tnothing,\r\n\tcss,\r\n} from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport type { UmbNotificationDefaultData, UmbNotificationHandler } from '@umbraco-cms/backoffice/notification';\r\n\r\nexport type { UmbNotificationDefaultData };\r\n\r\n@customElement('umb-notification-layout-default')\r\nexport class UmbNotificationLayoutDefaultElement extends LitElement {\r\n\t@property({ attribute: false })\r\n\tnotificationHandler!: UmbNotificationHandler;\r\n\r\n\t@property({ type: Object })\r\n\tdata!: UmbNotificationDefaultData;\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t
${this.data.message}
\r\n\t\t\t\t${this.#renderStructuredList(this.data.structuredList)}\r\n\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderStructuredList(list: unknown) {\r\n\t\tif (!this.data.structuredList) return nothing;\r\n\t\tif (typeof list !== 'object' || list === null) return nothing;\r\n\r\n\t\treturn html`${Object.entries(list).map(\r\n\t\t\t([property, errors]) =>\r\n\t\t\t\thtml`
\r\n\t\t\t\t\t

${property}:

\r\n\t\t\t\t\t\r\n\t\t\t\t
`,\r\n\t\t)}`;\r\n\t}\r\n\r\n\t#renderListItem(items: unknown) {\r\n\t\tif (Array.isArray(items)) {\r\n\t\t\treturn items.map((item) => html`
  • ${item}
  • `);\r\n\t\t} else {\r\n\t\t\treturn html`
  • ${items}
  • `;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tUmbTextStyles,\r\n\t\tcss`\r\n\t\t\t#message {\r\n\t\t\t\twhite-space: pre-line;\r\n\t\t\t}\r\n\t\t\t.structured-list ul {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t}\r\n\t\t\t.structured-list p {\r\n\t\t\t\tmargin: var(--uui-size-3) 0 var(--uui-size-1);\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-notification-layout-default': UmbNotificationLayoutDefaultElement;\r\n\t}\r\n}\r\n","import type { UmbNotificationOptions, UmbNotificationColor, UmbNotificationDefaultData } from './types.js';\r\nimport type { UUIToastNotificationElement } from '@umbraco-cms/backoffice/external/uui';\r\nimport { UmbId } from '@umbraco-cms/backoffice/id';\r\n\r\nconst DEFAULT_LAYOUT = 'umb-notification-layout-default';\r\n\r\n/**\r\n * @class UmbNotificationHandler\r\n */\r\nexport class UmbNotificationHandler {\r\n\tprivate _closeResolver: any;\r\n\tprivate _closePromise: Promise;\r\n\tprivate _elementName?: string;\r\n\tprivate _data?: UmbNotificationDefaultData;\r\n\r\n\tprivate _defaultColor: UmbNotificationColor = 'default';\r\n\tprivate _defaultDuration = 6000;\r\n\r\n\tpublic key: string;\r\n\tpublic element!: UUIToastNotificationElement;\r\n\tpublic color: UmbNotificationColor;\r\n\tpublic duration: number | null;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbNotificationHandler.\r\n\t * @param {UmbNotificationOptions} options\r\n\t * @memberof UmbNotificationHandler\r\n\t */\r\n\tconstructor(options: UmbNotificationOptions) {\r\n\t\tthis.key = UmbId.new();\r\n\t\tthis.color = options.color || this._defaultColor;\r\n\t\tthis.duration = options.duration !== undefined ? options.duration : this._defaultDuration;\r\n\r\n\t\tthis._elementName = options.elementName || DEFAULT_LAYOUT;\r\n\t\tthis._data = options.data;\r\n\r\n\t\tthis._closePromise = new Promise((res) => {\r\n\t\t\tthis._closeResolver = res;\r\n\t\t});\r\n\r\n\t\tconst notification: UUIToastNotificationElement = document.createElement('uui-toast-notification');\r\n\r\n\t\tnotification.color = this.color;\r\n\t\tnotification.autoClose = this.duration;\r\n\r\n\t\tconst element: any = document.createElement(this._elementName);\r\n\t\telement.data = this._data;\r\n\t\telement.notificationHandler = this;\r\n\r\n\t\tnotification.appendChild(element);\r\n\r\n\t\tthis.element = notification;\r\n\t}\r\n\r\n\t/**\r\n\t * @param {...any} args\r\n\t * @memberof UmbNotificationHandler\r\n\t */\r\n\tpublic close(...args: any) {\r\n\t\tthis._closeResolver(...args);\r\n\t\tthis.element.open = false;\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {*}\r\n\t * @memberof UmbNotificationHandler\r\n\t */\r\n\tpublic onClose(): Promise {\r\n\t\treturn this._closePromise;\r\n\t}\r\n}\r\n","import { UmbNotificationHandler } from './notification-handler.js';\r\nimport type { UmbNotificationColor, UmbNotificationOptions } from './types.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbContextBase } from '@umbraco-cms/backoffice/class-api';\r\nimport { UmbBasicState } from '@umbraco-cms/backoffice/observable-api';\r\n\r\nexport class UmbNotificationContext extends UmbContextBase {\r\n\t// Notice this cannot use UniqueBehaviorSubject as it holds a HTML Element. which cannot be Serialized to JSON (it has some circular references)\r\n\tprivate _notifications = new UmbBasicState(>[]);\r\n\tpublic readonly notifications = this._notifications.asObservable();\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_NOTIFICATION_CONTEXT);\r\n\t}\r\n\r\n\t/**\r\n\t * @private\r\n\t * @param {UmbNotificationOptions} options\r\n\t * @returns {*} {UmbNotificationHandler}\r\n\t * @memberof UmbNotificationContext\r\n\t */\r\n\t#open(options: T): UmbNotificationHandler {\r\n\t\tconst notificationHandler = new UmbNotificationHandler(options);\r\n\t\tnotificationHandler.element?.addEventListener('closed', () => this._handleClosed(notificationHandler));\r\n\r\n\t\tthis._notifications.setValue([...this._notifications.getValue(), notificationHandler]);\r\n\r\n\t\treturn notificationHandler;\r\n\t}\r\n\r\n\t/**\r\n\t * @private\r\n\t * @param {string} key\r\n\t * @memberof UmbNotificationContext\r\n\t */\r\n\tprivate _close(key: string) {\r\n\t\tthis._notifications.setValue(this._notifications.getValue().filter((notification) => notification.key !== key));\r\n\t}\r\n\r\n\t/**\r\n\t * @private\r\n\t * @param notificationHandler\r\n\t * @param {string} key\r\n\t * @memberof UmbNotificationContext\r\n\t */\r\n\tprivate _handleClosed(notificationHandler: UmbNotificationHandler) {\r\n\t\tnotificationHandler.element.removeEventListener('closed', () => this._handleClosed(notificationHandler));\r\n\t\tthis._close(notificationHandler.key);\r\n\t}\r\n\r\n\t/**\r\n\t * Opens a notification that automatically goes away after 6 sek.\r\n\t * @param {UmbNotificationColor} color\r\n\t * @param {UmbNotificationOptions} options\r\n\t * @returns {*}\r\n\t * @memberof UmbNotificationContext\r\n\t */\r\n\tpublic peek(\r\n\t\tcolor: UmbNotificationColor,\r\n\t\toptions: T,\r\n\t): UmbNotificationHandler {\r\n\t\treturn this.#open({ color, ...options });\r\n\t}\r\n\r\n\t/**\r\n\t * Opens a notification that stays on the screen until dismissed by the user or custom code\r\n\t * @param {UmbNotificationColor} color\r\n\t * @param {UmbNotificationOptions} options\r\n\t * @returns {*}\r\n\t * @memberof UmbNotificationContext\r\n\t */\r\n\tpublic stay(\r\n\t\tcolor: UmbNotificationColor,\r\n\t\toptions: T,\r\n\t): UmbNotificationHandler {\r\n\t\treturn this.#open({ ...options, color, duration: null });\r\n\t}\r\n}\r\n\r\nexport const UMB_NOTIFICATION_CONTEXT = new UmbContextToken('UmbNotificationContext');\r\n","import type { UmbNotificationHandler } from '../../notification-handler.js';\r\nimport type { UmbPeekErrorArgs } from '../../types.js';\r\nimport { customElement, html, ifDefined, nothing, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UMB_ERROR_VIEWER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';\r\n\r\n@customElement('umb-peek-error-notification')\r\nexport class UmbPeekErrorNotificationElement extends UmbLitElement {\r\n\t@property({ attribute: false })\r\n\tpublic data?: UmbPeekErrorArgs;\r\n\r\n\tpublic notificationHandler!: UmbNotificationHandler;\r\n\r\n\tasync #onClick() {\r\n\t\tconst modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);\r\n\r\n\t\tmodalManager.open(this, UMB_ERROR_VIEWER_MODAL, { data: this.data?.details });\r\n\r\n\t\tthis.notificationHandler.close();\r\n\t}\r\n\r\n\tprotected override render() {\r\n\t\treturn this.data\r\n\t\t\t? html`${this.data.message}${this.data.details\r\n\t\t\t\t\t\t? html``\r\n\t\t\t\t\t\t: nothing}`\r\n\t\t\t: nothing;\r\n\t}\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-peek-error-notification': UmbPeekErrorNotificationElement;\r\n\t}\r\n}\r\n","import { UMB_NOTIFICATION_CONTEXT } from '../../notification.context.js';\r\nimport { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport type { UmbPeekErrorArgs } from '../../types.js';\r\n\r\nimport './peek-error-notification.element.js';\r\n\r\nexport class UmbPeekErrorController extends UmbControllerBase {\r\n\tasync open(args: UmbPeekErrorArgs): Promise {\r\n\t\tconst context = await this.getContext(UMB_NOTIFICATION_CONTEXT);\r\n\r\n\t\tcontext.peek('danger', {\r\n\t\t\telementName: 'umb-peek-error-notification',\r\n\t\t\tdata: args,\r\n\t\t});\r\n\r\n\t\t// This is a one time off, so we can destroy our selfs.\r\n\t\tthis.destroy();\r\n\r\n\t\treturn;\r\n\t}\r\n}\r\n\r\n/**\r\n *\r\n * @param host {UmbControllerHost} - The host controller\r\n * @param args {UmbPeekErrorArgs} - The data to pass to the notification\r\n * @returns {UmbPeekErrorController} The notification peek controller instance\r\n */\r\nexport function umbPeekError(host: UmbControllerHost, args: UmbPeekErrorArgs) {\r\n\treturn new UmbPeekErrorController(host).open(args);\r\n}\r\n","import { EventMessageTypeModel } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbNotificationColor } from './types.js';\r\n\r\n/**\r\n *\r\n * @param type\r\n */\r\nexport function extractUmbNotificationColor(type: EventMessageTypeModel): UmbNotificationColor {\r\n\tswitch (type) {\r\n\t\tcase EventMessageTypeModel.ERROR:\r\n\t\t\treturn 'danger';\r\n\t\tcase EventMessageTypeModel.WARNING:\r\n\t\t\treturn 'warning';\r\n\t\tcase EventMessageTypeModel.INFO:\r\n\t\tcase EventMessageTypeModel.DEFAULT:\r\n\t\t\treturn 'default';\r\n\t\tcase EventMessageTypeModel.SUCCESS:\r\n\t\t\treturn 'positive';\r\n\t\tdefault:\r\n\t\t\treturn '';\r\n\t}\r\n}\r\n","import { EventMessageTypeModel } from '@umbraco-cms/backoffice/external/backend-api';\r\n\r\n/**\r\n *\r\n * @param notification\r\n */\r\nfunction objectIsUmbNotification(notification: unknown): notification is UmbNotificationsEventModel {\r\n\tif (typeof notification !== 'object' || notification === null) {\r\n\t\treturn false;\r\n\t}\r\n\tconst object = notification as UmbNotificationsEventModel;\r\n\treturn (\r\n\t\ttypeof object.category === 'string' &&\r\n\t\ttypeof object.message === 'string' &&\r\n\t\ttypeof object.type === 'string' &&\r\n\t\tObject.values(EventMessageTypeModel).includes(object.type)\r\n\t);\r\n}\r\n\r\nexport interface UmbNotificationsEventModel {\r\n\tcategory: string;\r\n\tmessage: string;\r\n\ttype: EventMessageTypeModel;\r\n}\r\n\r\n/**\r\n *\r\n * @param notifications\r\n */\r\nexport function isUmbNotifications(notifications: Array): notifications is Array {\r\n\treturn notifications.every(objectIsUmbNotification);\r\n}\r\n\r\nexport const UMB_NOTIFICATION_HEADER = 'umb-notifications';\r\n"],"names":["_UmbNotificationLayoutDefaultElement_instances","renderStructuredList_fn","renderListItem_fn","UmbNotificationLayoutDefaultElement","LitElement","__privateAdd","html","ifDefined","__privateMethod","list","nothing","property","errors","items","item","UmbTextStyles","css","__decorateClass","customElement","DEFAULT_LAYOUT","UmbNotificationHandler","options","UmbId","res","notification","element","args","UmbNotificationContext","UmbContextBase","host","UMB_NOTIFICATION_CONTEXT","UmbBasicState","#open","notificationHandler","key","color","UmbContextToken","_UmbPeekErrorNotificationElement_instances","onClick_fn","UmbPeekErrorNotificationElement","UmbLitElement","UMB_MODAL_MANAGER_CONTEXT","UMB_ERROR_VIEWER_MODAL","UmbPeekErrorController","UmbControllerBase","umbPeekError","extractUmbNotificationColor","type","EventMessageTypeModel","objectIsUmbNotification","object","isUmbNotifications","notifications","UMB_NOTIFICATION_HEADER"],"mappings":";;;;;;;;;;;;;;;8OAAAA,GAAAC,GAAAC;AAea,IAAAC,IAAN,cAAkDC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAAAC,EAAA,MAAAL,CAAA;AAAA,EAAA;AAAA,EAOG,SAAS;AACV,WAAAM;AAAA,0DACiDC,EAAU,KAAK,KAAK,QAAQ,CAAC;AAAA,wBAC/D,KAAK,KAAK,OAAO;AAAA,MACnCC,EAAK,MAAAR,GAAAC,CAAA,EAAL,KAA2B,MAAA,KAAK,KAAK,cAAe,CAAA;AAAA;AAAA;AAAA,EAAA;AA0C1D;AArDOD,IAAA,oBAAA,QAAA;AAgBNC,IAAqB,SAACQ,GAAe;AACpC,SAAK,KAAK,KAAK,iBACX,OAAOA,KAAS,YAAYA,MAAS,OAAaC,IAE/CJ,IAAO,OAAO,QAAQG,CAAI,EAAE;AAAA,IAClC,CAAC,CAACE,GAAUC,CAAM,MACjBN;AAAA,UACMK,CAAQ;AAAA;AAAA,QAEVH,EAAA,MAAKR,GAALE,CAAA,EAAA,KAAA,MAAqBU,CAAO,CAAA;AAAA;AAAA;AAAA,EAAA,CAGjC,KAXqCF;AAYvC;AAEAR,IAAe,SAACW,GAAgB;AAC3B,SAAA,MAAM,QAAQA,CAAK,IACfA,EAAM,IAAI,CAACC,MAASR,QAAWQ,CAAI,OAAO,IAE1CR,QAAWO,CAAK;AAEzB;AArCYV,EAuCI,SAAS;AAAA,EACxBY;AAAA,EACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWD;AAlDAC,EAAA;AAAA,EADCN,EAAS,EAAE,WAAW,GAAO,CAAA;AAAA,GADlBR,EAEZ,WAAA,uBAAA,CAAA;AAGAc,EAAA;AAAA,EADCN,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAJdR,EAKZ,WAAA,QAAA,CAAA;AALYA,IAANc,EAAA;AAAA,EADNC,EAAc,iCAAiC;AAAA,GACnCf,CAAA;ACXb,MAAMgB,IAAiB;AAKhB,MAAMC,EAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBnC,YAAYC,GAAiC;AAb7C,SAAQ,gBAAsC,WAC9C,KAAQ,mBAAmB,KAarB,KAAA,MAAMC,EAAM,IAAI,GAChB,KAAA,QAAQD,EAAQ,SAAS,KAAK,eACnC,KAAK,WAAWA,EAAQ,aAAa,SAAYA,EAAQ,WAAW,KAAK,kBAEpE,KAAA,eAAeA,EAAQ,eAAeF,GAC3C,KAAK,QAAQE,EAAQ,MAErB,KAAK,gBAAgB,IAAI,QAAQ,CAACE,MAAQ;AACzC,WAAK,iBAAiBA;AAAA,IAAA,CACtB;AAEK,UAAAC,IAA4C,SAAS,cAAc,wBAAwB;AAEjG,IAAAA,EAAa,QAAQ,KAAK,OAC1BA,EAAa,YAAY,KAAK;AAE9B,UAAMC,IAAe,SAAS,cAAc,KAAK,YAAY;AAC7D,IAAAA,EAAQ,OAAO,KAAK,OACpBA,EAAQ,sBAAsB,MAE9BD,EAAa,YAAYC,CAAO,GAEhC,KAAK,UAAUD;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,SAASE,GAAW;AACrB,SAAA,eAAe,GAAGA,CAAI,GAC3B,KAAK,QAAQ,OAAO;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOd,UAAwB;AAC9B,WAAO,KAAK;AAAA,EAAA;AAEd;AC/DO,MAAMC,WAA+BC,EAAuC;AAAA,EAKlF,YAAYC,GAAyB;AACpC,UAAMA,GAAMC,CAAwB,GAJrC,KAAQ,iBAAiB,IAAIC,EAA6C,EAAE,GAC5D,KAAA,gBAAgB,KAAK,eAAe,aAAa;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYjEC,GAAiEX,GAAoC;AAC9F,UAAAY,IAAsB,IAAIb,EAAuBC,CAAO;AAC9D,WAAAY,EAAoB,SAAS,iBAAiB,UAAU,MAAM,KAAK,cAAcA,CAAmB,CAAC,GAEhG,KAAA,eAAe,SAAS,CAAC,GAAG,KAAK,eAAe,YAAYA,CAAmB,CAAC,GAE9EA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAOC,GAAa;AAC3B,SAAK,eAAe,SAAS,KAAK,eAAe,SAAS,EAAE,OAAO,CAACV,MAAiBA,EAAa,QAAQU,CAAG,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvG,cAAcD,GAA6C;AAClE,IAAAA,EAAoB,QAAQ,oBAAoB,UAAU,MAAM,KAAK,cAAcA,CAAmB,CAAC,GAClG,KAAA,OAAOA,EAAoB,GAAG;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU7B,KACNE,GACAd,GACyB;AACzB,WAAO,KAAKW,GAAM,EAAE,OAAAG,GAAO,GAAGd,GAAS;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUjC,KACNc,GACAd,GACyB;AAClB,WAAA,KAAKW,GAAM,EAAE,GAAGX,GAAS,OAAAc,GAAO,UAAU,MAAM;AAAA,EAAA;AAEzD;AAEa,MAAAL,IAA2B,IAAIM,EAAwC,wBAAwB;;;;;;;8OChF5GC,GAAAC;AAOa,IAAAC,IAAN,cAA8CC,EAAc;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAAAnC,EAAA,MAAAgC,CAAA;AAAA,EAAA;AAAA,EAca,SAAS;AAC3B,WAAO,KAAK,OACT/B,4CAA+CC,EAAU,KAAK,KAAK,QAAQ,CAAC;AAAA,QACzE,KAAK,KAAK,OAAO,GAAG,KAAK,KAAK,UAC9BD;AAAA;AAAA;AAAA;AAAA,gBAIQ,KAAK,SAAS,KAAK,+BAA+B,CAAC;AAAA,iBAClDE,EAAA,MAAK6B,GAAQC,CAAA,CAAA,mBACtB5B,CAAO;AAAA,SAEVA;AAAA,EAAA;AAEL;AA5BO2B,IAAA,oBAAA,QAAA;AAMAC,IAAQ,iBAAG;AAGH,GAFQ,MAAM,KAAK,WAAWG,CAAyB,GAEvD,KAAK,MAAMC,GAAwB,EAAE,MAAM,KAAK,MAAM,SAAS,GAE5E,KAAK,oBAAoB,MAAM;AAChC;AAVOzB,EAAA;AAAA,EADNN,EAAS,EAAE,WAAW,GAAO,CAAA;AAAA,GADlB4B,EAEL,WAAA,QAAA,CAAA;AAFKA,IAANtB,EAAA;AAAA,EADNC,EAAc,6BAA6B;AAAA,GAC/BqB,CAAA;ACAN,MAAMI,UAA+BC,EAAkB;AAAA,EAC7D,MAAM,KAAKlB,GAAuC;AAGjD,KAFgB,MAAM,KAAK,WAAWI,CAAwB,GAEtD,KAAK,UAAU;AAAA,MACtB,aAAa;AAAA,MACb,MAAMJ;AAAA,IAAA,CACN,GAGD,KAAK,QAAQ;AAAA,EAEb;AAEF;AAQgB,SAAAmB,GAAahB,GAAyBH,GAAwB;AAC7E,SAAO,IAAIiB,EAAuBd,CAAI,EAAE,KAAKH,CAAI;AAClD;ACxBO,SAASoB,GAA4BC,GAAmD;AAC9F,UAAQA,GAAM;AAAA,IACb,KAAKC,EAAsB;AACnB,aAAA;AAAA,IACR,KAAKA,EAAsB;AACnB,aAAA;AAAA,IACR,KAAKA,EAAsB;AAAA,IAC3B,KAAKA,EAAsB;AACnB,aAAA;AAAA,IACR,KAAKA,EAAsB;AACnB,aAAA;AAAA,IACR;AACQ,aAAA;AAAA,EAAA;AAEV;ACfA,SAASC,EAAwBzB,GAAmE;AACnG,MAAI,OAAOA,KAAiB,YAAYA,MAAiB;AACjD,WAAA;AAER,QAAM0B,IAAS1B;AACf,SACC,OAAO0B,EAAO,YAAa,YAC3B,OAAOA,EAAO,WAAY,YAC1B,OAAOA,EAAO,QAAS,YACvB,OAAO,OAAOF,CAAqB,EAAE,SAASE,EAAO,IAAI;AAE3D;AAYO,SAASC,GAAmBC,GAAmF;AAC9G,SAAAA,EAAc,MAAMH,CAAuB;AACnD;AAEO,MAAMI,KAA0B;"}