{"version":3,"file":"eui-components-eui-snc.mjs","sources":["../../eui-snc/eui-snc.component.ts","../../eui-snc/eui-snc.component.html","../../eui-snc/index.ts","../../eui-snc/eui-components-eui-snc.ts"],"sourcesContent":["import {\n\tComponent,\n\tcomputed,\n\tHostBinding,\n\tinput,\n\toutput,\n\tOutputEmitterRef,\n\tsignal,\n\tWritableSignal,\n} from '@angular/core';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\n\n/**\n * @description\n * Show and Conceal (SNC) component that toggles visibility of sensitive content with masked placeholder.\n * Displays a configurable number of dots to represent hidden content length.\n * Provides a toggle button to reveal or conceal the actual content.\n * Commonly used for passwords, API keys, tokens, or other sensitive information that should be hidden by default.\n * Emits visibility state changes for parent components to track or respond to content exposure.\n *\n * @usageNotes\n * ### Basic Usage\n * ```html\n * <!-- Simple password field -->\n * <eui-snc [dotsLength]=\"12\" (sncToggle)=\"onToggle($event)\">\n *   MySecretPassword123\n * </eui-snc>\n * ```\n *\n * ```typescript\n * onToggle(isVisible: boolean) {\n *   console.log('Content is now:', isVisible ? 'visible' : 'hidden');\n * }\n * ```\n *\n * ### Accessibility\n * - Toggle button should have clear aria-label indicating show/hide action\n * - Announce state changes to screen readers using aria-live regions\n * - Ensure keyboard navigation works for toggle button\n *\n * ### Notes\n * - Default dotsLength is 8 characters\n * - Content is hidden by default on component initialization\n * - Use sncToggle event to track visibility changes for security logging\n */\n@Component({\n\tselector: 'eui-snc',\n\ttemplateUrl: './eui-snc.component.html',\n\tstyleUrls: ['./eui-snc.component.scss'],\n\timports: [\n\t\t...EUI_BUTTON,\n\t],\n})\nexport class EuiSncComponent {\n    @HostBinding('class') string = 'eui-snc';\n\n    /**\n     * Controls the visibility state of the concealed content.\n     * When true, displays actual content; when false, shows masked dots.\n     * Managed internally and toggled via user interaction.\n     */\n\tshowContent: WritableSignal<boolean> = signal(false);\n\t/**\n\t * Emitted when the content visibility state changes via toggle button interaction.\n\t * Payload: boolean indicating the new visibility state (true when content is shown, false when concealed).\n\t */\n\tsncToggle: OutputEmitterRef<boolean> = output<boolean>();\n\t/**\n\t * Number of dot characters to display when content is concealed.\n\t * Represents the approximate length of the hidden content for visual consistency.\n\t * Automatically clamped to minimum value of 0.\n\t * @default 8\n\t */\n\tdotsLength = input(8, { transform: (value: number) => Math.max(0, value) });\n\t/**\n\t * Computed property to determine the hidden text based on the dots length.\n\t */\n\tprotected readonly hiddenText = computed(() => {\n\t\tconst hiddenCount = this.dotsLength();\n\t\treturn hiddenCount > 0 ? '•'.repeat(hiddenCount) : '';\n\t});\n\n\ttoggleContent(): void {\n\t\tthis.showContent.update(value => !value);\n\t\tthis.sncToggle.emit(this.showContent());\n\t}\n}\n","@if (showContent()) {\n    <ng-content />\n}\n@if (!showContent()) {\n    <div class=\"eui-snc__hidden-content\">\n        {{ hiddenText() }}\n    </div>\n}\n<button euiButton euiOutline euiWarning euiSizeXS\n    (click)=\"toggleContent()\"\n    [attr.aria-pressed]=\"showContent()\"\n    aria-label=\"Toggle SNC content\">\n    SNC\n</button>\n","import { EuiSncComponent } from './eui-snc.component';\n\nexport * from './eui-snc.component';\n\nexport const EUI_SNC = [EuiSncComponent] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MASU,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;QAS0B,IAAA,CAAA,MAAM,GAAG,SAAS;AAExC;;;;AAIG;AACN,QAAA,IAAA,CAAA,WAAW,GAA4B,MAAM,CAAC,KAAK,kFAAC;AACpD;;;AAGG;QACH,IAAA,CAAA,SAAS,GAA8B,MAAM,EAAW;AACxD;;;;;AAKG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,kFAAI,SAAS,EAAE,CAAC,KAAa,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAA,CAAG;AAC3E;;AAEG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;AACrC,YAAA,OAAO,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;AACtD,QAAA,CAAC,iFAAC;AAMF,IAAA;IAJA,aAAa,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC;8GAhCY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,6SCrD5B,2VAcA,EAAA,MAAA,EAAA,CAAA,0NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDuCa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EAGV;AACR,wBAAA,GAAG,UAAU;AACb,qBAAA,EAAA,QAAA,EAAA,2VAAA,EAAA,MAAA,EAAA,CAAA,0NAAA,CAAA,EAAA;;sBAGG,WAAW;uBAAC,OAAO;;;AElDjB,MAAM,OAAO,GAAG,CAAC,eAAe;;ACJvC;;AAEG;;;;"}