@trismegisto/spine 3.3.3 → 3.3.4

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.
Files changed (47) hide show
  1. package/README.md +15 -2
  2. package/fesm2022/trismegisto-spine-audit.mjs +6 -6
  3. package/fesm2022/trismegisto-spine-audit.mjs.map +1 -1
  4. package/fesm2022/{trismegisto-spine-auto-service-auto-service-client.component-BAfeLyTB.mjs → trismegisto-spine-auto-service-auto-service-client.component-kAXaCM5W.mjs} +8 -8
  5. package/fesm2022/{trismegisto-spine-auto-service-auto-service-client.component-BAfeLyTB.mjs.map → trismegisto-spine-auto-service-auto-service-client.component-kAXaCM5W.mjs.map} +1 -1
  6. package/fesm2022/{trismegisto-spine-auto-service-auto-service-groups.component-BYjIQ9ID.mjs → trismegisto-spine-auto-service-auto-service-groups.component-DE2QIGRH.mjs} +251 -85
  7. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-DE2QIGRH.mjs.map +1 -0
  8. package/fesm2022/{trismegisto-spine-auto-service-auto-service-news-page.component-CBemH4hr.mjs → trismegisto-spine-auto-service-auto-service-news-page.component-BW7BJ0oD.mjs} +2 -2
  9. package/fesm2022/{trismegisto-spine-auto-service-auto-service-news-page.component-CBemH4hr.mjs.map → trismegisto-spine-auto-service-auto-service-news-page.component-BW7BJ0oD.mjs.map} +1 -1
  10. package/fesm2022/{trismegisto-spine-auto-service-auto-service-ratings-page.component-C_THGTkw.mjs → trismegisto-spine-auto-service-auto-service-ratings-page.component-CHPU-QLJ.mjs} +2 -2
  11. package/fesm2022/{trismegisto-spine-auto-service-auto-service-ratings-page.component-C_THGTkw.mjs.map → trismegisto-spine-auto-service-auto-service-ratings-page.component-CHPU-QLJ.mjs.map} +1 -1
  12. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-CkiCTmXD.mjs +3733 -0
  13. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-CkiCTmXD.mjs.map +1 -0
  14. package/fesm2022/{trismegisto-spine-auto-service-auto-service.component-QsIQ61w2.mjs → trismegisto-spine-auto-service-auto-service.component-D58Ht9PH.mjs} +7 -7
  15. package/fesm2022/{trismegisto-spine-auto-service-auto-service.component-QsIQ61w2.mjs.map → trismegisto-spine-auto-service-auto-service.component-D58Ht9PH.mjs.map} +1 -1
  16. package/fesm2022/{trismegisto-spine-auto-service-groups.technical-_jQrg1Qh.mjs → trismegisto-spine-auto-service-groups.technical-CB1D3ANC.mjs} +12 -3
  17. package/fesm2022/trismegisto-spine-auto-service-groups.technical-CB1D3ANC.mjs.map +1 -0
  18. package/fesm2022/{trismegisto-spine-auto-service-groups.usage-OvWjNeeT.mjs → trismegisto-spine-auto-service-groups.usage-De2MhlE7.mjs} +7 -2
  19. package/fesm2022/{trismegisto-spine-auto-service-groups.usage-OvWjNeeT.mjs.map → trismegisto-spine-auto-service-groups.usage-De2MhlE7.mjs.map} +1 -1
  20. package/fesm2022/{trismegisto-spine-auto-service-suggestions.technical-BtUK6sKD.mjs → trismegisto-spine-auto-service-suggestions.technical-CGBBzAR8.mjs} +14 -1
  21. package/fesm2022/{trismegisto-spine-auto-service-suggestions.technical-BtUK6sKD.mjs.map → trismegisto-spine-auto-service-suggestions.technical-CGBBzAR8.mjs.map} +1 -1
  22. package/fesm2022/{trismegisto-spine-auto-service-suggestions.usage-BwO9Hjsx.mjs → trismegisto-spine-auto-service-suggestions.usage-DnAJS-Z0.mjs} +26 -3
  23. package/fesm2022/trismegisto-spine-auto-service-suggestions.usage-DnAJS-Z0.mjs.map +1 -0
  24. package/fesm2022/trismegisto-spine-auto-service.mjs +24 -11
  25. package/fesm2022/trismegisto-spine-auto-service.mjs.map +1 -1
  26. package/fesm2022/{trismegisto-spine-layout-suggestions-page.component-xI2gDMok.mjs → trismegisto-spine-layout-suggestions-page.component-CEKMqera.mjs} +3 -3
  27. package/fesm2022/{trismegisto-spine-layout-suggestions-page.component-xI2gDMok.mjs.map → trismegisto-spine-layout-suggestions-page.component-CEKMqera.mjs.map} +1 -1
  28. package/fesm2022/{trismegisto-spine-layout-trismegisto-spine-layout-Clphrsgc.mjs → trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs} +428 -93
  29. package/fesm2022/trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs.map +1 -0
  30. package/fesm2022/trismegisto-spine-layout.mjs +1 -1
  31. package/fesm2022/trismegisto-spine-side-panel.mjs +1 -1
  32. package/fesm2022/trismegisto-spine-side-panel.mjs.map +1 -1
  33. package/fesm2022/trismegisto-spine.mjs +528 -10
  34. package/fesm2022/trismegisto-spine.mjs.map +1 -1
  35. package/package.json +6 -6
  36. package/types/trismegisto-spine-auto-service.d.ts +20 -4
  37. package/types/trismegisto-spine-auto-service.d.ts.map +1 -1
  38. package/types/trismegisto-spine-layout.d.ts +327 -63
  39. package/types/trismegisto-spine-layout.d.ts.map +1 -1
  40. package/types/trismegisto-spine.d.ts +221 -3
  41. package/types/trismegisto-spine.d.ts.map +1 -1
  42. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-BYjIQ9ID.mjs.map +0 -1
  43. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-mMjE3JOL.mjs +0 -2179
  44. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-mMjE3JOL.mjs.map +0 -1
  45. package/fesm2022/trismegisto-spine-auto-service-groups.technical-_jQrg1Qh.mjs.map +0 -1
  46. package/fesm2022/trismegisto-spine-auto-service-suggestions.usage-BwO9Hjsx.mjs.map +0 -1
  47. package/fesm2022/trismegisto-spine-layout-trismegisto-spine-layout-Clphrsgc.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- export { A as AiAgentComponent, v as AppLauncherComponent, H as HeaderComponent, L as LayoutComponent, N as NEW_SCREEN_VALUE, w as SPINE_BRAND, x as SPINE_GLOBAL_PREFERENCE_KEYS, y as SPINE_IDLE_WARNING_SECONDS, z as SPINE_INBOX_POLL_MS, B as SPINE_INBOX_SOURCES, C as SPINE_MARKDOWN_PURIFY_CONFIG, D as SPINE_PREFERENCES_SAVE_DELAY_MS, E as SPINE_RATING_COMMENT_MAX, F as SPINE_RATING_SCORE_MAX, G as SPINE_SETTINGS_ALIASES, I as SPINE_SETTINGS_KEYS, J as SPINE_SETTINGS_SECTIONS, K as SPINE_SUGGESTIONS_PAGE_ID, r as SPINE_SUGGESTIONS_PAGE_PATH, j as SPINE_SUGGESTION_KINDS, d as SPINE_SUGGESTION_KIND_COLORS, e as SPINE_SUGGESTION_KIND_ICONS, M as SPINE_SUGGESTION_LIMITS, m as SPINE_SUGGESTION_PAGE_PARAM, O as SPINE_SUGGESTION_PUBLIC_SORTS, P as SPINE_SUGGESTION_PUBLIC_STATUSES, h as SPINE_SUGGESTION_REASONS, i as SPINE_SUGGESTION_STATUSES, c as SPINE_SUGGESTION_STATUS_COLORS, Q as SPINE_SUGGESTION_STATUS_ICONS, o as SPINE_SUGGESTION_TAB_CONVERSATION, n as SPINE_SUGGESTION_TAB_PARAM, g as SPINE_SUGGESTION_VISIBLE_SORTS, k as SPINE_SUGGESTION_WAITING, f as SPINE_SUGGESTION_WAITING_COLORS, l as SPINE_TAB, R as SettingsPanelComponent, T as ShortcutService, U as ShortcutsCheatsheetComponent, V as SidebarComponent, W as SpineAccountPreferencesService, X as SpineAccountSecurityService, Y as SpineAppTokensService, Z as SpineBrandComponent, _ as SpineConnectionBannerComponent, $ as SpineDocsComponent, a0 as SpineDocsService, a1 as SpineIdleService, a2 as SpineIdleWarningComponent, a3 as SpineInboxButtonComponent, a as SpineInboxService, a4 as SpineInitialSetupComponent, a5 as SpineInitialSetupService, a6 as SpineLogoutService, a7 as SpineMarkdownComponent, a8 as SpineMyGroupsService, a9 as SpineNewsComponent, aa as SpineNewsService, ab as SpineNoticesService, ac as SpinePageActionsDirective, ad as SpinePageActionsSlot, ae as SpineRatingStarsComponent, af as SpineRatingsService, ag as SpineSettingsService, ah as SpineStartPageService, b as SpineSuggestionChatComponent, S as SpineSuggestionsService, u as SpineTagRowComponent, ai as SpineWorkspaceNavService, aj as accountErrorCode, ak as argosAccountApi, al as buildMcpConfig, am as effectiveIdleMinutes, an as idleLimits, ao as isInternalPath, ap as provideSettingsSection, aq as provideSpineInboxSource, ar as provideSpineSuggestionsPage, as as ratingTargetKey, at as resolveSettingsSection, au as sanitizeSpineMarkdownHtml, q as screenModule, p as screenName, av as spineNormalizeUrl, aw as spineParamsOf, ax as spinePathOf, ay as spineScoreBand, az as spineStarFills, aA as spineSuggestionsEnabled, aB as spineTagColor, aC as stable, s as suggestionScreens } from './trismegisto-spine-layout-trismegisto-spine-layout-Clphrsgc.mjs';
1
+ export { A as AiAgentComponent, v as AppLauncherComponent, H as HeaderComponent, L as LayoutComponent, N as NEW_SCREEN_VALUE, w as SPINE_BRAND, x as SPINE_GLOBAL_PREFERENCE_KEYS, y as SPINE_IDLE_WARNING_SECONDS, z as SPINE_INBOX_POLL_MS, B as SPINE_INBOX_SOURCES, C as SPINE_MARKDOWN_PURIFY_CONFIG, D as SPINE_PREFERENCES_SAVE_DELAY_MS, E as SPINE_RATING_COMMENT_MAX, F as SPINE_RATING_SCORE_MAX, G as SPINE_SETTINGS_ALIASES, I as SPINE_SETTINGS_KEYS, J as SPINE_SETTINGS_SECTIONS, K as SPINE_SUGGESTIONS_PAGE_ID, r as SPINE_SUGGESTIONS_PAGE_PATH, j as SPINE_SUGGESTION_KINDS, d as SPINE_SUGGESTION_KIND_COLORS, e as SPINE_SUGGESTION_KIND_ICONS, M as SPINE_SUGGESTION_LIMITS, m as SPINE_SUGGESTION_PAGE_PARAM, O as SPINE_SUGGESTION_PUBLIC_SORTS, P as SPINE_SUGGESTION_PUBLIC_STATUSES, h as SPINE_SUGGESTION_REASONS, i as SPINE_SUGGESTION_STATUSES, c as SPINE_SUGGESTION_STATUS_COLORS, Q as SPINE_SUGGESTION_STATUS_ICONS, o as SPINE_SUGGESTION_TAB_CONVERSATION, n as SPINE_SUGGESTION_TAB_PARAM, g as SPINE_SUGGESTION_VISIBLE_SORTS, k as SPINE_SUGGESTION_WAITING, f as SPINE_SUGGESTION_WAITING_COLORS, l as SPINE_TAB, R as SPINE_WORKSPACE_LIMITS, T as SettingsPanelComponent, U as ShortcutService, V as ShortcutsCheatsheetComponent, W as SidebarComponent, X as SpineAccountPreferencesService, Y as SpineAccountSecurityService, Z as SpineAppTokensService, _ as SpineBrandComponent, $ as SpineConnectionBannerComponent, a0 as SpineDocsComponent, a1 as SpineDocsService, a2 as SpineIdleService, a3 as SpineIdleWarningComponent, a4 as SpineInboxButtonComponent, a as SpineInboxService, a5 as SpineInitialSetupComponent, a6 as SpineInitialSetupService, a7 as SpineLogoutService, a8 as SpineMarkdownComponent, a9 as SpineMyGroupsService, aa as SpineNewsComponent, ab as SpineNewsService, ac as SpineNoticesService, ad as SpinePageActionsDirective, ae as SpinePageActionsSlot, af as SpineRatingStarsComponent, ag as SpineRatingsService, ah as SpineSettingsService, ai as SpineStartPageService, b as SpineSuggestionChatComponent, S as SpineSuggestionsService, u as SpineTagRowComponent, aj as SpineUnsavedChangesService, ak as SpineWorkspaceNavService, al as accountErrorCode, am as argosAccountApi, an as buildMcpConfig, ao as effectiveIdleMinutes, ap as idleLimits, aq as isInternalPath, ar as provideSettingsSection, as as provideSpineInboxSource, at as provideSpineSuggestionsPage, au as ratingTargetKey, av as registerSpineUnsavedChanges, aw as resolveSettingsSection, ax as sanitizeSpineMarkdownHtml, q as screenModule, p as screenName, ay as spineNormalizeUrl, az as spineParamsOf, aA as spinePathOf, aB as spineScoreBand, aC as spineStarFills, aD as spineSuggestionsEnabled, aE as spineTagColor, aF as stable, s as suggestionScreens } from './trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs';
2
2
  //# sourceMappingURL=trismegisto-spine-layout.mjs.map
@@ -126,7 +126,7 @@ class SidePanelComponent {
126
126
  this.sidePanelService.setState(state);
127
127
  }
128
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SidePanelComponent, deps: [{ token: SidePanelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: SidePanelComponent, isStandalone: true, selector: "spine-side-panel", viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<hm-drawer\n [open]=\"visible\"\n [heading]=\"config?.title || ''\"\n [size]=\"toHermesSize(config?.size)\"\n [closable]=\"config?.closable ?? true\"\n (closed)=\"dismiss()\"\n>\n <ng-container #content />\n <div *ngIf=\"config?.text && !config?.component\">{{ config?.text }}</div>\n\n <ng-container footer *ngIf=\"config?.showActions !== false\">\n <hm-button emphasis=\"medium\" (clicked)=\"dismiss()\">{{ dialogText.cancel }}</hm-button>\n <hm-button\n intent=\"success\"\n [disabled]=\"!canConfirm\"\n [loadingState]=\"state\"\n (loadingStateChange)=\"onLoadingStateChange($event)\"\n (clicked)=\"confirm()\"\n >{{ dialogText.confirm }}</hm-button>\n </ng-container>\n</hm-drawer>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DrawerComponent, selector: "hm-drawer", inputs: ["open", "heading", "size", "position", "pinned", "closeLabel", "closable", "beforeClose"], outputs: ["openChange", "closed"] }, { kind: "component", type: ButtonComponent, selector: "hm-button", inputs: ["emphasis", "intent", "size", "type", "icon", "iconDirection", "iconEnd", "disabled", "loading", "loadingState", "block", "link", "newTab", "caret", "inMenu", "toggle", "pressed"], outputs: ["loadingStateChange", "pressedChange", "clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: SidePanelComponent, isStandalone: true, selector: "spine-side-panel", viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<hm-drawer\n [open]=\"visible\"\n [heading]=\"config?.title || ''\"\n [size]=\"toHermesSize(config?.size)\"\n [closable]=\"config?.closable ?? true\"\n (closed)=\"dismiss()\"\n>\n <ng-container #content />\n <div *ngIf=\"config?.text && !config?.component\">{{ config?.text }}</div>\n\n <ng-container footer *ngIf=\"config?.showActions !== false\">\n <hm-button emphasis=\"medium\" (clicked)=\"dismiss()\">{{ dialogText.cancel }}</hm-button>\n <hm-button\n intent=\"success\"\n [disabled]=\"!canConfirm\"\n [loadingState]=\"state\"\n (loadingStateChange)=\"onLoadingStateChange($event)\"\n (clicked)=\"confirm()\"\n >{{ dialogText.confirm }}</hm-button>\n </ng-container>\n</hm-drawer>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DrawerComponent, selector: "hm-drawer", inputs: ["open", "heading", "size", "position", "pinned", "closeLabel", "closable", "closeOnBackdrop", "beforeClose"], outputs: ["openChange", "closed"] }, { kind: "component", type: ButtonComponent, selector: "hm-button", inputs: ["emphasis", "intent", "size", "type", "icon", "iconDirection", "iconEnd", "disabled", "loading", "loadingState", "block", "link", "newTab", "caret", "inMenu", "toggle", "pressed"], outputs: ["loadingStateChange", "pressedChange", "clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
130
  }
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SidePanelComponent, decorators: [{
132
132
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"trismegisto-spine-side-panel.mjs","sources":["../../../projects/ui/side-panel/src/side-panel.service.ts","../../../projects/ui/side-panel/src/side-panel.component.ts","../../../projects/ui/side-panel/src/side-panel.component.html","../../../projects/ui/side-panel/src/trismegisto-spine-side-panel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HermesLoadingState } from '@trismegisto/angular';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { SidePanelConfig } from './side-panel.types';\n\n@Injectable({ providedIn: 'root' })\nexport class SidePanelService {\n private _visible = new BehaviorSubject<boolean>(false);\n public readonly visible$: Observable<boolean> = this._visible.asObservable();\n\n private _state = new BehaviorSubject<HermesLoadingState>(HermesLoadingState.DEFAULT);\n public readonly state$: Observable<HermesLoadingState> = this._state.asObservable();\n\n private _config: SidePanelConfig | null = null;\n public get config(): SidePanelConfig | null {\n return this._config;\n }\n\n private _result$: Subject<any> | null = null;\n\n open<TResult = any, TData = any>(config: SidePanelConfig<TData>): Observable<TResult | null> {\n // Abrir outro antes de responder o anterior cancela o anterior: quem o abriu recebe `null` (como no\n // `close`) e o observable completa, em vez de ficar pendurado para sempre.\n this._result$?.next(null);\n this._result$?.complete();\n this._config = config;\n this._state.next(HermesLoadingState.DEFAULT);\n this._result$ = new Subject<TResult | null>();\n this._visible.next(true);\n return this._result$.asObservable().pipe(take(1));\n }\n\n confirm(result: any): void {\n this._result$?.next(result);\n this._result$?.complete();\n this.dismiss();\n }\n\n close(): void {\n this._result$?.next(null);\n this._result$?.complete();\n this.dismiss();\n }\n\n setState(state: HermesLoadingState): void {\n this._state.next(state);\n }\n\n private dismiss(): void {\n this._visible.next(false);\n this._config = null;\n this._result$ = null;\n this._state.next(HermesLoadingState.DEFAULT);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, ComponentRef, DestroyRef, OnInit, ViewChild, ViewContainerRef, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent, HERMES_MESSAGES, DrawerComponent, HermesLoadingState, ModalSize } from '@trismegisto/angular';\nimport { ModalContent } from '@trismegisto/spine/modal';\nimport { SidePanelConfig } from './side-panel.types';\nimport { SidePanelService } from './side-panel.service';\n\n/** `SidePanelConfig.size` manteve os valores do spine antigo (sm/md/lg/xl/full) por\n * compatibilidade de API; o `hm-drawer` novo só tem 3 tamanhos. */\nfunction toHermesSize(size: SidePanelConfig['size']): ModalSize {\n switch (size) {\n case 'sm': return 'small';\n case 'lg':\n case 'xl':\n case 'full': return 'large';\n default: return 'medium';\n }\n}\n\n@Component({\n selector: 'spine-side-panel',\n imports: [CommonModule, DrawerComponent, ButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './side-panel.component.html',\n})\nexport class SidePanelComponent implements OnInit {\n /** Rótulos dos botões padrão, do catálogo do Hermes (pt-BR/en/es). */\n protected readonly dialogText = inject(HERMES_MESSAGES).dialog;\n\n @ViewChild('content', { read: ViewContainerRef }) private content!: ViewContainerRef;\n\n visible = false;\n config: SidePanelConfig | null = null;\n state: HermesLoadingState = HermesLoadingState.DEFAULT;\n\n protected readonly HermesLoadingState = HermesLoadingState;\n protected readonly toHermesSize = toHermesSize;\n\n private contentRef: ComponentRef<ModalContent> | null = null;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private sidePanelService: SidePanelService, private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.sidePanelService.visible$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible) => {\n this.visible = visible;\n this.config = this.sidePanelService.config;\n if (visible) {\n this.loadComponent();\n } else {\n this.content?.clear();\n this.contentRef = null;\n }\n this.cdr.markForCheck();\n });\n\n this.sidePanelService.state$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((state) => {\n this.state = state;\n this.cdr.markForCheck();\n });\n }\n\n get canConfirm(): boolean {\n const instance = this.contentRef?.instance;\n return !instance?.isValid || instance.isValid();\n }\n\n private loadComponent(): void {\n this.content.clear();\n if (this.config?.component) {\n this.contentRef = this.content.createComponent(this.config.component);\n if (this.config.data !== undefined) {\n this.contentRef.setInput('data', this.config.data);\n }\n }\n }\n\n confirm(): void {\n if (!this.canConfirm) return;\n const result = this.contentRef?.instance?.getResult ? this.contentRef.instance.getResult() : true;\n this.sidePanelService.confirm(result);\n }\n\n dismiss(): void {\n this.sidePanelService.close();\n }\n\n onLoadingStateChange(state: HermesLoadingState): void {\n this.sidePanelService.setState(state);\n }\n}\n","<hm-drawer\n [open]=\"visible\"\n [heading]=\"config?.title || ''\"\n [size]=\"toHermesSize(config?.size)\"\n [closable]=\"config?.closable ?? true\"\n (closed)=\"dismiss()\"\n>\n <ng-container #content />\n <div *ngIf=\"config?.text && !config?.component\">{{ config?.text }}</div>\n\n <ng-container footer *ngIf=\"config?.showActions !== false\">\n <hm-button emphasis=\"medium\" (clicked)=\"dismiss()\">{{ dialogText.cancel }}</hm-button>\n <hm-button\n intent=\"success\"\n [disabled]=\"!canConfirm\"\n [loadingState]=\"state\"\n (loadingStateChange)=\"onLoadingStateChange($event)\"\n (clicked)=\"confirm()\"\n >{{ dialogText.confirm }}</hm-button>\n </ng-container>\n</hm-drawer>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SidePanelService"],"mappings":"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"}
1
+ {"version":3,"file":"trismegisto-spine-side-panel.mjs","sources":["../../../projects/ui/side-panel/src/side-panel.service.ts","../../../projects/ui/side-panel/src/side-panel.component.ts","../../../projects/ui/side-panel/src/side-panel.component.html","../../../projects/ui/side-panel/src/trismegisto-spine-side-panel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HermesLoadingState } from '@trismegisto/angular';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { SidePanelConfig } from './side-panel.types';\n\n@Injectable({ providedIn: 'root' })\nexport class SidePanelService {\n private _visible = new BehaviorSubject<boolean>(false);\n public readonly visible$: Observable<boolean> = this._visible.asObservable();\n\n private _state = new BehaviorSubject<HermesLoadingState>(HermesLoadingState.DEFAULT);\n public readonly state$: Observable<HermesLoadingState> = this._state.asObservable();\n\n private _config: SidePanelConfig | null = null;\n public get config(): SidePanelConfig | null {\n return this._config;\n }\n\n private _result$: Subject<any> | null = null;\n\n open<TResult = any, TData = any>(config: SidePanelConfig<TData>): Observable<TResult | null> {\n // Abrir outro antes de responder o anterior cancela o anterior: quem o abriu recebe `null` (como no\n // `close`) e o observable completa, em vez de ficar pendurado para sempre.\n this._result$?.next(null);\n this._result$?.complete();\n this._config = config;\n this._state.next(HermesLoadingState.DEFAULT);\n this._result$ = new Subject<TResult | null>();\n this._visible.next(true);\n return this._result$.asObservable().pipe(take(1));\n }\n\n confirm(result: any): void {\n this._result$?.next(result);\n this._result$?.complete();\n this.dismiss();\n }\n\n close(): void {\n this._result$?.next(null);\n this._result$?.complete();\n this.dismiss();\n }\n\n setState(state: HermesLoadingState): void {\n this._state.next(state);\n }\n\n private dismiss(): void {\n this._visible.next(false);\n this._config = null;\n this._result$ = null;\n this._state.next(HermesLoadingState.DEFAULT);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, ComponentRef, DestroyRef, OnInit, ViewChild, ViewContainerRef, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent, HERMES_MESSAGES, DrawerComponent, HermesLoadingState, ModalSize } from '@trismegisto/angular';\nimport { ModalContent } from '@trismegisto/spine/modal';\nimport { SidePanelConfig } from './side-panel.types';\nimport { SidePanelService } from './side-panel.service';\n\n/** `SidePanelConfig.size` manteve os valores do spine antigo (sm/md/lg/xl/full) por\n * compatibilidade de API; o `hm-drawer` novo só tem 3 tamanhos. */\nfunction toHermesSize(size: SidePanelConfig['size']): ModalSize {\n switch (size) {\n case 'sm': return 'small';\n case 'lg':\n case 'xl':\n case 'full': return 'large';\n default: return 'medium';\n }\n}\n\n@Component({\n selector: 'spine-side-panel',\n imports: [CommonModule, DrawerComponent, ButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './side-panel.component.html',\n})\nexport class SidePanelComponent implements OnInit {\n /** Rótulos dos botões padrão, do catálogo do Hermes (pt-BR/en/es). */\n protected readonly dialogText = inject(HERMES_MESSAGES).dialog;\n\n @ViewChild('content', { read: ViewContainerRef }) private content!: ViewContainerRef;\n\n visible = false;\n config: SidePanelConfig | null = null;\n state: HermesLoadingState = HermesLoadingState.DEFAULT;\n\n protected readonly HermesLoadingState = HermesLoadingState;\n protected readonly toHermesSize = toHermesSize;\n\n private contentRef: ComponentRef<ModalContent> | null = null;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private sidePanelService: SidePanelService, private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.sidePanelService.visible$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible) => {\n this.visible = visible;\n this.config = this.sidePanelService.config;\n if (visible) {\n this.loadComponent();\n } else {\n this.content?.clear();\n this.contentRef = null;\n }\n this.cdr.markForCheck();\n });\n\n this.sidePanelService.state$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((state) => {\n this.state = state;\n this.cdr.markForCheck();\n });\n }\n\n get canConfirm(): boolean {\n const instance = this.contentRef?.instance;\n return !instance?.isValid || instance.isValid();\n }\n\n private loadComponent(): void {\n this.content.clear();\n if (this.config?.component) {\n this.contentRef = this.content.createComponent(this.config.component);\n if (this.config.data !== undefined) {\n this.contentRef.setInput('data', this.config.data);\n }\n }\n }\n\n confirm(): void {\n if (!this.canConfirm) return;\n const result = this.contentRef?.instance?.getResult ? this.contentRef.instance.getResult() : true;\n this.sidePanelService.confirm(result);\n }\n\n dismiss(): void {\n this.sidePanelService.close();\n }\n\n onLoadingStateChange(state: HermesLoadingState): void {\n this.sidePanelService.setState(state);\n }\n}\n","<hm-drawer\n [open]=\"visible\"\n [heading]=\"config?.title || ''\"\n [size]=\"toHermesSize(config?.size)\"\n [closable]=\"config?.closable ?? true\"\n (closed)=\"dismiss()\"\n>\n <ng-container #content />\n <div *ngIf=\"config?.text && !config?.component\">{{ config?.text }}</div>\n\n <ng-container footer *ngIf=\"config?.showActions !== false\">\n <hm-button emphasis=\"medium\" (clicked)=\"dismiss()\">{{ dialogText.cancel }}</hm-button>\n <hm-button\n intent=\"success\"\n [disabled]=\"!canConfirm\"\n [loadingState]=\"state\"\n (loadingStateChange)=\"onLoadingStateChange($event)\"\n (clicked)=\"confirm()\"\n >{{ dialogText.confirm }}</hm-button>\n </ng-container>\n</hm-drawer>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SidePanelService"],"mappings":"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"}