@paperless/core 0.1.0-alpha.395 → 0.1.0-alpha.396
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/CHANGELOG.md +11 -0
- package/dist/build/p-35b7c995.entry.js +2 -0
- package/dist/{paperless/p-2f30eba2.entry.js.map → build/p-35b7c995.entry.js.map} +1 -1
- package/dist/build/p-3b6c4710.entry.js +2 -0
- package/dist/{paperless/p-4ca42d41.entry.js.map → build/p-3b6c4710.entry.js.map} +1 -1
- package/dist/build/p-3c586d9d.entry.js +2 -0
- package/dist/{paperless/p-99ce719e.entry.js.map → build/p-3c586d9d.entry.js.map} +1 -1
- package/dist/{paperless/p-655cc4d4.entry.js → build/p-53dca131.entry.js} +2 -2
- package/dist/{paperless/p-655cc4d4.entry.js.map → build/p-53dca131.entry.js.map} +1 -1
- package/dist/{paperless/p-2b08e371.entry.js → build/p-82a05991.entry.js} +2 -2
- package/dist/{paperless/p-2b08e371.entry.js.map → build/p-82a05991.entry.js.map} +1 -1
- package/dist/build/p-872fa136.entry.js +2 -0
- package/dist/build/p-872fa136.entry.js.map +1 -0
- package/dist/build/p-8fb43cc7.entry.js +2 -0
- package/dist/{paperless/p-00e3de50.entry.js.map → build/p-8fb43cc7.entry.js.map} +1 -1
- package/dist/{paperless/p-b689e15b.entry.js → build/p-c5dff26e.entry.js} +2 -2
- package/dist/build/{p-b689e15b.entry.js.map → p-c5dff26e.entry.js.map} +1 -1
- package/dist/build/{p-f4610644.entry.js → p-d012d066.entry.js} +2 -2
- package/dist/build/{p-f4610644.entry.js.map → p-d012d066.entry.js.map} +1 -1
- package/dist/build/{p-5f2e2380.entry.js → p-e167d64f.entry.js} +2 -2
- package/dist/{paperless/p-5f2e2380.entry.js.map → build/p-e167d64f.entry.js.map} +1 -1
- package/dist/build/p-ebd4ba56.entry.js +2 -0
- package/dist/{paperless/p-4f53f2af.entry.js.map → build/p-ebd4ba56.entry.js.map} +1 -1
- package/dist/build/{p-6b957d5c.entry.js → p-f6cc1e31.entry.js} +2 -2
- package/dist/build/{p-6b957d5c.entry.js.map → p-f6cc1e31.entry.js.map} +1 -1
- package/dist/build/paperless.esm.js +1 -1
- package/dist/cjs/p-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/p-backdrop.cjs.entry.js.map +1 -1
- package/dist/cjs/p-button_3.cjs.entry.js +3 -3
- package/dist/cjs/p-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/p-dropdown-menu-container.cjs.entry.js +1 -1
- package/dist/cjs/p-dropdown-menu-container.cjs.entry.js.map +1 -1
- package/dist/cjs/p-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/p-dropdown_2.cjs.entry.js.map +1 -1
- package/dist/cjs/p-helper_3.cjs.entry.js +2 -2
- package/dist/cjs/p-helper_3.cjs.entry.js.map +1 -1
- package/dist/cjs/p-illustration_6.cjs.entry.js +5 -5
- package/dist/cjs/p-illustration_6.cjs.entry.js.map +1 -1
- package/dist/cjs/p-label_3.cjs.entry.js +2 -2
- package/dist/cjs/p-label_3.cjs.entry.js.map +1 -1
- package/dist/cjs/p-modal-body_4.cjs.entry.js +1 -1
- package/dist/cjs/p-modal-body_4.cjs.entry.js.map +1 -1
- package/dist/cjs/p-modal.cjs.entry.js +7 -0
- package/dist/cjs/p-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/p-page-size-select_3.cjs.entry.js +2 -2
- package/dist/cjs/p-page-size-select_3.cjs.entry.js.map +1 -1
- package/dist/cjs/p-table.cjs.entry.js +1 -1
- package/dist/cjs/p-table.cjs.entry.js.map +1 -1
- package/dist/cjs/p-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/p-tooltip.cjs.entry.js.map +1 -1
- package/dist/collection/components/atoms/backdrop/backdrop.component.css +1 -1
- package/dist/collection/components/atoms/button/button.component.css +1 -1
- package/dist/collection/components/atoms/divider/divider.component.css +1 -1
- package/dist/collection/components/atoms/dropdown-menu-container/dropdown-menu-container.component.css +1 -1
- package/dist/collection/components/atoms/dropdown-menu-item/dropdown-menu-item.component.css +1 -1
- package/dist/collection/components/atoms/helper/helper.component.css +1 -1
- package/dist/collection/components/atoms/icon/icon.component.css +1 -1
- package/dist/collection/components/atoms/label/label.component.css +1 -1
- package/dist/collection/components/atoms/loader/loader.component.css +1 -1
- package/dist/collection/components/atoms/modal-body/modal-body.component.css +1 -1
- package/dist/collection/components/atoms/modal-container/modal-container.component.css +1 -1
- package/dist/collection/components/atoms/modal-footer/modal-footer.component.css +1 -1
- package/dist/collection/components/atoms/modal-header/modal-header.component.css +1 -1
- package/dist/collection/components/atoms/pagination-item/pagination-item.component.css +1 -1
- package/dist/collection/components/atoms/segment-container/segment-container.component.css +1 -1
- package/dist/collection/components/atoms/segment-item/segment-item.component.css +1 -1
- package/dist/collection/components/atoms/table-container/table-container.component.css +1 -1
- package/dist/collection/components/atoms/tooltip/tooltip.component.css +1 -1
- package/dist/collection/components/molecules/calendar/calendar.component.css +1 -1
- package/dist/collection/components/molecules/datepicker/datepicker.component.css +1 -1
- package/dist/collection/components/molecules/dropdown/dropdown.component.css +1 -1
- package/dist/collection/components/molecules/input-group/input-group.component.css +1 -1
- package/dist/collection/components/molecules/pagination/pagination.component.css +1 -1
- package/dist/collection/components/molecules/table-cell/table-cell.component.css +1 -1
- package/dist/collection/components/molecules/table-footer/table-footer.component.css +1 -1
- package/dist/collection/components/molecules/table-header/table-header.component.css +1 -1
- package/dist/collection/components/molecules/table-row/table-row.component.css +1 -1
- package/dist/collection/components/organisms/modal/modal.component.js +7 -0
- package/dist/collection/components/organisms/modal/modal.component.js.map +1 -1
- package/dist/collection/components/organisms/table/table.component.css +1 -1
- package/dist/components/backdrop.component.js +1 -1
- package/dist/components/backdrop.component.js.map +1 -1
- package/dist/components/button.component.js +1 -1
- package/dist/components/button.component.js.map +1 -1
- package/dist/components/dropdown-menu-container.component.js +1 -1
- package/dist/components/dropdown-menu-container.component.js.map +1 -1
- package/dist/components/dropdown-menu-item.component.js +1 -1
- package/dist/components/dropdown-menu-item.component.js.map +1 -1
- package/dist/components/dropdown.component.js +1 -1
- package/dist/components/dropdown.component.js.map +1 -1
- package/dist/components/helper.component.js +1 -1
- package/dist/components/helper.component.js.map +1 -1
- package/dist/components/icon.component.js +1 -1
- package/dist/components/icon.component.js.map +1 -1
- package/dist/components/input-group.component.js +1 -1
- package/dist/components/input-group.component.js.map +1 -1
- package/dist/components/loader.component.js +1 -1
- package/dist/components/loader.component.js.map +1 -1
- package/dist/components/modal-body.component.js +1 -1
- package/dist/components/modal-body.component.js.map +1 -1
- package/dist/components/p-modal.js +7 -0
- package/dist/components/p-modal.js.map +1 -1
- package/dist/components/p-table.js +1 -1
- package/dist/components/p-table.js.map +1 -1
- package/dist/components/pagination-item.component.js +1 -1
- package/dist/components/pagination-item.component.js.map +1 -1
- package/dist/components/pagination.component.js +1 -1
- package/dist/components/pagination.component.js.map +1 -1
- package/dist/components/segment-container.component.js +1 -1
- package/dist/components/segment-container.component.js.map +1 -1
- package/dist/components/segment-item.component.js +1 -1
- package/dist/components/segment-item.component.js.map +1 -1
- package/dist/components/table-cell.component.js +1 -1
- package/dist/components/table-cell.component.js.map +1 -1
- package/dist/components/table-container.component.js +1 -1
- package/dist/components/table-container.component.js.map +1 -1
- package/dist/components/table-footer.component.js +1 -1
- package/dist/components/table-footer.component.js.map +1 -1
- package/dist/components/table-header.component.js +1 -1
- package/dist/components/table-header.component.js.map +1 -1
- package/dist/components/table-row.component.js +1 -1
- package/dist/components/table-row.component.js.map +1 -1
- package/dist/components/tooltip.component.js +1 -1
- package/dist/components/tooltip.component.js.map +1 -1
- package/dist/esm/p-backdrop.entry.js +1 -1
- package/dist/esm/p-backdrop.entry.js.map +1 -1
- package/dist/esm/p-button_3.entry.js +3 -3
- package/dist/esm/p-button_3.entry.js.map +1 -1
- package/dist/esm/p-dropdown-menu-container.entry.js +1 -1
- package/dist/esm/p-dropdown-menu-container.entry.js.map +1 -1
- package/dist/esm/p-dropdown_2.entry.js +2 -2
- package/dist/esm/p-dropdown_2.entry.js.map +1 -1
- package/dist/esm/p-helper_3.entry.js +2 -2
- package/dist/esm/p-helper_3.entry.js.map +1 -1
- package/dist/esm/p-illustration_6.entry.js +5 -5
- package/dist/esm/p-illustration_6.entry.js.map +1 -1
- package/dist/esm/p-label_3.entry.js +2 -2
- package/dist/esm/p-label_3.entry.js.map +1 -1
- package/dist/esm/p-modal-body_4.entry.js +1 -1
- package/dist/esm/p-modal-body_4.entry.js.map +1 -1
- package/dist/esm/p-modal.entry.js +7 -0
- package/dist/esm/p-modal.entry.js.map +1 -1
- package/dist/esm/p-page-size-select_3.entry.js +2 -2
- package/dist/esm/p-page-size-select_3.entry.js.map +1 -1
- package/dist/esm/p-table.entry.js +1 -1
- package/dist/esm/p-table.entry.js.map +1 -1
- package/dist/esm/p-tooltip.entry.js +1 -1
- package/dist/esm/p-tooltip.entry.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/p-35b7c995.entry.js +2 -0
- package/dist/{build/p-2f30eba2.entry.js.map → paperless/p-35b7c995.entry.js.map} +1 -1
- package/dist/paperless/p-3b6c4710.entry.js +2 -0
- package/dist/{build/p-4ca42d41.entry.js.map → paperless/p-3b6c4710.entry.js.map} +1 -1
- package/dist/paperless/p-3c586d9d.entry.js +2 -0
- package/dist/{build/p-99ce719e.entry.js.map → paperless/p-3c586d9d.entry.js.map} +1 -1
- package/dist/{build/p-655cc4d4.entry.js → paperless/p-53dca131.entry.js} +2 -2
- package/dist/{build/p-655cc4d4.entry.js.map → paperless/p-53dca131.entry.js.map} +1 -1
- package/dist/{build/p-2b08e371.entry.js → paperless/p-82a05991.entry.js} +2 -2
- package/dist/{build/p-2b08e371.entry.js.map → paperless/p-82a05991.entry.js.map} +1 -1
- package/dist/paperless/p-872fa136.entry.js +2 -0
- package/dist/paperless/p-872fa136.entry.js.map +1 -0
- package/dist/paperless/p-8fb43cc7.entry.js +2 -0
- package/dist/{build/p-00e3de50.entry.js.map → paperless/p-8fb43cc7.entry.js.map} +1 -1
- package/dist/{build/p-b689e15b.entry.js → paperless/p-c5dff26e.entry.js} +2 -2
- package/dist/paperless/{p-b689e15b.entry.js.map → p-c5dff26e.entry.js.map} +1 -1
- package/dist/paperless/{p-f4610644.entry.js → p-d012d066.entry.js} +2 -2
- package/dist/paperless/{p-f4610644.entry.js.map → p-d012d066.entry.js.map} +1 -1
- package/dist/paperless/{p-5f2e2380.entry.js → p-e167d64f.entry.js} +2 -2
- package/dist/{build/p-5f2e2380.entry.js.map → paperless/p-e167d64f.entry.js.map} +1 -1
- package/dist/paperless/p-ebd4ba56.entry.js +2 -0
- package/dist/{build/p-4f53f2af.entry.js.map → paperless/p-ebd4ba56.entry.js.map} +1 -1
- package/dist/paperless/{p-6b957d5c.entry.js → p-f6cc1e31.entry.js} +2 -2
- package/dist/paperless/{p-6b957d5c.entry.js.map → p-f6cc1e31.entry.js.map} +1 -1
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/hydrate/index.js +33 -26
- package/package.json +1 -1
- package/dist/build/p-00e3de50.entry.js +0 -2
- package/dist/build/p-2f30eba2.entry.js +0 -2
- package/dist/build/p-4ca42d41.entry.js +0 -2
- package/dist/build/p-4f53f2af.entry.js +0 -2
- package/dist/build/p-58b52568.entry.js +0 -2
- package/dist/build/p-58b52568.entry.js.map +0 -1
- package/dist/build/p-99ce719e.entry.js +0 -2
- package/dist/paperless/p-00e3de50.entry.js +0 -2
- package/dist/paperless/p-2f30eba2.entry.js +0 -2
- package/dist/paperless/p-4ca42d41.entry.js +0 -2
- package/dist/paperless/p-4f53f2af.entry.js +0 -2
- package/dist/paperless/p-58b52568.entry.js +0 -2
- package/dist/paperless/p-58b52568.entry.js.map +0 -1
- package/dist/paperless/p-99ce719e.entry.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["icons","arrow","attachment","bread","calendar","camera","car","checklist","checkmark","chevron","clock","cogs","comment","document","download","envelope","explanation","eye","filter","folder","grid","headset","integration","list","location","megaphone","menu","minus","more","negative","notification","pagination","payment","pencil","person","plus","question","reload","receipt","report","search","settings","sick","signout","switch","switchIcon","tachometer","task","template","tool","trash","turn","upload","warning","buttonComponentCss","Button","render","loaderColor","this","variant","VariableTag","h","Host","class","size","iconOnly","iconPosition","chevronPosition","inheritText","disabled","href","target","rotate","icon","loading","_getIcon","color","handleClick","ev","preventDefault","onClick","emit","flip","iconFlip","iconRotate","iconComponentCss","Icon","styles","transform","innerHTML","loaderComponentCss","Loader","_show","show","_loader","componentWillRender","_checkShow","componentShouldUpdate","_showSubscriber","unsubscribe","_a","subscribe"],"sources":["./src/utils/icons.ts","./src/components/atoms/button/button.component.scss?tag=p-button","./src/components/atoms/button/button.component.tsx","./src/components/atoms/icon/icon.component.scss?tag=p-icon","./src/components/atoms/icon/icon.component.tsx","./src/components/atoms/loader/loader.component.scss?tag=p-loader&encapsulation=shadow","./src/components/atoms/loader/loader.component.tsx"],"sourcesContent":["import arrow from '../assets/icons/arrow.svg';\nimport attachment from '../assets/icons/attachment.svg';\nimport bread from '../assets/icons/bread.svg';\nimport calendar from '../assets/icons/calendar.svg';\nimport camera from '../assets/icons/camera.svg';\nimport car from '../assets/icons/car.svg';\nimport checklist from '../assets/icons/checklist.svg';\nimport checkmark from '../assets/icons/checkmark.svg';\nimport chevron from '../assets/icons/chevron.svg';\nimport clock from '../assets/icons/clock.svg';\nimport cogs from '../assets/icons/cogs.svg';\nimport comment from '../assets/icons/comment.svg';\nimport document from '../assets/icons/document.svg';\nimport download from '../assets/icons/download.svg';\nimport envelope from '../assets/icons/envelope.svg';\nimport explanation from '../assets/icons/explanation.svg';\nimport eye from '../assets/icons/eye.svg';\nimport filter from '../assets/icons/filter.svg';\nimport folder from '../assets/icons/folder.svg';\nimport grid from '../assets/icons/grid.svg';\nimport headset from '../assets/icons/headset.svg';\nimport integration from '../assets/icons/integration.svg';\nimport list from '../assets/icons/list.svg';\nimport location from '../assets/icons/location.svg';\nimport megaphone from '../assets/icons/megaphone.svg';\nimport menu from '../assets/icons/menu.svg';\nimport minus from '../assets/icons/minus.svg';\nimport more from '../assets/icons/more.svg';\nimport negative from '../assets/icons/negative.svg';\nimport notification from '../assets/icons/notification.svg';\nimport pagination from '../assets/icons/pagination.svg';\nimport payment from '../assets/icons/payment.svg';\nimport pencil from '../assets/icons/pencil.svg';\nimport person from '../assets/icons/person.svg';\nimport plus from '../assets/icons/plus.svg';\nimport question from '../assets/icons/question.svg';\nimport receipt from '../assets/icons/receipt.svg';\nimport reload from '../assets/icons/reload.svg';\nimport report from '../assets/icons/report.svg';\nimport search from '../assets/icons/search.svg';\nimport settings from '../assets/icons/settings.svg';\nimport sick from '../assets/icons/sick.svg';\nimport signout from '../assets/icons/signout.svg';\nimport switchIcon from '../assets/icons/switch.svg';\nimport tachometer from '../assets/icons/tachometer.svg';\nimport task from '../assets/icons/task.svg';\nimport template from '../assets/icons/template.svg';\nimport tool from '../assets/icons/tool.svg';\nimport trash from '../assets/icons/trash.svg';\nimport turn from '../assets/icons/turn.svg';\nimport upload from '../assets/icons/upload.svg';\nimport warning from '../assets/icons/warning.svg';\n\nexport default {\n arrow,\n attachment,\n bread,\n calendar,\n camera,\n car,\n checklist,\n checkmark,\n chevron,\n clock,\n cogs,\n comment,\n document,\n download,\n envelope,\n explanation,\n eye,\n filter,\n folder,\n grid,\n headset,\n integration,\n list,\n location,\n megaphone,\n menu,\n minus,\n more,\n negative,\n notification,\n pagination,\n payment,\n pencil,\n person,\n plus,\n question,\n reload,\n receipt,\n report,\n search,\n settings,\n sick,\n signout,\n switch: switchIcon,\n tachometer,\n task,\n template,\n tool,\n trash,\n turn,\n upload,\n warning,\n};\n","p-button {\n @apply flex h-10 w-auto text-base;\n\n button,\n a {\n outline: 0;\n border: 0;\n @apply h-full w-full rounded-large;\n @apply font-semibold leading-4;\n @apply flex items-center justify-center;\n @apply cursor-pointer text-base;\n\n will-change: filter;\n\n > p-loader {\n @apply ml-2;\n }\n\n // Icon positions\n &.icon-position-end {\n > p-icon:not(.chevron) {\n @apply ml-2;\n }\n }\n\n &.icon-position-start {\n > p-icon:not(.chevron) {\n @apply mr-2;\n }\n }\n\n // Variants\n &.variant-primary,\n &.variant-secondary {\n @apply px-4 filter;\n }\n\n &.variant-primary,\n &.variant-secondary {\n &:active,\n &.active {\n @apply drop-shadow-transparent;\n }\n }\n\n &.variant-primary {\n @apply bg-indigo text-white;\n\n &:active,\n &.active {\n &:not([disabled]) {\n @apply bg-indigo-dark;\n }\n }\n\n @media (pointer: fine) {\n &:hover:not([disabled]) {\n @apply drop-shadow-button-primary-hover;\n }\n }\n }\n\n &.variant-secondary {\n @apply border border-solid border-mystic-dark #{!important};\n @apply bg-white text-storm;\n\n &:active,\n &.active {\n &:not([disabled]) {\n @apply bg-mystic;\n }\n }\n\n @media (pointer: fine) {\n &:hover:not([disabled]) {\n @apply drop-shadow-button-secondary-hover;\n }\n }\n }\n\n &.variant-text {\n @apply text-indigo;\n\n &:hover:not([disabled]) {\n @apply text-indigo-dark;\n }\n }\n\n &[disabled] {\n @apply opacity-40;\n }\n\n // chevron\n &.has-chevron {\n &.chevron-position-start {\n @apply pl-2;\n\n > p-icon.chevron {\n @apply mr-2;\n }\n }\n\n &.chevron-position-end {\n @apply pr-2;\n\n > p-icon.chevron {\n @apply ml-2;\n }\n }\n\n &.variant-secondary:hover:not([disabled]) p-icon:last-child {\n @apply text-indigo;\n }\n }\n\n &.should-inherit-text {\n color: inherit #{!important};\n font-size: inherit #{!important};\n font-weight: inherit #{!important};\n }\n }\n\n &.has-icon-only {\n @apply w-10;\n\n a,\n button {\n @apply p-0;\n\n > p-icon:first-child {\n @apply mx-0;\n }\n\n > p-loader {\n @apply ml-0;\n }\n }\n }\n\n // sizes\n &.size-small {\n @apply h-8;\n\n button,\n a {\n @apply text-sm;\n\n > p-icon {\n @apply text-base;\n }\n }\n\n &.has-icon-only {\n @apply w-8;\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n} from '@stencil/core';\nimport { RotateOptions } from '../../../types/tailwind';\nimport { IconFlipOptions, IconVariant } from '../icon/icon.component';\n\n@Component({\n tag: 'p-button',\n styleUrl: 'button.component.scss',\n // shadow: true,\n})\nexport class Button {\n /**\n * The variant of the button\n */\n @Prop() variant: 'primary' | 'secondary' | 'text' = 'primary';\n\n /**\n * Href in case of \"text\" version\n */\n @Prop() href: string;\n\n /**\n * Target in case of \"text\" version\n */\n @Prop() target: string;\n\n /**\n * The size of the button\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * Wether to show a loader or not\n */\n @Prop() loading: boolean = false;\n\n /**\n * Wether to show a chevron or not\n */\n @Prop() chevron: boolean | 'up' | 'down' = false;\n\n /**\n * Chevron position\n */\n @Prop() chevronPosition: 'start' | 'end' = 'end';\n\n /**\n * Wether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Icon to show on the button\n */\n @Prop() icon: IconVariant;\n\n /**\n * Wether the button is icon only\n */\n @Prop() iconOnly: boolean = false;\n\n /**\n * Icon position\n */\n @Prop() iconPosition: 'start' | 'end' = 'end';\n\n /**\n * Icon flip\n */\n @Prop() iconFlip: IconFlipOptions;\n\n /**\n * Icon rotate\n */\n @Prop() iconRotate: RotateOptions;\n\n /**\n * Wether the button should inherit text styles\n */\n @Prop() inheritText: boolean = false;\n\n /**\n * Button click event\n */\n @Event() onClick: EventEmitter<MouseEvent>;\n\n render() {\n let loaderColor: 'white' | 'storm' | 'indigo' = 'white';\n switch (this.variant) {\n case 'secondary':\n loaderColor = 'storm';\n break;\n case 'text':\n loaderColor = 'indigo';\n break;\n }\n\n const VariableTag = this.variant === 'text' ? 'a' : 'button';\n\n return (\n <Host\n class={`p-button size-${this.size} ${\n this.iconOnly && 'has-icon-only'\n } `}\n >\n <VariableTag\n class={`variant-${this.variant} icon-position-${\n this.iconPosition\n } ${this.chevron && 'has-chevron'} chevron-position-${\n this.chevronPosition\n } ${this.inheritText && 'should-inherit-text'}`}\n disabled={this.disabled}\n href={this.href}\n target={this.target}\n >\n {this.chevron && this.chevronPosition === 'start' && (\n <p-icon\n class=\"chevron\"\n variant=\"chevron\"\n rotate={this.chevron === 'up' ? 180 : 0}\n />\n )}\n\n {this.icon &&\n this.iconPosition === 'start' &&\n !(this.iconOnly && this.loading) &&\n this._getIcon()}\n\n <slot />\n\n {this.icon &&\n this.iconPosition === 'end' &&\n !(this.iconOnly && this.loading) &&\n this._getIcon()}\n\n {this.loading && <p-loader color={loaderColor} />}\n\n {this.chevron && this.chevronPosition === 'end' && (\n <p-icon\n class=\"chevron\"\n variant=\"chevron\"\n rotate={this.chevron === 'up' ? 180 : 0}\n />\n )}\n </VariableTag>\n </Host>\n );\n }\n\n @Listen('click', { capture: true })\n handleClick(ev: MouseEvent) {\n if (this.loading || this.disabled) {\n ev.preventDefault();\n return;\n }\n\n this.onClick.emit(ev);\n }\n\n private _getIcon() {\n if (!this.icon) {\n return;\n }\n\n return (\n <p-icon\n variant={this.icon}\n flip={this.iconFlip}\n rotate={this.iconRotate}\n />\n );\n }\n}\n",":host {\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport { RotateOptions, TextSizeOptions } from '../../../types/tailwind';\nimport icons from '../../../utils/icons';\n\nexport type IconVariant = keyof typeof icons;\nexport type IconFlipOptions = 'horizontal' | 'vertical';\n\n@Component({\n tag: 'p-icon',\n styleUrl: 'icon.component.scss',\n // shadow: true,\n})\nexport class Icon {\n /**\n * The icon the be displayed\n */\n @Prop() variant!: IconVariant;\n\n /**\n * The size of the icon, using tailwind sizes\n */\n @Prop() size: TextSizeOptions = 'auto';\n\n /**\n * Wether to rotate the icon x degrees\n */\n @Prop() rotate: RotateOptions = 0;\n\n /**\n * Wether to flip the icon horizontally or vertically\n */\n @Prop() flip: IconFlipOptions = null;\n\n render() {\n const icon = icons[this.variant];\n\n const styles = {\n 'p-icon flex': true,\n 'text-auto': this.size === 'auto',\n 'text-xxs': this.size === 'xxs',\n 'text-xs': this.size === 'xs',\n 'text-sm': this.size === 'sm',\n 'text-base': this.size === 'base',\n 'text-lg': this.size === 'lg',\n 'text-xl': this.size === 'xl',\n 'text-2xl': this.size === '2xl',\n 'text-3xl': this.size === '3xl',\n 'text-4xl': this.size === '4xl',\n 'text-5xl': this.size === '5xl',\n 'text-6xl': this.size === '6xl',\n transform: !!this.rotate || !!this.flip,\n 'scale-x-flip': this.flip === 'horizontal',\n 'scale-y-flip': this.flip === 'vertical',\n 'rotate-0': this.rotate === 0,\n 'rotate-25': this.rotate === 25,\n 'rotate-45': this.rotate === 45,\n 'rotate-90': this.rotate === 90,\n 'rotate-135': this.rotate === 135,\n 'rotate-180': this.rotate === 180,\n 'rotate-225': this.rotate === 225,\n 'rotate-270': this.rotate === 270,\n 'rotate-315': this.rotate === 315,\n '-rotate-0': this.rotate === -0,\n '-rotate-25': this.rotate === -25,\n '-rotate-45': this.rotate === -45,\n '-rotate-90': this.rotate === -90,\n '-rotate-135': this.rotate === -135,\n '-rotate-180': this.rotate === -180,\n '-rotate-225': this.rotate === -225,\n '-rotate-270': this.rotate === -270,\n '-rotate-315': this.rotate === -315,\n };\n\n return <Host class={styles} innerHTML={icon}></Host>;\n }\n}\n",":host {\n .loader {\n @apply inline-block h-[1em] w-[1em] rounded-round;\n @apply border-2 border-solid border-indigo-light border-t-indigo;\n animation: 500ms spin linear infinite;\n\n will-change: transform;\n\n &.color-storm {\n @apply border-storm-light/40 border-t-storm #{!important};\n }\n\n &.color-white {\n @apply border-indigo-light/40 border-t-white #{!important};\n }\n }\n\n .loading-screen {\n @apply w-screen-safe h-screen-safe fixed top-0 left-0;\n @apply flex items-center justify-center;\n @apply bg-mystic;\n\n z-index: 1001;\n\n .content {\n @apply max-w-xs;\n\n .loader-wrapper {\n @apply flex w-full justify-center;\n\n .loader {\n @apply text-4xl;\n }\n }\n }\n }\n}\n\n:host(.variant-ghost) {\n @apply box-border block;\n\n will-change: background, background-position-x, background-color;\n\n min-height: 1em;\n min-width: 1em;\n\n --loading-bg: #f7fafc;\n --loading-stripe: rgba(252, 253, 254, 1);\n\n background-color: var(--loading-bg);\n background: linear-gradient(\n 100deg,\n rgba(255, 255, 255, 0) 40%,\n var(--loading-stripe) 50%,\n rgba(255, 255, 255, 0) 60%\n )\n var(--loading-bg);\n background-size: 200% 100%;\n background-position-x: 180%;\n animation: 1s loading ease-in-out infinite;\n}\n\n@keyframes loading {\n to {\n background-position-x: -20%;\n }\n}\n\n@keyframes spin {\n 100% {\n transform: rotate(1turn);\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport { Observable, Subscription } from 'rxjs';\n\n@Component({\n tag: 'p-loader',\n styleUrl: 'loader.component.scss',\n shadow: true,\n})\nexport class Loader {\n /**\n * Wether to show or hide the loader\n */\n @Prop() show: boolean | Observable<boolean> = true;\n\n /**\n * Variant of loader\n */\n @Prop() variant:\n | 'inline'\n | 'full-width'\n | 'full-screen'\n | 'modal'\n | 'ghost' = 'inline';\n\n /**\n * Color of the loader\n */\n @Prop() color: 'indigo' | 'white' | 'storm' = 'indigo';\n\n /**\n * !NOT IMPLEMENTED! Modal title for modal variant\n */\n @Prop() modalTitle: string;\n\n /**\n * !NOT IMPLEMENTED! Modal description for modal variant\n */\n @Prop() modalDescription: string;\n\n private _show = this.show;\n private _showSubscriber: Subscription;\n\n private _loader = (<div class={`loader color-${this.color}`}></div>);\n\n componentWillRender() {\n this._checkShow();\n }\n\n componentShouldUpdate() {\n this._checkShow();\n }\n\n render() {\n if (!this._show) {\n return;\n }\n\n if (this.variant === 'ghost') {\n return <Host class=\"p-loader variant-ghost\"></Host>;\n }\n\n if (this.variant === 'full-screen') {\n return (\n <Host class=\"p-loader variant-full-screen\">\n <div class=\"loading-screen\">\n <div class=\"content\">\n <slot />\n\n <div class=\"loader-wrapper\">{this._loader}</div>\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host\n class={`p-loader variant-default flex ${\n this.variant === 'full-width' &&\n 'w-full flex justify-center text-4xl'\n }`}\n >\n {this._loader}\n </Host>\n );\n }\n\n private _checkShow() {\n if (this._showSubscriber) {\n this._showSubscriber.unsubscribe();\n this._showSubscriber = null;\n }\n\n if (typeof this.show !== 'boolean') {\n this._showSubscriber = this.show?.subscribe(\n (show) => (this._show = show)\n );\n return;\n }\n\n this._show = this.show;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["icons","arrow","attachment","bread","calendar","camera","car","checklist","checkmark","chevron","clock","cogs","comment","document","download","envelope","explanation","eye","filter","folder","grid","headset","integration","list","location","megaphone","menu","minus","more","negative","notification","pagination","payment","pencil","person","plus","question","reload","receipt","report","search","settings","sick","signout","switch","switchIcon","tachometer","task","template","tool","trash","turn","upload","warning","buttonComponentCss","Button","render","loaderColor","this","variant","VariableTag","h","Host","class","size","iconOnly","iconPosition","chevronPosition","inheritText","disabled","href","target","rotate","icon","loading","_getIcon","color","handleClick","ev","preventDefault","onClick","emit","flip","iconFlip","iconRotate","iconComponentCss","Icon","styles","transform","innerHTML","loaderComponentCss","Loader","_show","show","_loader","componentWillRender","_checkShow","componentShouldUpdate","_showSubscriber","unsubscribe","_a","subscribe"],"sources":["./src/utils/icons.ts","./src/components/atoms/button/button.component.scss?tag=p-button","./src/components/atoms/button/button.component.tsx","./src/components/atoms/icon/icon.component.scss?tag=p-icon","./src/components/atoms/icon/icon.component.tsx","./src/components/atoms/loader/loader.component.scss?tag=p-loader&encapsulation=shadow","./src/components/atoms/loader/loader.component.tsx"],"sourcesContent":["import arrow from '../assets/icons/arrow.svg';\nimport attachment from '../assets/icons/attachment.svg';\nimport bread from '../assets/icons/bread.svg';\nimport calendar from '../assets/icons/calendar.svg';\nimport camera from '../assets/icons/camera.svg';\nimport car from '../assets/icons/car.svg';\nimport checklist from '../assets/icons/checklist.svg';\nimport checkmark from '../assets/icons/checkmark.svg';\nimport chevron from '../assets/icons/chevron.svg';\nimport clock from '../assets/icons/clock.svg';\nimport cogs from '../assets/icons/cogs.svg';\nimport comment from '../assets/icons/comment.svg';\nimport document from '../assets/icons/document.svg';\nimport download from '../assets/icons/download.svg';\nimport envelope from '../assets/icons/envelope.svg';\nimport explanation from '../assets/icons/explanation.svg';\nimport eye from '../assets/icons/eye.svg';\nimport filter from '../assets/icons/filter.svg';\nimport folder from '../assets/icons/folder.svg';\nimport grid from '../assets/icons/grid.svg';\nimport headset from '../assets/icons/headset.svg';\nimport integration from '../assets/icons/integration.svg';\nimport list from '../assets/icons/list.svg';\nimport location from '../assets/icons/location.svg';\nimport megaphone from '../assets/icons/megaphone.svg';\nimport menu from '../assets/icons/menu.svg';\nimport minus from '../assets/icons/minus.svg';\nimport more from '../assets/icons/more.svg';\nimport negative from '../assets/icons/negative.svg';\nimport notification from '../assets/icons/notification.svg';\nimport pagination from '../assets/icons/pagination.svg';\nimport payment from '../assets/icons/payment.svg';\nimport pencil from '../assets/icons/pencil.svg';\nimport person from '../assets/icons/person.svg';\nimport plus from '../assets/icons/plus.svg';\nimport question from '../assets/icons/question.svg';\nimport receipt from '../assets/icons/receipt.svg';\nimport reload from '../assets/icons/reload.svg';\nimport report from '../assets/icons/report.svg';\nimport search from '../assets/icons/search.svg';\nimport settings from '../assets/icons/settings.svg';\nimport sick from '../assets/icons/sick.svg';\nimport signout from '../assets/icons/signout.svg';\nimport switchIcon from '../assets/icons/switch.svg';\nimport tachometer from '../assets/icons/tachometer.svg';\nimport task from '../assets/icons/task.svg';\nimport template from '../assets/icons/template.svg';\nimport tool from '../assets/icons/tool.svg';\nimport trash from '../assets/icons/trash.svg';\nimport turn from '../assets/icons/turn.svg';\nimport upload from '../assets/icons/upload.svg';\nimport warning from '../assets/icons/warning.svg';\n\nexport default {\n arrow,\n attachment,\n bread,\n calendar,\n camera,\n car,\n checklist,\n checkmark,\n chevron,\n clock,\n cogs,\n comment,\n document,\n download,\n envelope,\n explanation,\n eye,\n filter,\n folder,\n grid,\n headset,\n integration,\n list,\n location,\n megaphone,\n menu,\n minus,\n more,\n negative,\n notification,\n pagination,\n payment,\n pencil,\n person,\n plus,\n question,\n reload,\n receipt,\n report,\n search,\n settings,\n sick,\n signout,\n switch: switchIcon,\n tachometer,\n task,\n template,\n tool,\n trash,\n turn,\n upload,\n warning,\n};\n","p-button {\n @apply flex h-10 w-auto text-base;\n\n button,\n a {\n outline: 0;\n border: 0;\n @apply h-full w-full rounded-large;\n @apply font-semibold leading-4;\n @apply flex items-center justify-center;\n @apply cursor-pointer text-base;\n\n will-change: filter;\n\n > p-loader {\n @apply ml-2;\n }\n\n // Icon positions\n &.icon-position-end {\n > p-icon:not(.chevron) {\n @apply ml-2;\n }\n }\n\n &.icon-position-start {\n > p-icon:not(.chevron) {\n @apply mr-2;\n }\n }\n\n // Variants\n &.variant-primary,\n &.variant-secondary {\n @apply px-4 filter;\n }\n\n &.variant-primary,\n &.variant-secondary {\n &:active,\n &.active {\n @apply drop-shadow-transparent;\n }\n }\n\n &.variant-primary {\n @apply bg-indigo text-white;\n\n &:active,\n &.active {\n &:not([disabled]) {\n @apply bg-indigo-dark;\n }\n }\n\n @media (pointer: fine) {\n &:hover:not([disabled]) {\n @apply drop-shadow-button-primary-hover;\n }\n }\n }\n\n &.variant-secondary {\n @apply border border-solid border-mystic-dark #{!important};\n @apply bg-white text-storm;\n\n &:active,\n &.active {\n &:not([disabled]) {\n @apply bg-mystic;\n }\n }\n\n @media (pointer: fine) {\n &:hover:not([disabled]) {\n @apply drop-shadow-button-secondary-hover;\n }\n }\n }\n\n &.variant-text {\n @apply text-indigo;\n\n &:hover:not([disabled]) {\n @apply text-indigo-dark;\n }\n }\n\n &[disabled] {\n @apply opacity-40;\n }\n\n // chevron\n &.has-chevron {\n &.chevron-position-start {\n @apply pl-2;\n\n > p-icon.chevron {\n @apply mr-2;\n }\n }\n\n &.chevron-position-end {\n @apply pr-2;\n\n > p-icon.chevron {\n @apply ml-2;\n }\n }\n\n &.variant-secondary:hover:not([disabled]) p-icon:last-child {\n @apply text-indigo;\n }\n }\n\n &.should-inherit-text {\n color: inherit #{!important};\n font-size: inherit #{!important};\n font-weight: inherit #{!important};\n }\n }\n\n &.has-icon-only {\n @apply w-10;\n\n a,\n button {\n @apply p-0;\n\n > p-icon:first-child {\n @apply mx-0;\n }\n\n > p-loader {\n @apply ml-0;\n }\n }\n }\n\n // sizes\n &.size-small {\n @apply h-8;\n\n button,\n a {\n @apply text-sm;\n\n > p-icon {\n @apply text-base;\n }\n }\n\n &.has-icon-only {\n @apply w-8;\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n} from '@stencil/core';\nimport { RotateOptions } from '../../../types/tailwind';\nimport { IconFlipOptions, IconVariant } from '../icon/icon.component';\n\n@Component({\n tag: 'p-button',\n styleUrl: 'button.component.scss',\n // shadow: true,\n})\nexport class Button {\n /**\n * The variant of the button\n */\n @Prop() variant: 'primary' | 'secondary' | 'text' = 'primary';\n\n /**\n * Href in case of \"text\" version\n */\n @Prop() href: string;\n\n /**\n * Target in case of \"text\" version\n */\n @Prop() target: string;\n\n /**\n * The size of the button\n */\n @Prop() size: 'small' | 'medium' = 'medium';\n\n /**\n * Wether to show a loader or not\n */\n @Prop() loading: boolean = false;\n\n /**\n * Wether to show a chevron or not\n */\n @Prop() chevron: boolean | 'up' | 'down' = false;\n\n /**\n * Chevron position\n */\n @Prop() chevronPosition: 'start' | 'end' = 'end';\n\n /**\n * Wether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Icon to show on the button\n */\n @Prop() icon: IconVariant;\n\n /**\n * Wether the button is icon only\n */\n @Prop() iconOnly: boolean = false;\n\n /**\n * Icon position\n */\n @Prop() iconPosition: 'start' | 'end' = 'end';\n\n /**\n * Icon flip\n */\n @Prop() iconFlip: IconFlipOptions;\n\n /**\n * Icon rotate\n */\n @Prop() iconRotate: RotateOptions;\n\n /**\n * Wether the button should inherit text styles\n */\n @Prop() inheritText: boolean = false;\n\n /**\n * Button click event\n */\n @Event() onClick: EventEmitter<MouseEvent>;\n\n render() {\n let loaderColor: 'white' | 'storm' | 'indigo' = 'white';\n switch (this.variant) {\n case 'secondary':\n loaderColor = 'storm';\n break;\n case 'text':\n loaderColor = 'indigo';\n break;\n }\n\n const VariableTag = this.variant === 'text' ? 'a' : 'button';\n\n return (\n <Host\n class={`p-button size-${this.size} ${\n this.iconOnly && 'has-icon-only'\n } `}\n >\n <VariableTag\n class={`variant-${this.variant} icon-position-${\n this.iconPosition\n } ${this.chevron && 'has-chevron'} chevron-position-${\n this.chevronPosition\n } ${this.inheritText && 'should-inherit-text'}`}\n disabled={this.disabled}\n href={this.href}\n target={this.target}\n >\n {this.chevron && this.chevronPosition === 'start' && (\n <p-icon\n class=\"chevron\"\n variant=\"chevron\"\n rotate={this.chevron === 'up' ? 180 : 0}\n />\n )}\n\n {this.icon &&\n this.iconPosition === 'start' &&\n !(this.iconOnly && this.loading) &&\n this._getIcon()}\n\n <slot />\n\n {this.icon &&\n this.iconPosition === 'end' &&\n !(this.iconOnly && this.loading) &&\n this._getIcon()}\n\n {this.loading && <p-loader color={loaderColor} />}\n\n {this.chevron && this.chevronPosition === 'end' && (\n <p-icon\n class=\"chevron\"\n variant=\"chevron\"\n rotate={this.chevron === 'up' ? 180 : 0}\n />\n )}\n </VariableTag>\n </Host>\n );\n }\n\n @Listen('click', { capture: true })\n handleClick(ev: MouseEvent) {\n if (this.loading || this.disabled) {\n ev.preventDefault();\n return;\n }\n\n this.onClick.emit(ev);\n }\n\n private _getIcon() {\n if (!this.icon) {\n return;\n }\n\n return (\n <p-icon\n variant={this.icon}\n flip={this.iconFlip}\n rotate={this.iconRotate}\n />\n );\n }\n}\n",":host {\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport { RotateOptions, TextSizeOptions } from '../../../types/tailwind';\nimport icons from '../../../utils/icons';\n\nexport type IconVariant = keyof typeof icons;\nexport type IconFlipOptions = 'horizontal' | 'vertical';\n\n@Component({\n tag: 'p-icon',\n styleUrl: 'icon.component.scss',\n // shadow: true,\n})\nexport class Icon {\n /**\n * The icon the be displayed\n */\n @Prop() variant!: IconVariant;\n\n /**\n * The size of the icon, using tailwind sizes\n */\n @Prop() size: TextSizeOptions = 'auto';\n\n /**\n * Wether to rotate the icon x degrees\n */\n @Prop() rotate: RotateOptions = 0;\n\n /**\n * Wether to flip the icon horizontally or vertically\n */\n @Prop() flip: IconFlipOptions = null;\n\n render() {\n const icon = icons[this.variant];\n\n const styles = {\n 'p-icon flex': true,\n 'text-auto': this.size === 'auto',\n 'text-xxs': this.size === 'xxs',\n 'text-xs': this.size === 'xs',\n 'text-sm': this.size === 'sm',\n 'text-base': this.size === 'base',\n 'text-lg': this.size === 'lg',\n 'text-xl': this.size === 'xl',\n 'text-2xl': this.size === '2xl',\n 'text-3xl': this.size === '3xl',\n 'text-4xl': this.size === '4xl',\n 'text-5xl': this.size === '5xl',\n 'text-6xl': this.size === '6xl',\n transform: !!this.rotate || !!this.flip,\n 'scale-x-flip': this.flip === 'horizontal',\n 'scale-y-flip': this.flip === 'vertical',\n 'rotate-0': this.rotate === 0,\n 'rotate-25': this.rotate === 25,\n 'rotate-45': this.rotate === 45,\n 'rotate-90': this.rotate === 90,\n 'rotate-135': this.rotate === 135,\n 'rotate-180': this.rotate === 180,\n 'rotate-225': this.rotate === 225,\n 'rotate-270': this.rotate === 270,\n 'rotate-315': this.rotate === 315,\n '-rotate-0': this.rotate === -0,\n '-rotate-25': this.rotate === -25,\n '-rotate-45': this.rotate === -45,\n '-rotate-90': this.rotate === -90,\n '-rotate-135': this.rotate === -135,\n '-rotate-180': this.rotate === -180,\n '-rotate-225': this.rotate === -225,\n '-rotate-270': this.rotate === -270,\n '-rotate-315': this.rotate === -315,\n };\n\n return <Host class={styles} innerHTML={icon}></Host>;\n }\n}\n",":host {\n .loader {\n @apply inline-block h-[1em] w-[1em] rounded-round;\n @apply border-2 border-solid border-indigo-light border-t-indigo;\n animation: 500ms spin linear infinite;\n\n will-change: transform;\n\n &.color-storm {\n @apply border-storm-light/40 border-t-storm #{!important};\n }\n\n &.color-white {\n @apply border-indigo-light/40 border-t-white #{!important};\n }\n }\n\n .loading-screen {\n @apply w-screen-safe h-screen-safe fixed top-0 left-0;\n @apply flex items-center justify-center;\n @apply bg-mystic;\n\n z-index: 1001;\n\n .content {\n @apply max-w-xs;\n\n .loader-wrapper {\n @apply flex w-full justify-center;\n\n .loader {\n @apply text-4xl;\n }\n }\n }\n }\n}\n\n:host(.variant-ghost) {\n @apply box-border block;\n\n will-change: background, background-position-x, background-color;\n\n min-height: 1em;\n min-width: 1em;\n\n --loading-bg: #f7fafc;\n --loading-stripe: rgba(252, 253, 254, 1);\n\n background-color: var(--loading-bg);\n background: linear-gradient(\n 100deg,\n rgba(255, 255, 255, 0) 40%,\n var(--loading-stripe) 50%,\n rgba(255, 255, 255, 0) 60%\n )\n var(--loading-bg);\n background-size: 200% 100%;\n background-position-x: 180%;\n animation: 1s loading ease-in-out infinite;\n}\n\n@keyframes loading {\n to {\n background-position-x: -20%;\n }\n}\n\n@keyframes spin {\n 100% {\n transform: rotate(1turn);\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport { Observable, Subscription } from 'rxjs';\n\n@Component({\n tag: 'p-loader',\n styleUrl: 'loader.component.scss',\n shadow: true,\n})\nexport class Loader {\n /**\n * Wether to show or hide the loader\n */\n @Prop() show: boolean | Observable<boolean> = true;\n\n /**\n * Variant of loader\n */\n @Prop() variant:\n | 'inline'\n | 'full-width'\n | 'full-screen'\n | 'modal'\n | 'ghost' = 'inline';\n\n /**\n * Color of the loader\n */\n @Prop() color: 'indigo' | 'white' | 'storm' = 'indigo';\n\n /**\n * !NOT IMPLEMENTED! Modal title for modal variant\n */\n @Prop() modalTitle: string;\n\n /**\n * !NOT IMPLEMENTED! Modal description for modal variant\n */\n @Prop() modalDescription: string;\n\n private _show = this.show;\n private _showSubscriber: Subscription;\n\n private _loader = (<div class={`loader color-${this.color}`}></div>);\n\n componentWillRender() {\n this._checkShow();\n }\n\n componentShouldUpdate() {\n this._checkShow();\n }\n\n render() {\n if (!this._show) {\n return;\n }\n\n if (this.variant === 'ghost') {\n return <Host class=\"p-loader variant-ghost\"></Host>;\n }\n\n if (this.variant === 'full-screen') {\n return (\n <Host class=\"p-loader variant-full-screen\">\n <div class=\"loading-screen\">\n <div class=\"content\">\n <slot />\n\n <div class=\"loader-wrapper\">{this._loader}</div>\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host\n class={`p-loader variant-default flex ${\n this.variant === 'full-width' &&\n 'w-full flex justify-center text-4xl'\n }`}\n >\n {this._loader}\n </Host>\n );\n }\n\n private _checkShow() {\n if (this._showSubscriber) {\n this._showSubscriber.unsubscribe();\n this._showSubscriber = null;\n }\n\n if (typeof this.show !== 'boolean') {\n this._showSubscriber = this.show?.subscribe(\n (show) => (this._show = show)\n );\n return;\n }\n\n this._show = this.show;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as a,h as r,H as e,g as i}from"./p-ac1af618.js";import{f as o,g as n}from"./p-4e650fe4.js";import{d as s,a as w}from"./p-6c60fd3d.js";const p=class{constructor(r){t(this,r);this.sizeChange=a(this,"sizeChange",7);this._defaultButtonTemplate=t=>o(this._locales.item,{size:t});this._defaultItemTemplate=t=>o(this._locales.item,{size:t});this.size=s;this.sizeOptions=w;this.chevronPosition="start";this.buttonSize="small";this.buttonTemplate=this._defaultButtonTemplate;this.itemTemplate=this._defaultItemTemplate;this.hidden=false;this._locales={}}componentWillLoad(){this._setLocales()}render(){return r(e,{class:`p-page-size-select ${this.hidden&&"hidden"}`},r("p-dropdown",{placement:"top-start",chevronPosition:this.chevronPosition,chevronDirection:"down"},r("p-button",{variant:"secondary",slot:"trigger",size:this.buttonSize},this.buttonTemplate?this.buttonTemplate(this.size):this._defaultButtonTemplate(this.size)),r("slot",{slot:"items"},this.sizeOptions.map((t=>r("p-dropdown-menu-item",{active:t===this.size,onClick:()=>this._changeSize(t)},this.itemTemplate?this.itemTemplate(this.size):this._defaultItemTemplate(t)))))))}async _setLocales(){this._locales=await n(this._el)}_changeSize(t){if(!t){return}this.size=t;this.sizeChange.emit(this.size)}get _el(){return i(this)}};const m=".visible{visibility:visible!important}.static{position:static!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.m-0{margin:0!important}.mb-14{margin-bottom:3.5rem!important}.mb-6{margin-bottom:1.5rem!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.block{display:block!important}.inline{display:inline!important}.flex{display:flex!important}.table{display:table!important}.table-cell{display:table-cell!important}.table-row{display:table-row!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.w-1{width:.25rem!important}.w-10{width:2.5rem!important}.w-11{width:2.75rem!important}.w-2{width:.5rem!important}.w-3{width:.75rem!important}.w-4{width:1rem!important}.w-5{width:1.25rem!important}.w-6{width:1.5rem!important}.w-7{width:1.75rem!important}.w-8{width:2rem!important}.w-9{width:2.25rem!important}.w-auto{width:auto!important}.w-full{width:100%!important}.flex-1{flex:1 1 0%!important}.-rotate-0{--tw-rotate:-0deg!important}.-rotate-0,.-rotate-135{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-135{--tw-rotate:-135deg!important}.-rotate-180{--tw-rotate:-180deg!important}.-rotate-180,.-rotate-225{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-225{--tw-rotate:-225deg!important}.-rotate-25{--tw-rotate:-25deg!important}.-rotate-25,.-rotate-270{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-270{--tw-rotate:-270deg!important}.-rotate-315{--tw-rotate:-315deg!important}.-rotate-315,.-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-45{--tw-rotate:-45deg!important}.-rotate-90{--tw-rotate:-90deg!important}.-rotate-90,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-0{--tw-rotate:0deg!important}.rotate-135{--tw-rotate:135deg!important}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-180{--tw-rotate:180deg!important}.rotate-225{--tw-rotate:225deg!important}.rotate-225,.rotate-25{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-25{--tw-rotate:25deg!important}.rotate-270{--tw-rotate:270deg!important}.rotate-270,.rotate-315{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-315{--tw-rotate:315deg!important}.rotate-45{--tw-rotate:45deg!important}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-90{--tw-rotate:90deg!important}.scale-x-flip{--tw-scale-x:-1!important}.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.scale-y-flip{--tw-scale-y:-1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.flex-col{flex-direction:column!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-4{gap:1rem!important}.self-center{align-self:center!important}.rounded{border-radius:.25rem!important}.rounded-bl-none{border-bottom-left-radius:0!important}.rounded-br-none{border-bottom-right-radius:0!important}.rounded-tl-none{border-top-left-radius:0!important}.rounded-tr-none{border-top-right-radius:0!important}.border{border-width:1px!important}.border-l-0{border-left-width:0!important}.border-r-0{border-right-width:0!important}.border-solid{border-style:solid!important}.border-transparent{border-color:transparent!important}.border-t-mystic-dark{--tw-border-opacity:1!important;border-top-color:rgb(218 230 240/var(--tw-border-opacity))!important}.bg-white{--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-24{padding-bottom:6rem!important;padding-top:6rem!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.text-center{text-align:center!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-xxs{font-size:.6875rem!important}.font-semibold{font-weight:600!important}.text-negative{color:rgb(185 30 40/var(--tw-text-opacity))!important}.text-negative,.text-negative-light{--tw-text-opacity:1!important}.text-negative-light{color:rgb(255 204 211/var(--tw-text-opacity))!important}.text-storm-dark{color:rgb(39 40 56/var(--tw-text-opacity))!important}.text-storm-dark,.text-storm-medium{--tw-text-opacity:1!important}.text-storm-medium{color:rgb(128 130 158/var(--tw-text-opacity))!important}.blur{--tw-blur:blur(8px)!important}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}*{box-sizing:border-box}p-pagination{display:flex}.max-w-\\[20rem\\]{max-width:20rem!important}.w-1\\/12{width:8.333333%!important}.w-10\\/12{width:83.333333%!important}.w-11\\/12{width:91.666667%!important}.w-2\\/12{width:16.666667%!important}.w-3\\/12{width:25%!important}.w-4\\/12{width:33.333333%!important}.w-5\\/12{width:41.666667%!important}.w-6\\/12{width:50%!important}.w-7\\/12{width:58.333333%!important}.w-8\\/12{width:66.666667%!important}.w-9\\/12{width:75%!important}@media (min-width:40rem){.tablet\\:w-1\\/12{width:8.333333%!important}.tablet\\:w-10\\/12{width:83.333333%!important}.tablet\\:w-11\\/12{width:91.666667%!important}.tablet\\:w-2\\/12{width:16.666667%!important}.tablet\\:w-3\\/12{width:25%!important}.tablet\\:w-4\\/12{width:33.333333%!important}.tablet\\:w-5\\/12{width:41.666667%!important}.tablet\\:w-6\\/12{width:50%!important}.tablet\\:w-7\\/12{width:58.333333%!important}.tablet\\:w-8\\/12{width:66.666667%!important}.tablet\\:w-9\\/12{width:75%!important}}@media (min-width:64rem){.desktop-xs\\:w-1\\/12{width:8.333333%!important}.desktop-xs\\:w-10\\/12{width:83.333333%!important}.desktop-xs\\:w-11\\/12{width:91.666667%!important}.desktop-xs\\:w-2\\/12{width:16.666667%!important}.desktop-xs\\:w-3\\/12{width:25%!important}.desktop-xs\\:w-4\\/12{width:33.333333%!important}.desktop-xs\\:w-5\\/12{width:41.666667%!important}.desktop-xs\\:w-6\\/12{width:50%!important}.desktop-xs\\:w-7\\/12{width:58.333333%!important}.desktop-xs\\:w-8\\/12{width:66.666667%!important}.desktop-xs\\:w-9\\/12{width:75%!important}}@media (min-width:80rem){.desktop-sm\\:w-1\\/12{width:8.333333%!important}.desktop-sm\\:w-10\\/12{width:83.333333%!important}.desktop-sm\\:w-11\\/12{width:91.666667%!important}.desktop-sm\\:w-2\\/12{width:16.666667%!important}.desktop-sm\\:w-3\\/12{width:25%!important}.desktop-sm\\:w-4\\/12{width:33.333333%!important}.desktop-sm\\:w-5\\/12{width:41.666667%!important}.desktop-sm\\:w-6\\/12{width:50%!important}.desktop-sm\\:w-7\\/12{width:58.333333%!important}.desktop-sm\\:w-8\\/12{width:66.666667%!important}.desktop-sm\\:w-9\\/12{width:75%!important}}@media (min-width:85.375rem){.desktop\\:w-1\\/12{width:8.333333%!important}.desktop\\:w-10\\/12{width:83.333333%!important}.desktop\\:w-11\\/12{width:91.666667%!important}.desktop\\:w-2\\/12{width:16.666667%!important}.desktop\\:w-3\\/12{width:25%!important}.desktop\\:w-4\\/12{width:33.333333%!important}.desktop\\:w-5\\/12{width:41.666667%!important}.desktop\\:w-6\\/12{width:50%!important}.desktop\\:w-7\\/12{width:58.333333%!important}.desktop\\:w-8\\/12{width:66.666667%!important}.desktop\\:w-9\\/12{width:75%!important}}@media (min-width:90rem){.desktop-lg\\:w-1\\/12{width:8.333333%!important}.desktop-lg\\:w-10\\/12{width:83.333333%!important}.desktop-lg\\:w-11\\/12{width:91.666667%!important}.desktop-lg\\:w-2\\/12{width:16.666667%!important}.desktop-lg\\:w-3\\/12{width:25%!important}.desktop-lg\\:w-4\\/12{width:33.333333%!important}.desktop-lg\\:w-5\\/12{width:41.666667%!important}.desktop-lg\\:w-6\\/12{width:50%!important}.desktop-lg\\:w-7\\/12{width:58.333333%!important}.desktop-lg\\:w-8\\/12{width:66.666667%!important}.desktop-lg\\:w-9\\/12{width:75%!important}}@media (min-width:120rem){.desktop-xl\\:w-1\\/12{width:8.333333%!important}.desktop-xl\\:w-10\\/12{width:83.333333%!important}.desktop-xl\\:w-11\\/12{width:91.666667%!important}.desktop-xl\\:w-2\\/12{width:16.666667%!important}.desktop-xl\\:w-3\\/12{width:25%!important}.desktop-xl\\:w-4\\/12{width:33.333333%!important}.desktop-xl\\:w-5\\/12{width:41.666667%!important}.desktop-xl\\:w-6\\/12{width:50%!important}.desktop-xl\\:w-7\\/12{width:58.333333%!important}.desktop-xl\\:w-8\\/12{width:66.666667%!important}.desktop-xl\\:w-9\\/12{width:75%!important}}@media (min-width:64rem){.desktop-xs\\:flex{display:flex!important}}.w-3\\/4{width:75%!important}@media (min-width:64rem){.desktop-xs\\:hidden{display:none!important}.desktop-xs\\:w-48{width:12rem!important}.desktop-xs\\:w-auto{width:auto!important}.desktop-xs\\:flex-row{flex-direction:row!important}}.-rotate-0,.-rotate-135,.-rotate-180,.-rotate-225,.-rotate-25,.-rotate-270,.-rotate-315,.-rotate-45,.-rotate-90,.rotate-0,.rotate-135,.rotate-180,.rotate-225,.rotate-25,.rotate-270,.rotate-315,.rotate-45,.rotate-90,.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.text-lg,.text-xl{line-height:1.75rem!important}.hover\\:text-negative:hover{--tw-text-opacity:1!important;color:rgb(185 30 40/var(--tw-text-opacity))!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}";const d=class{constructor(e){t(this,e);this.pageChange=a(this,"pageChange",7);this._pages=[];this._set=[];this._nextClick=()=>{const t=this.page+1;if(t>this._pages[this._pages.length-1]){return}this._changePage(t)};this._pageClick=t=>this._changePage(t);this._generateSet=(t=1,a=true)=>{const e=this._pages.length;if(!e){return[]}let i=this.page-t;let o=this.page+t;if(o>e){o=e;i=e-t*2;i=i<1?1:i}if(i<=1){i=1;o=Math.min(t*2+1,e)}const n=[];const s={type:"previous",value:r("p-icon",{variant:"chevron",rotate:90})};const w={type:"next",value:r("p-icon",{variant:"chevron",rotate:-90})};if(t===null){const t=this._pages.map((t=>({type:"page",value:t})));return a?[s,...t,w]:t}if(a){n.push(s)}if(i<=3){for(let t=1;t<i;t++){n.push({type:"page",value:this._pages[t-1]})}}else{n.push({type:"page",value:1});n.push({type:"ellipsis",value:"ellipsis"})}for(let t=i;t<=o;t++){n.push({type:"page",value:this._pages[t-1]})}if(o>=e-2){for(let t=o+1;t<=e;t++){n.push({type:"page",value:this._pages[t-1]})}}else{n.push({type:"ellipsis"});n.push({type:"page",value:this._pages[this._pages.length-1]})}if(a){n.push(w)}return n};this.page=1;this.pageSize=12;this.hideOnSinglePage=false;this.total=undefined}componentWillRender(){this._generate()}render(){var t,a;return r(e,{class:`p-pagination ${this.hideOnSinglePage&&((t=this._set)===null||t===void 0?void 0:t.length)===3&&"hidden"}`},(a=this._set)===null||a===void 0?void 0:a.map((t=>{if(t.type==="previous"||t.type==="next"){return r("p-pagination-item",{onClick:()=>t.type==="previous"?this._previousClick():this._nextClick()},t.value)}if(t.type==="ellipsis"){return r("p-pagination-item",null,"...")}return r("p-pagination-item",{active:t.value===this.page,onClick:()=>this._pageClick(t.value)},t.value)})))}pageChangeHandler(){this._generate()}_generate(){var t;this._pages=this._generatePages();this._set=this._generateSet();if(this.page>((t=this._pages)===null||t===void 0?void 0:t.length)){this._changePage(this._pages.length)}}_changePage(t){if(!t){return}this.page=t;this.pageChange.emit(this.page)}_previousClick(){const t=this.page-1;if(t<this._pages[0]){return}this._changePage(t)}_generatePages(){if(!this.total||!this.pageSize){return[]}const t=Math.ceil(this.total/this.pageSize);return new Array(t).fill(undefined).map(((t,a)=>a+1))}static get watchers(){return{page:["pageChangeHandler"],pageSize:["pageChangeHandler"],total:["pageChangeHandler"]}}};d.style=m;const l=".visible{visibility:visible!important}.static{position:static!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.m-0{margin:0!important}.mb-14{margin-bottom:3.5rem!important}.mb-6{margin-bottom:1.5rem!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.block{display:block!important}.inline{display:inline!important}.flex{display:flex!important}.table{display:table!important}.table-cell{display:table-cell!important}.table-row{display:table-row!important}.hidden{display:none!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.w-1{width:.25rem!important}.w-10{width:2.5rem!important}.w-11{width:2.75rem!important}.w-2{width:.5rem!important}.w-3{width:.75rem!important}.w-4{width:1rem!important}.w-5{width:1.25rem!important}.w-6{width:1.5rem!important}.w-7{width:1.75rem!important}.w-8{width:2rem!important}.w-9{width:2.25rem!important}.w-auto{width:auto!important}.w-full{width:100%!important}.flex-1{flex:1 1 0%!important}.-rotate-0{--tw-rotate:-0deg!important}.-rotate-0,.-rotate-135{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-135{--tw-rotate:-135deg!important}.-rotate-180{--tw-rotate:-180deg!important}.-rotate-180,.-rotate-225{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-225{--tw-rotate:-225deg!important}.-rotate-25{--tw-rotate:-25deg!important}.-rotate-25,.-rotate-270{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-270{--tw-rotate:-270deg!important}.-rotate-315{--tw-rotate:-315deg!important}.-rotate-315,.-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-rotate-45{--tw-rotate:-45deg!important}.-rotate-90{--tw-rotate:-90deg!important}.-rotate-90,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-0{--tw-rotate:0deg!important}.rotate-135{--tw-rotate:135deg!important}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-180{--tw-rotate:180deg!important}.rotate-225{--tw-rotate:225deg!important}.rotate-225,.rotate-25{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-25{--tw-rotate:25deg!important}.rotate-270{--tw-rotate:270deg!important}.rotate-270,.rotate-315{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-315{--tw-rotate:315deg!important}.rotate-45{--tw-rotate:45deg!important}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.rotate-90{--tw-rotate:90deg!important}.scale-x-flip{--tw-scale-x:-1!important}.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.scale-y-flip{--tw-scale-y:-1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.flex-col{flex-direction:column!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-4{gap:1rem!important}.self-center{align-self:center!important}.rounded{border-radius:.25rem!important}.rounded-bl-none{border-bottom-left-radius:0!important}.rounded-br-none{border-bottom-right-radius:0!important}.rounded-tl-none{border-top-left-radius:0!important}.rounded-tr-none{border-top-right-radius:0!important}.border{border-width:1px!important}.border-l-0{border-left-width:0!important}.border-r-0{border-right-width:0!important}.border-solid{border-style:solid!important}.border-transparent{border-color:transparent!important}.border-t-mystic-dark{--tw-border-opacity:1!important;border-top-color:rgb(218 230 240/var(--tw-border-opacity))!important}.bg-white{--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-24{padding-bottom:6rem!important;padding-top:6rem!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.text-center{text-align:center!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important}.text-5xl,.text-6xl{line-height:1!important}.text-6xl{font-size:3.75rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-xxs{font-size:.6875rem!important}.font-semibold{font-weight:600!important}.text-indigo{color:rgb(82 138 250/var(--tw-text-opacity))!important}.text-indigo,.text-negative{--tw-text-opacity:1!important}.text-negative{color:rgb(185 30 40/var(--tw-text-opacity))!important}.text-negative-light{color:rgb(255 204 211/var(--tw-text-opacity))!important}.text-negative-light,.text-storm-dark{--tw-text-opacity:1!important}.text-storm-dark{color:rgb(39 40 56/var(--tw-text-opacity))!important}.text-storm-medium{--tw-text-opacity:1!important;color:rgb(128 130 158/var(--tw-text-opacity))!important}.blur{--tw-blur:blur(8px)!important}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}*{box-sizing:border-box}:host{--tw-text-opacity:1;align-items:center;border-radius:.25rem;color:rgb(128 130 158/var(--tw-text-opacity));cursor:pointer;display:flex;font-size:.875rem;font-weight:600;height:2rem;justify-content:center;line-height:1.25rem;width:2rem}:host(:focus),:host(:hover){--tw-text-opacity:1;color:rgb(81 83 107/var(--tw-text-opacity))}:host(.active){--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(241 246 255/var(--tw-bg-opacity));color:rgb(82 138 250/var(--tw-text-opacity))}.max-w-\\[20rem\\]{max-width:20rem!important}.w-1\\/12{width:8.333333%!important}.w-10\\/12{width:83.333333%!important}.w-11\\/12{width:91.666667%!important}.w-2\\/12{width:16.666667%!important}.w-3\\/12{width:25%!important}.w-4\\/12{width:33.333333%!important}.w-5\\/12{width:41.666667%!important}.w-6\\/12{width:50%!important}.w-7\\/12{width:58.333333%!important}.w-8\\/12{width:66.666667%!important}.w-9\\/12{width:75%!important}@media (min-width:40rem){.tablet\\:w-1\\/12{width:8.333333%!important}.tablet\\:w-10\\/12{width:83.333333%!important}.tablet\\:w-11\\/12{width:91.666667%!important}.tablet\\:w-2\\/12{width:16.666667%!important}.tablet\\:w-3\\/12{width:25%!important}.tablet\\:w-4\\/12{width:33.333333%!important}.tablet\\:w-5\\/12{width:41.666667%!important}.tablet\\:w-6\\/12{width:50%!important}.tablet\\:w-7\\/12{width:58.333333%!important}.tablet\\:w-8\\/12{width:66.666667%!important}.tablet\\:w-9\\/12{width:75%!important}}@media (min-width:64rem){.desktop-xs\\:w-1\\/12{width:8.333333%!important}.desktop-xs\\:w-10\\/12{width:83.333333%!important}.desktop-xs\\:w-11\\/12{width:91.666667%!important}.desktop-xs\\:w-2\\/12{width:16.666667%!important}.desktop-xs\\:w-3\\/12{width:25%!important}.desktop-xs\\:w-4\\/12{width:33.333333%!important}.desktop-xs\\:w-5\\/12{width:41.666667%!important}.desktop-xs\\:w-6\\/12{width:50%!important}.desktop-xs\\:w-7\\/12{width:58.333333%!important}.desktop-xs\\:w-8\\/12{width:66.666667%!important}.desktop-xs\\:w-9\\/12{width:75%!important}}@media (min-width:80rem){.desktop-sm\\:w-1\\/12{width:8.333333%!important}.desktop-sm\\:w-10\\/12{width:83.333333%!important}.desktop-sm\\:w-11\\/12{width:91.666667%!important}.desktop-sm\\:w-2\\/12{width:16.666667%!important}.desktop-sm\\:w-3\\/12{width:25%!important}.desktop-sm\\:w-4\\/12{width:33.333333%!important}.desktop-sm\\:w-5\\/12{width:41.666667%!important}.desktop-sm\\:w-6\\/12{width:50%!important}.desktop-sm\\:w-7\\/12{width:58.333333%!important}.desktop-sm\\:w-8\\/12{width:66.666667%!important}.desktop-sm\\:w-9\\/12{width:75%!important}}@media (min-width:85.375rem){.desktop\\:w-1\\/12{width:8.333333%!important}.desktop\\:w-10\\/12{width:83.333333%!important}.desktop\\:w-11\\/12{width:91.666667%!important}.desktop\\:w-2\\/12{width:16.666667%!important}.desktop\\:w-3\\/12{width:25%!important}.desktop\\:w-4\\/12{width:33.333333%!important}.desktop\\:w-5\\/12{width:41.666667%!important}.desktop\\:w-6\\/12{width:50%!important}.desktop\\:w-7\\/12{width:58.333333%!important}.desktop\\:w-8\\/12{width:66.666667%!important}.desktop\\:w-9\\/12{width:75%!important}}@media (min-width:90rem){.desktop-lg\\:w-1\\/12{width:8.333333%!important}.desktop-lg\\:w-10\\/12{width:83.333333%!important}.desktop-lg\\:w-11\\/12{width:91.666667%!important}.desktop-lg\\:w-2\\/12{width:16.666667%!important}.desktop-lg\\:w-3\\/12{width:25%!important}.desktop-lg\\:w-4\\/12{width:33.333333%!important}.desktop-lg\\:w-5\\/12{width:41.666667%!important}.desktop-lg\\:w-6\\/12{width:50%!important}.desktop-lg\\:w-7\\/12{width:58.333333%!important}.desktop-lg\\:w-8\\/12{width:66.666667%!important}.desktop-lg\\:w-9\\/12{width:75%!important}}@media (min-width:120rem){.desktop-xl\\:w-1\\/12{width:8.333333%!important}.desktop-xl\\:w-10\\/12{width:83.333333%!important}.desktop-xl\\:w-11\\/12{width:91.666667%!important}.desktop-xl\\:w-2\\/12{width:16.666667%!important}.desktop-xl\\:w-3\\/12{width:25%!important}.desktop-xl\\:w-4\\/12{width:33.333333%!important}.desktop-xl\\:w-5\\/12{width:41.666667%!important}.desktop-xl\\:w-6\\/12{width:50%!important}.desktop-xl\\:w-7\\/12{width:58.333333%!important}.desktop-xl\\:w-8\\/12{width:66.666667%!important}.desktop-xl\\:w-9\\/12{width:75%!important}}@media (min-width:64rem){.desktop-xs\\:flex{display:flex!important}}.w-3\\/4{width:75%!important}@media (min-width:64rem){.desktop-xs\\:hidden{display:none!important}.desktop-xs\\:w-48{width:12rem!important}.desktop-xs\\:w-auto{width:auto!important}.desktop-xs\\:flex-row{flex-direction:row!important}}.-rotate-0,.-rotate-135,.-rotate-180,.-rotate-225,.-rotate-25,.-rotate-270,.-rotate-315,.-rotate-45,.-rotate-90,.rotate-0,.rotate-135,.rotate-180,.rotate-225,.rotate-25,.rotate-270,.rotate-315,.rotate-45,.rotate-90,.scale-x-flip,.scale-y-flip{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.text-lg,.text-xl{line-height:1.75rem!important}.hover\\:text-negative:hover{--tw-text-opacity:1!important;color:rgb(185 30 40/var(--tw-text-opacity))!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}";const h=class{constructor(a){t(this,a);this.active=false}render(){return r(e,{class:`p-pagination-item ${this.active&&"active"}`},r("slot",null))}};h.style=l;export{p as p_page_size_select,d as p_pagination,h as p_pagination_item};
|
|
2
|
+
//# sourceMappingURL=p-ebd4ba56.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PageSizeSelect","this","_defaultButtonTemplate","size","formatTranslation","_locales","item","_defaultItemTemplate","defaultSize","defaultSizeOptions","componentWillLoad","_setLocales","render","h","Host","class","hidden","placement","chevronPosition","chevronDirection","variant","slot","buttonSize","buttonTemplate","sizeOptions","map","option","active","onClick","_changeSize","itemTemplate","async","getLocaleComponentStrings","_el","s","sizeChange","emit","paginationComponentCss","Pagination","_pages","_set","_nextClick","nextPage","page","length","_changePage","_pageClick","p","_generateSet","range","enableBoundaries","totalPages","start","end","Math","min","set","previous","type","value","rotate","next","push","i","componentWillRender","_generate","hideOnSinglePage","_a","_b","_previousClick","pageChangeHandler","_generatePages","pageChange","previousPage","total","pageSize","pages","ceil","Array","fill","undefined","_","paginationItemComponentCss","PaginationItem"],"sources":["./src/components/molecules/page-size-select/page-size-select.component.tsx","./src/components/molecules/pagination/pagination.component.scss?tag=p-pagination","./src/components/molecules/pagination/pagination.component.tsx","./src/components/atoms/pagination-item/pagination-item.component.scss?tag=p-pagination-item&encapsulation=shadow","./src/components/atoms/pagination-item/pagination-item.component.tsx"],"sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport {\n formatTranslation,\n getLocaleComponentStrings,\n} from '../../../utils/localization';\nimport { defaultSize, defaultSizeOptions } from './constants';\n\nexport type templateFunc = (value: number) => string;\n\n@Component({\n tag: 'p-page-size-select',\n shadow: true,\n})\nexport class PageSizeSelect {\n private _defaultButtonTemplate: templateFunc = (size) =>\n formatTranslation(this._locales.item, { size });\n private _defaultItemTemplate: templateFunc = (size) =>\n formatTranslation(this._locales.item, { size });\n /**\n * The current page\n */\n @Prop({ mutable: true, reflect: true }) size: number = defaultSize;\n\n /**\n * The available sizes\n */\n @Prop() sizeOptions: number[] = defaultSizeOptions;\n\n /**\n * Event whenever the size changes\n */\n @Event() sizeChange: EventEmitter<number>;\n\n /**\n * Chevron position\n */\n @Prop() chevronPosition: 'start' | 'end' = 'start';\n\n /**\n * The size of the button\n */\n @Prop() buttonSize: 'small' | 'medium' = 'small';\n\n /**\n * The template for the data view\n */\n @Prop() buttonTemplate: templateFunc = this._defaultButtonTemplate;\n\n /**\n * The template for the data view\n */\n @Prop() itemTemplate: templateFunc = this._defaultItemTemplate;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n /**\n * Wether to hide when there is only 1 page available\n */\n @Prop() hidden: boolean = false;\n\n /**\n * Locales used for this component\n */\n @State() private _locales: any = {};\n\n componentWillLoad() {\n this._setLocales();\n }\n\n render() {\n return (\n <Host class={`p-page-size-select ${this.hidden && 'hidden'}`}>\n <p-dropdown\n placement=\"top-start\"\n chevronPosition={this.chevronPosition}\n chevronDirection=\"down\"\n >\n <p-button\n variant=\"secondary\"\n slot=\"trigger\"\n size={this.buttonSize}\n >\n {this.buttonTemplate\n ? this.buttonTemplate(this.size)\n : this._defaultButtonTemplate(this.size)}\n </p-button>\n <slot slot=\"items\">\n {this.sizeOptions.map((option) => (\n <p-dropdown-menu-item\n active={option === this.size}\n onClick={() => this._changeSize(option)}\n >\n {this.itemTemplate\n ? this.itemTemplate(this.size)\n : this._defaultItemTemplate(option)}\n </p-dropdown-menu-item>\n ))}\n </slot>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('localeChanged', { target: 'body' })\n private async _setLocales(): Promise<void> {\n this._locales = await getLocaleComponentStrings(this._el);\n }\n\n private _changeSize(s?: number) {\n if (!s) {\n return;\n }\n\n this.size = s;\n this.sizeChange.emit(this.size);\n }\n}\n","p-pagination {\n @apply flex;\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n Watch,\n} from '@stencil/core';\n\ntype PaginationSetItem = {\n type: string;\n value?: number | Element | JSX.Element | string;\n};\n\n@Component({\n tag: 'p-pagination',\n styleUrl: 'pagination.component.scss',\n})\nexport class Pagination {\n /**\n * The current page\n */\n @Prop({ mutable: true, reflect: true }) page: number = 1;\n\n /**\n * Event whenever the page changes\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * The amount of items per page\n */\n @Prop() pageSize: number = 12;\n\n /**\n * Wether to hide when there is only 1 page available\n */\n @Prop() hideOnSinglePage: boolean = false;\n\n /**\n * The total amount of items\n */\n @Prop() total!: number;\n\n private _pages: number[] = [];\n private _set: PaginationSetItem[] = [];\n\n componentWillRender() {\n this._generate();\n }\n\n render() {\n return (\n <Host\n class={`p-pagination ${\n this.hideOnSinglePage && this._set?.length === 3 && 'hidden'\n }`}\n >\n {this._set?.map((p) => {\n if (p.type === 'previous' || p.type === 'next') {\n return (\n <p-pagination-item\n onClick={() =>\n p.type === 'previous'\n ? this._previousClick()\n : this._nextClick()\n }\n >\n {p.value}\n </p-pagination-item>\n );\n }\n\n if (p.type === 'ellipsis') {\n return <p-pagination-item>...</p-pagination-item>;\n }\n\n return (\n <p-pagination-item\n active={p.value === this.page}\n onClick={() => this._pageClick(p.value as number)}\n >\n {p.value}\n </p-pagination-item>\n );\n })}\n </Host>\n );\n }\n\n @Watch('page')\n @Watch('pageSize')\n @Watch('total')\n protected pageChangeHandler() {\n this._generate();\n }\n\n private _generate() {\n this._pages = this._generatePages();\n this._set = this._generateSet();\n\n if (this.page > this._pages?.length) {\n this._changePage(this._pages.length);\n }\n }\n\n private _changePage(p?: number) {\n if (!p) {\n return;\n }\n\n this.page = p;\n this.pageChange.emit(this.page);\n }\n\n private _previousClick() {\n const previousPage = this.page - 1;\n if (previousPage < this._pages[0]) {\n return;\n }\n\n this._changePage(previousPage);\n }\n\n private _nextClick = () => {\n const nextPage = this.page + 1;\n if (nextPage > this._pages[this._pages.length - 1]) {\n return;\n }\n\n this._changePage(nextPage);\n };\n\n private _pageClick = (p?: number) => this._changePage(p);\n\n private _generatePages() {\n if (!this.total || !this.pageSize) {\n return [];\n }\n\n const pages = Math.ceil(this.total / this.pageSize);\n return new Array(pages).fill(undefined).map((_, i) => i + 1);\n }\n\n private _generateSet = (\n range: number = 1,\n enableBoundaries: boolean = true\n ): PaginationSetItem[] => {\n const totalPages = this._pages.length;\n\n if (!totalPages) {\n return [];\n }\n\n let start = this.page - range;\n let end = this.page + range;\n\n if (end > totalPages) {\n end = totalPages;\n start = totalPages - range * 2;\n start = start < 1 ? 1 : start;\n }\n\n if (start <= 1) {\n start = 1;\n end = Math.min(range * 2 + 1, totalPages);\n }\n\n const set = [];\n\n const previous = {\n type: 'previous',\n value: <p-icon variant=\"chevron\" rotate={90} />,\n };\n\n const next = {\n type: 'next',\n value: <p-icon variant=\"chevron\" rotate={-90} />,\n };\n\n // Disable page range, display all the pages\n if (range === null) {\n const p = this._pages.map((p) => ({\n type: 'page',\n value: p,\n }));\n\n return enableBoundaries ? [previous, ...p, next] : p;\n }\n\n if (enableBoundaries) {\n set.push(previous);\n }\n\n if (start <= 3) {\n for (let i = 1; i < start; i++) {\n set.push({\n type: 'page',\n value: this._pages[i - 1],\n });\n }\n } else {\n set.push({\n type: 'page',\n value: 1,\n });\n\n set.push({\n type: 'ellipsis',\n value: 'ellipsis',\n });\n }\n\n for (let i = start; i <= end; i++) {\n set.push({\n type: 'page',\n value: this._pages[i - 1],\n });\n }\n\n if (end >= totalPages - 2) {\n for (let i = end + 1; i <= totalPages; i++) {\n set.push({\n type: 'page',\n value: this._pages[i - 1],\n });\n }\n } else {\n set.push({\n type: 'ellipsis',\n });\n\n set.push({\n type: 'page',\n value: this._pages[this._pages.length - 1],\n });\n }\n\n if (enableBoundaries) {\n set.push(next);\n }\n\n return set;\n };\n}\n",":host {\n @apply h-8 w-8;\n @apply flex justify-center items-center;\n @apply font-semibold text-storm-medium text-sm;\n @apply rounded;\n @apply cursor-pointer;\n}\n\n:host(:hover),\n:host(:focus) {\n @apply text-storm;\n}\n\n:host(.active) {\n @apply text-indigo bg-indigo-light;\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'p-pagination-item',\n styleUrl: 'pagination-item.component.scss',\n shadow: true,\n})\nexport class PaginationItem {\n /**\n * Wether the pagination item is active\n */\n @Prop() active: boolean = false;\n\n render() {\n return (\n <Host class={`p-pagination-item ${this.active && 'active'}`}>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"4JAuBaA,EAAc,M,gEACfC,KAAAC,uBAAwCC,GAC5CC,EAAkBH,KAAKI,SAASC,KAAM,CAAEH,SACpCF,KAAAM,qBAAsCJ,GAC1CC,EAAkBH,KAAKI,SAASC,KAAM,CAAEH,S,UAIWK,E,iBAKvBC,E,qBAUW,Q,gBAKF,Q,oBAKFR,KAAKC,uB,kBAKPD,KAAKM,qB,YAUhB,M,cAKO,E,CAEjCG,oBACIT,KAAKU,a,CAGTC,SACI,OACIC,EAACC,EAAI,CAACC,MAAO,sBAAsBd,KAAKe,QAAU,YAC9CH,EAAA,cACII,UAAU,YACVC,gBAAiBjB,KAAKiB,gBACtBC,iBAAiB,QAEjBN,EAAA,YACIO,QAAQ,YACRC,KAAK,UACLlB,KAAMF,KAAKqB,YAEVrB,KAAKsB,eACAtB,KAAKsB,eAAetB,KAAKE,MACzBF,KAAKC,uBAAuBD,KAAKE,OAE3CU,EAAA,QAAMQ,KAAK,SACNpB,KAAKuB,YAAYC,KAAKC,GACnBb,EAAA,wBACIc,OAAQD,IAAWzB,KAAKE,KACxByB,QAAS,IAAM3B,KAAK4B,YAAYH,IAE/BzB,KAAK6B,aACA7B,KAAK6B,aAAa7B,KAAKE,MACvBF,KAAKM,qBAAqBmB,Q,CAUpDK,oBACJ9B,KAAKI,eAAiB2B,EAA0B/B,KAAKgC,I,CAGjDJ,YAAYK,GAChB,IAAKA,EAAG,CACJ,M,CAGJjC,KAAKE,KAAO+B,EACZjC,KAAKkC,WAAWC,KAAKnC,KAAKE,K,4BC/HlC,MAAMkC,EAAyB,+pX,MCmBlBC,EAAU,M,gEA0BXrC,KAAAsC,OAAmB,GACnBtC,KAAAuC,KAA4B,GA+E5BvC,KAAAwC,WAAa,KACjB,MAAMC,EAAWzC,KAAK0C,KAAO,EAC7B,GAAID,EAAWzC,KAAKsC,OAAOtC,KAAKsC,OAAOK,OAAS,GAAI,CAChD,M,CAGJ3C,KAAK4C,YAAYH,EAAS,EAGtBzC,KAAA6C,WAAcC,GAAe9C,KAAK4C,YAAYE,GAW9C9C,KAAA+C,aAAe,CACnBC,EAAgB,EAChBC,EAA4B,QAE5B,MAAMC,EAAalD,KAAKsC,OAAOK,OAE/B,IAAKO,EAAY,CACb,MAAO,E,CAGX,IAAIC,EAAQnD,KAAK0C,KAAOM,EACxB,IAAII,EAAMpD,KAAK0C,KAAOM,EAEtB,GAAII,EAAMF,EAAY,CAClBE,EAAMF,EACNC,EAAQD,EAAaF,EAAQ,EAC7BG,EAAQA,EAAQ,EAAI,EAAIA,C,CAG5B,GAAIA,GAAS,EAAG,CACZA,EAAQ,EACRC,EAAMC,KAAKC,IAAIN,EAAQ,EAAI,EAAGE,E,CAGlC,MAAMK,EAAM,GAEZ,MAAMC,EAAW,CACbC,KAAM,WACNC,MAAO9C,EAAA,UAAQO,QAAQ,UAAUwC,OAAQ,MAG7C,MAAMC,EAAO,CACTH,KAAM,OACNC,MAAO9C,EAAA,UAAQO,QAAQ,UAAUwC,QAAS,MAI9C,GAAIX,IAAU,KAAM,CAChB,MAAMF,EAAI9C,KAAKsC,OAAOd,KAAKsB,IAAC,CACxBW,KAAM,OACNC,MAAOZ,MAGX,OAAOG,EAAmB,CAACO,KAAaV,EAAGc,GAAQd,C,CAGvD,GAAIG,EAAkB,CAClBM,EAAIM,KAAKL,E,CAGb,GAAIL,GAAS,EAAG,CACZ,IAAK,IAAIW,EAAI,EAAGA,EAAIX,EAAOW,IAAK,CAC5BP,EAAIM,KAAK,CACLJ,KAAM,OACNC,MAAO1D,KAAKsC,OAAOwB,EAAI,I,MAG5B,CACHP,EAAIM,KAAK,CACLJ,KAAM,OACNC,MAAO,IAGXH,EAAIM,KAAK,CACLJ,KAAM,WACNC,MAAO,Y,CAIf,IAAK,IAAII,EAAIX,EAAOW,GAAKV,EAAKU,IAAK,CAC/BP,EAAIM,KAAK,CACLJ,KAAM,OACNC,MAAO1D,KAAKsC,OAAOwB,EAAI,I,CAI/B,GAAIV,GAAOF,EAAa,EAAG,CACvB,IAAK,IAAIY,EAAIV,EAAM,EAAGU,GAAKZ,EAAYY,IAAK,CACxCP,EAAIM,KAAK,CACLJ,KAAM,OACNC,MAAO1D,KAAKsC,OAAOwB,EAAI,I,MAG5B,CACHP,EAAIM,KAAK,CACLJ,KAAM,aAGVF,EAAIM,KAAK,CACLJ,KAAM,OACNC,MAAO1D,KAAKsC,OAAOtC,KAAKsC,OAAOK,OAAS,I,CAIhD,GAAIM,EAAkB,CAClBM,EAAIM,KAAKD,E,CAGb,OAAOL,CAAG,E,UA5NyC,E,cAU5B,G,sBAKS,M,qBAUpCQ,sBACI/D,KAAKgE,W,CAGTrD,S,QACI,OACIC,EAACC,EAAI,CACDC,MAAO,gBACHd,KAAKiE,oBAAoBC,EAAAlE,KAAKuC,QAAI,MAAA2B,SAAA,SAAAA,EAAEvB,UAAW,GAAK,aAGvDwB,EAAAnE,KAAKuC,QAAI,MAAA4B,SAAA,SAAAA,EAAE3C,KAAKsB,IACb,GAAIA,EAAEW,OAAS,YAAcX,EAAEW,OAAS,OAAQ,CAC5C,OACI7C,EAAA,qBACIe,QAAS,IACLmB,EAAEW,OAAS,WACLzD,KAAKoE,iBACLpE,KAAKwC,cAGdM,EAAEY,M,CAKf,GAAIZ,EAAEW,OAAS,WAAY,CACvB,OAAO7C,EAAA,+B,CAGX,OACIA,EAAA,qBACIc,OAAQoB,EAAEY,QAAU1D,KAAK0C,KACzBf,QAAS,IAAM3B,KAAK6C,WAAWC,EAAEY,QAEhCZ,EAAEY,MACa,I,CAU9BW,oBACNrE,KAAKgE,W,CAGDA,Y,MACJhE,KAAKsC,OAAStC,KAAKsE,iBACnBtE,KAAKuC,KAAOvC,KAAK+C,eAEjB,GAAI/C,KAAK0C,OAAOwB,EAAAlE,KAAKsC,UAAM,MAAA4B,SAAA,SAAAA,EAAEvB,QAAQ,CACjC3C,KAAK4C,YAAY5C,KAAKsC,OAAOK,O,EAI7BC,YAAYE,GAChB,IAAKA,EAAG,CACJ,M,CAGJ9C,KAAK0C,KAAOI,EACZ9C,KAAKuE,WAAWpC,KAAKnC,KAAK0C,K,CAGtB0B,iBACJ,MAAMI,EAAexE,KAAK0C,KAAO,EACjC,GAAI8B,EAAexE,KAAKsC,OAAO,GAAI,CAC/B,M,CAGJtC,KAAK4C,YAAY4B,E,CAcbF,iBACJ,IAAKtE,KAAKyE,QAAUzE,KAAK0E,SAAU,CAC/B,MAAO,E,CAGX,MAAMC,EAAQtB,KAAKuB,KAAK5E,KAAKyE,MAAQzE,KAAK0E,UAC1C,OAAO,IAAIG,MAAMF,GAAOG,KAAKC,WAAWvD,KAAI,CAACwD,EAAGlB,IAAMA,EAAI,G,iIC9IlE,MAAMmB,EAA6B,ssY,MCOtBC,EAAc,M,qCAIC,K,CAE1BvE,SACE,OACEC,EAACC,EAAI,CAACC,MAAO,qBAAqBd,KAAK0B,QAAU,YAC/Cd,EAAA,a"}
|
|
1
|
+
{"version":3,"names":["PageSizeSelect","this","_defaultButtonTemplate","size","formatTranslation","_locales","item","_defaultItemTemplate","defaultSize","defaultSizeOptions","componentWillLoad","_setLocales","render","h","Host","class","hidden","placement","chevronPosition","chevronDirection","variant","slot","buttonSize","buttonTemplate","sizeOptions","map","option","active","onClick","_changeSize","itemTemplate","async","getLocaleComponentStrings","_el","s","sizeChange","emit","paginationComponentCss","Pagination","_pages","_set","_nextClick","nextPage","page","length","_changePage","_pageClick","p","_generateSet","range","enableBoundaries","totalPages","start","end","Math","min","set","previous","type","value","rotate","next","push","i","componentWillRender","_generate","hideOnSinglePage","_a","_b","_previousClick","pageChangeHandler","_generatePages","pageChange","previousPage","total","pageSize","pages","ceil","Array","fill","undefined","_","paginationItemComponentCss","PaginationItem"],"sources":["./src/components/molecules/page-size-select/page-size-select.component.tsx","./src/components/molecules/pagination/pagination.component.scss?tag=p-pagination","./src/components/molecules/pagination/pagination.component.tsx","./src/components/atoms/pagination-item/pagination-item.component.scss?tag=p-pagination-item&encapsulation=shadow","./src/components/atoms/pagination-item/pagination-item.component.tsx"],"sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport {\n formatTranslation,\n getLocaleComponentStrings,\n} from '../../../utils/localization';\nimport { defaultSize, defaultSizeOptions } from './constants';\n\nexport type templateFunc = (value: number) => string;\n\n@Component({\n tag: 'p-page-size-select',\n shadow: true,\n})\nexport class PageSizeSelect {\n private _defaultButtonTemplate: templateFunc = (size) =>\n formatTranslation(this._locales.item, { size });\n private _defaultItemTemplate: templateFunc = (size) =>\n formatTranslation(this._locales.item, { size });\n /**\n * The current page\n */\n @Prop({ mutable: true, reflect: true }) size: number = defaultSize;\n\n /**\n * The available sizes\n */\n @Prop() sizeOptions: number[] = defaultSizeOptions;\n\n /**\n * Event whenever the size changes\n */\n @Event() sizeChange: EventEmitter<number>;\n\n /**\n * Chevron position\n */\n @Prop() chevronPosition: 'start' | 'end' = 'start';\n\n /**\n * The size of the button\n */\n @Prop() buttonSize: 'small' | 'medium' = 'small';\n\n /**\n * The template for the data view\n */\n @Prop() buttonTemplate: templateFunc = this._defaultButtonTemplate;\n\n /**\n * The template for the data view\n */\n @Prop() itemTemplate: templateFunc = this._defaultItemTemplate;\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n /**\n * Wether to hide when there is only 1 page available\n */\n @Prop() hidden: boolean = false;\n\n /**\n * Locales used for this component\n */\n @State() private _locales: any = {};\n\n componentWillLoad() {\n this._setLocales();\n }\n\n render() {\n return (\n <Host class={`p-page-size-select ${this.hidden && 'hidden'}`}>\n <p-dropdown\n placement=\"top-start\"\n chevronPosition={this.chevronPosition}\n chevronDirection=\"down\"\n >\n <p-button\n variant=\"secondary\"\n slot=\"trigger\"\n size={this.buttonSize}\n >\n {this.buttonTemplate\n ? this.buttonTemplate(this.size)\n : this._defaultButtonTemplate(this.size)}\n </p-button>\n <slot slot=\"items\">\n {this.sizeOptions.map((option) => (\n <p-dropdown-menu-item\n active={option === this.size}\n onClick={() => this._changeSize(option)}\n >\n {this.itemTemplate\n ? this.itemTemplate(this.size)\n : this._defaultItemTemplate(option)}\n </p-dropdown-menu-item>\n ))}\n </slot>\n </p-dropdown>\n </Host>\n );\n }\n\n @Listen('localeChanged', { target: 'body' })\n private async _setLocales(): Promise<void> {\n this._locales = await getLocaleComponentStrings(this._el);\n }\n\n private _changeSize(s?: number) {\n if (!s) {\n return;\n }\n\n this.size = s;\n this.sizeChange.emit(this.size);\n }\n}\n","p-pagination {\n @apply flex;\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n Watch,\n} from '@stencil/core';\n\ntype PaginationSetItem = {\n type: string;\n value?: number | Element | JSX.Element | string;\n};\n\n@Component({\n tag: 'p-pagination',\n styleUrl: 'pagination.component.scss',\n})\nexport class Pagination {\n /**\n * The current page\n */\n @Prop({ mutable: true, reflect: true }) page: number = 1;\n\n /**\n * Event whenever the page changes\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * The amount of items per page\n */\n @Prop() pageSize: number = 12;\n\n /**\n * Wether to hide when there is only 1 page available\n */\n @Prop() hideOnSinglePage: boolean = false;\n\n /**\n * The total amount of items\n */\n @Prop() total!: number;\n\n private _pages: number[] = [];\n private _set: PaginationSetItem[] = [];\n\n componentWillRender() {\n this._generate();\n }\n\n render() {\n return (\n <Host\n class={`p-pagination ${\n this.hideOnSinglePage && this._set?.length === 3 && 'hidden'\n }`}\n >\n {this._set?.map((p) => {\n if (p.type === 'previous' || p.type === 'next') {\n return (\n <p-pagination-item\n onClick={() =>\n p.type === 'previous'\n ? this._previousClick()\n : this._nextClick()\n }\n >\n {p.value}\n </p-pagination-item>\n );\n }\n\n if (p.type === 'ellipsis') {\n return <p-pagination-item>...</p-pagination-item>;\n }\n\n return (\n <p-pagination-item\n active={p.value === this.page}\n onClick={() => this._pageClick(p.value as number)}\n >\n {p.value}\n </p-pagination-item>\n );\n })}\n </Host>\n );\n }\n\n @Watch('page')\n @Watch('pageSize')\n @Watch('total')\n protected pageChangeHandler() {\n this._generate();\n }\n\n private _generate() {\n this._pages = this._generatePages();\n this._set = this._generateSet();\n\n if (this.page > this._pages?.length) {\n this._changePage(this._pages.length);\n }\n }\n\n private _changePage(p?: number) {\n if (!p) {\n return;\n }\n\n this.page = p;\n this.pageChange.emit(this.page);\n }\n\n private _previousClick() {\n const previousPage = this.page - 1;\n if (previousPage < this._pages[0]) {\n return;\n }\n\n this._changePage(previousPage);\n }\n\n private _nextClick = () => {\n const nextPage = this.page + 1;\n if (nextPage > this._pages[this._pages.length - 1]) {\n return;\n }\n\n this._changePage(nextPage);\n };\n\n private _pageClick = (p?: number) => this._changePage(p);\n\n private _generatePages() {\n if (!this.total || !this.pageSize) {\n return [];\n }\n\n const pages = Math.ceil(this.total / this.pageSize);\n return new Array(pages).fill(undefined).map((_, i) => i + 1);\n }\n\n private _generateSet = (\n range: number = 1,\n enableBoundaries: boolean = true\n ): PaginationSetItem[] => {\n const totalPages = this._pages.length;\n\n if (!totalPages) {\n return [];\n }\n\n let start = this.page - range;\n let end = this.page + range;\n\n if (end > totalPages) {\n end = totalPages;\n start = totalPages - range * 2;\n start = start < 1 ? 1 : start;\n }\n\n if (start <= 1) {\n start = 1;\n end = Math.min(range * 2 + 1, totalPages);\n }\n\n const set = [];\n\n const previous = {\n type: 'previous',\n value: <p-icon variant=\"chevron\" rotate={90} />,\n };\n\n const next = {\n type: 'next',\n value: <p-icon variant=\"chevron\" rotate={-90} />,\n };\n\n // Disable page range, display all the pages\n if (range === null) {\n const p = this._pages.map((p) => ({\n type: 'page',\n value: p,\n }));\n\n return enableBoundaries ? [previous, ...p, next] : p;\n }\n\n if (enableBoundaries) {\n set.push(previous);\n }\n\n if (start <= 3) {\n for (let i = 1; i < start; i++) {\n set.push({\n type: 'page',\n value: this._pages[i - 1],\n });\n }\n } else {\n set.push({\n type: 'page',\n value: 1,\n });\n\n set.push({\n type: 'ellipsis',\n value: 'ellipsis',\n });\n }\n\n for (let i = start; i <= end; i++) {\n set.push({\n type: 'page',\n value: this._pages[i - 1],\n });\n }\n\n if (end >= totalPages - 2) {\n for (let i = end + 1; i <= totalPages; i++) {\n set.push({\n type: 'page',\n value: this._pages[i - 1],\n });\n }\n } else {\n set.push({\n type: 'ellipsis',\n });\n\n set.push({\n type: 'page',\n value: this._pages[this._pages.length - 1],\n });\n }\n\n if (enableBoundaries) {\n set.push(next);\n }\n\n return set;\n };\n}\n",":host {\n @apply h-8 w-8;\n @apply flex justify-center items-center;\n @apply font-semibold text-storm-medium text-sm;\n @apply rounded;\n @apply cursor-pointer;\n}\n\n:host(:hover),\n:host(:focus) {\n @apply text-storm;\n}\n\n:host(.active) {\n @apply text-indigo bg-indigo-light;\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'p-pagination-item',\n styleUrl: 'pagination-item.component.scss',\n shadow: true,\n})\nexport class PaginationItem {\n /**\n * Wether the pagination item is active\n */\n @Prop() active: boolean = false;\n\n render() {\n return (\n <Host class={`p-pagination-item ${this.active && 'active'}`}>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|