@coorpacademy/components 11.40.22 → 11.40.24
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/es/atom/button-link/index.d.ts +1 -0
- package/es/atom/button-link/index.d.ts.map +1 -1
- package/es/atom/button-link/types.d.ts +2 -0
- package/es/atom/button-link/types.d.ts.map +1 -1
- package/es/atom/button-link/types.js +2 -1
- package/es/atom/button-link/types.js.map +1 -1
- package/es/atom/chip/index.d.ts.map +1 -1
- package/es/atom/chip/index.js +10 -0
- package/es/atom/chip/index.js.map +1 -1
- package/es/atom/chips/index.d.ts.map +1 -1
- package/es/atom/chips/index.js +9 -0
- package/es/atom/chips/index.js.map +1 -1
- package/es/atom/circular-progress-bar/index.d.ts.map +1 -1
- package/es/atom/circular-progress-bar/index.js +4 -0
- package/es/atom/circular-progress-bar/index.js.map +1 -1
- package/es/atom/input-select/index.d.ts.map +1 -1
- package/es/atom/input-select/index.js +2 -2
- package/es/atom/input-select/index.js.map +1 -1
- package/es/atom/input-text-with-title/index.js +1 -0
- package/es/atom/input-text-with-title/index.js.map +1 -1
- package/es/atom/radio-with-title/index.d.ts +1 -0
- package/es/atom/radio-with-title/index.d.ts.map +1 -1
- package/es/atom/radio-with-title/types.d.ts +1 -0
- package/es/atom/radio-with-title/types.d.ts.map +1 -1
- package/es/atom/review-presentation/index.js +1 -0
- package/es/atom/review-presentation/index.js.map +1 -1
- package/es/atom/title/index.d.ts +1 -0
- package/es/atom/title/index.js +1 -0
- package/es/atom/title/index.js.map +1 -1
- package/es/atom/tooltip/index.d.ts.map +1 -1
- package/es/atom/tooltip/index.js +1 -0
- package/es/atom/tooltip/index.js.map +1 -1
- package/es/molecule/base-modal/index.js +1 -0
- package/es/molecule/base-modal/index.js.map +1 -1
- package/es/molecule/bullet-point-menu-button/index.d.ts.map +1 -1
- package/es/molecule/bullet-point-menu-button/index.js +1 -0
- package/es/molecule/bullet-point-menu-button/index.js.map +1 -1
- package/es/molecule/button-menu-action/index.d.ts +1 -0
- package/es/molecule/button-menu-action/index.d.ts.map +1 -1
- package/es/molecule/button-menu-action/index.js +1 -0
- package/es/molecule/button-menu-action/index.js.map +1 -1
- package/es/molecule/button-menu-action/types.d.ts +1 -0
- package/es/molecule/button-menu-action/types.d.ts.map +1 -1
- package/es/molecule/card/customer.js +1 -0
- package/es/molecule/card/customer.js.map +1 -1
- package/es/molecule/card/index.d.ts.map +1 -1
- package/es/molecule/card/index.js +7 -0
- package/es/molecule/card/index.js.map +1 -1
- package/es/molecule/card-content/index.d.ts.map +1 -1
- package/es/molecule/card-content/index.js +1 -0
- package/es/molecule/card-content/index.js.map +1 -1
- package/es/molecule/cm-popin/types.d.ts +8 -0
- package/es/molecule/cm-popin/types.d.ts.map +1 -1
- package/es/molecule/course-section/index.d.ts.map +1 -1
- package/es/molecule/course-section/index.js +3 -0
- package/es/molecule/course-section/index.js.map +1 -1
- package/es/molecule/dashboard/learning-profile-banner/index.d.ts.map +1 -1
- package/es/molecule/dashboard/learning-profile-banner/index.js +2 -4
- package/es/molecule/dashboard/learning-profile-banner/index.js.map +1 -1
- package/es/molecule/dashboard/review-banner/index.d.ts.map +1 -1
- package/es/molecule/dashboard/review-banner/index.js +2 -4
- package/es/molecule/dashboard/review-banner/index.js.map +1 -1
- package/es/molecule/expandible-actionable-table/index.d.ts +1 -0
- package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/es/molecule/expandible-actionable-table/types.d.ts +1 -0
- package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
- package/es/molecule/learner-skill-card/index.js +11 -0
- package/es/molecule/learner-skill-card/index.js.map +1 -1
- package/es/molecule/learning-priority-card/index.d.ts.map +1 -1
- package/es/molecule/learning-priority-card/index.js +1 -0
- package/es/molecule/learning-priority-card/index.js.map +1 -1
- package/es/molecule/learning-priority-setup-item/index.d.ts.map +1 -1
- package/es/molecule/learning-priority-setup-item/index.js +1 -0
- package/es/molecule/learning-priority-setup-item/index.js.map +1 -1
- package/es/molecule/progress-wrapper/index.d.ts +2 -0
- package/es/molecule/progress-wrapper/index.d.ts.map +1 -1
- package/es/molecule/progress-wrapper/index.js +39 -3
- package/es/molecule/progress-wrapper/index.js.map +1 -1
- package/es/molecule/progress-wrapper/style.css +4 -1
- package/es/molecule/questions/qcm/index.d.ts.map +1 -1
- package/es/molecule/questions/qcm/index.js +10 -0
- package/es/molecule/questions/qcm/index.js.map +1 -1
- package/es/molecule/questions/qcm-graphic/index.d.ts.map +1 -1
- package/es/molecule/questions/qcm-graphic/index.js +1 -0
- package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
- package/es/molecule/quick-filters/index.d.ts +1 -0
- package/es/molecule/quick-filters/index.d.ts.map +1 -1
- package/es/molecule/quick-filters/index.js +1 -0
- package/es/molecule/quick-filters/index.js.map +1 -1
- package/es/molecule/quick-filters/types.d.ts +1 -0
- package/es/molecule/quick-filters/types.d.ts.map +1 -1
- package/es/molecule/review-correction-popin/index.d.ts.map +1 -1
- package/es/molecule/review-correction-popin/index.js +3 -0
- package/es/molecule/review-correction-popin/index.js.map +1 -1
- package/es/molecule/search-form/index.d.ts.map +1 -1
- package/es/molecule/search-form/index.js +7 -0
- package/es/molecule/search-form/index.js.map +1 -1
- package/es/molecule/skill-card/index.d.ts.map +1 -1
- package/es/molecule/skill-card/index.js +3 -0
- package/es/molecule/skill-card/index.js.map +1 -1
- package/es/molecule/title-and-checkbox-wrapper/index.d.ts +1 -0
- package/es/molecule/title-radio-wrapper/index.d.ts +1 -0
- package/es/molecule/title-radio-wrapper/index.d.ts.map +1 -1
- package/es/molecule/title-radio-wrapper/types.d.ts +1 -0
- package/es/molecule/title-radio-wrapper/types.d.ts.map +1 -1
- package/es/organism/content-skill-modal/index.d.ts +7 -0
- package/es/organism/content-skill-modal/index.d.ts.map +1 -1
- package/es/organism/content-skill-modal/types.d.ts +7 -0
- package/es/organism/content-skill-modal/types.d.ts.map +1 -1
- package/es/organism/header-with-actions/index.js +0 -1
- package/es/organism/header-with-actions/index.js.map +1 -1
- package/es/organism/icon-editor/index.d.ts +1 -0
- package/es/organism/icon-editor/index.d.ts.map +1 -1
- package/es/organism/icon-editor/types.d.ts +1 -0
- package/es/organism/icon-editor/types.d.ts.map +1 -1
- package/es/organism/list-item/index.js +1 -0
- package/es/organism/list-item/index.js.map +1 -1
- package/es/organism/list-items/index.d.ts +7 -0
- package/es/organism/mooc-header/index.d.ts.map +1 -1
- package/es/organism/mooc-header/index.js +3 -0
- package/es/organism/mooc-header/index.js.map +1 -1
- package/es/organism/review-congrats/index.d.ts.map +1 -1
- package/es/organism/review-congrats/index.js +1 -0
- package/es/organism/review-congrats/index.js.map +1 -1
- package/es/organism/review-header/index.d.ts.map +1 -1
- package/es/organism/review-header/index.js +3 -0
- package/es/organism/review-header/index.js.map +1 -1
- package/es/organism/rewards-form/index.d.ts +1 -0
- package/es/organism/select-opponents/index.d.ts +1 -0
- package/es/organism/select-opponents/index.d.ts.map +1 -1
- package/es/organism/select-opponents/types.d.ts +1 -0
- package/es/organism/select-opponents/types.d.ts.map +1 -1
- package/es/organism/setup-header/index.d.ts +4 -0
- package/es/organism/title-and-input/index.d.ts +3 -0
- package/es/organism/title-and-input/index.d.ts.map +1 -1
- package/es/organism/title-and-input/types.d.ts +3 -0
- package/es/organism/title-and-input/types.d.ts.map +1 -1
- package/es/organism/wizard-contents/index.d.ts +4 -0
- package/es/template/app-player/loading/index.d.ts +8 -0
- package/es/template/app-player/player/index.d.ts +16 -0
- package/es/template/app-player/player/slides/index.d.ts +8 -0
- package/es/template/app-player/player/slides/index.d.ts.map +1 -1
- package/es/template/app-player/popin-correction/index.d.ts +8 -0
- package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/es/template/app-player/popin-end/index.d.ts +8 -0
- package/es/template/app-review/index.d.ts +8 -0
- package/es/template/app-review/index.d.ts.map +1 -1
- package/es/template/app-review/player/prop-types.d.ts +8 -0
- package/es/template/app-review/player/prop-types.d.ts.map +1 -1
- package/es/template/app-review/prop-types.d.ts +8 -0
- package/es/template/app-review/prop-types.d.ts.map +1 -1
- package/es/template/app-review/skills/index.js +1 -0
- package/es/template/app-review/skills/index.js.map +1 -1
- package/es/template/back-office/brand-create/index.d.ts +4 -0
- package/es/template/back-office/brand-create/index.d.ts.map +1 -1
- package/es/template/back-office/brand-list/index.d.ts +4 -0
- package/es/template/back-office/brand-list/index.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.d.ts +30 -0
- package/es/template/back-office/dashboard-preview/index.d.ts +4 -0
- package/es/template/back-office/layout/index.d.ts +4 -0
- package/es/template/back-office/layout/index.d.ts.map +1 -1
- package/es/template/certification-detail/index.d.ts +10 -0
- package/es/template/certification-detail/index.d.ts.map +1 -1
- package/es/template/certification-detail/index.js +7 -1
- package/es/template/certification-detail/index.js.map +1 -1
- package/es/template/common/dashboard/index.d.ts +16 -0
- package/es/template/common/search-page/index.d.ts +10 -0
- package/es/template/external-course/index.d.ts +8 -0
- package/es/template/playlist-detail/index.d.ts +8 -0
- package/es/template/review-dashboard-skills/index.js +1 -0
- package/es/template/review-dashboard-skills/index.js.map +1 -1
- package/es/util/button-icons.d.ts +1 -0
- package/es/util/button-icons.d.ts.map +1 -1
- package/es/util/button-icons.js +2 -0
- package/es/util/button-icons.js.map +1 -1
- package/es/util/linkedin-icon.d.ts +3 -0
- package/es/util/linkedin-icon.d.ts.map +1 -0
- package/es/util/linkedin-icon.js +17 -0
- package/es/util/linkedin-icon.js.map +1 -0
- package/lib/atom/button-link/index.d.ts +1 -0
- package/lib/atom/button-link/index.d.ts.map +1 -1
- package/lib/atom/button-link/types.d.ts +2 -0
- package/lib/atom/button-link/types.d.ts.map +1 -1
- package/lib/atom/button-link/types.js +2 -1
- package/lib/atom/button-link/types.js.map +1 -1
- package/lib/atom/chip/index.d.ts.map +1 -1
- package/lib/atom/chip/index.js +10 -0
- package/lib/atom/chip/index.js.map +1 -1
- package/lib/atom/chips/index.d.ts.map +1 -1
- package/lib/atom/chips/index.js +9 -0
- package/lib/atom/chips/index.js.map +1 -1
- package/lib/atom/circular-progress-bar/index.d.ts.map +1 -1
- package/lib/atom/circular-progress-bar/index.js +4 -0
- package/lib/atom/circular-progress-bar/index.js.map +1 -1
- package/lib/atom/input-select/index.d.ts.map +1 -1
- package/lib/atom/input-select/index.js +2 -2
- package/lib/atom/input-select/index.js.map +1 -1
- package/lib/atom/input-text-with-title/index.js +1 -0
- package/lib/atom/input-text-with-title/index.js.map +1 -1
- package/lib/atom/radio-with-title/index.d.ts +1 -0
- package/lib/atom/radio-with-title/index.d.ts.map +1 -1
- package/lib/atom/radio-with-title/types.d.ts +1 -0
- package/lib/atom/radio-with-title/types.d.ts.map +1 -1
- package/lib/atom/review-presentation/index.js +1 -0
- package/lib/atom/review-presentation/index.js.map +1 -1
- package/lib/atom/title/index.d.ts +1 -0
- package/lib/atom/title/index.js +1 -0
- package/lib/atom/title/index.js.map +1 -1
- package/lib/atom/tooltip/index.d.ts.map +1 -1
- package/lib/atom/tooltip/index.js +1 -0
- package/lib/atom/tooltip/index.js.map +1 -1
- package/lib/molecule/base-modal/index.js +1 -0
- package/lib/molecule/base-modal/index.js.map +1 -1
- package/lib/molecule/bullet-point-menu-button/index.d.ts.map +1 -1
- package/lib/molecule/bullet-point-menu-button/index.js +1 -0
- package/lib/molecule/bullet-point-menu-button/index.js.map +1 -1
- package/lib/molecule/button-menu-action/index.d.ts +1 -0
- package/lib/molecule/button-menu-action/index.d.ts.map +1 -1
- package/lib/molecule/button-menu-action/index.js +1 -0
- package/lib/molecule/button-menu-action/index.js.map +1 -1
- package/lib/molecule/button-menu-action/types.d.ts +1 -0
- package/lib/molecule/button-menu-action/types.d.ts.map +1 -1
- package/lib/molecule/card/customer.js +1 -0
- package/lib/molecule/card/customer.js.map +1 -1
- package/lib/molecule/card/index.d.ts.map +1 -1
- package/lib/molecule/card/index.js +7 -0
- package/lib/molecule/card/index.js.map +1 -1
- package/lib/molecule/card-content/index.d.ts.map +1 -1
- package/lib/molecule/card-content/index.js +1 -0
- package/lib/molecule/card-content/index.js.map +1 -1
- package/lib/molecule/cm-popin/types.d.ts +8 -0
- package/lib/molecule/cm-popin/types.d.ts.map +1 -1
- package/lib/molecule/course-section/index.d.ts.map +1 -1
- package/lib/molecule/course-section/index.js +3 -0
- package/lib/molecule/course-section/index.js.map +1 -1
- package/lib/molecule/dashboard/learning-profile-banner/index.d.ts.map +1 -1
- package/lib/molecule/dashboard/learning-profile-banner/index.js +2 -4
- package/lib/molecule/dashboard/learning-profile-banner/index.js.map +1 -1
- package/lib/molecule/dashboard/review-banner/index.d.ts.map +1 -1
- package/lib/molecule/dashboard/review-banner/index.js +2 -4
- package/lib/molecule/dashboard/review-banner/index.js.map +1 -1
- package/lib/molecule/expandible-actionable-table/index.d.ts +1 -0
- package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/lib/molecule/expandible-actionable-table/types.d.ts +1 -0
- package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
- package/lib/molecule/learner-skill-card/index.js +11 -0
- package/lib/molecule/learner-skill-card/index.js.map +1 -1
- package/lib/molecule/learning-priority-card/index.d.ts.map +1 -1
- package/lib/molecule/learning-priority-card/index.js +1 -0
- package/lib/molecule/learning-priority-card/index.js.map +1 -1
- package/lib/molecule/learning-priority-setup-item/index.d.ts.map +1 -1
- package/lib/molecule/learning-priority-setup-item/index.js +1 -0
- package/lib/molecule/learning-priority-setup-item/index.js.map +1 -1
- package/lib/molecule/progress-wrapper/index.d.ts +2 -0
- package/lib/molecule/progress-wrapper/index.d.ts.map +1 -1
- package/lib/molecule/progress-wrapper/index.js +39 -3
- package/lib/molecule/progress-wrapper/index.js.map +1 -1
- package/lib/molecule/progress-wrapper/style.css +4 -1
- package/lib/molecule/questions/qcm/index.d.ts.map +1 -1
- package/lib/molecule/questions/qcm/index.js +10 -0
- package/lib/molecule/questions/qcm/index.js.map +1 -1
- package/lib/molecule/questions/qcm-graphic/index.d.ts.map +1 -1
- package/lib/molecule/questions/qcm-graphic/index.js +1 -0
- package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
- package/lib/molecule/quick-filters/index.d.ts +1 -0
- package/lib/molecule/quick-filters/index.d.ts.map +1 -1
- package/lib/molecule/quick-filters/index.js +1 -0
- package/lib/molecule/quick-filters/index.js.map +1 -1
- package/lib/molecule/quick-filters/types.d.ts +1 -0
- package/lib/molecule/quick-filters/types.d.ts.map +1 -1
- package/lib/molecule/review-correction-popin/index.d.ts.map +1 -1
- package/lib/molecule/review-correction-popin/index.js +3 -0
- package/lib/molecule/review-correction-popin/index.js.map +1 -1
- package/lib/molecule/search-form/index.d.ts.map +1 -1
- package/lib/molecule/search-form/index.js +7 -0
- package/lib/molecule/search-form/index.js.map +1 -1
- package/lib/molecule/skill-card/index.d.ts.map +1 -1
- package/lib/molecule/skill-card/index.js +3 -0
- package/lib/molecule/skill-card/index.js.map +1 -1
- package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +1 -0
- package/lib/molecule/title-radio-wrapper/index.d.ts +1 -0
- package/lib/molecule/title-radio-wrapper/index.d.ts.map +1 -1
- package/lib/molecule/title-radio-wrapper/types.d.ts +1 -0
- package/lib/molecule/title-radio-wrapper/types.d.ts.map +1 -1
- package/lib/organism/content-skill-modal/index.d.ts +7 -0
- package/lib/organism/content-skill-modal/index.d.ts.map +1 -1
- package/lib/organism/content-skill-modal/types.d.ts +7 -0
- package/lib/organism/content-skill-modal/types.d.ts.map +1 -1
- package/lib/organism/header-with-actions/index.js +0 -1
- package/lib/organism/header-with-actions/index.js.map +1 -1
- package/lib/organism/icon-editor/index.d.ts +1 -0
- package/lib/organism/icon-editor/index.d.ts.map +1 -1
- package/lib/organism/icon-editor/types.d.ts +1 -0
- package/lib/organism/icon-editor/types.d.ts.map +1 -1
- package/lib/organism/list-item/index.js +1 -0
- package/lib/organism/list-item/index.js.map +1 -1
- package/lib/organism/list-items/index.d.ts +7 -0
- package/lib/organism/mooc-header/index.d.ts.map +1 -1
- package/lib/organism/mooc-header/index.js +3 -0
- package/lib/organism/mooc-header/index.js.map +1 -1
- package/lib/organism/review-congrats/index.d.ts.map +1 -1
- package/lib/organism/review-congrats/index.js +1 -0
- package/lib/organism/review-congrats/index.js.map +1 -1
- package/lib/organism/review-header/index.d.ts.map +1 -1
- package/lib/organism/review-header/index.js +3 -0
- package/lib/organism/review-header/index.js.map +1 -1
- package/lib/organism/rewards-form/index.d.ts +1 -0
- package/lib/organism/select-opponents/index.d.ts +1 -0
- package/lib/organism/select-opponents/index.d.ts.map +1 -1
- package/lib/organism/select-opponents/types.d.ts +1 -0
- package/lib/organism/select-opponents/types.d.ts.map +1 -1
- package/lib/organism/setup-header/index.d.ts +4 -0
- package/lib/organism/title-and-input/index.d.ts +3 -0
- package/lib/organism/title-and-input/index.d.ts.map +1 -1
- package/lib/organism/title-and-input/types.d.ts +3 -0
- package/lib/organism/title-and-input/types.d.ts.map +1 -1
- package/lib/organism/wizard-contents/index.d.ts +4 -0
- package/lib/template/app-player/loading/index.d.ts +8 -0
- package/lib/template/app-player/player/index.d.ts +16 -0
- package/lib/template/app-player/player/slides/index.d.ts +8 -0
- package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-correction/index.d.ts +8 -0
- package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-end/index.d.ts +8 -0
- package/lib/template/app-review/index.d.ts +8 -0
- package/lib/template/app-review/index.d.ts.map +1 -1
- package/lib/template/app-review/player/prop-types.d.ts +8 -0
- package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
- package/lib/template/app-review/prop-types.d.ts +8 -0
- package/lib/template/app-review/prop-types.d.ts.map +1 -1
- package/lib/template/app-review/skills/index.js +1 -0
- package/lib/template/app-review/skills/index.js.map +1 -1
- package/lib/template/back-office/brand-create/index.d.ts +4 -0
- package/lib/template/back-office/brand-create/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-list/index.d.ts +4 -0
- package/lib/template/back-office/brand-list/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.d.ts +30 -0
- package/lib/template/back-office/dashboard-preview/index.d.ts +4 -0
- package/lib/template/back-office/layout/index.d.ts +4 -0
- package/lib/template/back-office/layout/index.d.ts.map +1 -1
- package/lib/template/certification-detail/index.d.ts +10 -0
- package/lib/template/certification-detail/index.d.ts.map +1 -1
- package/lib/template/certification-detail/index.js +7 -1
- package/lib/template/certification-detail/index.js.map +1 -1
- package/lib/template/common/dashboard/index.d.ts +16 -0
- package/lib/template/common/search-page/index.d.ts +10 -0
- package/lib/template/external-course/index.d.ts +8 -0
- package/lib/template/playlist-detail/index.d.ts +8 -0
- package/lib/template/review-dashboard-skills/index.js +1 -0
- package/lib/template/review-dashboard-skills/index.js.map +1 -1
- package/lib/util/button-icons.d.ts +1 -0
- package/lib/util/button-icons.d.ts.map +1 -1
- package/lib/util/button-icons.js +2 -0
- package/lib/util/button-icons.js.map +1 -1
- package/lib/util/linkedin-icon.d.ts +3 -0
- package/lib/util/linkedin-icon.d.ts.map +1 -0
- package/lib/util/linkedin-icon.js +21 -0
- package/lib/util/linkedin-icon.js.map +1 -0
- package/locales/bs/global.json +2 -1
- package/locales/cs/global.json +2 -1
- package/locales/de/global.json +2 -1
- package/locales/en/global.json +2 -1
- package/locales/es/global.json +2 -1
- package/locales/et/global.json +2 -1
- package/locales/fi/global.json +2 -1
- package/locales/fr/global.json +2 -1
- package/locales/hr/global.json +2 -1
- package/locales/hu/global.json +2 -1
- package/locales/hy/global.json +2 -1
- package/locales/it/global.json +2 -1
- package/locales/ja/global.json +2 -1
- package/locales/ko/global.json +2 -1
- package/locales/lt/global.json +2 -1
- package/locales/nl/global.json +2 -1
- package/locales/pl/global.json +2 -1
- package/locales/pt/global.json +2 -1
- package/locales/ro/global.json +2 -1
- package/locales/ru/global.json +2 -1
- package/locales/sk/global.json +2 -1
- package/locales/sl/global.json +2 -1
- package/locales/sv/global.json +2 -1
- package/locales/tl/global.json +2 -1
- package/locales/tr/global.json +2 -1
- package/locales/uk/global.json +2 -1
- package/locales/vi/global.json +2 -1
- package/locales/zh/global.json +2 -1
- package/locales/zh_TW/global.json +2 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","isValidElement","useState","useCallback","useMemo","classnames","PropTypes","ReactTooltip","isString","has","isNil","keys","NovaCompositionCoorpacademyInformationIcon","InformationIcon","style","FontSizes","tooltipContentFontSize12","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","onMouseOver","propTypes","process","env","NODE_ENV","bool","string","isRequired","node","func","oneOf","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","informationIcon","width","height","onMouseLeave","tooltipContainer","oneOfType","number"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSize12,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n if (isComponent) {\n return <TooltipContent />;\n }\n // For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding\n if (anchorId) {\n return TooltipContent;\n }\n // For regular tooltip, keep the <p> wrapper with padding\n return (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent, anchorId]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","isValidElement","useState","useCallback","useMemo","classnames","PropTypes","ReactTooltip","isString","has","isNil","keys","NovaCompositionCoorpacademyInformationIcon","InformationIcon","style","FontSizes","tooltipContentFontSize12","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","role","onMouseOver","propTypes","process","env","NODE_ENV","bool","string","isRequired","node","func","oneOf","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","informationIcon","width","height","onMouseLeave","tooltipContainer","oneOfType","number"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSize12,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n role=\"group\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n if (isComponent) {\n return <TooltipContent />;\n }\n // For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding\n if (anchorId) {\n return TooltipContent;\n }\n // For regular tooltip, keep the <p> wrapper with padding\n return (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent, anchorId]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -177,6 +177,7 @@ const BaseModal = (props, context) => {
|
|
|
177
177
|
className: style.headerContent
|
|
178
178
|
}, /*#__PURE__*/React.createElement("div", {
|
|
179
179
|
className: style.headerTitle,
|
|
180
|
+
role: "group",
|
|
180
181
|
"aria-label": titleAriaLabel
|
|
181
182
|
}, title), description ? /*#__PURE__*/React.createElement("div", {
|
|
182
183
|
className: style.headerDescription
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","convert","classnames","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","titleAriaLabel","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","isScrollbarVisible","setIsScrollbarVisible","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","debouncedCheckScrollbar","_debounce","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","handleModalOnClick","modalWrapper","modal","header","headerCentered","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n titleAriaLabel,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer} data-name=\"modal-footer\">\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-cancel`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-confirm`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n function handleModalOnClick(e) {\n e?.stopPropagation();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\" onClick={handleOnClose}>\n <div className={style.modal} style={customStyle} onClick={handleModalOnClick}>\n <header className={classnames(style.header, !description && style.headerCentered)}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle} aria-label={titleAriaLabel}>\n {title}\n </div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n titleAriaLabel: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","convert","classnames","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","titleAriaLabel","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","isScrollbarVisible","setIsScrollbarVisible","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","debouncedCheckScrollbar","_debounce","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","handleModalOnClick","modalWrapper","modal","header","headerCentered","iconColor","faSize","wrapperSize","headerContent","headerTitle","role","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n titleAriaLabel,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer} data-name=\"modal-footer\">\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-cancel`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-confirm`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n function handleModalOnClick(e) {\n e?.stopPropagation();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\" onClick={handleOnClose}>\n <div className={style.modal} style={customStyle} onClick={handleModalOnClick}>\n <header className={classnames(style.header, !description && style.headerCentered)}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle} role=\"group\" aria-label={titleAriaLabel}>\n {title}\n </div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n titleAriaLabel: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAKA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAM9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAKA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAM9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4H/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
|
|
@@ -77,6 +77,7 @@ const BulletPointMenuButton = props => {
|
|
|
77
77
|
const menu = visible ? /*#__PURE__*/React.createElement("div", {
|
|
78
78
|
className: menuStyle,
|
|
79
79
|
"data-name": "menu-wrapper",
|
|
80
|
+
role: "group",
|
|
80
81
|
"aria-label": menuAriaLabel,
|
|
81
82
|
ref: wrapperRef
|
|
82
83
|
}, /*#__PURE__*/React.createElement(ButtonMenu, menuProps)) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","useRef","classnames","ButtonLinkIcon","ButtonMenu","propTypes","style","MENU_TOGGLE_EVENT","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","_noop","buttons","menuButtonClassName","isBulkMenu","dataName","visible","setVisible","wrapperRef","menuIdRef","Date","now","Math","random","handleOnClick","event","stopPropagation","preventDefault","customEvent","CustomEvent","detail","menuId","current","window","dispatchEvent","handleMenuToggle","addEventListener","removeEventListener","handleClick","clickEvent","contains","target","document","menuProps","menuStyle","bulletPointMenu","bulkBulletPointMenu","menu","createElement","className","ref","tooltipDisabled","setTooltipDisabled","timer","setTimeout","clearTimeout","bulletPointButtonProps","size","undefined","icon","tooltipPlacement","bulletPointWrapper","process","env","NODE_ENV"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\n// Global event for menu coordination\nconst MENU_TOGGLE_EVENT = 'bulletPointMenuToggle';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick = noop,\n buttons,\n menuButtonClassName,\n isBulkMenu,\n 'data-name': dataName = 'bullet-point-button'\n } = props;\n const [visible, setVisible] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const menuIdRef = useRef<string>(`menu-${Date.now()}-${Math.random()}`);\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent | React.TouchEvent) => {\n event.stopPropagation();\n event.preventDefault();\n onClick();\n // Emit event to close other menus\n // had to do it this way because state is handled per item.\n // meaning > item has no knowledge of other items state.\n const customEvent = new CustomEvent(MENU_TOGGLE_EVENT, {\n detail: {menuId: menuIdRef.current}\n });\n window.dispatchEvent(customEvent);\n\n setVisible(!visible);\n },\n [onClick, visible]\n );\n\n useEffect(() => {\n const handleMenuToggle = (event: Event) => {\n const customEvent = event as CustomEvent;\n if (customEvent.detail.menuId !== menuIdRef.current && visible) {\n setVisible(false);\n }\n };\n\n window.addEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);\n return () => {\n window.removeEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);\n };\n }, [visible]);\n\n // Handle clicks outside the menu\n useEffect(() => {\n const handleClick = (clickEvent: MouseEvent | TouchEvent) => {\n if (\n wrapperRef &&\n wrapperRef.current &&\n !wrapperRef.current.contains(clickEvent.target as Node)\n ) {\n setVisible(false);\n }\n };\n if (visible) {\n document.addEventListener('click', handleClick);\n document.addEventListener('touchstart', handleClick);\n } else {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n }\n return () => {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n };\n }, [visible]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menuStyle = classnames(\n style.bulletPointMenu,\n isBulkMenu && style.bulkBulletPointMenu,\n style.visible\n );\n\n const menu = visible ? (\n <div
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","useRef","classnames","ButtonLinkIcon","ButtonMenu","propTypes","style","MENU_TOGGLE_EVENT","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","_noop","buttons","menuButtonClassName","isBulkMenu","dataName","visible","setVisible","wrapperRef","menuIdRef","Date","now","Math","random","handleOnClick","event","stopPropagation","preventDefault","customEvent","CustomEvent","detail","menuId","current","window","dispatchEvent","handleMenuToggle","addEventListener","removeEventListener","handleClick","clickEvent","contains","target","document","menuProps","menuStyle","bulletPointMenu","bulkBulletPointMenu","menu","createElement","className","role","ref","tooltipDisabled","setTooltipDisabled","timer","setTimeout","clearTimeout","bulletPointButtonProps","size","undefined","icon","tooltipPlacement","bulletPointWrapper","process","env","NODE_ENV"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\n// Global event for menu coordination\nconst MENU_TOGGLE_EVENT = 'bulletPointMenuToggle';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick = noop,\n buttons,\n menuButtonClassName,\n isBulkMenu,\n 'data-name': dataName = 'bullet-point-button'\n } = props;\n const [visible, setVisible] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const menuIdRef = useRef<string>(`menu-${Date.now()}-${Math.random()}`);\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent | React.TouchEvent) => {\n event.stopPropagation();\n event.preventDefault();\n onClick();\n // Emit event to close other menus\n // had to do it this way because state is handled per item.\n // meaning > item has no knowledge of other items state.\n const customEvent = new CustomEvent(MENU_TOGGLE_EVENT, {\n detail: {menuId: menuIdRef.current}\n });\n window.dispatchEvent(customEvent);\n\n setVisible(!visible);\n },\n [onClick, visible]\n );\n\n useEffect(() => {\n const handleMenuToggle = (event: Event) => {\n const customEvent = event as CustomEvent;\n if (customEvent.detail.menuId !== menuIdRef.current && visible) {\n setVisible(false);\n }\n };\n\n window.addEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);\n return () => {\n window.removeEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);\n };\n }, [visible]);\n\n // Handle clicks outside the menu\n useEffect(() => {\n const handleClick = (clickEvent: MouseEvent | TouchEvent) => {\n if (\n wrapperRef &&\n wrapperRef.current &&\n !wrapperRef.current.contains(clickEvent.target as Node)\n ) {\n setVisible(false);\n }\n };\n if (visible) {\n document.addEventListener('click', handleClick);\n document.addEventListener('touchstart', handleClick);\n } else {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n }\n return () => {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n };\n }, [visible]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menuStyle = classnames(\n style.bulletPointMenu,\n isBulkMenu && style.bulkBulletPointMenu,\n style.visible\n );\n\n const menu = visible ? (\n <div\n className={menuStyle}\n data-name=\"menu-wrapper\"\n role=\"group\"\n aria-label={menuAriaLabel}\n ref={wrapperRef}\n >\n <ButtonMenu {...menuProps} />\n </div>\n ) : null;\n\n // Conditionally show tooltip - hide it when menu is open or just closed\n const [tooltipDisabled, setTooltipDisabled] = useState(false);\n\n useEffect(() => {\n if (visible) {\n setTooltipDisabled(true);\n } else {\n // Delay re-enabling tooltip after menu closes\n const timer = setTimeout(() => setTooltipDisabled(false), 500);\n return () => clearTimeout(timer);\n }\n }, [visible]);\n\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': tooltipDisabled ? undefined : buttonAriaLabel,\n 'data-name': dataName,\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName,\n tooltipPlacement: 'top' as const\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,7 @@ declare const ButtonMenuAction: {
|
|
|
40
40
|
href: import("prop-types").Requireable<string>;
|
|
41
41
|
download: import("prop-types").Requireable<boolean>;
|
|
42
42
|
target: import("prop-types").Requireable<string>;
|
|
43
|
+
rel: import("prop-types").Requireable<string>;
|
|
43
44
|
}>>;
|
|
44
45
|
hoverBackgroundColor: import("prop-types").Requireable<string>;
|
|
45
46
|
hoverColor: import("prop-types").Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/button-menu-action/index.tsx"],"names":[],"mappings":";AAQA,OAAkB,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAGzD,QAAA,MAAM,gBAAgB;YAAW,qBAAqB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/button-menu-action/index.tsx"],"names":[],"mappings":";AAQA,OAAkB,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAGzD,QAAA,MAAM,gBAAgB;YAAW,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHrD,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
|
|
@@ -56,6 +56,7 @@ const ButtonMenuAction = props => {
|
|
|
56
56
|
const _menu = /*#__PURE__*/React.createElement("div", {
|
|
57
57
|
className: menuWrapperClass,
|
|
58
58
|
"data-name": "menu-wrapper",
|
|
59
|
+
role: "group",
|
|
59
60
|
"aria-label": menuWrapper?.ariaLabel,
|
|
60
61
|
style: menuWrapper?.customStyle
|
|
61
62
|
}, /*#__PURE__*/React.createElement(ButtonMenu, _extends({}, menuWithClose, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useState","useRef","useMemo","classnames","map","FontAwesomeIcon","ButtonLink","ButtonMenu","COLORS","propTypes","style","ButtonMenuAction","props","button","menu","menuWrapper","type","primaryColor","containerCustom","closeOnClick","enableScroll","showFade","onClick","_noop","withChevron","visible","setVisible","containerRef","toggleVisibility","prevState","handleMouseDown","event","current","contains","target","document","addEventListener","removeEventListener","menuWithClose","buttons","btn","menuWrapperClass","length","_menu","createElement","className","ariaLabel","customStyle","_extends","buttonProps","baseIcons","Array","isArray","icon","chevronIcon","position","faIcon","name","color","neutral_700","size","icons","filter","i","container","ref","currentOption","undefined","label","caret","process","env","NODE_ENV"],"sources":["../../../src/molecule/button-menu-action/index.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useState, useRef, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport map from 'lodash/fp/map';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport ButtonLink from '../../atom/button-link';\nimport ButtonMenu from '../../atom/button-menu';\nimport {COLORS} from '../../variables/colors';\nimport propTypes, {ButtonMenuActionProps} from './types';\nimport style from './style.css';\n\nconst ButtonMenuAction = (props: ButtonMenuActionProps) => {\n const {\n button,\n menu,\n menuWrapper,\n type = 'button',\n primaryColor,\n containerCustom,\n closeOnClick = false,\n enableScroll = false,\n showFade = false\n } = props;\n const {onClick = noop, withChevron = false} = button;\n const [visible, setVisible] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const toggleVisibility = useCallback(() => {\n onClick();\n setVisible(prevState => !prevState);\n }, [onClick]);\n\n useEffect(() => {\n const handleMouseDown = (event: MouseEvent) => {\n if (visible && containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setVisible(false);\n }\n };\n\n document.addEventListener('mousedown', handleMouseDown);\n return () => {\n document.removeEventListener('mousedown', handleMouseDown);\n };\n }, [visible, containerRef]);\n\n const menuWithClose = closeOnClick\n ? {\n ...menu,\n buttons: map(\n btn => ({\n ...btn,\n onClick: () => setVisible(false)\n }),\n menu.buttons\n )\n }\n : menu;\n\n const menuWrapperClass = classnames(style.menuWrapper, {\n [style.visible]: visible,\n [style.showFade]: showFade && menuWithClose.buttons && menuWithClose.buttons.length > 6\n });\n\n const _menu = (\n <div\n className={menuWrapperClass}\n data-name=\"menu-wrapper\"\n aria-label={menuWrapper?.ariaLabel}\n style={menuWrapper?.customStyle}\n >\n <ButtonMenu {...menuWithClose} enableScroll={enableScroll} />\n </div>\n );\n\n const buttonProps = useMemo(() => {\n if (!withChevron) return button;\n\n // to handle array/object/undefined\n // eslint-disable-next-line no-nested-ternary\n const baseIcons = Array.isArray(button.icon) ? button.icon : button.icon ? [button.icon] : [];\n\n const chevronIcon = {\n position: 'right' as const,\n faIcon: {\n name: visible ? 'chevron-up' : 'chevron-down',\n color: COLORS.neutral_700,\n size: 14\n }\n };\n\n // remove right icon if exists\n const icons = [...baseIcons.filter(i => i && i.position !== 'right'), chevronIcon];\n\n return {\n ...button,\n icon: icons\n };\n }, [button, withChevron, visible]);\n\n return (\n <div\n className={style.container}\n data-name=\"button-menu-action-wrapper\"\n style={containerCustom}\n ref={containerRef}\n >\n {type === 'link' ? (\n <div\n className={style.currentOption}\n data-name={button['data-name']}\n onClick={toggleVisibility}\n aria-expanded={visible}\n aria-haspopup=\"true\"\n >\n <span style={{color: visible ? primaryColor : undefined}}>{button.label}</span>\n <FontAwesomeIcon\n icon={visible ? 'chevron-up' : 'chevron-down'}\n className={style.caret}\n style={{color: visible ? primaryColor : undefined}}\n aria-label={button['aria-label']}\n />\n </div>\n ) : (\n <ButtonLink {...buttonProps} onClick={toggleVisibility} />\n )}\n {_menu}\n </div>\n );\n};\n\nButtonMenuAction.propTypes = propTypes;\n\nexport default ButtonMenuAction;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAO,OAAO;AAC9E,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAAQC,eAAe,QAAO,gCAAgC;AAC9D,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAAQC,MAAM,QAAO,wBAAwB;AAC7C,OAAOC,SAAS,MAA+B,SAAS;AACxD,OAAOC,KAAK,MAAM,aAAa;AAE/B,MAAMC,gBAAgB,GAAIC,KAA4B,IAAK;EACzD,MAAM;IACJC,MAAM;IACNC,IAAI;IACJC,WAAW;IACXC,IAAI,GAAG,QAAQ;IACfC,YAAY;IACZC,eAAe;IACfC,YAAY,GAAG,KAAK;IACpBC,YAAY,GAAG,KAAK;IACpBC,QAAQ,GAAG;EACb,CAAC,GAAGT,KAAK;EACT,MAAM;IAACU,OAAO,GAAAC,KAAO;IAAEC,WAAW,GAAG;EAAK,CAAC,GAAGX,MAAM;EACpD,MAAM,CAACY,OAAO,EAAEC,UAAU,CAAC,GAAG1B,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM2B,YAAY,GAAG1B,MAAM,CAAiB,IAAI,CAAC;EAEjD,MAAM2B,gBAAgB,GAAG9B,WAAW,CAAC,MAAM;IACzCwB,OAAO,CAAC,CAAC;IACTI,UAAU,CAACG,SAAS,IAAI,CAACA,SAAS,CAAC;EACrC,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;EAEbvB,SAAS,CAAC,MAAM;IACd,MAAM+B,eAAe,GAAIC,KAAiB,IAAK;MAC7C,IAAIN,OAAO,IAAIE,YAAY,CAACK,OAAO,IAAI,CAACL,YAAY,CAACK,OAAO,CAACC,QAAQ,CAACF,KAAK,CAACG,MAAc,CAAC,EAAE;QAC3FR,UAAU,CAAC,KAAK,CAAC;MACnB;IACF,CAAC;IAEDS,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEN,eAAe,CAAC;IACvD,OAAO,MAAM;MACXK,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEP,eAAe,CAAC;IAC5D,CAAC;EACH,CAAC,EAAE,CAACL,OAAO,EAAEE,YAAY,CAAC,CAAC;EAE3B,MAAMW,aAAa,GAAGnB,YAAY,GAC9B;IACE,GAAGL,IAAI;IACPyB,OAAO,EAAEnC,GAAG,CACVoC,GAAG,KAAK;MACN,GAAGA,GAAG;MACNlB,OAAO,EAAEA,CAAA,KAAMI,UAAU,CAAC,KAAK;IACjC,CAAC,CAAC,EACFZ,IAAI,CAACyB,OACP;EACF,CAAC,GACDzB,IAAI;EAER,MAAM2B,gBAAgB,GAAGtC,UAAU,CAACO,KAAK,CAACK,WAAW,EAAE;IACrD,CAACL,KAAK,CAACe,OAAO,GAAGA,OAAO;IACxB,CAACf,KAAK,CAACW,QAAQ,GAAGA,QAAQ,IAAIiB,aAAa,CAACC,OAAO,IAAID,aAAa,CAACC,OAAO,CAACG,MAAM,GAAG;EACxF,CAAC,CAAC;EAEF,MAAMC,KAAK,gBACT9C,KAAA,CAAA+C,aAAA;IACEC,SAAS,EAAEJ,gBAAiB;IAC5B,aAAU,cAAc;
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useState","useRef","useMemo","classnames","map","FontAwesomeIcon","ButtonLink","ButtonMenu","COLORS","propTypes","style","ButtonMenuAction","props","button","menu","menuWrapper","type","primaryColor","containerCustom","closeOnClick","enableScroll","showFade","onClick","_noop","withChevron","visible","setVisible","containerRef","toggleVisibility","prevState","handleMouseDown","event","current","contains","target","document","addEventListener","removeEventListener","menuWithClose","buttons","btn","menuWrapperClass","length","_menu","createElement","className","role","ariaLabel","customStyle","_extends","buttonProps","baseIcons","Array","isArray","icon","chevronIcon","position","faIcon","name","color","neutral_700","size","icons","filter","i","container","ref","currentOption","undefined","label","caret","process","env","NODE_ENV"],"sources":["../../../src/molecule/button-menu-action/index.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useState, useRef, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport map from 'lodash/fp/map';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport ButtonLink from '../../atom/button-link';\nimport ButtonMenu from '../../atom/button-menu';\nimport {COLORS} from '../../variables/colors';\nimport propTypes, {ButtonMenuActionProps} from './types';\nimport style from './style.css';\n\nconst ButtonMenuAction = (props: ButtonMenuActionProps) => {\n const {\n button,\n menu,\n menuWrapper,\n type = 'button',\n primaryColor,\n containerCustom,\n closeOnClick = false,\n enableScroll = false,\n showFade = false\n } = props;\n const {onClick = noop, withChevron = false} = button;\n const [visible, setVisible] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const toggleVisibility = useCallback(() => {\n onClick();\n setVisible(prevState => !prevState);\n }, [onClick]);\n\n useEffect(() => {\n const handleMouseDown = (event: MouseEvent) => {\n if (visible && containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setVisible(false);\n }\n };\n\n document.addEventListener('mousedown', handleMouseDown);\n return () => {\n document.removeEventListener('mousedown', handleMouseDown);\n };\n }, [visible, containerRef]);\n\n const menuWithClose = closeOnClick\n ? {\n ...menu,\n buttons: map(\n btn => ({\n ...btn,\n onClick: () => setVisible(false)\n }),\n menu.buttons\n )\n }\n : menu;\n\n const menuWrapperClass = classnames(style.menuWrapper, {\n [style.visible]: visible,\n [style.showFade]: showFade && menuWithClose.buttons && menuWithClose.buttons.length > 6\n });\n\n const _menu = (\n <div\n className={menuWrapperClass}\n data-name=\"menu-wrapper\"\n role=\"group\"\n aria-label={menuWrapper?.ariaLabel}\n style={menuWrapper?.customStyle}\n >\n <ButtonMenu {...menuWithClose} enableScroll={enableScroll} />\n </div>\n );\n\n const buttonProps = useMemo(() => {\n if (!withChevron) return button;\n\n // to handle array/object/undefined\n // eslint-disable-next-line no-nested-ternary\n const baseIcons = Array.isArray(button.icon) ? button.icon : button.icon ? [button.icon] : [];\n\n const chevronIcon = {\n position: 'right' as const,\n faIcon: {\n name: visible ? 'chevron-up' : 'chevron-down',\n color: COLORS.neutral_700,\n size: 14\n }\n };\n\n // remove right icon if exists\n const icons = [...baseIcons.filter(i => i && i.position !== 'right'), chevronIcon];\n\n return {\n ...button,\n icon: icons\n };\n }, [button, withChevron, visible]);\n\n return (\n <div\n className={style.container}\n data-name=\"button-menu-action-wrapper\"\n style={containerCustom}\n ref={containerRef}\n >\n {type === 'link' ? (\n <div\n className={style.currentOption}\n data-name={button['data-name']}\n onClick={toggleVisibility}\n aria-expanded={visible}\n aria-haspopup=\"true\"\n >\n <span style={{color: visible ? primaryColor : undefined}}>{button.label}</span>\n <FontAwesomeIcon\n icon={visible ? 'chevron-up' : 'chevron-down'}\n className={style.caret}\n style={{color: visible ? primaryColor : undefined}}\n aria-label={button['aria-label']}\n />\n </div>\n ) : (\n <ButtonLink {...buttonProps} onClick={toggleVisibility} />\n )}\n {_menu}\n </div>\n );\n};\n\nButtonMenuAction.propTypes = propTypes;\n\nexport default ButtonMenuAction;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,6 +39,7 @@ declare const ButtonMenuActionPropTypes: {
|
|
|
39
39
|
href: PropTypes.Requireable<string>;
|
|
40
40
|
download: PropTypes.Requireable<boolean>;
|
|
41
41
|
target: PropTypes.Requireable<string>;
|
|
42
|
+
rel: PropTypes.Requireable<string>;
|
|
42
43
|
}>>;
|
|
43
44
|
hoverBackgroundColor: PropTypes.Requireable<string>;
|
|
44
45
|
hoverColor: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/button-menu-action/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAA4B,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClF,OAA4B,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAElF,QAAA,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/button-menu-action/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAA4B,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClF,OAA4B,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAElF,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AACF,eAAe,yBAAyB,CAAC;AAEzC,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,eAAe,GAAG;QACxB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;KAC/C,CAAC;IACF,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customer.js","names":["React","PropTypes","classnames","style","THEMES","default","coorpmanager","Customer","props","name","type","coorpOriginal","theme","disabled","ariaLabel","className","customer","chapterCustomer","createElement","content","coorp","original","propTypes","process","env","NODE_ENV","oneOf","_keys","string","bool","isRequired"],"sources":["../../../src/molecule/card/customer.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport style from './customer.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst Customer = props => {\n const {name, type, coorpOriginal, theme, disabled, 'aria-label': ariaLabel} = props;\n const className = classnames(\n THEMES[theme],\n style.customer,\n type === 'chapter' ? style.chapterCustomer : null\n );\n\n return (\n <div className={className} disabled={disabled} aria-label={ariaLabel}>\n <div className={style.content}>\n {coorpOriginal ? <span className={style.coorp}>Coorp </span> : null}\n {coorpOriginal ? <span className={style.original}>Original </span> : null}\n {!coorpOriginal && name}\n </div>\n </div>\n );\n};\n\nCustomer.propTypes = {\n theme: PropTypes.oneOf(keys(THEMES)),\n type: PropTypes.string,\n name: PropTypes.string,\n coorpOriginal: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nexport default Customer;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,KAAK,MAAM,gBAAgB;AAElC,OAAO,MAAMC,MAAM,GAAG;EACpBC,OAAO,EAAE,IAAI;EACbC,YAAY,EAAEH,KAAK,CAACG;AACtB,CAAC;AAED,MAAMC,QAAQ,GAAGC,KAAK,IAAI;EACxB,MAAM;IAACC,IAAI;IAAEC,IAAI;IAAEC,aAAa;IAAEC,KAAK;IAAEC,QAAQ;IAAE,YAAY,EAAEC;EAAS,CAAC,GAAGN,KAAK;EACnF,MAAMO,SAAS,GAAGb,UAAU,CAC1BE,MAAM,CAACQ,KAAK,CAAC,EACbT,KAAK,CAACa,QAAQ,EACdN,IAAI,KAAK,SAAS,GAAGP,KAAK,CAACc,eAAe,GAAG,IAC/C,CAAC;EAED,oBACEjB,KAAA,CAAAkB,aAAA;IAAKH,SAAS,EAAEA,SAAU;IAACF,QAAQ,EAAEA,QAAS;IAAC,
|
|
1
|
+
{"version":3,"file":"customer.js","names":["React","PropTypes","classnames","style","THEMES","default","coorpmanager","Customer","props","name","type","coorpOriginal","theme","disabled","ariaLabel","className","customer","chapterCustomer","createElement","role","content","coorp","original","propTypes","process","env","NODE_ENV","oneOf","_keys","string","bool","isRequired"],"sources":["../../../src/molecule/card/customer.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport style from './customer.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst Customer = props => {\n const {name, type, coorpOriginal, theme, disabled, 'aria-label': ariaLabel} = props;\n const className = classnames(\n THEMES[theme],\n style.customer,\n type === 'chapter' ? style.chapterCustomer : null\n );\n\n return (\n <div className={className} disabled={disabled} role=\"group\" aria-label={ariaLabel}>\n <div className={style.content}>\n {coorpOriginal ? <span className={style.coorp}>Coorp </span> : null}\n {coorpOriginal ? <span className={style.original}>Original </span> : null}\n {!coorpOriginal && name}\n </div>\n </div>\n );\n};\n\nCustomer.propTypes = {\n theme: PropTypes.oneOf(keys(THEMES)),\n type: PropTypes.string,\n name: PropTypes.string,\n coorpOriginal: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nexport default Customer;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,KAAK,MAAM,gBAAgB;AAElC,OAAO,MAAMC,MAAM,GAAG;EACpBC,OAAO,EAAE,IAAI;EACbC,YAAY,EAAEH,KAAK,CAACG;AACtB,CAAC;AAED,MAAMC,QAAQ,GAAGC,KAAK,IAAI;EACxB,MAAM;IAACC,IAAI;IAAEC,IAAI;IAAEC,aAAa;IAAEC,KAAK;IAAEC,QAAQ;IAAE,YAAY,EAAEC;EAAS,CAAC,GAAGN,KAAK;EACnF,MAAMO,SAAS,GAAGb,UAAU,CAC1BE,MAAM,CAACQ,KAAK,CAAC,EACbT,KAAK,CAACa,QAAQ,EACdN,IAAI,KAAK,SAAS,GAAGP,KAAK,CAACc,eAAe,GAAG,IAC/C,CAAC;EAED,oBACEjB,KAAA,CAAAkB,aAAA;IAAKH,SAAS,EAAEA,SAAU;IAACF,QAAQ,EAAEA,QAAS;IAACM,IAAI,EAAC,OAAO;IAAC,cAAYL;EAAU,gBAChFd,KAAA,CAAAkB,aAAA;IAAKH,SAAS,EAAEZ,KAAK,CAACiB;EAAQ,GAC3BT,aAAa,gBAAGX,KAAA,CAAAkB,aAAA;IAAMH,SAAS,EAAEZ,KAAK,CAACkB;EAAM,GAAC,QAAY,CAAC,GAAG,IAAI,EAClEV,aAAa,gBAAGX,KAAA,CAAAkB,aAAA;IAAMH,SAAS,EAAEZ,KAAK,CAACmB;EAAS,GAAC,WAAe,CAAC,GAAG,IAAI,EACxE,CAACX,aAAa,IAAIF,IAChB,CACF,CAAC;AAEV,CAAC;AAEDF,QAAQ,CAACgB,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EACnBd,KAAK,EAAEX,SAAS,CAAC0B,KAAK,CAACC,KAAA,CAAKxB,MAAM,CAAC,CAAC;EACpCM,IAAI,EAAET,SAAS,CAAC4B,MAAM;EACtBpB,IAAI,EAAER,SAAS,CAAC4B,MAAM;EACtBlB,aAAa,EAAEV,SAAS,CAAC6B,IAAI,CAACC,UAAU;EACxClB,QAAQ,EAAEZ,SAAS,CAAC6B,IAAI;EACxB,YAAY,EAAE7B,SAAS,CAAC4B;AAC1B,CAAC;AAED,eAAetB,QAAQ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/index.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/index.js"],"names":[],"mappings":";;;;;AAsRA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BE;;;AAxKF,uDAoIG"}
|
|
@@ -68,6 +68,7 @@ const CardBackground = ({
|
|
|
68
68
|
className: style.imageWrapper
|
|
69
69
|
}, /*#__PURE__*/React.createElement("div", {
|
|
70
70
|
"data-name": "cover",
|
|
71
|
+
role: "img",
|
|
71
72
|
"aria-label": ariaLabel,
|
|
72
73
|
style: {
|
|
73
74
|
backgroundColor: iconColor,
|
|
@@ -80,6 +81,7 @@ const CardBackground = ({
|
|
|
80
81
|
className: style.imageWrapper
|
|
81
82
|
}, /*#__PURE__*/React.createElement("div", {
|
|
82
83
|
"data-name": "cover",
|
|
84
|
+
role: "img",
|
|
83
85
|
"aria-label": ariaLabel,
|
|
84
86
|
style: {
|
|
85
87
|
backgroundColor: iconColor
|
|
@@ -97,6 +99,7 @@ const CardBackground = ({
|
|
|
97
99
|
className: style.imageWrapper
|
|
98
100
|
}, /*#__PURE__*/React.createElement("div", {
|
|
99
101
|
"data-name": "cover",
|
|
102
|
+
role: "img",
|
|
100
103
|
"aria-label": ariaLabel,
|
|
101
104
|
className: style.image,
|
|
102
105
|
style: {
|
|
@@ -160,6 +163,7 @@ const Card = /*#__PURE__*/memo(function Card(props, context) {
|
|
|
160
163
|
className: style.lockIcon,
|
|
161
164
|
height: 48
|
|
162
165
|
}), /*#__PURE__*/React.createElement("span", {
|
|
166
|
+
role: "group",
|
|
163
167
|
"aria-label": disabledArialabel
|
|
164
168
|
// eslint-disable-next-line react/no-danger
|
|
165
169
|
,
|
|
@@ -187,6 +191,7 @@ const Card = /*#__PURE__*/memo(function Card(props, context) {
|
|
|
187
191
|
"data-type": getType(type),
|
|
188
192
|
disabled: disabled,
|
|
189
193
|
onClick: handleClick,
|
|
194
|
+
role: "group",
|
|
190
195
|
"aria-label": cardArialabel
|
|
191
196
|
}, /*#__PURE__*/React.createElement(CardBackground, {
|
|
192
197
|
type: type,
|
|
@@ -227,9 +232,11 @@ const Card = /*#__PURE__*/memo(function Card(props, context) {
|
|
|
227
232
|
}), badge ? /*#__PURE__*/React.createElement("div", {
|
|
228
233
|
className: style.badge,
|
|
229
234
|
style: inlineBadgeStyle,
|
|
235
|
+
role: "group",
|
|
230
236
|
"aria-label": badgeAriaLabel
|
|
231
237
|
}, badge) : null, disabled ? /*#__PURE__*/React.createElement("div", {
|
|
232
238
|
className: style.lockWrapper,
|
|
239
|
+
role: "group",
|
|
233
240
|
"aria-label": disabledArialabel
|
|
234
241
|
}, lock) : null);
|
|
235
242
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useMemo","memo","PropTypes","classnames","NovaCompositionCoorpacademyPadlock","LockIcon","NovaCompositionCoorpacademyPictures","PicturesIcon","isExternalContent","ICONS_TYPES","EXTERNAL_CONTENT_ICONS","Provider","CardContentInfo","MODES","FaIcon","COLORS","Customer","Favorite","Selectable","Notification","style","THEMES","default","coorpmanager","ICON_SIZE","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","_get","whiteColor","iconName","iconColor","backgroundIcon","createElement","className","externalIconCircleWrapper","externalIconCircleWithImageWrapper","customStyle","color","white","height","width","_backgroundIcon","backgroundColor","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","bool","Card","props","context","badge","adaptiv","disabled","hidden","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","disabledContent","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","_isEmpty","_pick","cardStyle","course","lazy","grid","_isUndefined","handleClick","e","lock","lockContent","lockIcon","dangerouslySetInnerHTML","__html","inlineBadgeStyle","getType","contentType","_extends","mode","CARD","lockWrapper","cardPropTypes","shape","number","func","oneOf","_keys"],"sources":["../../../src/molecule/card/index.js"],"sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyPadlock as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, ICONS_TYPES, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst ICON_SIZE = '28px';\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if ((externalContent && EXTERNAL_CONTENT_ICONS[type]) || type === 'chapter') {\n const {iconName, iconColor} = ICONS_TYPES[type];\n const backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n >\n <FaIcon\n iconName={iconName}\n customStyle={{\n color: COLORS.white,\n height: ICON_SIZE,\n width: ICON_SIZE\n }}\n />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n data-testid=\"card-background-image\"\n >\n <FaIcon\n iconName={iconName}\n customStyle={{\n color: COLORS.white,\n height: ICON_SIZE,\n width: ICON_SIZE\n }}\n />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? (\n <PicturesIcon className={style.emptyIcon} style={{color: whiteColor}} />\n ) : null;\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled: hidden = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n disabledContent,\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const cardStyle = classnames(\n THEMES[theme],\n style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const disabled = hidden && (!isSelected || isUndefined(isSelected));\n const handleClick = useMemo(() => e => onClick(e), [onClick]);\n const lock = disabled ? (\n <div className={style.lockContent}>\n <LockIcon className={style.lockIcon} height={48} />\n <span\n aria-label={disabledArialabel}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: disabledContent}}\n />\n </div>\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} hidden={hidden} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle} aria-label={badgeAriaLabel}>\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport const cardPropTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n disabledContent: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\n\nCard.propTypes = cardPropTypes;\n\nexport default Card;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useMemo","memo","PropTypes","classnames","NovaCompositionCoorpacademyPadlock","LockIcon","NovaCompositionCoorpacademyPictures","PicturesIcon","isExternalContent","ICONS_TYPES","EXTERNAL_CONTENT_ICONS","Provider","CardContentInfo","MODES","FaIcon","COLORS","Customer","Favorite","Selectable","Notification","style","THEMES","default","coorpmanager","ICON_SIZE","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","_get","whiteColor","iconName","iconColor","backgroundIcon","createElement","className","externalIconCircleWrapper","externalIconCircleWithImageWrapper","customStyle","color","white","height","width","_backgroundIcon","backgroundColor","imageWrapper","role","backgroundImage","externalContentHeader","externalBackground","emptyIcon","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","bool","Card","props","context","badge","adaptiv","disabled","hidden","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","disabledContent","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","_isEmpty","_pick","cardStyle","course","lazy","grid","_isUndefined","handleClick","e","lock","lockContent","lockIcon","dangerouslySetInnerHTML","__html","inlineBadgeStyle","getType","contentType","_extends","mode","CARD","lockWrapper","cardPropTypes","shape","number","func","oneOf","_keys"],"sources":["../../../src/molecule/card/index.js"],"sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyPadlock as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, ICONS_TYPES, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst ICON_SIZE = '28px';\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if ((externalContent && EXTERNAL_CONTENT_ICONS[type]) || type === 'chapter') {\n const {iconName, iconColor} = ICONS_TYPES[type];\n const backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n >\n <FaIcon\n iconName={iconName}\n customStyle={{\n color: COLORS.white,\n height: ICON_SIZE,\n width: ICON_SIZE\n }}\n />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n data-testid=\"card-background-image\"\n >\n <FaIcon\n iconName={iconName}\n customStyle={{\n color: COLORS.white,\n height: ICON_SIZE,\n width: ICON_SIZE\n }}\n />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n role=\"img\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n role=\"img\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? (\n <PicturesIcon className={style.emptyIcon} style={{color: whiteColor}} />\n ) : null;\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n role=\"img\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled: hidden = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n disabledContent,\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const cardStyle = classnames(\n THEMES[theme],\n style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const disabled = hidden && (!isSelected || isUndefined(isSelected));\n const handleClick = useMemo(() => e => onClick(e), [onClick]);\n const lock = disabled ? (\n <div className={style.lockContent}>\n <LockIcon className={style.lockIcon} height={48} />\n <span\n role=\"group\"\n aria-label={disabledArialabel}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: disabledContent}}\n />\n </div>\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n role=\"group\"\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} hidden={hidden} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div\n className={style.badge}\n style={inlineBadgeStyle}\n role=\"group\"\n aria-label={badgeAriaLabel}\n >\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} role=\"group\" aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport const cardPropTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n disabledContent: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\n\nCard.propTypes = cardPropTypes;\n\nexport default Card;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card-content/index.js"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card-content/index.js"],"names":[],"mappings":";;;;;;;;;;AAkIA;;;;;;;;;;;;;;gBA0EC"}
|
|
@@ -116,6 +116,7 @@ const AuthorName = ({
|
|
|
116
116
|
return /*#__PURE__*/React.createElement("div", {
|
|
117
117
|
"data-name": "author",
|
|
118
118
|
title: author,
|
|
119
|
+
role: "group",
|
|
119
120
|
"aria-label": ariaLabel,
|
|
120
121
|
className: classnames(style.author, courseContent ? style.lightTitle : style.darkAuthorTitle, empty ? style.empty : null)
|
|
121
122
|
}, /*#__PURE__*/React.createElement("span", null, author), checkIcon);
|