@gov-design-system-ce/components 0.0.24 → 0.0.26
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/dist/cjs/gov-accordion-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-accordion-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-app.cjs.entry.js +76 -3
- package/dist/cjs/gov-app.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-badge.cjs.entry.js +1 -1
- package/dist/cjs/gov-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-button.cjs.entry.js +1 -1
- package/dist/cjs/gov-button.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-autocomplete.cjs.entry.js +27 -7
- package/dist/cjs/gov-form-autocomplete.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-control.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-control.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-group.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-group.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-input.cjs.entry.js +10 -1
- package/dist/cjs/gov-form-input.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-multi-select.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-multi-select.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-switch.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-icon.cjs.entry.js +1 -1
- package/dist/cjs/gov-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/gov-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/gov-tooltip.cjs.entry.js.map +1 -1
- package/dist/collection/components/gov-accordion/gov-accordion-item.css +24 -24
- package/dist/collection/components/gov-badge/gov-badge.css +3 -0
- package/dist/collection/components/gov-button/gov-button.css +1 -0
- package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js +29 -9
- package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js.map +1 -1
- package/dist/collection/components/gov-form/control/gov-form-control.css +6 -6
- package/dist/collection/components/gov-form/group/gov-form-group.css +3 -0
- package/dist/collection/components/gov-form/input/gov-form-input.js +29 -1
- package/dist/collection/components/gov-form/input/gov-form-input.js.map +1 -1
- package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js +1 -1
- package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js.map +1 -1
- package/dist/collection/components/gov-form/switch/gov-form-switch.css +0 -8
- package/dist/collection/components/gov-icon/list.js +1 -0
- package/dist/collection/components/gov-icon/list.js.map +1 -1
- package/dist/collection/components/gov-loading/skeleton/gov-skeleton.css +3 -2
- package/dist/collection/components/gov-loading/skeleton/gov-skeleton.js.map +1 -1
- package/dist/collection/components/gov-tooltip/gov-tooltip.css +0 -3
- package/dist/collection/pages/Accordion.js +19 -0
- package/dist/collection/pages/Accordion.js.map +1 -1
- package/dist/collection/pages/Badge.js +57 -3
- package/dist/collection/pages/Badge.js.map +1 -1
- package/dist/components/gov-accordion-item.js +1 -1
- package/dist/components/gov-accordion-item.js.map +1 -1
- package/dist/components/gov-app.js +76 -3
- package/dist/components/gov-app.js.map +1 -1
- package/dist/components/gov-badge2.js +1 -1
- package/dist/components/gov-badge2.js.map +1 -1
- package/dist/components/gov-button2.js +1 -1
- package/dist/components/gov-button2.js.map +1 -1
- package/dist/components/gov-form-autocomplete2.js +28 -8
- package/dist/components/gov-form-autocomplete2.js.map +1 -1
- package/dist/components/gov-form-control.js +1 -1
- package/dist/components/gov-form-control.js.map +1 -1
- package/dist/components/gov-form-group.js +1 -1
- package/dist/components/gov-form-group.js.map +1 -1
- package/dist/components/gov-form-input2.js +10 -1
- package/dist/components/gov-form-input2.js.map +1 -1
- package/dist/components/gov-form-multi-select.js +1 -1
- package/dist/components/gov-form-multi-select.js.map +1 -1
- package/dist/components/gov-form-switch.js +1 -1
- package/dist/components/gov-form-switch.js.map +1 -1
- package/dist/components/gov-icon2.js +1 -1
- package/dist/components/gov-skeleton.js +1 -1
- package/dist/components/gov-skeleton.js.map +1 -1
- package/dist/components/gov-tooltip.js +1 -1
- package/dist/components/gov-tooltip.js.map +1 -1
- package/dist/core/core.css +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/critical.css +187 -0
- package/dist/core/p-005bfb42.entry.js +2 -0
- package/dist/core/p-005bfb42.entry.js.map +1 -0
- package/dist/core/p-1065b347.entry.js +2 -0
- package/dist/core/p-1065b347.entry.js.map +1 -0
- package/dist/core/{p-8925ef42.entry.js → p-1ba7bd9f.entry.js} +2 -2
- package/dist/core/p-1ba7bd9f.entry.js.map +1 -0
- package/dist/core/{p-0874a5ec.entry.js → p-4d257c38.entry.js} +2 -2
- package/dist/core/p-4d257c38.entry.js.map +1 -0
- package/dist/core/p-9b380ef6.entry.js +2 -0
- package/dist/core/p-9b380ef6.entry.js.map +1 -0
- package/dist/core/{p-a8b628ed.entry.js → p-b3d9b255.entry.js} +2 -2
- package/dist/core/p-b3d9b255.entry.js.map +1 -0
- package/dist/core/{p-5e4cf9a2.entry.js → p-b3f73e1d.entry.js} +2 -2
- package/dist/core/p-b3f73e1d.entry.js.map +1 -0
- package/dist/core/p-b7681cba.entry.js +2 -0
- package/dist/core/p-b7681cba.entry.js.map +1 -0
- package/dist/core/p-bec31703.entry.js +2 -0
- package/dist/core/p-bec31703.entry.js.map +1 -0
- package/dist/core/{p-99f198b9.entry.js → p-c1c5b496.entry.js} +2 -2
- package/dist/core/p-c1c5b496.entry.js.map +1 -0
- package/dist/core/{p-ccb44728.entry.js → p-c8796c7a.entry.js} +2 -2
- package/dist/core/p-ebf79ea8.entry.js +2 -0
- package/dist/core/p-ebf79ea8.entry.js.map +1 -0
- package/dist/core/p-edcfb1f7.entry.js +2 -0
- package/dist/core/p-edcfb1f7.entry.js.map +1 -0
- package/dist/custom-elements/index.js +1 -1
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/gov-accordion-item.entry.js +1 -1
- package/dist/esm/gov-accordion-item.entry.js.map +1 -1
- package/dist/esm/gov-app.entry.js +76 -3
- package/dist/esm/gov-app.entry.js.map +1 -1
- package/dist/esm/gov-badge.entry.js +1 -1
- package/dist/esm/gov-badge.entry.js.map +1 -1
- package/dist/esm/gov-button.entry.js +1 -1
- package/dist/esm/gov-button.entry.js.map +1 -1
- package/dist/esm/gov-form-autocomplete.entry.js +28 -8
- package/dist/esm/gov-form-autocomplete.entry.js.map +1 -1
- package/dist/esm/gov-form-control.entry.js +1 -1
- package/dist/esm/gov-form-control.entry.js.map +1 -1
- package/dist/esm/gov-form-group.entry.js +1 -1
- package/dist/esm/gov-form-group.entry.js.map +1 -1
- package/dist/esm/gov-form-input.entry.js +10 -1
- package/dist/esm/gov-form-input.entry.js.map +1 -1
- package/dist/esm/gov-form-multi-select.entry.js +1 -1
- package/dist/esm/gov-form-multi-select.entry.js.map +1 -1
- package/dist/esm/gov-form-switch.entry.js +1 -1
- package/dist/esm/gov-form-switch.entry.js.map +1 -1
- package/dist/esm/gov-icon.entry.js +1 -1
- package/dist/esm/gov-skeleton.entry.js +1 -1
- package/dist/esm/gov-skeleton.entry.js.map +1 -1
- package/dist/esm/gov-tooltip.entry.js +1 -1
- package/dist/esm/gov-tooltip.entry.js.map +1 -1
- package/dist/hydrate/index.js +121 -19
- package/dist/types/components/gov-form/autocomplete/gov-form-autocomplete.d.ts +4 -2
- package/dist/types/components/gov-form/input/gov-form-input.d.ts +5 -0
- package/dist/types/components.d.ts +4 -0
- package/package.json +1 -1
- package/dist/core/p-0800095f.entry.js +0 -2
- package/dist/core/p-0800095f.entry.js.map +0 -1
- package/dist/core/p-0874a5ec.entry.js.map +0 -1
- package/dist/core/p-3699c1b3.entry.js +0 -2
- package/dist/core/p-3699c1b3.entry.js.map +0 -1
- package/dist/core/p-3cd5b6cb.entry.js +0 -2
- package/dist/core/p-3cd5b6cb.entry.js.map +0 -1
- package/dist/core/p-5176fad8.entry.js +0 -2
- package/dist/core/p-5176fad8.entry.js.map +0 -1
- package/dist/core/p-5e4cf9a2.entry.js.map +0 -1
- package/dist/core/p-8204070b.entry.js +0 -2
- package/dist/core/p-8204070b.entry.js.map +0 -1
- package/dist/core/p-8925ef42.entry.js.map +0 -1
- package/dist/core/p-99f198b9.entry.js.map +0 -1
- package/dist/core/p-a8b628ed.entry.js.map +0 -1
- package/dist/core/p-bb3afae6.entry.js +0 -2
- package/dist/core/p-bb3afae6.entry.js.map +0 -1
- package/dist/core/p-d83b4bdc.entry.js +0 -2
- package/dist/core/p-d83b4bdc.entry.js.map +0 -1
- /package/dist/core/{p-ccb44728.entry.js.map → p-c8796c7a.entry.js.map} +0 -0
|
@@ -30,7 +30,7 @@ const SkeletonClass = {
|
|
|
30
30
|
loader: 'gov-skeleton__loader',
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
const govSkeletonCss = ".gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-skeleton__loader{position:relative;display:inline-block;width:var(--gov-skeleton-width, 100%);height:var(--gov-skeleton-height, 20px);
|
|
33
|
+
const govSkeletonCss = ".gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-skeleton__loader{position:relative;display:inline-block;width:var(--gov-skeleton-width, 100%);height:var(--gov-skeleton-height, 20px);border-radius:var(--gov-skeleton-border-radius, var(--gov-border-radius, 0.1875rem));outline:none;overflow:hidden;box-sizing:border-box;will-change:transform}.gov-skeleton__loader+.gov-skeleton__loader{margin-top:var(--gov-skeleton-margin-top, 8px)}.gov-skeleton__loader.circle{width:var(--gov-skeleton-circle-size, 60px);height:var(--gov-skeleton-circle-size, 60px);border-radius:var(--gov-skeleton-circle-radius, 50%)}.gov-skeleton__loader.rect{border-radius:var(--gov-skeleton-rect-radius, 0)}.gov-skeleton__loader.progress{background-size:200px 100%;animation:progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.gov-skeleton__loader.pulse{animation:pulse 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;animation-delay:0.5s}@media (prefers-reduced-motion: reduce){.gov-skeleton__loader.pulse,.gov-skeleton__loader.progress{background-image:none;animation:none}}.gov-skeleton[variant=warning] .gov-skeleton__loader{background-color:var(--gov-skeleton-warning-background, var(--gov-color-warning-100));background-repeat:no-repeat}.gov-skeleton[variant=warning] .gov-skeleton__loader.progress{background-image:linear-gradient(90deg, var(--gov-skeleton-warning-background, var(--gov-color-warning-100)), var(--gov-skeleton-warning-foreground, var(--gov-color-warning-200)), var(--gov-skeleton-warning-background, var(--gov-color-warning-100)))}.gov-skeleton[variant=error] .gov-skeleton__loader{background-color:var(--gov-skeleton-error-background, var(--gov-color-error-100));background-repeat:no-repeat}.gov-skeleton[variant=error] .gov-skeleton__loader.progress{background-image:linear-gradient(90deg, var(--gov-skeleton-error-background, var(--gov-color-error-100)), var(--gov-skeleton-error-foreground, var(--gov-color-error-200)), var(--gov-skeleton-error-background, var(--gov-color-error-100)))}.gov-skeleton[variant=secondary] .gov-skeleton__loader{background-color:var(--gov-skeleton-secondary-background, var(--gov-color-secondary-300));background-repeat:no-repeat}.gov-skeleton[variant=secondary] .gov-skeleton__loader.progress{background-image:linear-gradient(90deg, var(--gov-skeleton-secondary-background, var(--gov-color-secondary-300)), var(--gov-skeleton-secondary-foreground, var(--gov-color-secondary-100)), var(--gov-skeleton-secondary-background, var(--gov-color-secondary-300)))}.gov-skeleton[variant=success] .gov-skeleton__loader{background-color:var(--gov-skeleton-success-background, var(--gov-color-success-100));background-repeat:no-repeat}.gov-skeleton[variant=success] .gov-skeleton__loader.progress{background-image:linear-gradient(90deg, var(--gov-skeleton-success-background, var(--gov-color-success-100)), var(--gov-skeleton-success-foreground, var(--gov-color-success-200)), var(--gov-skeleton-success-background, var(--gov-color-success-100)))}.gov-skeleton[variant=primary] .gov-skeleton__loader{background-color:var(--gov-skeleton-primary-background, var(--gov-color-primary-100));background-repeat:no-repeat}.gov-skeleton[variant=primary] .gov-skeleton__loader.progress{background-image:linear-gradient(90deg, var(--gov-skeleton-primary-background, var(--gov-color-primary-100)), var(--gov-skeleton-primary-foreground, var(--gov-color-primary-200)), var(--gov-skeleton-primary-background, var(--gov-color-primary-100)))}";
|
|
34
34
|
|
|
35
35
|
const GovSkeleton = class {
|
|
36
36
|
constructor(hostRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gov-skeleton.entry.cjs.js","mappings":";;;;;;;;;;;;;;AAIO,MAAM,gBAAgB,GAAGA,UAAI,CAACC,iBAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAGvG,IAAY,cAIX;AAJD,WAAY,cAAc;EACzB,mCAAiB,CAAA;EACjB,gCAAc,CAAA;EACd,+BAAa,CAAA;AACd,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAGD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;EAC5B,oCAAe,CAAA;EACf,0CAAqB,CAAA;EACrB,oCAAe,CAAA;AAChB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAGM,MAAM,aAAa,GAAG;EAC5B,IAAI,EAAE,cAAc;EACpB,MAAM,EAAE,sBAAsB;CAC9B;;ACxBD,MAAM,cAAc,GAAG,
|
|
1
|
+
{"file":"gov-skeleton.entry.cjs.js","mappings":";;;;;;;;;;;;;;AAIO,MAAM,gBAAgB,GAAGA,UAAI,CAACC,iBAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAGvG,IAAY,cAIX;AAJD,WAAY,cAAc;EACzB,mCAAiB,CAAA;EACjB,gCAAc,CAAA;EACd,+BAAa,CAAA;AACd,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAGD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;EAC5B,oCAAe,CAAA;EACf,0CAAqB,CAAA;EACrB,oCAAe,CAAA;AAChB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAGM,MAAM,aAAa,GAAG;EAC5B,IAAI,EAAE,cAAc;EACpB,MAAM,EAAE,sBAAsB;CAC9B;;ACxBD,MAAM,cAAc,GAAG,ypHAAypH;;MCqBnqH,WAAW;EAGvB;;IAkCA,UAAK,GAAa,EAAE,CAAA;mBA1B8B,WAAW;iBAI7C,CAAC;iBAIoB,MAAM;iBAInB,IAAI;kBAIH,IAAI;qBAIe,UAAU;;IA3BrD,IAAI,CAAC,CAAC,GAAGC,gBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;GAC3B;EAmCD,eAAe,CAAC,QAAgB;IAC/BC,kBAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;GAC5D;EAGD,aAAa,CAAC,QAAgB;IAC7BA,kBAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;GAC1D;EAGD,iBAAiB,CAAC,QAAgB;IACjCA,kBAAY,CAAC,iBAAiB,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;GAC7D;EAED,iBAAiB;IAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtC,IAAI,CAAC,IAAI,EAAE,CAAA;GACX;EAED,mBAAmB;IAClB,IAAI,CAAC,IAAI,EAAE,CAAA;GACX;EAED,MAAM,kBAAkB;IACvB,IAAIC,2BAAuB,EAAE,EAAE;MAC9B,MAAMC,WAAK,CAAC,GAAG,CAAC,CAAA;MAChB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;KACzB;GACD;EAED,IAAI;IACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;IAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;GAClB;EAED,IAAI,KAAK;IACR,MAAM,iBAAiB,GAGnB;MACH,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;KACZ,CAAA;IACD,IAAI,IAAI,CAAC,KAAK,EAAE;MACf,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;KACpC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE;MAChB,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;KACtC;IAED,yBAAY,iBAAiB,EAAE;GAC/B;EAED,MAAM;IACL,QACCC,QAACC,UAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IACpE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEC,OAAK;MACxB,QACCF,kBACC,GAAG,EAAEE,OAAK,EACV,KAAK,EAAE;UACN,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,QAAQ;UAC/B,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM;UAC3B,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,UAAU;UACvC,KAAK,EAAE,IAAI,CAAC,SAAS,KAAK,OAAO;UACjC,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI;SAC5B,eAES,MAAM,mBACF,GAAG,mBACH,KAAK,oBACH,IAAI,CAAC,SAAS,EAC9B,IAAI,EAAC,aAAa,EAClB,QAAQ,EAAC,GAAG,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,GACV,EACR;KACD,CAAC,CACI,EACP;GACD;;;;EAMD,MAAM,YAAY;IACjBC,sBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;GAChE;;;;;;;;;;;;","names":["pick","Variants","govHost","validateProp","canValidateWcagOnRender","delay","h","Host","index","validateWcagLabel"],"sources":["../../../packages/core/src/components/gov-loading/skeleton/constants.ts","../../../packages/core/src/components/gov-loading/skeleton/gov-skeleton.scss?tag=gov-skeleton","../../../packages/core/src/components/gov-loading/skeleton/gov-skeleton.tsx"],"sourcesContent":["import { pick } from \"../../../utils/utils\"\nimport { Variants } from \"../../../core/constants/variants\"\nimport { ValueOf } from \"../../../types/interfaces\"\n\nexport const SkeletonVariants = pick(Variants, [\"PRIMARY\", \"SECONDARY\", \"SUCCESS\", \"ERROR\", \"WARNING\"])\nexport type SkeletonVariantsType = `${ValueOf<typeof SkeletonVariants>}`\n\nexport enum SkeletonShapes {\n\tCIRCLE = 'circle',\n\tREACT = 'rect',\n\tTEXT = 'text'\n}\nexport type SkeletonShapesType = `${ValueOf<typeof SkeletonShapes>}`\n\nexport enum SkeletonAnimation {\n\tPULSE = 'pulse',\n\tPROGRESS = 'progress',\n\tFALSE = 'false'\n}\nexport type SkeletonAnimationType = `${ValueOf<typeof SkeletonAnimation>}`\n\nexport const SkeletonClass = {\n\troot: 'gov-skeleton',\n\tloader: 'gov-skeleton__loader',\n}\n","$class: \".gov-skeleton\";\n\n#{$class} {\n\t&__loader {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\twidth: $skeleton-width;\n\t\theight: $skeleton-height;\n\t\tborder-radius: $skeleton-border-radius;\n\t\toutline: none;\n\t\toverflow: hidden;\n\t\tbox-sizing: border-box;\n\t\twill-change: transform;\n\n\t\t+ #{$class}__loader {\n\t\t\tmargin-top: $skeleton-margin-top;\n\t\t}\n\n\t\t&.circle {\n\t\t\twidth: $skeleton-circle-size;\n\t\t\theight: $skeleton-circle-size;\n\t\t\tborder-radius: $skeleton-circle-radius;\n\t\t}\n\n\t\t&.rect {\n\t\t\tborder-radius: $skeleton-rect-radius;\n\t\t}\n\n\t\t&.progress {\n\t\t\tbackground-size: 200px 100%;\n\t\t\tanimation: progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\t\t}\n\n\t\t&.pulse {\n\t\t\tanimation: pulse 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\t\t\tanimation-delay: 0.5s;\n\t\t}\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t&.pulse,\n\t\t\t&.progress {\n\t\t\t\tbackground-image: none;\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t@each $variant, $definitions in $skeleton-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t#{$class}__loader {\n\t\t\t\tbackground-color: get(\"background\", $definitions);\n\t\t\t\tbackground-repeat: no-repeat;\n\n\t\t\t\t&.progress {\n\t\t\t\t\tbackground-image: linear-gradient(90deg, get(\"background\", $definitions), get(\"foreground\", $definitions), get(\"background\", $definitions));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport {\n\tSkeletonAnimation,\n\tSkeletonAnimationType,\n\tSkeletonClass,\n\tSkeletonShapes,\n\tSkeletonShapesType,\n\tSkeletonVariants,\n\tSkeletonVariantsType,\n} from \"./constants\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govHost } from \"../../../helpers/Dom/template\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { validateWcagLabel } from \"../../../helpers/Validate/wcag\"\n\n@Component({\n\ttag: \"gov-skeleton\",\n\tstyleUrl: \"gov-skeleton.scss\",\n})\nexport class GovSkeleton {\n\th: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovSkeletonElement\n\t/**\n\t * Style variation of the skeleton.\n\t */\n\t@Prop() readonly variant?: SkeletonVariantsType = \"secondary\"\n\t/**\n\t * Number of rows of current skeleton type\n\t */\n\t@Prop() count = 1\n\t/**\n\t * Shape of the skeleton\n\t */\n\t@Prop() shape?: SkeletonShapesType = \"text\"\n\t/**\n\t * Width of the skeleton ex. 100px, 100%, auto etc.\n\t */\n\t@Prop() width: string = null\n\t/**\n\t * Height of the skeleton ex. 100px, 100%, auto etc.\n\t */\n\t@Prop() height: string = null\n\t/**\n\t * Animation type\n\t */\n\t@Prop() animation?: SkeletonAnimationType = \"progress\"\n\t/**\n\t * Adds accessible label for the skeleton that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-label\" }) readonly wcagLabel: string\n\n\titems: number[] = []\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(SkeletonVariants, newValue, SkeletonClass.root)\n\t}\n\n\t@Watch(\"shape\")\n\tvalidateShape(newValue: string): void {\n\t\tvalidateProp(SkeletonShapes, newValue, SkeletonClass.root)\n\t}\n\n\t@Watch(\"animation\")\n\tvalidateAnimation(newValue: string): void {\n\t\tvalidateProp(SkeletonAnimation, newValue, SkeletonClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateShape(this.shape)\n\t\tthis.validateAnimation(this.animation)\n\t\tthis.init()\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.init()\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tinit() {\n\t\tthis.items.length = this.count\n\t\tthis.items.fill(1)\n\t}\n\n\tget style() {\n\t\tconst dimenssionsStyles: {\n\t\t\twidth?: string,\n\t\t\theight?: string,\n\t\t} = {\n\t\t\twidth: null,\n\t\t\theight: null,\n\t\t}\n\t\tif (this.width) {\n\t\t\tdimenssionsStyles.width = this.width\n\t\t}\n\n\t\tif (this.height) {\n\t\t\tdimenssionsStyles.height = this.height\n\t\t}\n\n\t\treturn { ...dimenssionsStyles }\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(SkeletonClass.root)} variant={this.variant}>\n\t\t\t\t{this.items.map((_, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\tcircle: this.shape === \"circle\",\n\t\t\t\t\t\t\t\trect: this.shape === \"rect\",\n\t\t\t\t\t\t\t\tprogress: this.animation === \"progress\",\n\t\t\t\t\t\t\t\tpulse: this.animation === \"pulse\",\n\t\t\t\t\t\t\t\t[SkeletonClass.loader]: true,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-busy=\"true\"\n\t\t\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\t\t\taria-valuemax=\"100\"\n\t\t\t\t\t\t\taria-valuetext={this.wcagLabel}\n\t\t\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\tstyle={this.style}\n\t\t\t\t\t\t></span>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, undefined, SkeletonClass.root)\n\t}\n}\n"],"version":3}
|
|
@@ -12,7 +12,7 @@ require('./variants-f5ffeef3.js');
|
|
|
12
12
|
require('./sizes-79872c2a.js');
|
|
13
13
|
require('./utils-c9b1bba3.js');
|
|
14
14
|
|
|
15
|
-
const govTooltipCss = ".gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-tooltip{position:relative;display:inline;border-bottom:1px dashed currentcolor;color:var(--gov-color-primary);cursor:help}.gov-tooltip[icon=\"\"],.gov-tooltip[icon=true i],.gov-tooltip[icon=\"1\"]{display:inline-flex;
|
|
15
|
+
const govTooltipCss = ".gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-tooltip{position:relative;display:inline;border-bottom:1px dashed currentcolor;color:var(--gov-color-primary);cursor:help}.gov-tooltip[icon=\"\"],.gov-tooltip[icon=true i],.gov-tooltip[icon=\"1\"]{display:inline-flex;border-bottom:0}.gov-tooltip[variant=secondary]{--gov-tooltip-content-bg-color:var(--gov-tooltip-secondary-bg-color, var(--gov-color-secondary));--gov-tooltip-content-text-color:var(--gov-tooltip-secondary-text-color, var(--gov-color-neutral-white))}.gov-tooltip[variant=secondary][inverse=\"\"],.gov-tooltip[variant=secondary][inverse=true i],.gov-tooltip[variant=secondary][inverse=\"1\"]{--gov-tooltip-content-bg-color:var(--gov-color-neutral-white);--gov-tooltip-content-text-color:var(--gov-tooltip-secondary-text-color-inverse, var(--gov-color-secondary))}.gov-tooltip[variant=primary]{--gov-tooltip-content-bg-color:var(--gov-tooltip-primary-bg-color, var(--gov-color-primary-300));--gov-tooltip-content-text-color:var(--gov-tooltip-primary-text-color, var(--gov-color-secondary))}.gov-tooltip[variant=primary][inverse=\"\"],.gov-tooltip[variant=primary][inverse=true i],.gov-tooltip[variant=primary][inverse=\"1\"]{--gov-tooltip-content-bg-color:var(--gov-color-neutral-white);--gov-tooltip-content-text-color:var(--gov-tooltip-primary-text-color-inverse, var(--gov-color-primary))}";
|
|
16
16
|
|
|
17
17
|
const GovTooltip = class {
|
|
18
18
|
constructor(hostRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gov-tooltip.entry.cjs.js","mappings":"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","names":["govHost","createID","validateProp","TooltipVariant","TooltipClass","TooltipSize","TooltipPosition","TooltipContentClass","h","Host"],"sources":["../../../packages/core/src/components/gov-tooltip/gov-tooltip.scss?tag=gov-tooltip","../../../packages/core/src/components/gov-tooltip/gov-tooltip.tsx"],"sourcesContent":["/*\n * Tooltip\n */\n\n$class: \".gov-tooltip\";\n\n#{$class} {\n\tposition: relative;\n\tdisplay: inline;\n\tborder-bottom: 1px dashed currentcolor;\n\tcolor: color(\"primary\");\n\tcursor: help;\n\n\t// VARIANTS\n\t@include parameter(\"icon\") {\n\t\tdisplay: inline-flex;\n\t\twidth: rem-calc(16);\n\t\theight: rem-calc(16);\n\t\tborder-bottom: 0;\n\t\tcolor: inherit;\n\t}\n\t@each $variant, $definitions in $tooltip-content-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t--#{$prefix}tooltip-content-bg-color: #{get(\"bg-color\", $definitions)};\n\t\t\t--#{$prefix}tooltip-content-text-color: #{get(\"text-color\", $definitions)};\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\t--#{$prefix}tooltip-content-bg-color: #{color(\"neutral.white\")};\n\t\t\t\t--#{$prefix}tooltip-content-text-color: #{get(\"text-color-inverse\", $definitions)};\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport {\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipVariant,\n\tTooltipVariantType,\n} from './constants'\nimport { createID } from '../../utils/string.utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-tooltip',\n\tstyleUrl: 'gov-tooltip.scss',\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate content: HTMLGovTooltipContentElement\n\tprivate readonly tooltipId\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID('GovTooltip')\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly variant?: TooltipVariantType = 'primary'\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = 'm'\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop() position: TooltipPositionType = 'right'\n\t/**\n\t * Information contained in the tolltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({ attribute: 'icon' }) readonly icon: boolean = undefined\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TooltipVariant, newValue, TooltipClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch('position')\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tconst hasContentInside = this.host.querySelector(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\tif (hasContentInside) {\n\t\t\tthis.content = hasContentInside\n\t\t} else {\n\t\t\tthis.content = document.createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tthis.content.innerHTML = this.message\n\t\t\tthis.host.appendChild(this.content)\n\t\t}\n\n\t\tthis.content.setAttribute('id', this.identifier ?? this.tooltipId)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener('focus', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener('blur', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.hideTooltip()\n\t\t})\n\t\tthis.host.addEventListener('mouseenter', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener('mouseleave', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.hideTooltip()\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\t// @TODO Improve positioning of broken lines\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\t\tconst tltWidth = this.content.offsetWidth\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tif (offset + triggerPos.left < tltWidth) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.style.left = '0px'\n\t\t\t\tthis.content.style.width = window.innerWidth - triggerPos.left - offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t} else if (this.position === TooltipPosition.RIGHT) {\n\t\t\tif (windowWidth - (triggerPos.left + trgWidth) < tltWidth) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.style.right = '0px'\n\t\t\t\tthis.content.style.left = 'auto'\n\t\t\t\tthis.content.style.width = trgWidth + triggerPos.left + offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t} else {\n\t\t\t// doesn't fit from the left\n\t\t\tif (tltWidth / 2 > triggerPos.left) {\n\t\t\t\tthis.content.style.left = '0px'\n\t\t\t\tthis.content.style.width = window.innerWidth - triggerPos.left - offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t\t// doesn't fit from the right\n\t\t\telse if (tltWidth / 2 > windowWidth - (triggerPos.left + tltWidth)) {\n\t\t\t\tthis.content.style.right = '0px'\n\t\t\t\tthis.content.style.left = 'auto'\n\t\t\t\tthis.content.style.width = trgWidth + triggerPos.left + offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.verifyPositionSpace()\n\t\t\tthis.content.setAttribute('is-visible', 'true')\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.content.setAttribute('is-visible', 'false')\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}\n\t\t\t\tsize={this.size}\n\t\t\t\ttabindex={0}\n\t\t\t\taria-describedby={this.identifier ?? this.tooltipId}\n\t\t\t\tvariant={this.variant}\n\t\t\t>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hidding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.hideTooltip()\n\t}\n}\n"],"version":3}
|
|
1
|
+
{"file":"gov-tooltip.entry.cjs.js","mappings":"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","names":["govHost","createID","validateProp","TooltipVariant","TooltipClass","TooltipSize","TooltipPosition","TooltipContentClass","h","Host"],"sources":["../../../packages/core/src/components/gov-tooltip/gov-tooltip.scss?tag=gov-tooltip","../../../packages/core/src/components/gov-tooltip/gov-tooltip.tsx"],"sourcesContent":["/*\n * Tooltip\n */\n\n$class: \".gov-tooltip\";\n\n#{$class} {\n\tposition: relative;\n\tdisplay: inline;\n\tborder-bottom: 1px dashed currentcolor;\n\tcolor: color(\"primary\");\n\tcursor: help;\n\n\t// VARIANTS\n\t@include parameter(\"icon\") {\n\t\tdisplay: inline-flex;\n\t\tborder-bottom: 0;\n\t}\n\t@each $variant, $definitions in $tooltip-content-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t--#{$prefix}tooltip-content-bg-color: #{get(\"bg-color\", $definitions)};\n\t\t\t--#{$prefix}tooltip-content-text-color: #{get(\"text-color\", $definitions)};\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\t--#{$prefix}tooltip-content-bg-color: #{color(\"neutral.white\")};\n\t\t\t\t--#{$prefix}tooltip-content-text-color: #{get(\"text-color-inverse\", $definitions)};\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport {\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipVariant,\n\tTooltipVariantType,\n} from './constants'\nimport { createID } from '../../utils/string.utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-tooltip',\n\tstyleUrl: 'gov-tooltip.scss',\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate content: HTMLGovTooltipContentElement\n\tprivate readonly tooltipId\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID('GovTooltip')\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly variant?: TooltipVariantType = 'primary'\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = 'm'\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop() position: TooltipPositionType = 'right'\n\t/**\n\t * Information contained in the tolltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({ attribute: 'icon' }) readonly icon: boolean = undefined\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TooltipVariant, newValue, TooltipClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch('position')\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tconst hasContentInside = this.host.querySelector(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\tif (hasContentInside) {\n\t\t\tthis.content = hasContentInside\n\t\t} else {\n\t\t\tthis.content = document.createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tthis.content.innerHTML = this.message\n\t\t\tthis.host.appendChild(this.content)\n\t\t}\n\n\t\tthis.content.setAttribute('id', this.identifier ?? this.tooltipId)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener('focus', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener('blur', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.hideTooltip()\n\t\t})\n\t\tthis.host.addEventListener('mouseenter', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener('mouseleave', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.hideTooltip()\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\t// @TODO Improve positioning of broken lines\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\t\tconst tltWidth = this.content.offsetWidth\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tif (offset + triggerPos.left < tltWidth) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.style.left = '0px'\n\t\t\t\tthis.content.style.width = window.innerWidth - triggerPos.left - offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t} else if (this.position === TooltipPosition.RIGHT) {\n\t\t\tif (windowWidth - (triggerPos.left + trgWidth) < tltWidth) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.style.right = '0px'\n\t\t\t\tthis.content.style.left = 'auto'\n\t\t\t\tthis.content.style.width = trgWidth + triggerPos.left + offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t} else {\n\t\t\t// doesn't fit from the left\n\t\t\tif (tltWidth / 2 > triggerPos.left) {\n\t\t\t\tthis.content.style.left = '0px'\n\t\t\t\tthis.content.style.width = window.innerWidth - triggerPos.left - offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t\t// doesn't fit from the right\n\t\t\telse if (tltWidth / 2 > windowWidth - (triggerPos.left + tltWidth)) {\n\t\t\t\tthis.content.style.right = '0px'\n\t\t\t\tthis.content.style.left = 'auto'\n\t\t\t\tthis.content.style.width = trgWidth + triggerPos.left + offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.verifyPositionSpace()\n\t\t\tthis.content.setAttribute('is-visible', 'true')\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.content.setAttribute('is-visible', 'false')\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}\n\t\t\t\tsize={this.size}\n\t\t\t\ttabindex={0}\n\t\t\t\taria-describedby={this.identifier ?? this.tooltipId}\n\t\t\t\tvariant={this.variant}\n\t\t\t>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hidding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.hideTooltip()\n\t}\n}\n"],"version":3}
|
|
@@ -312,124 +312,124 @@
|
|
|
312
312
|
.gov-accordion-item__content > *:last-child {
|
|
313
313
|
margin-bottom: 0;
|
|
314
314
|
}
|
|
315
|
-
.gov-accordion-item[size=xs] .gov-accordion-item__header {
|
|
315
|
+
.gov-accordion-item[size=xs] .gov-accordion-item__header, .gov-accordion-item .gov-accordion-item[size=xs] .gov-accordion-item__header {
|
|
316
316
|
gap: var(--gov-accordion-s-headline-gap, 0.5rem);
|
|
317
317
|
min-height: var(--gov-accordion-s-min-height, 3rem);
|
|
318
318
|
padding: var(--gov-accordion-s-padding-y, 0.75rem) var(--gov-accordion-s-padding-x, 0.5rem);
|
|
319
319
|
}
|
|
320
|
-
.gov-accordion-item[size=xs] .gov-accordion-item__arrow {
|
|
320
|
+
.gov-accordion-item[size=xs] .gov-accordion-item__arrow, .gov-accordion-item .gov-accordion-item[size=xs] .gov-accordion-item__arrow {
|
|
321
321
|
width: var(--gov-accordion-s-icon-size, 0.75rem);
|
|
322
322
|
height: var(--gov-accordion-s-icon-size, 0.75rem);
|
|
323
323
|
}
|
|
324
|
-
.gov-accordion-item[size=xs] .gov-accordion-item__icon {
|
|
324
|
+
.gov-accordion-item[size=xs] .gov-accordion-item__icon, .gov-accordion-item .gov-accordion-item[size=xs] .gov-accordion-item__icon {
|
|
325
325
|
width: calc(var(--gov-text-m-font-size) * 1.2);
|
|
326
326
|
height: calc(var(--gov-text-m-font-size) * 1.2);
|
|
327
327
|
transform: translateY(var(--gov-accordion-s-icon-position, 0.0625rem));
|
|
328
328
|
}
|
|
329
|
-
.gov-accordion-item[size=xs] .gov-accordion-item__title {
|
|
329
|
+
.gov-accordion-item[size=xs] .gov-accordion-item__title, .gov-accordion-item .gov-accordion-item[size=xs] .gov-accordion-item__title {
|
|
330
330
|
font-weight: var(--gov-text-m-font-weight);
|
|
331
331
|
font-size: var(--gov-text-m-font-size);
|
|
332
332
|
line-height: var(--gov-text-m-line-height);
|
|
333
333
|
letter-spacing: var(--gov-text-m-letter-spacing);
|
|
334
334
|
gap: var(--gov-accordion-s-headline-gap, 0.5rem);
|
|
335
335
|
}
|
|
336
|
-
.gov-accordion-item[size=xs] .gov-accordion-item__annot {
|
|
336
|
+
.gov-accordion-item[size=xs] .gov-accordion-item__annot, .gov-accordion-item .gov-accordion-item[size=xs] .gov-accordion-item__annot {
|
|
337
337
|
font-weight: var(--gov-text-s-font-weight);
|
|
338
338
|
font-size: var(--gov-text-s-font-size);
|
|
339
339
|
line-height: var(--gov-text-s-line-height);
|
|
340
340
|
letter-spacing: var(--gov-text-s-letter-spacing);
|
|
341
341
|
}
|
|
342
|
-
.gov-accordion-item[size=xs] .gov-accordion-item__content {
|
|
342
|
+
.gov-accordion-item[size=xs] .gov-accordion-item__content, .gov-accordion-item .gov-accordion-item[size=xs] .gov-accordion-item__content {
|
|
343
343
|
padding: var(--gov-accordion-s-padding-inner, 1rem 0.5rem);
|
|
344
344
|
}
|
|
345
|
-
.gov-accordion-item[size=s] .gov-accordion-item__header {
|
|
345
|
+
.gov-accordion-item[size=s] .gov-accordion-item__header, .gov-accordion-item .gov-accordion-item[size=s] .gov-accordion-item__header {
|
|
346
346
|
gap: var(--gov-accordion-s-headline-gap, 0.5rem);
|
|
347
347
|
min-height: var(--gov-accordion-s-min-height, 3rem);
|
|
348
348
|
padding: var(--gov-accordion-s-padding-y, 1.125rem) var(--gov-accordion-s-padding-x, 0.5rem);
|
|
349
349
|
}
|
|
350
|
-
.gov-accordion-item[size=s] .gov-accordion-item__arrow {
|
|
350
|
+
.gov-accordion-item[size=s] .gov-accordion-item__arrow, .gov-accordion-item .gov-accordion-item[size=s] .gov-accordion-item__arrow {
|
|
351
351
|
width: var(--gov-accordion-s-icon-size, 0.75rem);
|
|
352
352
|
height: var(--gov-accordion-s-icon-size, 0.75rem);
|
|
353
353
|
}
|
|
354
|
-
.gov-accordion-item[size=s] .gov-accordion-item__icon {
|
|
354
|
+
.gov-accordion-item[size=s] .gov-accordion-item__icon, .gov-accordion-item .gov-accordion-item[size=s] .gov-accordion-item__icon {
|
|
355
355
|
width: calc(var(--gov-text-xl-font-size) * 1.2);
|
|
356
356
|
height: calc(var(--gov-text-xl-font-size) * 1.2);
|
|
357
357
|
transform: translateY(var(--gov-accordion-s-icon-position, 0.0625rem));
|
|
358
358
|
}
|
|
359
|
-
.gov-accordion-item[size=s] .gov-accordion-item__title {
|
|
359
|
+
.gov-accordion-item[size=s] .gov-accordion-item__title, .gov-accordion-item .gov-accordion-item[size=s] .gov-accordion-item__title {
|
|
360
360
|
font-weight: var(--gov-text-xl-font-weight);
|
|
361
361
|
font-size: var(--gov-text-xl-font-size);
|
|
362
362
|
line-height: var(--gov-text-xl-line-height);
|
|
363
363
|
letter-spacing: var(--gov-text-xl-letter-spacing);
|
|
364
364
|
gap: var(--gov-accordion-s-headline-gap, 0.5rem);
|
|
365
365
|
}
|
|
366
|
-
.gov-accordion-item[size=s] .gov-accordion-item__annot {
|
|
366
|
+
.gov-accordion-item[size=s] .gov-accordion-item__annot, .gov-accordion-item .gov-accordion-item[size=s] .gov-accordion-item__annot {
|
|
367
367
|
font-weight: var(--gov-text-m-font-weight);
|
|
368
368
|
font-size: var(--gov-text-m-font-size);
|
|
369
369
|
line-height: var(--gov-text-m-line-height);
|
|
370
370
|
letter-spacing: var(--gov-text-m-letter-spacing);
|
|
371
371
|
}
|
|
372
|
-
.gov-accordion-item[size=s] .gov-accordion-item__content {
|
|
372
|
+
.gov-accordion-item[size=s] .gov-accordion-item__content, .gov-accordion-item .gov-accordion-item[size=s] .gov-accordion-item__content {
|
|
373
373
|
padding: var(--gov-accordion-s-padding-inner, 1rem 0.5rem);
|
|
374
374
|
}
|
|
375
|
-
.gov-accordion-item[size=m] .gov-accordion-item__header {
|
|
375
|
+
.gov-accordion-item[size=m] .gov-accordion-item__header, .gov-accordion-item .gov-accordion-item[size=m] .gov-accordion-item__header {
|
|
376
376
|
gap: var(--gov-accordion-m-headline-gap, 1rem);
|
|
377
377
|
min-height: var(--gov-accordion-m-min-height, 4.5rem);
|
|
378
378
|
padding: var(--gov-accordion-m-padding-y, 1.25rem) var(--gov-accordion-m-padding-x, 0.5rem);
|
|
379
379
|
}
|
|
380
|
-
.gov-accordion-item[size=m] .gov-accordion-item__arrow {
|
|
380
|
+
.gov-accordion-item[size=m] .gov-accordion-item__arrow, .gov-accordion-item .gov-accordion-item[size=m] .gov-accordion-item__arrow {
|
|
381
381
|
width: var(--gov-accordion-m-icon-size, 1rem);
|
|
382
382
|
height: var(--gov-accordion-m-icon-size, 1rem);
|
|
383
383
|
}
|
|
384
|
-
.gov-accordion-item[size=m] .gov-accordion-item__icon {
|
|
384
|
+
.gov-accordion-item[size=m] .gov-accordion-item__icon, .gov-accordion-item .gov-accordion-item[size=m] .gov-accordion-item__icon {
|
|
385
385
|
width: calc(var(--gov-text-2xl-font-size) * 1.2);
|
|
386
386
|
height: calc(var(--gov-text-2xl-font-size) * 1.2);
|
|
387
387
|
transform: translateY(var(--gov-accordion-m-icon-position, 0.125rem));
|
|
388
388
|
}
|
|
389
|
-
.gov-accordion-item[size=m] .gov-accordion-item__title {
|
|
389
|
+
.gov-accordion-item[size=m] .gov-accordion-item__title, .gov-accordion-item .gov-accordion-item[size=m] .gov-accordion-item__title {
|
|
390
390
|
font-weight: var(--gov-text-2xl-font-weight);
|
|
391
391
|
font-size: var(--gov-text-2xl-font-size);
|
|
392
392
|
line-height: var(--gov-text-2xl-line-height);
|
|
393
393
|
letter-spacing: var(--gov-text-2xl-letter-spacing);
|
|
394
394
|
gap: var(--gov-accordion-m-headline-gap, 1rem);
|
|
395
395
|
}
|
|
396
|
-
.gov-accordion-item[size=m] .gov-accordion-item__annot {
|
|
396
|
+
.gov-accordion-item[size=m] .gov-accordion-item__annot, .gov-accordion-item .gov-accordion-item[size=m] .gov-accordion-item__annot {
|
|
397
397
|
font-weight: var(--gov-text-m-font-weight);
|
|
398
398
|
font-size: var(--gov-text-m-font-size);
|
|
399
399
|
line-height: var(--gov-text-m-line-height);
|
|
400
400
|
letter-spacing: var(--gov-text-m-letter-spacing);
|
|
401
401
|
}
|
|
402
|
-
.gov-accordion-item[size=m] .gov-accordion-item__content {
|
|
402
|
+
.gov-accordion-item[size=m] .gov-accordion-item__content, .gov-accordion-item .gov-accordion-item[size=m] .gov-accordion-item__content {
|
|
403
403
|
padding: var(--gov-accordion-m-padding-inner, 1.25rem 0.5rem);
|
|
404
404
|
}
|
|
405
|
-
.gov-accordion-item[size=l] .gov-accordion-item__header {
|
|
405
|
+
.gov-accordion-item[size=l] .gov-accordion-item__header, .gov-accordion-item .gov-accordion-item[size=l] .gov-accordion-item__header {
|
|
406
406
|
gap: var(--gov-accordion-l-headline-gap, 1rem);
|
|
407
407
|
min-height: var(--gov-accordion-l-min-height, 5.5rem);
|
|
408
408
|
padding: var(--gov-accordion-l-padding-y, 1.375rem) var(--gov-accordion-l-padding-x, 0.5rem);
|
|
409
409
|
}
|
|
410
|
-
.gov-accordion-item[size=l] .gov-accordion-item__arrow {
|
|
410
|
+
.gov-accordion-item[size=l] .gov-accordion-item__arrow, .gov-accordion-item .gov-accordion-item[size=l] .gov-accordion-item__arrow {
|
|
411
411
|
width: var(--gov-accordion-l-icon-size, 1.25rem);
|
|
412
412
|
height: var(--gov-accordion-l-icon-size, 1.25rem);
|
|
413
413
|
}
|
|
414
|
-
.gov-accordion-item[size=l] .gov-accordion-item__icon {
|
|
414
|
+
.gov-accordion-item[size=l] .gov-accordion-item__icon, .gov-accordion-item .gov-accordion-item[size=l] .gov-accordion-item__icon {
|
|
415
415
|
width: calc(var(--gov-text-3xl-font-size) * 1.2);
|
|
416
416
|
height: calc(var(--gov-text-3xl-font-size) * 1.2);
|
|
417
417
|
transform: translateY(var(--gov-accordion-l-icon-position, 0.125rem));
|
|
418
418
|
}
|
|
419
|
-
.gov-accordion-item[size=l] .gov-accordion-item__title {
|
|
419
|
+
.gov-accordion-item[size=l] .gov-accordion-item__title, .gov-accordion-item .gov-accordion-item[size=l] .gov-accordion-item__title {
|
|
420
420
|
font-weight: var(--gov-text-3xl-font-weight);
|
|
421
421
|
font-size: var(--gov-text-3xl-font-size);
|
|
422
422
|
line-height: var(--gov-text-3xl-line-height);
|
|
423
423
|
letter-spacing: var(--gov-text-3xl-letter-spacing);
|
|
424
424
|
gap: var(--gov-accordion-l-headline-gap, 1rem);
|
|
425
425
|
}
|
|
426
|
-
.gov-accordion-item[size=l] .gov-accordion-item__annot {
|
|
426
|
+
.gov-accordion-item[size=l] .gov-accordion-item__annot, .gov-accordion-item .gov-accordion-item[size=l] .gov-accordion-item__annot {
|
|
427
427
|
font-weight: var(--gov-text-m-font-weight);
|
|
428
428
|
font-size: var(--gov-text-m-font-size);
|
|
429
429
|
line-height: var(--gov-text-m-line-height);
|
|
430
430
|
letter-spacing: var(--gov-text-m-letter-spacing);
|
|
431
431
|
}
|
|
432
|
-
.gov-accordion-item[size=l] .gov-accordion-item__content {
|
|
432
|
+
.gov-accordion-item[size=l] .gov-accordion-item__content, .gov-accordion-item .gov-accordion-item[size=l] .gov-accordion-item__content {
|
|
433
433
|
padding: var(--gov-accordion-l-padding-inner, 1.25rem 0.5rem);
|
|
434
434
|
}
|
|
435
435
|
.gov-accordion-item[variant=primary] .gov-accordion-item__header {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
|
+
import { FormAutocompleteClass, FormAutocompleteSizes, FormAutocompleteVariants, } from "./constants";
|
|
2
3
|
import { createID } from "../../../utils/string.utils";
|
|
3
|
-
import { FormAutocompleteClass, FormAutocompleteVariants, FormAutocompleteSizes } from "./constants";
|
|
4
4
|
import { validateProp } from "../../../helpers/Validate/props";
|
|
5
|
-
import { has, throttle } from "../../../utils/utils";
|
|
5
|
+
import { delay, has, throttle } from "../../../utils/utils";
|
|
6
6
|
import { toBoolAttr } from "../../../helpers/Dom/template";
|
|
7
7
|
export class GovFormAutocomplete {
|
|
8
8
|
constructor() {
|
|
@@ -39,11 +39,22 @@ export class GovFormAutocomplete {
|
|
|
39
39
|
onArrowUp() {
|
|
40
40
|
if (this.arrowCounter > 0) {
|
|
41
41
|
this.arrowCounter = this.arrowCounter - 1;
|
|
42
|
+
this.moveToView().finally();
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
onArrowDown() {
|
|
45
46
|
if (this.arrowCounter < this.list.length - 1) {
|
|
46
47
|
this.arrowCounter = this.arrowCounter + 1;
|
|
48
|
+
this.moveToView().finally();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async moveToView() {
|
|
52
|
+
await delay(200);
|
|
53
|
+
const heightOfList = this.listRef.offsetHeight;
|
|
54
|
+
const selected = this.listRef.querySelector("li[aria-selected=\"true\"]");
|
|
55
|
+
if (selected && heightOfList) {
|
|
56
|
+
const offsetTop = selected.offsetTop;
|
|
57
|
+
this.listRef.scrollTo({ top: offsetTop, behavior: "smooth" });
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
60
|
doSearch() {
|
|
@@ -69,7 +80,7 @@ export class GovFormAutocomplete {
|
|
|
69
80
|
this.validateSize(this.size);
|
|
70
81
|
}
|
|
71
82
|
render() {
|
|
72
|
-
return (h(Host, { class: FormAutocompleteClass.root, size: this.size, variant: this.variant }, h("gov-form-input", { placeholder: this.placeholder, name: this.name, disabled: this.disabled, readonly: this.readonly, autocomplete: false, size: this.size, variant: this.variant, required: this.required, invalid: this.invalid, role: "searchbox", value: this.value, minlength: this.minlength, maxlength: this.maxlength, "on-gov-input": throttle(this.onInputHandler.bind(this), 200), "on-gov-keyup": this.onKeyUpHandler.bind(this), "on-gov-focus": this.onFocusHandler.bind(this), "on-gov-blur": this.onBlurHandler.bind(this), wcagAutocomplete: "list", wcagDescribedBy: this.wcagDescribedBy, wcagLabelledBy: this.wcagLabelledBy, wcagOwns: [this.listBoxId, this.wcagOwns].join(" "), wcagExpanded: this.list.length && this.focused, ref: el => (this.inputRef = el) }, h("slot", { slot: "right-icon", name: "right-icon" })), h("ul", { class: FormAutocompleteClass.list, role: "listbox", id: this.listBoxId }, this.list.map((item, index) => {
|
|
83
|
+
return (h(Host, { class: FormAutocompleteClass.root, size: this.size, variant: this.variant }, h("gov-form-input", { placeholder: this.placeholder, name: this.name, disabled: this.disabled, readonly: this.readonly, autocomplete: false, size: this.size, variant: this.variant, required: this.required, invalid: this.invalid, role: "searchbox", value: this.value, minlength: this.minlength, maxlength: this.maxlength, "on-gov-input": throttle(this.onInputHandler.bind(this), 200), "on-gov-keyup": this.onKeyUpHandler.bind(this), "on-gov-keydown": this.onKeyDownHandler.bind(this), "on-gov-focus": this.onFocusHandler.bind(this), "on-gov-blur": this.onBlurHandler.bind(this), wcagAutocomplete: "list", wcagDescribedBy: this.wcagDescribedBy, wcagLabelledBy: this.wcagLabelledBy, wcagOwns: [this.listBoxId, this.wcagOwns].join(" "), wcagExpanded: this.list.length && this.focused, ref: el => (this.inputRef = el) }, h("slot", { slot: "right-icon", name: "right-icon" })), h("ul", { class: FormAutocompleteClass.list, role: "listbox", id: this.listBoxId, ref: el => (this.listRef = el) }, this.list.map((item, index) => {
|
|
73
84
|
const isSelected = this.arrowCounter === index;
|
|
74
85
|
return (h("li", { class: FormAutocompleteClass.item, innerHTML: this.templateResolver(item, isSelected), role: "option", "aria-posinset": index, tabindex: isSelected ? 0 : -1, "aria-setsize": this.list.length, onClick: () => this.onSelectHandler(index), "aria-selected": toBoolAttr(isSelected) }));
|
|
75
86
|
}))));
|
|
@@ -85,7 +96,7 @@ export class GovFormAutocomplete {
|
|
|
85
96
|
originalEvent: e,
|
|
86
97
|
component: FormAutocompleteClass.root,
|
|
87
98
|
value: this.value,
|
|
88
|
-
selected: null
|
|
99
|
+
selected: null,
|
|
89
100
|
});
|
|
90
101
|
}
|
|
91
102
|
onBlurHandler(e) {
|
|
@@ -97,7 +108,7 @@ export class GovFormAutocomplete {
|
|
|
97
108
|
originalEvent: e,
|
|
98
109
|
component: FormAutocompleteClass.root,
|
|
99
110
|
value: this.value,
|
|
100
|
-
selected: null
|
|
111
|
+
selected: null,
|
|
101
112
|
});
|
|
102
113
|
}
|
|
103
114
|
onInputHandler(e) {
|
|
@@ -107,7 +118,7 @@ export class GovFormAutocomplete {
|
|
|
107
118
|
originalEvent: e,
|
|
108
119
|
component: FormAutocompleteClass.root,
|
|
109
120
|
value: this.value,
|
|
110
|
-
selected: null
|
|
121
|
+
selected: null,
|
|
111
122
|
});
|
|
112
123
|
this.doSearch();
|
|
113
124
|
}
|
|
@@ -123,7 +134,7 @@ export class GovFormAutocomplete {
|
|
|
123
134
|
this.govSelect.emit({
|
|
124
135
|
component: FormAutocompleteClass.root,
|
|
125
136
|
value: this.value,
|
|
126
|
-
selected: selected
|
|
137
|
+
selected: selected,
|
|
127
138
|
});
|
|
128
139
|
this.list = [];
|
|
129
140
|
if (has(this.nameKey, selected) && typeof selected[this.nameKey] === "string") {
|
|
@@ -138,8 +149,17 @@ export class GovFormAutocomplete {
|
|
|
138
149
|
this.onArrowUp();
|
|
139
150
|
else if (event.keyCode === 40)
|
|
140
151
|
this.onArrowDown();
|
|
141
|
-
else if (event.keyCode === 13)
|
|
152
|
+
else if (event.keyCode === 13) {
|
|
153
|
+
e.preventDefault();
|
|
142
154
|
this.onSelectHandler();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
onKeyDownHandler(e) {
|
|
158
|
+
const event = e.detail.originalEvent;
|
|
159
|
+
e.stopPropagation();
|
|
160
|
+
if (event.keyCode === 13) {
|
|
161
|
+
e.preventDefault();
|
|
162
|
+
}
|
|
143
163
|
}
|
|
144
164
|
/**
|
|
145
165
|
* Returns the current state of the component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gov-form-autocomplete.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE5G,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAe,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACjH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAQ1D,MAAM,OAAO,mBAAmB;EAM/B;IAFQ,qBAAgB,GAAiE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBAUnE,EAAE;;;;gBAgBd,GAAG;mBAIJ,MAAM;;oBASJ,KAAK;;;;;qBAqBL,CAAC;;;;;;sBAmChB,KAAK;wBACH,CAAC,CAAC;gBACiB,EAAE;IA9F5C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;GACvC;EAgGD,eAAe,CAAC,QAAgB;IAC/B,YAAY,CAAC,wBAAwB,EAAE,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAA;EAC7E,CAAC;EAGD,YAAY,CAAC,QAAgB;IAC5B,YAAY,CAAC,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAA;EAC1E,CAAC;EAEO,SAAS;IAChB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;MAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;KACzC;EACF,CAAC;EAEO,WAAW;IAClB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;MAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;KACzC;EACF,CAAC;EAEO,QAAQ;IACf,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;MACtG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;MACd,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;MACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;MACvB,OAAM;KACN;IACD,IAAI,IAAI,CAAC,cAAc,EAAE;MACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;MACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;SAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;SACxC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;SAC7B,OAAO,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;MACxB,CAAC,CAAC,CAAA;KACH;EACF,CAAC;EAED,iBAAiB;IAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;EAC7B,CAAC;EAED,MAAM;IACL,OAAO,CACN,EAAC,IAAI,IAAC,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO;MAC9E,sBACC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,YAAY,EAAE,KAAK,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,kBACX,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,kBAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1C,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACnD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAC9C,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAA6B,CAAC;QAE1D,YAAM,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,GAAG,CAC5B;MACjB,UAAI,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,IACxE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAA;QAC9C,OAAO,CACN,UACC,KAAK,EAAE,qBAAqB,CAAC,IAAI,EACjC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,EAClD,IAAI,EAAE,QAAQ,mBACC,KAAK,EACpB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,mBAC3B,UAAU,CAAC,UAAU,CAAC,GACpC,CACF,CAAA;MACF,CAAC,CAAC,CACE,CACC,CACP,CAAA;EACF,CAAC;EAEO,cAAc,CAAC,CAAa;IACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;IACtB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;MAChE,IAAI,CAAC,QAAQ,EAAE,CAAA;KACf;IACD,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;MAClB,aAAa,EAAE,CAAC;MAChB,SAAS,EAAE,qBAAqB,CAAC,IAAI;MACrC,KAAK,EAAE,IAAI,CAAC,KAAK;MACjB,QAAQ,EAAE,IAAI;KACd,CAAC,CAAA;EACH,CAAC;EAEO,aAAa,CAAC,CAAa;IAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACpB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACvC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;IACtB,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;MACjB,aAAa,EAAE,CAAC;MAChB,SAAS,EAAE,qBAAqB,CAAC,IAAI;MACrC,KAAK,EAAE,IAAI,CAAC,KAAK;MACjB,QAAQ,EAAE,IAAI;KACd,CAAC,CAAA;EACH,CAAC;EAEO,cAAc,CAAC,CAAa;IACnC,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAAkC,CAAC,KAAK,CAAA;IACxD,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;MAClB,aAAa,EAAE,CAAC;MAChB,SAAS,EAAE,qBAAqB,CAAC,IAAI;MACrC,KAAK,EAAE,IAAI,CAAC,KAAK;MACjB,QAAQ,EAAE,IAAI;KACd,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,EAAE,CAAA;EAChB,CAAC;EAEO,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAsC,IAAI,CAAA;IACtD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;MACf,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3B;SAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;MAC7C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KACvC;IACD,IAAI,QAAQ,EAAE;MACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE,qBAAqB,CAAC,IAAI;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,QAAQ;OAClB,CAAC,CAAA;MACF,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;MACd,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC9E,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;OACnC;KACD;EACF,CAAC;EAEO,cAAc,CAAC,CAAc;IACpC,MAAM,KAAK,GAAI,CAAC,CAAC,MAAyB,CAAC,aAA8B,CAAA;IACzE,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;MAAE,IAAI,CAAC,SAAS,EAAE,CAAA;SACrC,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;MAAE,IAAI,CAAC,WAAW,EAAE,CAAA;SAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;MAAE,IAAI,CAAC,eAAe,EAAE,CAAA;EACtD,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,QAAQ,CAAC,OAAsB;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;EACpC,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,UAAU;IACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACf,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAA;IAExB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;EACjC,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,iBAAiB,CAAC,QAAyC;IAChE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;EAC/B,CAAC;EAED;;;KAGG;EAEH,KAAK,CAAC,mBAAmB,CAAC,QAAmD;IAC5E,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAA;EACjC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Element, Host, h, Prop, Watch, Event, EventEmitter, State, Method } from \"@stencil/core\"\nimport { SizesType } from \"./constants\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { FormAutocompleteClass, FormAutocompleteVariants, VariantType, FormAutocompleteSizes } from \"./constants\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { has, throttle } from \"../../../utils/utils\"\nimport { FormAutocompleteEvent, GovFormAutocompleteItem } from \"./gov-form-autocomplete.types\"\nimport { toBoolAttr } from \"../../../helpers/Dom/template\"\nimport { Nullable } from \"../../../types/interfaces\"\nimport { FormInputEvent } from \"../input/gov-form-input.types\"\n\n@Component({\n\ttag: \"gov-form-autocomplete\",\n\tstyleUrl: \"gov-form-autocomplete.scss\",\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\n\tconstructor() {\n\t\tthis.listBoxId = createID(\"GovListBox\")\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value = \"\"\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: VariantType\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = \"m\"\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop() readonly nameKey: string = \"name\"\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 2\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-owns\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-input\" }) govInput: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-select\" }) govSelect: EventEmitter<FormAutocompleteEvent>\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteVariants, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (Number.isInteger(this.minlength) && String(this.value).length <= this.minlength && this.minlength) {\n\t\t\tthis.list = []\n\t\t\tthis.arrowCounter = -1\n\t\t\tthis.processing = false\n\t\t\treturn\n\t\t}\n\t\tif (this.searchCallback) {\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\trole={\"searchbox\"}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={throttle(this.onInputHandler.bind(this), 200)}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\twcagAutocomplete={\"list\"}\n\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\twcagOwns={[this.listBoxId, this.wcagOwns].join(\" \")}\n\t\t\t\t\twcagExpanded={this.list.length && this.focused}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot slot=\"right-icon\" name=\"right-icon\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list} role={\"listbox\"} id={this.listBoxId}>\n\t\t\t\t\t{this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={\"option\"}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif ((this.value || this.minlength === 0) && this.searchCallback) {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tsetTimeout(() => (this.list = []), 200)\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLGovFormInputElement).value\n\t\te.stopPropagation()\n\t\tthis.govInput.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null\n\t\t})\n\t\tthis.doSearch()\n\t}\n\n\tprivate onSelectHandler(index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit({\n\t\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\t\tvalue: this.value,\n\t\t\t\tselected: selected\n\t\t\t})\n\t\t\tthis.list = []\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === \"string\") {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) this.onSelectHandler()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = \"\"\n\t\tthis.inputRef.value = \"\"\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"gov-form-autocomplete.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport {\n\tFormAutocompleteClass,\n\tFormAutocompleteSizes,\n\tFormAutocompleteVariants,\n\tSizesType,\n\tVariantType,\n} from \"./constants\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { delay, has, throttle } from \"../../../utils/utils\"\nimport { FormAutocompleteEvent, GovFormAutocompleteItem } from \"./gov-form-autocomplete.types\"\nimport { toBoolAttr } from \"../../../helpers/Dom/template\"\nimport { Nullable } from \"../../../types/interfaces\"\nimport { FormInputEvent } from \"../input/gov-form-input.types\"\n\n@Component({\n\ttag: \"gov-form-autocomplete\",\n\tstyleUrl: \"gov-form-autocomplete.scss\",\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate listRef?: HTMLUListElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\n\tconstructor() {\n\t\tthis.listBoxId = createID(\"GovListBox\")\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value = \"\"\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: VariantType\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = \"m\"\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop() readonly nameKey: string = \"name\"\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 2\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-owns\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-input\" }) govInput: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-select\" }) govSelect: EventEmitter<FormAutocompleteEvent>\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteVariants, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate async moveToView() {\n\t\tawait delay(200)\n\t\tconst heightOfList = this.listRef.offsetHeight\n\t\tconst selected = this.listRef.querySelector(\"li[aria-selected=\\\"true\\\"]\") as HTMLUListElement\n\t\tif (selected && heightOfList) {\n\t\t\tconst offsetTop = selected.offsetTop\n\t\t\tthis.listRef.scrollTo({ top: offsetTop, behavior: \"smooth\" })\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (Number.isInteger(this.minlength) && String(this.value).length <= this.minlength && this.minlength) {\n\t\t\tthis.list = []\n\t\t\tthis.arrowCounter = -1\n\t\t\tthis.processing = false\n\t\t\treturn\n\t\t}\n\t\tif (this.searchCallback) {\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\trole={\"searchbox\"}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={throttle(this.onInputHandler.bind(this), 200)}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-keydown={this.onKeyDownHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\twcagAutocomplete={\"list\"}\n\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\twcagOwns={[this.listBoxId, this.wcagOwns].join(\" \")}\n\t\t\t\t\twcagExpanded={this.list.length && this.focused}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot slot=\"right-icon\" name=\"right-icon\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list}\n\t\t\t\t role={\"listbox\"}\n\t\t\t\t id={this.listBoxId}\n\t\t\t\t ref={el => (this.listRef = el as HTMLUListElement)}>\n\t\t\t\t\t{this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={\"option\"}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif ((this.value || this.minlength === 0) && this.searchCallback) {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tsetTimeout(() => (this.list = []), 200)\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLGovFormInputElement).value\n\t\te.stopPropagation()\n\t\tthis.govInput.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t\tthis.doSearch()\n\t}\n\n\tprivate onSelectHandler(index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit({\n\t\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\t\tvalue: this.value,\n\t\t\t\tselected: selected,\n\t\t\t})\n\t\t\tthis.list = []\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === \"string\") {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tthis.onSelectHandler()\n\t\t}\n\t}\n\n\tprivate onKeyDownHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tif (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = \"\"\n\t\tthis.inputRef.value = \"\"\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"]}
|
|
@@ -230,18 +230,18 @@
|
|
|
230
230
|
.gov-form-control__bottom > *:last-child {
|
|
231
231
|
margin-bottom: 0;
|
|
232
232
|
}
|
|
233
|
+
.gov-form-control .gov-form-label .gov-form-label__label {
|
|
234
|
+
margin: 0rem 0rem 0.25rem;
|
|
235
|
+
}
|
|
236
|
+
.gov-form-control .gov-form-control__bottom {
|
|
237
|
+
margin: 0.25rem 0rem 0rem;
|
|
238
|
+
}
|
|
233
239
|
.gov-form-control[type=file] .gov-form-label[slot=top] .gov-form-label__label {
|
|
234
240
|
margin: 0rem 0rem 0.5rem;
|
|
235
241
|
}
|
|
236
242
|
.gov-form-control[type=file] .gov-form-control__bottom {
|
|
237
243
|
margin: 0.5rem 0rem 0rem;
|
|
238
244
|
}
|
|
239
|
-
.gov-form-control[type=input] .gov-form-label .gov-form-label__label, .gov-form-control[type=select] .gov-form-label .gov-form-label__label, .gov-form-control[type=textarea] .gov-form-label .gov-form-label__label {
|
|
240
|
-
margin: 0rem 0rem 0.25rem;
|
|
241
|
-
}
|
|
242
|
-
.gov-form-control[type=input] .gov-form-control__bottom, .gov-form-control[type=select] .gov-form-control__bottom, .gov-form-control[type=textarea] .gov-form-control__bottom {
|
|
243
|
-
margin: 0.25rem 0rem 0rem;
|
|
244
|
-
}
|
|
245
245
|
.gov-form-control[size=xs][type=checkbox] .gov-form-control__bottom, .gov-form-control[size=xs][type=radio] .gov-form-control__bottom {
|
|
246
246
|
margin-top: var(--gov-form-checkbox-core-xs-message-gap, 0.5rem);
|
|
247
247
|
margin-left: calc(var(--gov-form-checkbox-core-xs-indicator-size, 1.25rem) + var(--gov-form-checkbox-core-xs-gap, 0.75rem));
|
|
@@ -66,7 +66,7 @@ export class GovFormInput {
|
|
|
66
66
|
}
|
|
67
67
|
render() {
|
|
68
68
|
const Tag = this.multiline ? Tags.TEXTAREA : Tags.INPUT;
|
|
69
|
-
return (h(Host, { class: FormInputClass.root, size: this.size, variant: this.variant, type: this.type }, this.h.hasSlot('prefix') && h("slot", { name: "prefix" }), h("span", { class: "element" }, this.h.hasSlot('left-icon') && h("slot", { name: "left-icon" }), this.h.hasSlot('right-icon') && !(this.success || this.invalid) && h("slot", { name: "right-icon" }), this.success && !this.multiline && h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "check-lg" }), this.invalid && !this.multiline && h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "exclamation-lg" }), h(Tag, { type: this.inputType, disabled: this.disabled, id: this.identifier || this.inputId, name: this.name, onFocus: this.onFocusHandler.bind(this), onInput: this.onInputHandler.bind(this), onBlur: this.onBlurHandler.bind(this), onKeyUp: this.onKeyUpHandler.bind(this), ref: el => (this.inputRef = el), placeholder: this.placeholder, value: this.value, readonly: toBoolAttrIfDefined(this.readonly), autocomplete: toOnOffAttrIfDefined(this.autocomplete), autocorrect: toOnOffAttrIfDefined(this.autocorrect), minlength: this.minlength, maxlength: this.maxlength, required: this.required, rows: this.rows, cols: this.cols, role: this.role, "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-disabled": toBoolAttrIfDefined(this.disabled), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-owns": this.wcagOwns, "aria-expanded": toBoolAttrIfDefined(this.wcagExpanded), "aria-autocomplete": this.wcagAutocomplete })), this.h.hasSlot('sufix') && h("slot", { name: "sufix" })));
|
|
69
|
+
return (h(Host, { class: FormInputClass.root, size: this.size, variant: this.variant, type: this.type }, this.h.hasSlot('prefix') && h("slot", { name: "prefix" }), h("span", { class: "element" }, this.h.hasSlot('left-icon') && h("slot", { name: "left-icon" }), this.h.hasSlot('right-icon') && !(this.success || this.invalid) && h("slot", { name: "right-icon" }), this.success && !this.multiline && h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "check-lg" }), this.invalid && !this.multiline && h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "exclamation-lg" }), h(Tag, { type: this.inputType, disabled: this.disabled, id: this.identifier || this.inputId, name: this.name, onFocus: this.onFocusHandler.bind(this), onInput: this.onInputHandler.bind(this), onBlur: this.onBlurHandler.bind(this), onKeyUp: this.onKeyUpHandler.bind(this), onKeyDown: this.onKeyDownHandler.bind(this), ref: el => (this.inputRef = el), placeholder: this.placeholder, value: this.value, readonly: toBoolAttrIfDefined(this.readonly), autocomplete: toOnOffAttrIfDefined(this.autocomplete), autocorrect: toOnOffAttrIfDefined(this.autocorrect), minlength: this.minlength, maxlength: this.maxlength, required: this.required, rows: this.rows, cols: this.cols, role: this.role, "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-disabled": toBoolAttrIfDefined(this.disabled), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-owns": this.wcagOwns, "aria-expanded": toBoolAttrIfDefined(this.wcagExpanded), "aria-autocomplete": this.wcagAutocomplete })), this.h.hasSlot('sufix') && h("slot", { name: "sufix" })));
|
|
70
70
|
}
|
|
71
71
|
onFocusHandler(e) {
|
|
72
72
|
e.stopPropagation();
|
|
@@ -94,6 +94,14 @@ export class GovFormInput {
|
|
|
94
94
|
originalEvent: e,
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
|
+
onKeyDownHandler(e) {
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
this.govKeyDown.emit({
|
|
100
|
+
component: FormInputClass.root,
|
|
101
|
+
value: this.value,
|
|
102
|
+
originalEvent: e,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
97
105
|
onInputHandler(e) {
|
|
98
106
|
this.value = e.target.value;
|
|
99
107
|
e.stopPropagation();
|
|
@@ -709,6 +717,26 @@ export class GovFormInput {
|
|
|
709
717
|
}
|
|
710
718
|
}
|
|
711
719
|
}
|
|
720
|
+
}, {
|
|
721
|
+
"method": "govKeyDown",
|
|
722
|
+
"name": "gov-keydown",
|
|
723
|
+
"bubbles": true,
|
|
724
|
+
"cancelable": true,
|
|
725
|
+
"composed": true,
|
|
726
|
+
"docs": {
|
|
727
|
+
"tags": [],
|
|
728
|
+
"text": "Emitted when the input change value."
|
|
729
|
+
},
|
|
730
|
+
"complexType": {
|
|
731
|
+
"original": "FormInputEvent",
|
|
732
|
+
"resolved": "FormInputEvent",
|
|
733
|
+
"references": {
|
|
734
|
+
"FormInputEvent": {
|
|
735
|
+
"location": "import",
|
|
736
|
+
"path": "./gov-form-input.types"
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
}
|
|
712
740
|
}];
|
|
713
741
|
}
|
|
714
742
|
static get methods() {
|