{"version":3,"file":"assets/chunk.c7fd234f4d04b672d675.js","mappings":"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","sources":["src/components/ember-dragula-container.hbs","src/components/ember-dragula-container.ts","src/utils/can-use-dom.ts","src/components/ember-dragula.hbs","src/components/ember-dragula.ts","src/components/action-sheet.hbs","src/components/action-sheet.ts","src/components/element-host.hbs","src/components/element-host.ts","src/components/page-view/details.hbs","src/components/page-view/details.ts","src/components/pagination-bar.hbs","src/components/pagination-bar.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n {{yield}}\\n\")","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nimport type { Drake } from 'dragula';\n\nexport interface EmberDragulaContainerSignature {\n Element: HTMLDivElement;\n Args: {\n /** The Drake yielded from the `` component. */\n drake?: Drake;\n };\n Blocks: {\n default: [];\n };\n}\n\n/**\n * The dragula item container (contained within the dragula container).\n */\nexport default class EmberDragulaContainer extends Component {\n /**\n * Called to add this container to the drake.\n */\n @action setupDrake(el: HTMLElement): void {\n const { drake } = this.args;\n if (!drake) {\n return;\n }\n\n const { containers } = drake;\n if (containers.indexOf(el) === -1) {\n containers.push(el);\n }\n }\n\n /**\n * Called to detach from the drake.\n */\n @action cleanUpDrake(el: HTMLElement): void {\n const { drake } = this.args,\n index = drake?.containers.indexOf(el) ?? -1;\n\n if (index > -1) {\n drake?.containers.splice(index, 1);\n }\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n /**\n * The container for a group of elements that can be dragged. There can be multiple of these within on ``.\n *\n * @example \n */\n EmberDragulaContainer: typeof EmberDragulaContainer;\n }\n}\n","const canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport default canUseDOM;\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n {{yield this.drake}}\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport dragula from 'dragula';\nimport canUseDOM from '../utils/can-use-dom.ts';\n\n// Import the styles to be consumed by the app\nimport '../styles/dragula.css';\nimport type { Drake, DragulaOptions } from 'dragula';\n\nexport type DragulaEventName = 'drag' | 'dragend' | 'drop' | 'cancel' | 'remove' | 'shadow' | 'over' | 'out' | 'cloned';\ntype DragulaEventHandlers =\n | 'onDrag'\n | 'onDragEnd'\n | 'onDrop'\n | 'onCancel'\n | 'onRemove'\n | 'onShadow'\n | 'onOver'\n | 'onOut'\n | 'onCloned';\n\nconst emberEvents = {\n drag: 'onDrag',\n dragend: 'onDragEnd',\n drop: 'onDrop',\n cancel: 'onCancel',\n remove: 'onRemove',\n shadow: 'onShadow',\n over: 'onOver',\n out: 'onOut',\n cloned: 'onCloned'\n};\n\ninterface DragulaConfig {\n options?: DragulaOptions;\n enabledEvents?: DragulaEventName[];\n}\n\ntype DragulaEvents = {\n [key in DragulaEventHandlers]?: (...args: any[]) => void;\n};\n\nexport interface EmberDragulaSignature {\n Element: HTMLDivElement;\n Args: DragulaEvents & {\n config?: DragulaConfig;\n };\n Blocks: {\n default: [Drake?];\n };\n}\n\n/**\n * The root dragula element, which can contain multiple dragula containers.\n */\nexport default class EmberDragula extends Component {\n /**\n * The dragula drake object.\n */\n @tracked drake?: Drake;\n\n /**\n * detaches the drake from the passed element and then destroys it.\n */\n private destroyDrake(el: HTMLElement): void {\n const { drake } = this;\n\n if (drake) {\n if (el) {\n // Not 100% sure if this is right, but removing this element from drake's containers.\n const index = drake.containers?.indexOf(el);\n if (index !== -1) {\n drake.containers.splice(index, 1);\n }\n }\n\n drake.destroy();\n }\n }\n\n /**\n * Called to configure the drake.\n */\n @action setupDrake(el: HTMLElement): void {\n this.destroyDrake(el);\n\n if (!canUseDOM) {\n return;\n }\n\n const { config } = this.args,\n drake = (this.drake = dragula(config?.options ?? {}));\n\n const enabledEvents = config?.enabledEvents;\n if (isArray(enabledEvents)) {\n enabledEvents.forEach((eventName: DragulaEventName) => {\n drake.on(eventName as 'drag', (...args: any[]) => {\n const handler = this.args[emberEvents[eventName] as keyof EmberDragulaSignature['Args']];\n if (typeof handler === 'function') {\n handler(...args, this.drake);\n }\n });\n });\n }\n }\n\n /**\n * Called to dispose of the drake.\n */\n @action cleanUpDrake(el: HTMLElement): void {\n this.destroyDrake(el);\n this.drake = undefined;\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n /**\n * The root dragula element, which contains at least one ``.\n *\n * @example\n * \n * \n */\n EmberDragula: typeof EmberDragula;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if (has-block \\\"trigger\\\")}}\\n {{yield to=\\\"trigger\\\"}}\\n{{/if}}\\n{{#if @isActive}}\\n \\n \\n
\\n
\\n {{#if @title}}\\n

{{@title}}

\\n {{else if (has-block \\\"header\\\")}}\\n {{yield to=\\\"header\\\"}}\\n {{/if}}\\n
\\n \\n
\\n {{#if (has-block \\\"subheader\\\")}}\\n
\\n {{yield to=\\\"subheader\\\"}}\\n
\\n {{/if}}\\n \\n
\\n {{yield}}\\n\\n \\n {{#if buttons}}\\n
\\n {{#each buttons as |btn|}}\\n \\n {{/each}}\\n
\\n {{/if}}\\n
\\n
\\n
\\n {{#if (has-block \\\"footer\\\")}}\\n {{yield to=\\\"footer\\\"}}\\n {{/if}}\\n {{#if (and @imageSrc @imageAlt)}}\\n {{@imageAlt}}\\n {{/if}}\\n \\n
\\n{{/if}}\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { isEscapeCode } from '@adc/ember-utils/utils/a11y';\nimport { A } from '@ember/array';\nimport { assert } from '@ember/debug';\nimport { action, computed } from '@ember/object';\nimport { notEmpty } from '@ember/object/computed';\nimport { or } from '@ember/object/computed';\nimport { inject as service } from '@ember/service';\nimport { toggleBodyScroll } from '../utils/general.ts';\n\nimport type DomService from '@adc/ember-utils/services/dom';\nimport type ModalService from '../services/modals.ts';\nimport type { ButtonSimpleSignature } from './button/simple';\n\nexport interface ActionSheetButton {\n text: string;\n fn: VoidFunction;\n disabled?: boolean;\n color?: ButtonSimpleSignature['Args']['buttonColor'];\n}\n\nexport interface ActionSheetSignature {\n Element: HTMLDivElement;\n Args: {\n /** Indicates the action sheet is open. */\n isActive: boolean;\n /** Triggered when the user wants to close the action sheet. */\n close(): void;\n /** Optional title for the action sheet. */\n title?: string;\n /** Optional URI for the image to be displayed at the bottom of the action sheet. */\n imageSrc?: string;\n /** Alt text for the bottom image (must be provided if the image src is). */\n imageAlt?: string;\n /** Collection of buttons to render at the bottom of the body of the action sheet. When docked the buttons will appear stacked, 100% width, with primary buttons sorted to the top. When not docked the buttons will appear at the bottom, right aligned, with primary buttons sorted to the right. */\n buttons?: ActionSheetButton[] | Promise;\n };\n Blocks: {\n /** Optional block for rendering a trigger element. */\n trigger: [];\n /** Will render into the action sheet header, but only if a `@title` was not provided. */\n header: [];\n /** Will render into a space just below the action sheet header. */\n subheader: [];\n /** The body of the action sheet. */\n default: [];\n /** Will render below the body. */\n footer: [];\n };\n}\n\n/**\n * @classdesc\n * A popup container with a customizable title, sub-header, footer and content. Renders as a popup on large screens, and docked to the bottom of the screen with a max height slightly shorter than the screen on small screens. The main content will scroll if it overflows the action sheet.\n *\n * @see https://bitbucket.corp.adcinternal.com/projects/FALCOR/repos/adc-web-frontend/browse/addons/adc-ui-components/package/doc/action-sheet.md\n */\nexport default class ActionSheet extends Component {\n @service declare media: ADCResponsiveMediaService;\n @service declare modals: ModalService;\n @service declare dom: DomService;\n\n @tracked isFocusTrapActive = false;\n\n @notEmpty('modals.modalsToRender')\n declare areAnyModalsOpen: boolean;\n\n curtain?: Element | null;\n closeListener?: string;\n\n focusTrapOptions = {\n allowOutsideClick: true,\n escapeDeactivates: false\n };\n\n @or('media.isMobile', 'media.isTabletPortrait')\n declare isDocked: boolean;\n\n @computed('args.buttons.[]', 'isDocked')\n get buttons(): Promise {\n return (async () => {\n const all = A((await this.args.buttons) ?? []),\n buttons = [...all.filterBy('color', 'primary'), ...all.rejectBy('color', 'primary')];\n\n return this.isDocked ? buttons : buttons.reverse();\n })();\n }\n\n /**\n * Called when the action sheet element is inserted.\n */\n @action opened(el: Element): void {\n // Cache curtain so we can access in closed.\n this.curtain = this.toggleCurtain(true, el);\n\n // Is the sheet NOT docked?\n if (!this.isDocked) {\n // Need to set focus trap here because element will not transition.\n this.isFocusTrapActive = true;\n\n const { close } = this.args;\n this.closeListener = this.dom.addListener(this, el, 'keyup', (evt: KeyboardEvent & { target: Element }) => {\n if (isEscapeCode(evt.code) && evt.target.tagName.toLowerCase() !== 'input') {\n close();\n }\n });\n }\n }\n\n /**\n * Called when the action sheet element is about to be removed.\n */\n @action closed(): void {\n const { closeListener } = this;\n if (closeListener) {\n this.dom.removeListener(this, closeListener);\n }\n\n this.toggleCurtain(false);\n this.isFocusTrapActive = false;\n this.curtain = null;\n }\n\n private toggleCurtain(isOpen: boolean, el = this.curtain): Element {\n assert('[@adc/ui-components] Action sheet element not found', el);\n\n toggleBodyScroll(isOpen);\n\n const curtain = el.closest('.action-sheet-host')?.querySelector('.curtain');\n assert(\n '[@adc/ui-components] Action sheet found no host or curtain, are you sure the action-sheet-host is rendered?',\n curtain\n );\n\n curtain.classList.toggle('is-open', isOpen);\n return curtain;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n{{#if this.isReady}}\\n {{#in-element this.hostEl}}\\n {{yield}}\\n {{/in-element}}\\n{{/if}}\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\n\nexport interface ElementHostSignature {\n Args: {\n /** A valid CSS selector to the element that should host the yielded content. */\n hostSelector: string;\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class ElementHost extends Component {\n @tracked isReady = false;\n\n /**\n * Returns the target host element.\n */\n get hostEl(): HTMLElement {\n return document.querySelector(this.args.hostSelector)!;\n }\n\n @action scheduleRender(): void {\n // Do not copy this deprecated usage. If you see this, please fix it\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('afterRender', this, this.updateIsReady);\n }\n\n private updateIsReady(): void {\n this.isReady = true;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n <:default as |PageViewContainer api|>\\n \\n <:loading as |PageViewLoading|>\\n \\n \\n\\n <:default as |data|>\\n {{yield data api}}\\n\\n {{#if @deleteModel}}\\n \\n {{/if}}\\n \\n\\n <:error as |PageViewError|>\\n \\n \\n \\n \\n\")","import Component from '@glimmer/component';\n\nimport type { PageViewSignature } from '../page-view';\nimport type { PageViewContainerSignature } from '../page-view/container';\nimport type { PageViewDeleteSignature } from './delete';\n\ninterface PageViewDetailsSignature {\n Element: PageViewSignature['Element'];\n Args: Pick['Args'], 'model' | 'dataLoaded'> & {\n /** Information about the delete operation. */\n deleteModel?: PageViewDeleteSignature['Args']['model'];\n /** Optional CSS class applied to the `` component. */\n cssContainer?: string;\n };\n Blocks: {\n default: [PageViewContainerSignature['Blocks']['default'][0], PageViewSignature['Blocks']['default'][1]];\n };\n}\n\n// eslint-disable-next-line ember/no-empty-glimmer-component-classes\nexport default class PageViewDetails extends Component> {}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n
\\n {{yield}}\\n
\\n\\n \\n\\n {{#if @linkInfo.route}}\\n \\n {{@linkInfo.text}}\\n \\n {{/if}}\\n\\n {{#if this.showPageSizeDropdown}}\\n
\\n \\n
\\n {{/if}}\\n
\")","import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { computed, action } from '@ember/object';\nimport { gt } from '@ember/object/computed';\nimport { inject as service } from '@ember/service';\nimport { intlPath } from '@adc/i18n/path';\nimport DropdownActionItem from '../utils/dropdown-action-item.js';\nimport DropdownSelectItem from '../utils/dropdown-select-item.js';\n\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type { Placement } from 'popper.js';\n\ninterface PaginationBarSignature {\n Element: HTMLDivElement;\n Args: {\n /** Action called when the user changes the currently selected page. */\n changePage: (page: number) => void;\n /** Action called when the user changes the page size. If this action parameter is not passed the page size selector will not render. */\n changePageSize?: (pageSize: number) => void;\n /** The total number of items. */\n itemCount?: number;\n /** The page size options to render in the page size selector. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n selectedPageSize?: number;\n /** The currently selected page. */\n selectedPage?: number;\n /** The placement for the overflow page menu popup. */\n menuPlacement?: Placement;\n /** Optional link and text used to render a link inside link to render in pagination bar. */\n linkInfo?: {\n route?: string | null;\n text: string;\n };\n };\n Blocks: {\n default: [];\n };\n}\n\ninterface PageButton {\n text: string;\n page: number;\n disabled: boolean;\n css: string;\n pages: DropdownActionItem[];\n}\n\n/**\n * @classdesc\n * A pagination component with pages, arrows and a dropdown for page size.\n *\n * This control will always show the \"PREV\" button, the first button, last button, \"NEXT\" button and the three buttons surrounding the current page. If there are pages not represented\n * by that collection we will show popup menus for those pages, unless there is only one page in the popup.\n */\n@intlPath({ module: '@adc/ui-components', path: 'pagination-bar' })\nexport default class PaginationBar extends Component {\n @service declare intl: ADCIntlService;\n\n defaultPageSize = 100;\n\n constructor(owner: unknown, args: PaginationBarSignature['Args']) {\n super(owner, args);\n\n // Verify required closure functions.\n assert(`The changePage closure function must be passed to the pagination bar component`, this.args.changePage);\n\n // Optionally verify changePageSize if needed, but don't assert\n if (this.args.changePageSize) {\n assert(`The changePageSize must be a function`, typeof this.args.changePageSize === 'function');\n }\n }\n\n /**\n * The value of the selected page size.\n */\n @computed('args.selectedPageSize', 'defaultPageSize')\n get selectedPageSize(): number {\n return this.args.selectedPageSize ?? this.defaultPageSize;\n }\n\n /**\n * The computed number of pages.\n */\n @computed('args.itemCount', 'selectedPageSize')\n get pageCount(): number {\n const { selectedPageSize } = this,\n { itemCount = 0 } = this.args;\n\n return Math.ceil(itemCount / selectedPageSize);\n }\n\n get showPageSizeDropdown(): boolean {\n return !!this.args.changePageSize;\n }\n\n /**\n * Determines visibility of the pageButtons.\n */\n @gt('pageCount', 1)\n declare showPages: boolean;\n\n /**\n * The computed page buttons to render.\n *\n * This control will always show the first button, last button, and three buttons surrounding the current page. If there are pages not represented by that collection we will show\n * popup menus for those pages, unless there is only one page in the popup.\n */\n @computed('args.{changePage,selectedPage}', 'pageCount')\n get pageButtons(): PageButton[] {\n const { selectedPage = 1 } = this.args,\n { pageCount } = this;\n\n // Are there NO pages?\n if (pageCount === 0) {\n // Nothing to render.\n return [];\n }\n\n const buttons: PageButton[] = [],\n fnGetRangeOfPages = (start: number, end: number): number[] =>\n Array.from({ length: end - start + 1 }, (_, idx) => idx + start),\n fnGetButton = (text: string, page: number, css: string, pages: DropdownActionItem[] = []): PageButton => ({\n text,\n page,\n disabled: page === selectedPage,\n css,\n pages\n }),\n fnAddPageBtn = (page: number): number =>\n buttons.push(fnGetButton(String(page), page, `page${page === selectedPage ? ' active' : ''}`)),\n fnAddRangeMenuBtn = (pages: number[]): void => {\n // Does the menu only have one page?\n if (pages.length === 1) {\n // Show page button for that single page.\n fnAddPageBtn(pages[0]);\n return;\n }\n\n // Add dropdown actions button.\n buttons.push(\n fnGetButton(\n '...',\n -1,\n 'page',\n pages.map((page) =>\n DropdownActionItem.create({\n name: String(page),\n action: () => this.args.changePage(page)\n })\n )\n )\n );\n };\n\n // Calculate index of previous and next page.\n const previousPage = Math.max(selectedPage - 1, 1),\n nextPage = Math.min(selectedPage + 1, pageCount);\n\n // Assume we will show all pages in selection range.\n let selectionLowerBound = 1,\n selectionUpperBound = pageCount;\n\n // Are there more than six pages?\n if (pageCount > 6) {\n // Selection lower bound is the previous page, constrained to between 1 and the total page count minus 2.\n selectionLowerBound = Math.min(previousPage, pageCount - 2);\n\n // Selection upper bound is the next page, constrained to between 3 and the total page count.\n selectionUpperBound = Math.max(nextPage, 3);\n }\n\n // Get array of buttons around currently selected page, based on calculated lower and upper bound.\n const selectionRange = fnGetRangeOfPages(selectionLowerBound, selectionUpperBound);\n\n // Does the selection range NOT include the first page?\n if (!selectionRange.includes(1)) {\n // Add the first page.\n fnAddPageBtn(1);\n }\n\n // Does the selection range NOT include the second page?\n if (!selectionRange.includes(2)) {\n // Add menu button for the second page through the last page NOT present within the selection range.\n fnAddRangeMenuBtn(fnGetRangeOfPages(2, selectionLowerBound - 1));\n }\n\n // Add all selection range buttons.\n selectionRange.forEach(fnAddPageBtn);\n\n // Does the selection range NOT include the second to last page?\n if (!selectionRange.includes(pageCount - 1)) {\n // Add menu button for the first page after the selection range through the second to last page.\n fnAddRangeMenuBtn(fnGetRangeOfPages(selectionUpperBound + 1, pageCount - 1));\n }\n\n // Does the selection range NOT include the last page?\n if (!selectionRange.includes(pageCount)) {\n // Add the last page.\n fnAddPageBtn(pageCount);\n }\n\n // Return page buttons surrounded by the previous and next buttons.\n return [\n fnGetButton(this.intl.tc(this, 'previousPage'), previousPage, 'ctrl'),\n ...buttons,\n fnGetButton(this.intl.tc(this, 'nextPage'), nextPage, 'ctrl')\n ];\n }\n\n /**\n * Drop down items for page size.\n */\n @computed('args.pageSizeOptions.[]', 'selectedPageSize')\n get pageSizeItems(): DropdownSelectItem[] {\n return (this.args.pageSizeOptions ?? [10, 25, 50, 100]).map((value) =>\n DropdownSelectItem.create({\n name: this.intl.tc(this, 'perPage', { value }),\n value: String(value)\n })\n );\n }\n\n /**\n * Called when the user changes the page size dropdown value.\n * New page begins with first items from previous page.\n */\n @action onPageSizeChanged(size: string): void {\n this.args.changePageSize?.(parseInt(size, 10));\n }\n}\n"],"names":["TEMPLATE","createTemplateFactory","scope","didInsert_","didUpdate_","willDestroy_","EmberDragulaContainer","Component","setupDrake","el","drake","this","args","containers","indexOf","push","cleanUpDrake","_drake$containers$ind","index","splice","_EmberDragulaContainer","n","prototype","action","setComponentTemplate","canUseDOM","window","document","createElement","emberEvents","drag","dragend","drop","cancel","remove","shadow","over","out","cloned","_drake","WeakMap","EmberDragula","constructor","arguments","i","destroyDrake","_drake$containers","destroy","_config$options","_this","config","dragula","options","enabledEvents","isArray","forEach","eventName","on","handler","_len","length","Array","_key","undefined","_EmberDragula","g","tracked","elementHost_","addDelayedCss_","onClickOutside_","preventDefault_","stopPropagation_","fn","focusTrap_","and_","not_","buttonIcon_","t_","scrollContainer_","asyncLoader_","buttonAsync_","_media","_modals","_dom","_isFocusTrapActive","_areAnyModalsOpen","_isDocked","ActionSheet","_classPrivateFieldInitSpec","_defineProperty","allowOutsideClick","escapeDeactivates","buttons","async","all","A","_await$this$args$butt","filterBy","rejectBy","isDocked","reverse","opened","curtain","toggleCurtain","isFocusTrapActive","close","closeListener","dom","addListener","evt","isEscapeCode","code","target","tagName","toLowerCase","closed","removeListener","isOpen","_el$closest","toggleBodyScroll","closest","querySelector","classList","toggle","_ActionSheet","inject","notEmpty","or","computed","_isReady","ElementHost","hostEl","hostSelector","scheduleRender","scheduleOnce","updateIsReady","isReady","_ElementHost","pageView_","coalesce_","routeViewContentDeleteModel_","PageViewDetails","tc_","dropdownActions_","buttonSimple_","LinkTo","dropdownSelectSingleSelect_","toString_","PaginationBar","c","_intl","_showPages","_PaginationBar","owner","super","changePageSize","selectedPageSize","_this$args$selectedPa","defaultPageSize","pageCount","itemCount","Math","ceil","showPageSizeDropdown","pageButtons","selectedPage","fnGetRangeOfPages","start","end","from","_","idx","fnGetButton","text","page","css","disabled","pages","fnAddPageBtn","String","concat","fnAddRangeMenuBtn","map","DropdownActionItem","create","name","changePage","previousPage","max","nextPage","min","selectionLowerBound","selectionUpperBound","selectionRange","includes","intl","tc","pageSizeItems","_this$args$pageSizeOp","pageSizeOptions","value","DropdownSelectItem","onPageSizeChanged","size","_this$args$changePage","_this$args","call","parseInt","gt","intlPath","module","path"],"sourceRoot":""}