@skyux/lookup 5.8.4 → 5.9.2
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/documentation.json +5 -5
- package/esm2015/lib/modules/autocomplete/autocomplete.component.js.map +1 -1
- package/esm2015/lib/modules/country-field/country-field.component.js.map +1 -1
- package/esm2015/lib/modules/lookup/lookup-autocomplete-adapter.js.map +1 -1
- package/esm2015/lib/modules/lookup/lookup.component.js.map +1 -1
- package/esm2015/lib/modules/lookup/types/lookup-show-more-native-picker-config.js.map +1 -1
- package/fesm2015/skyux-lookup.js.map +1 -1
- package/lib/modules/autocomplete/autocomplete.component.d.ts +2 -2
- package/lib/modules/lookup/lookup-autocomplete-adapter.d.ts +1 -1
- package/lib/modules/lookup/types/lookup-show-more-native-picker-config.d.ts +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EAGL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAwB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAGL,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAK7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,oCAAoC,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AAKrF,OAAO,EAAE,yCAAyC,EAAE,MAAM,sDAAsD,CAAC;AACjH,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;;;;;;;;;;;;;AAUtG,MAAM,OAAO,kBACX,SAAQ,4BAA4B;IAoNpC,YACU,cAAiC,EACjC,UAAsB,EACtB,SAA0B,EACd,SAAoB,EAChC,OAAgC,EAChC,YAA6B,EAC7B,gBAAwC,EAC7B,eAAwC,EACxC,QAA0B;QAE7C,KAAK,EAAE,CAAC;QAVA,mBAAc,GAAd,cAAc,CAAmB;QACjC,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAiB;QAE1B,YAAO,GAAP,OAAO,CAAyB;QAChC,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,qBAAgB,GAAhB,gBAAgB,CAAwB;QAC7B,oBAAe,GAAf,eAAe,CAAyB;QACxC,aAAQ,GAAR,QAAQ,CAAkB;QA/K/C;;WAEG;QAEI,aAAQ,GAAG,KAAK,CAAC;QAExB;;WAEG;QAEI,mBAAc,GAAG,KAAK,CAAC;QAe9B;;WAEG;QAEI,kBAAa,GAAG,KAAK,CAAC;QAyC7B;;WAEG;QAEI,aAAQ,GAA6C,IAAI,YAAY,EAAE,CAAC;QAyCxE,2BAAsB,GAAG,IAAI,OAAO,EAA0B,CAAC;QAC/D,mBAAc,GAAG,KAAK,CAAC;QACvB,qBAAgB,GAAG,IAAI,OAAO,EAAoB,CAAC;QAsClD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,SAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QACrB,6BAAwB,GAAG,KAAK,CAAC;QA+IzC,kDAAkD;QAClD,gEAAgE;QACzD,aAAQ,GAAG,CAAC,KAAY,EAAE,EAAE,GAAE,CAAC,CAAC;QACvC,gEAAgE;QACzD,cAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QA9H1B,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;IACjC,CAAC;IAtMD;;;;;OAKG;IACH,IACW,IAAI,CAAC,KAAY;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACpE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAuCD;;;OAGG;IACH,IACW,UAAU,CAAC,KAA8B;QAClD,MAAM,gBAAgB,GACpB,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;QAEvD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,gBAAgB,EAAE;YACpB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,+GAA+G;gBAC/G,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBACtC,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;IACxC,CAAC;IAcD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,MAAM,CAAC,KAAiB;QACjC,iFAAiF;QACjF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,IAAI,CAAC,gBAAgB;iBAClB,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;iBACtE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC,OAAO,GAAG;oBACb;wBACE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE;qBAC5C;iBACF,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACpC;IACH,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,IAAW,KAAK,CAAC,QAAe;QAC9B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAMD,IAIY,0BAA0B,CAAC,KAAoC;QACzE,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,IAAY,0BAA0B;QACpC,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC1C,CAAC;IAmDM,QAAQ;QACb,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBAC5B,aAAa,EAAE,IAAI,CAAC,gBAAgB;gBACpC,eAAe,EAAE,IAAI,CAAC,cAAc;oBAClC,CAAC,CAAC,IAAI,CAAC,yBAAyB;oBAChC,CAAC,CAAC,SAAS;gBACb,kBAAkB,EAAE,IAAI,CAAC,cAAc;oBACrC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,CAAC,qBAAqB;aAC/B,CAAC,CAAC;SACJ;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,2EAA2E;YAC3E,wCAAwC;YACxC,IAAI,CAAC,QAAQ,CAAC,cAAc;iBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,CAAC,IAA8B,EAAE,EAAE,CAC5C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAEM,6BAA6B,CAClC,MAAsC;QAEtC,0BAA0B;QAC1B,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YACvC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACrB;IACH,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,cAAc,CAAC,MAAkB;QACtC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,4FAA4F;YAC5F,uFAAuF;YACvF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjC,OAAO,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,uBAAuB,CAC1B,0BAA0B,CAAC,kBAAkB,CAC9C,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAEM,2BAA2B;QAChC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,KAAoB;QACvC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,6CAA6C;YAC7C,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,WAAW;oBACd,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;oBAC/D,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;oBAChE,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBAER,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACX,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;oBAC/D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE;wBAC1C,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;oBACH,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;aACT;SACF;IACH,CAAC;IAEM,UAAU,CAAC,KAAY;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAQM,gBAAgB,CAAC,EAAwB;QAC9C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,iBAAiB,CAAC,EAAc;QACrC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,uCAAuC;IAChC,gBAAgB,CAAC,QAAiB;QACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,SAAS,CAAC;QAClD,IAAI,CAAC,0BAA0B,CAAC,cAAc,GAAG,SAAS,CAAC;IAC7D,CAAC;IAED,uCAAuC;IACvC,kFAAkF;IAClF,kFAAkF;IAClF,wFAAwF;IACjF,YAAY,CAAC,KAAoB,EAAE,KAAa;QACrD,6EAA6E;QAC7E,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,OAAO;oBACV,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,MAAM;oBACT,IAAI,KAAK,EAAE;wBACT,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;qBACvC;yBAAM;wBACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;qBACtC;oBACD,MAAM;gBACR,QAAQ;aACT;SACF;IACH,CAAC;IAEM,UAAU,CAAC,KAAoB;QACpC,6EAA6E;QAC7E,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACX,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,MAAM;oBACT,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,wBAAwB,EAAE;wBACjC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;wBAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;oBACD,MAAM;gBACR,QAAQ;aACT;YAED,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;IACH,CAAC;IAEM,mBAAmB;QACxB,wBAAwB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,uBAAuB,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,gBAAgB;gBACd,IAAI,CAAC,0BAA0B,CAAC,KAAK;oBACrC,IAAI,CAAC,0BAA0B,CAAC,cAAc;wBAC5C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,UAAU,CACb,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,cAAc,CACvE,CAAC;QACF,IAAI,CAAC,0BAA0B,CAAC,oCAAoC,EAAE,CAAC;IACzE,CAAC;IAEM,eAAe,CAAC,KAAkC;QACvD,kBAAkB;QAClB,yBAAyB;QACzB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SACnC;IACH,CAAC;IAEO,0BAA0B,CAAC,aAAqB;;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,WAAW,GAAG,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,KAAI,EAAE,CAAC;QAElE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7B,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;SACtD;QAED,IAAI,mBAEgD,CAAC;QAErD,IAAI,oBAEyC,CAAC;QAE9C,IAAI,kBAE2C,CAAC;QAEhD,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzC,mBAAmB,GAAG,yCAAyC,CAAC;YAChE,kBAAkB,GAAG,oCAAoC,CAAC;YAE1D,oBAAoB,GAAG,IAAI,yCAAyC,EAAE,CAAC;YACvE,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,oBAAoB,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC,CAAC;SACH;aAAM;YACL,mBAAmB,GAAG,oCAAoC,CAAC;YAC3D,kBAAkB,GAAG,+BAA+B,CAAC;YAErD,oBAAoB,GAAG,IAAI,oCAAoC,EAAE,CAAC;YAClE,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YACvC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAC3C;QAED,oBAAoB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClE,oBAAoB,CAAC,aAAa,GAAG,aAAa,CAAC;QACnD,oBAAoB,CAAC,YAAY,GAAG,YAAY,CAAC;QACjD,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,oBAAoB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxD,oBAAoB,CAAC,UAAU,GAAG,WAAW,CAAC;QAE9C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAChD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,mBAAmB;oBAC5B,QAAQ,EAAE,oBAAoB;iBAC/B;aACF;YACD,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,aAAqB;;QACrC,IAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,YAAY,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,aAAa,EAAE,aAAa;gBAC5B,YAAY,EAAE,IAAI,CAAC,KAAK;aACzB,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAEhC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;YAEvE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE;oBAC/B,IAAI,aAAa,GAAU,EAAE,CAAC;oBAE9B,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC7D;yBAAM;wBACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,SAAiB,EAAE,EAAE;4BACjD,IACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAc,EAAE,EAAE;gCACrC,OAAO,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC;4BACvC,CAAC,CAAC,EACF;gCACA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAC1B;wBACH,CAAC,CAAC,CAAC;qBACJ;oBAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAChC;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,aAAa,CAAC,IAAoC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa,CAAC,IAAS;QAC7B,IAAI,aAAoB,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;YAE3B,kFAAkF;YAClF,IACE,CAAC,IAAI,CAAC,UAAU;gBAChB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACd,CAAC,YAAY,EAAE,EAAE,CACf,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAC1D,EACD;gBACA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAEO,qBAAqB;QAC3B,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe;YACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;YAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC;QAEzD,uDAAuD;QACvD,mEAAmE;QACnE,iDAAiD;QAEjD,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;aAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,CAAC,KAAiB,EAAE,EAAE;YAC/B,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEL,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC;aACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,CAAC,KAAoB,EAAE,EAAE;YAClC,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEL,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC;aACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAClD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAEO,mBAAmB,CAAC,IAA8B;QACxD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAEvB,IAAI,CAAC,gBAAgB;qBAClB,iBACJ,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aAC7D;iBAAM;gBACL,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;oBAClC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzC;qBAAM;oBACL,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxB;gBACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC3B;SACF;IACH,CAAC;IAEO,WAAW,CAAC,IAAW;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAC5B,OAAO;gBACL,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,IAAgC;QAC9D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,iBAAiB,CAAC,IAA0B;QAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACnC,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;SACF;IACH,CAAC;;gHArrBU,kBAAkB;oGAAlB,kBAAkB,4bAJlB,CAAC,uBAAuB,CAAC,sFA0KzB,6BAA6B,2BAChC,6BAA6B,iIAa7B,WAAW,6HAMX,WAAW,0HAMX,UAAU,yHAKV,WAAW,kEC/PrB,8gKAgJA;4FDtFa,kBAAkB;kBAR9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;oBACtC,SAAS,EAAE,CAAC,uBAAuB,CAAC;oBACpC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;0BA0NI,IAAI;;0BAAI,QAAQ;;0BAIhB,QAAQ;;0BACR,QAAQ;4CApNJ,SAAS;sBADf,KAAK;gBAUC,cAAc;sBADpB,KAAK;gBAQC,qBAAqB;sBAD3B,KAAK;gBAUK,IAAI;sBADd,KAAK;gBAiBC,QAAQ;sBADd,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAOC,eAAe;sBADrB,KAAK;gBAQC,UAAU;sBADhB,KAAK;gBAOC,aAAa;sBADnB,KAAK;gBAOC,cAAc;sBADpB,KAAK;gBAQK,UAAU;sBADpB,KAAK;gBA2BC,YAAY;sBADlB,KAAK;gBAOC,QAAQ;sBADd,MAAM;gBAkDK,0BAA0B;sBAJrC,SAAS;uBAAC,6BAA6B,EAAE;wBACxC,IAAI,EAAE,6BAA6B;wBACnC,MAAM,EAAE,KAAK;qBACd;gBAcO,yBAAyB;sBAJhC,SAAS;uBAAC,2BAA2B,EAAE;wBACtC,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb;gBAOO,gBAAgB;sBAJvB,SAAS;uBAAC,kBAAkB,EAAE;wBAC7B,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb;gBAMO,gBAAgB;sBAHvB,SAAS;uBAAC,eAAe,EAAE;wBAC1B,IAAI,EAAE,UAAU;qBACjB;gBAOO,qBAAqB;sBAJ5B,SAAS;uBAAC,uBAAuB,EAAE;wBAClC,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyToken,\n SkyTokensMessage,\n SkyTokensMessageType,\n} from '@skyux/indicators';\nimport { SkyModalInstance, SkyModalService } from '@skyux/modals';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';\nimport { SkyAutocompleteMessage } from '../autocomplete/types/autocomplete-message';\nimport { SkyAutocompleteMessageType } from '../autocomplete/types/autocomplete-message-type';\nimport { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';\nimport { SkyAutocompleteSelectionChange } from '../autocomplete/types/autocomplete-selection-change';\nimport { SkyAutocompleteShowMoreArgs } from '../autocomplete/types/autocomplete-show-more-args';\n\nimport { SkyLookupAdapterService } from './lookup-adapter.service';\nimport { SkyLookupAutocompleteAdapter } from './lookup-autocomplete-adapter';\nimport { SkyLookupShowMoreAsyncModalComponent } from './lookup-show-more-async-modal.component';\nimport { SkyLookupShowMoreModalComponent } from './lookup-show-more-modal.component';\nimport { SkyLookupAddCallbackArgs } from './types/lookup-add-click-callback-args';\nimport { SkyLookupAddClickEventArgs } from './types/lookup-add-click-event-args';\nimport { SkyLookupSelectModeType } from './types/lookup-select-mode-type';\nimport { SkyLookupShowMoreConfig } from './types/lookup-show-more-config';\nimport { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';\nimport { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';\n\n@Component({\n selector: 'sky-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [SkyLookupAdapterService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupComponent\n extends SkyLookupAutocompleteAdapter\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Specifies an ARIA label for the typeahead search input\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input includes a visible label, use `ariaLabelledBy` instead.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the typeahead search input. This sets the input's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input does not include a visible label, use `ariaLabel` instead.\n */\n @Input()\n public ariaLabelledBy: string;\n\n /**\n * Specifies the value for the `autocomplete` attribute on the form input.\n * @default \"off\"\n */\n @Input()\n public autocompleteAttribute: string;\n\n /**\n * Specifies a data source for the lookup component to search when users\n * enter text. You can specify static data such as an array of objects, or\n * you can pull data from a database.\n * @default []\n */\n @Input()\n public set data(value: any[]) {\n this._data = value;\n\n if (this.openNativePicker && this.searchAsync.observers.length === 0) {\n this.openNativePicker.componentInstance.updateItemData(value);\n }\n }\n\n public get data(): any[] {\n return this._data;\n }\n\n /**\n * Indicates whether to disable the lookup field.\n */\n @Input()\n public disabled = false;\n\n /**\n * Indicates whether to enable users to open a picker where they can view all options.\n */\n @Input()\n public enableShowMore = false;\n\n /**\n * Specifies placeholder text to display in the lookup field.\n */\n @Input()\n public placeholderText: string;\n\n /**\n * Specifies an object property that represents the object's unique identifier.\n * Specifying this property enables token animations and more efficient rendering.\n */\n @Input()\n public idProperty: string;\n\n /**\n * Indicates whether to display a button that lets users add options to the list.\n */\n @Input()\n public showAddButton = false;\n\n /**\n * Specifies configuration options for the picker that displays all options.\n */\n @Input()\n public showMoreConfig: SkyLookupShowMoreConfig;\n\n /**\n * Specifies whether users can select one option or multiple options.\n * @default \"multiple\"\n */\n @Input()\n public set selectMode(value: SkyLookupSelectModeType) {\n const multipleToSingle: boolean =\n value === 'single' && this.selectMode === 'multiple';\n\n this._selectMode = value;\n this.updateForSelectMode();\n\n if (multipleToSingle) {\n if (this.value && this.value.length > 1) {\n // The `setTimeout` is needed to avoid a `ExpressionChangedAfterItHasBeenCheckedError` error in template forms.\n setTimeout(() => {\n this.writeValue([this.value[0]]);\n this.changeDetector.detectChanges();\n });\n }\n }\n }\n\n public get selectMode(): SkyLookupSelectModeType {\n return this._selectMode || 'multiple';\n }\n\n /**\n * @internal\n */\n @Input()\n public wrapperClass?: string;\n\n /**\n * Fires when users select the button to add options to the list.\n */\n @Output()\n public addClick: EventEmitter<SkyLookupAddClickEventArgs> = new EventEmitter();\n\n public get tokens(): SkyToken[] {\n return this._tokens;\n }\n\n public set tokens(value: SkyToken[]) {\n // Collapse the tokens into a single token if the user has selected many options.\n if (this.enableShowMore && this.value.length > 5) {\n this.resourcesService\n .getString('skyux_lookup_tokens_summary', this.value.length.toString())\n .pipe(take(1))\n .subscribe((label) => {\n this._tokens = [\n {\n value: { [this.descriptorProperty]: label },\n },\n ];\n this.changeDetector.markForCheck();\n });\n } else {\n this._tokens = value;\n this.changeDetector.markForCheck();\n }\n }\n\n public get value(): any[] {\n return this._value ? this._value : [];\n }\n\n public set value(newValue: any[]) {\n this._value = newValue;\n\n if (!this.openNativePicker) {\n this.tokens = this.parseTokens(newValue);\n }\n\n this.onChange(this._value);\n this.onTouched();\n }\n\n public autocompleteController = new Subject<SkyAutocompleteMessage>();\n public isInputFocused = false;\n public tokensController = new Subject<SkyTokensMessage>();\n\n @ViewChild(SkyAutocompleteInputDirective, {\n read: SkyAutocompleteInputDirective,\n static: false,\n })\n private set autocompleteInputDirective(value: SkyAutocompleteInputDirective) {\n this._autocompleteInputDirective = value;\n this.updateForSelectMode();\n }\n\n private get autocompleteInputDirective(): SkyAutocompleteInputDirective {\n return this._autocompleteInputDirective;\n }\n\n @ViewChild('showMoreButtonTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private showMoreButtonTemplateRef: TemplateRef<any>;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<any>;\n\n @ViewChild('lookupWrapper', {\n read: ElementRef,\n })\n private lookupWrapperRef: ElementRef;\n\n @ViewChild('searchIconTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private searchIconTemplateRef: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject();\n private idle = new Subject();\n private markForTokenFocusOnKeyUp = false;\n private openNativePicker: SkyModalInstance;\n\n private _autocompleteInputDirective: SkyAutocompleteInputDirective;\n private _data: any[];\n private _selectMode: SkyLookupSelectModeType;\n private _tokens: SkyToken[];\n private _value: any[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n @Self() @Optional() ngControl: NgControl,\n private adapter: SkyLookupAdapterService,\n private modalService: SkyModalService,\n private resourcesService: SkyLibResourcesService,\n @Optional() public inputBoxHostSvc?: SkyInputBoxHostService,\n @Optional() public themeSvc?: SkyThemeService\n ) {\n super();\n ngControl.valueAccessor = this;\n }\n\n public ngOnInit(): void {\n if (this.inputBoxHostSvc) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsTemplate: this.enableShowMore\n ? this.showMoreButtonTemplateRef\n : undefined,\n iconsInsetTemplate: this.enableShowMore\n ? undefined\n : this.searchIconTemplateRef,\n });\n }\n\n /* istanbul ignore else */\n if (this.themeSvc) {\n // This is required for the autocomplete directive to be set after elements\n // are rearranged when switching themes.\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n if (!this.disabled) {\n this.addEventListeners();\n }\n }\n\n public ngOnDestroy(): void {\n this.removeEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.tokensController.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.emit({\n itemAdded: (args: SkyLookupAddCallbackArgs) =>\n this.onAddButtonComplete(args),\n });\n }\n\n public onAutocompleteSelectionChange(\n change: SkyAutocompleteSelectionChange\n ): void {\n /* istanbul ignore else */\n if (change.selectedItem) {\n this.addToSelected(change.selectedItem);\n } else if (this.selectMode === 'single') {\n this.writeValue([]);\n }\n }\n\n public onAutocompleteBlur(): void {\n this.onTouched();\n }\n\n public onTokensChange(change: SkyToken[]): void {\n if (!change) {\n return;\n }\n\n if (this.tokens !== change) {\n if (change.length === 0) {\n this.focusInput();\n }\n\n // NOTE: We do this here instead of just using the `value` setter because we need to use the\n // set of tokens returned here for the purposes of setting focus (see `onTokensKeyUp`).\n this._value = change.map((token) => {\n return token.value;\n });\n this.tokens = change;\n\n this.sendAutocompleteMessage(\n SkyAutocompleteMessageType.RepositionDropdown\n );\n this.onChange(this._value);\n this.onTouched();\n }\n }\n\n public onTokensFocusIndexOverRange(): void {\n this.windowRef.nativeWindow.setTimeout(() => {\n this.focusInput();\n });\n }\n\n public onTokensKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n /* tslint:disable-next-line:switch-default */\n switch (event.key) {\n case 'Backspace':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.sendTokensMessage(SkyTokensMessageType.FocusPreviousToken);\n event.preventDefault();\n break;\n\n case 'Del':\n case 'Delete':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.windowRef.nativeWindow.setTimeout(() => {\n this.sendTokensMessage(SkyTokensMessageType.FocusActiveToken);\n });\n event.preventDefault();\n break;\n }\n }\n }\n\n public writeValue(value: any[]): void {\n this.value = value ? value : [];\n this.updateForSelectMode();\n }\n\n // Angular automatically constructs these methods.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange = (value: any[]) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onTouched = () => {};\n\n public registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Allows Angular to disable the input.\n public setDisabledState(disabled: boolean): void {\n this.removeEventListeners();\n\n if (!disabled) {\n this.addEventListeners();\n }\n\n this.disabled = disabled;\n this.changeDetector.markForCheck();\n }\n\n public clearSearchText(): void {\n this.autocompleteInputDirective.value = undefined;\n this.autocompleteInputDirective.inputTextValue = undefined;\n }\n\n // Handles when to focus on the tokens.\n // Check for empty search text on keydown, before the escape key is fully pressed.\n // (Otherwise, a single character being escaped would register as empty on keyup.)\n // If empty on keydown, set a flag so that the appropriate action can be taken on keyup.\n public inputKeydown(event: KeyboardEvent, value: string): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n if (value) {\n this.markForTokenFocusOnKeyUp = false;\n } else {\n this.markForTokenFocusOnKeyUp = true;\n }\n break;\n default:\n }\n }\n }\n\n public inputKeyup(event: KeyboardEvent): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Esc':\n case 'Escape':\n this.clearSearchText();\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n /* istanbul ignore else */\n if (this.markForTokenFocusOnKeyUp) {\n this.sendTokensMessage(SkyTokensMessageType.FocusLastToken);\n event.preventDefault();\n }\n break;\n default:\n }\n\n event.stopPropagation();\n }\n }\n\n public onSearchButtonClick(): void {\n /*istanbul ignore next*/\n if (this.disabled) {\n return;\n }\n this.sendAutocompleteMessage(SkyAutocompleteMessageType.CloseDropdown);\n let isValueInTextBox = false;\n if (this.selectMode === 'single') {\n isValueInTextBox =\n this.autocompleteInputDirective.value &&\n this.autocompleteInputDirective.inputTextValue ===\n this.autocompleteInputDirective.value[this.descriptorProperty];\n }\n\n this.openPicker(\n isValueInTextBox ? '' : this.autocompleteInputDirective.inputTextValue\n );\n this.autocompleteInputDirective.restoreInputTextValueToPreviousState();\n }\n\n public onShowMoreClick(event: SkyAutocompleteShowMoreArgs): void {\n /* Sanity check */\n /* istanbul ignore else*/\n if (event) {\n this.openPicker(event.inputValue);\n }\n }\n\n private createNativePickerInstance(initialSearch: string): SkyModalInstance {\n const initialValue = this.value;\n const modalConfig = this.showMoreConfig?.nativePickerConfig || {};\n\n if (!modalConfig.itemTemplate) {\n modalConfig.itemTemplate = this.searchResultTemplate;\n }\n\n let contextProviderType:\n | typeof SkyLookupShowMoreNativePickerContext\n | typeof SkyLookupShowMoreNativePickerAsyncContext;\n\n let contextProviderValue:\n | SkyLookupShowMoreNativePickerContext\n | SkyLookupShowMoreNativePickerAsyncContext;\n\n let modalComponentType:\n | typeof SkyLookupShowMoreModalComponent\n | typeof SkyLookupShowMoreAsyncModalComponent;\n\n if (this.searchAsync.observers.length > 0) {\n contextProviderType = SkyLookupShowMoreNativePickerAsyncContext;\n modalComponentType = SkyLookupShowMoreAsyncModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerAsyncContext();\n contextProviderValue.idProperty = this.idProperty;\n contextProviderValue.searchAsync = (args) => {\n this.searchAsync.emit(args);\n return args.result;\n };\n } else {\n contextProviderType = SkyLookupShowMoreNativePickerContext;\n modalComponentType = SkyLookupShowMoreModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerContext();\n contextProviderValue.items = this.data;\n contextProviderValue.search = this.search;\n }\n\n contextProviderValue.descriptorProperty = this.descriptorProperty;\n contextProviderValue.initialSearch = initialSearch;\n contextProviderValue.initialValue = initialValue;\n contextProviderValue.selectMode = this.selectMode;\n contextProviderValue.showAddButton = this.showAddButton;\n contextProviderValue.userConfig = modalConfig;\n\n return this.modalService.open(modalComponentType, {\n providers: [\n {\n provide: contextProviderType,\n useValue: contextProviderValue,\n },\n ],\n wrapperClass: this.wrapperClass,\n });\n }\n\n public openPicker(initialSearch: string): void {\n if (this.showMoreConfig?.customPicker) {\n this.showMoreConfig.customPicker.open({\n items: this.data,\n initialSearch: initialSearch,\n initialValue: this.value,\n });\n } else {\n const initialValue = this.value;\n\n this.openNativePicker = this.createNativePickerInstance(initialSearch);\n\n this.openNativePicker.componentInstance.addClick.subscribe(() => {\n this.addButtonClicked();\n });\n\n this.openNativePicker.closed.subscribe((closeArgs) => {\n this.openNativePicker = undefined;\n if (closeArgs.reason === 'save') {\n let selectedItems: any[] = [];\n\n if (this.searchAsync.observers.length > 0) {\n selectedItems = closeArgs.data.map((item) => item.itemData);\n } else {\n this.data.forEach((item: any, dataIndex: number) => {\n if (\n closeArgs.data.some((savedItem: any) => {\n return savedItem.index === dataIndex;\n })\n ) {\n selectedItems.push(item);\n }\n });\n }\n\n this.writeValue(selectedItems);\n } else {\n this.writeValue(initialValue);\n }\n\n this.focusInput();\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public onSearchAsync(args: SkyAutocompleteSearchAsyncArgs): void {\n this.searchAsync.emit(args);\n }\n\n private addToSelected(item: any): void {\n let selectedItems: any[];\n\n if (this.selectMode === 'single') {\n selectedItems = [item];\n } else {\n selectedItems = this.value;\n\n // If items have a unique identifier, don't allow the same item to be added twice.\n if (\n !this.idProperty ||\n !this.value.some(\n (existingItem) =>\n existingItem[this.idProperty] === item[this.idProperty]\n )\n ) {\n selectedItems.push(item);\n }\n\n this.clearSearchText();\n }\n\n this.writeValue(selectedItems);\n }\n\n private addEventListeners(): void {\n this.idle = new Subject();\n this.focusInputOnHostClick();\n }\n\n private removeEventListeners(): void {\n this.idle.next();\n this.idle.complete();\n }\n\n private focusInputOnHostClick(): void {\n let hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n const documentObj = this.windowRef.nativeWindow.document;\n\n // Handles focusing the input when the host is clicked.\n // The input should NOT be focused if other elements (tokens, etc.)\n // are currently focused or being tabbed through.\n\n observableFromEvent(documentObj, 'mousedown')\n .pipe(takeUntil(this.idle))\n .subscribe((event: MouseEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(documentObj, 'focusin')\n .pipe(takeUntil(this.idle))\n .subscribe((event: KeyboardEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(hostElement, 'mouseup')\n .pipe(takeUntil(this.idle))\n .subscribe(() => {\n const classList = documentObj.activeElement.classList;\n if (!classList || !classList.contains('sky-token')) {\n this.focusInput();\n }\n });\n }\n\n private focusInput(): void {\n this.adapter.focusInput(this.lookupWrapperRef);\n }\n\n private onAddButtonComplete(args: SkyLookupAddCallbackArgs) {\n if (args.data) {\n this.data = args.data;\n }\n\n if (this.data.indexOf(args.item) >= 0) {\n if (this.openNativePicker) {\n (\n this.openNativePicker\n .componentInstance as SkyLookupShowMoreModalComponent\n ).onItemSelect(true, { value: args.item, selected: false });\n } else {\n let newValue = this.value;\n if (this.selectMode === 'multiple') {\n newValue = this.value.concat(args.item);\n } else {\n newValue = [args.item];\n }\n this.writeValue(newValue);\n }\n }\n }\n\n private parseTokens(data: any[]): SkyToken[] {\n return data.map((item: any) => {\n return {\n value: item,\n };\n });\n }\n\n private sendAutocompleteMessage(type: SkyAutocompleteMessageType): void {\n this.autocompleteController.next({ type });\n }\n\n private sendTokensMessage(type: SkyTokensMessageType): void {\n this.tokensController.next({ type });\n }\n\n private updateForSelectMode(): void {\n if (this.autocompleteInputDirective) {\n if (this.selectMode === 'single') {\n this.autocompleteInputDirective.value = this.value && this.value[0];\n } else {\n this.clearSearchText();\n }\n }\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <div\n class=\"sky-lookup\"\n [ngClass]=\"{\n 'sky-lookup-focused': isInputFocused,\n 'sky-lookup-disabled': disabled,\n 'sky-lookup-single': selectMode === 'single'\n }\"\n #lookupWrapper\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [data]=\"data\"\n [debounceTime]=\"debounceTime\"\n [descriptorProperty]=\"descriptorProperty\"\n [enableShowMore]=\"enableShowMore\"\n [messageStream]=\"autocompleteController\"\n [propertiesToSearch]=\"propertiesToSearch\"\n [search]=\"search\"\n [searchAsyncDisabled]=\"searchAsync.observers.length === 0\"\n [searchFilters]=\"searchFilters\"\n [searchResultsLimit]=\"searchResultsLimit\"\n [searchResultTemplate]=\"searchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n [showAddButton]=\"showAddButton\"\n [wrapperClass]=\"wrapperClass\"\n (addClick)=\"addButtonClicked()\"\n (searchAsync)=\"onSearchAsync($event)\"\n (selectionChange)=\"onAutocompleteSelectionChange($event)\"\n (showMoreClick)=\"onShowMoreClick($event)\"\n >\n <div class=\"sky-lookup-search-flex-wrapper\">\n <div\n class=\"sky-lookup-search\"\n [ngClass]=\"{\n 'sky-field-status-active': isInputFocused && !disabled\n }\"\n >\n <sky-tokens\n *ngIf=\"selectMode === 'multiple'\"\n class=\"sky-lookup-tokens\"\n [disabled]=\"disabled\"\n [displayWith]=\"descriptorProperty\"\n [focusable]=\"false\"\n [messageStream]=\"tokensController\"\n [trackWith]=\"idProperty\"\n [tokens]=\"tokens\"\n (keyup)=\"onTokensKeyUp($event)\"\n (tokensChange)=\"onTokensChange($event)\"\n (tokenSelected)=\"enableShowMore ? openPicker(undefined) : undefined\"\n (focusIndexOverRange)=\"onTokensFocusIndexOverRange()\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n (keydown)=\"inputKeydown($event, $event.target.value)\"\n (keyup)=\"inputKeyup($event)\"\n ></textarea>\n </sky-tokens>\n <div\n *ngIf=\"selectMode === 'single'\"\n class=\"sky-lookup-single-control\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </div>\n <ng-container *ngIf=\"!inputBoxHostSvc && enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"showMoreButtonTemplateRef\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!inputBoxHostSvc && !enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"searchIconTemplateRef\"\n ></ng-container>\n </ng-container>\n </div>\n </sky-autocomplete>\n </div>\n</ng-template>\n\n<ng-template #showMoreButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n class=\"sky-btn sky-btn-default\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'sky-btn-disabled': disabled }\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_search_button_show_more' | skyLibResources\n \"\n (click)=\"onSearchButtonClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"search\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #searchIconTemplateRef>\n <div\n class=\"sky-input-group-icon sky-input-box-icon-inset\"\n [ngClass]=\"{ 'sky-lookup-disabled': disabled }\"\n >\n <sky-icon\n *skyThemeIf=\"'default'\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n </div>\n</ng-template>\n"]}
|
|
1
|
+
{"version":3,"file":"lookup.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.ts","../../../../../../../../libs/components/lookup/src/lib/modules/lookup/lookup.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyToken,\n SkyTokensMessage,\n SkyTokensMessageType,\n} from '@skyux/indicators';\nimport { SkyModalInstance, SkyModalService } from '@skyux/modals';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';\nimport { SkyAutocompleteMessage } from '../autocomplete/types/autocomplete-message';\nimport { SkyAutocompleteMessageType } from '../autocomplete/types/autocomplete-message-type';\nimport { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';\nimport { SkyAutocompleteSelectionChange } from '../autocomplete/types/autocomplete-selection-change';\nimport { SkyAutocompleteShowMoreArgs } from '../autocomplete/types/autocomplete-show-more-args';\n\nimport { SkyLookupAdapterService } from './lookup-adapter.service';\nimport { SkyLookupAutocompleteAdapter } from './lookup-autocomplete-adapter';\nimport { SkyLookupShowMoreAsyncModalComponent } from './lookup-show-more-async-modal.component';\nimport { SkyLookupShowMoreModalComponent } from './lookup-show-more-modal.component';\nimport { SkyLookupAddCallbackArgs } from './types/lookup-add-click-callback-args';\nimport { SkyLookupAddClickEventArgs } from './types/lookup-add-click-event-args';\nimport { SkyLookupSelectModeType } from './types/lookup-select-mode-type';\nimport { SkyLookupShowMoreConfig } from './types/lookup-show-more-config';\nimport { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';\nimport { SkyLookupShowMoreNativePickerContext } from './types/lookup-show-more-native-picker-context';\n\n@Component({\n selector: 'sky-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [SkyLookupAdapterService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyLookupComponent\n extends SkyLookupAutocompleteAdapter\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Specifies an ARIA label for the typeahead search input\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input includes a visible label, use `ariaLabelledBy` instead.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the typeahead search input. This sets the input's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the input does not include a visible label, use `ariaLabel` instead.\n */\n @Input()\n public ariaLabelledBy: string;\n\n /**\n * Specifies the value for the `autocomplete` attribute on the form input.\n * @default \"off\"\n */\n @Input()\n public autocompleteAttribute: string;\n\n /**\n * Specifies a data source for the lookup component to search when users\n * enter text. You can specify static data such as an array of objects, or\n * you can pull data from a database.\n * @default []\n */\n @Input()\n public set data(value: any[]) {\n this._data = value;\n\n if (this.openNativePicker && this.searchAsync.observers.length === 0) {\n this.openNativePicker.componentInstance.updateItemData(value);\n }\n }\n\n public get data(): any[] {\n return this._data;\n }\n\n /**\n * Indicates whether to disable the lookup field.\n */\n @Input()\n public disabled = false;\n\n /**\n * Indicates whether to enable users to open a picker where they can view all options.\n */\n @Input()\n public enableShowMore = false;\n\n /**\n * Specifies placeholder text to display in the lookup field.\n */\n @Input()\n public placeholderText: string;\n\n /**\n * Specifies an object property that represents the object's unique identifier.\n * Specifying this property enables token animations and more efficient rendering.\n */\n @Input()\n public idProperty: string;\n\n /**\n * Indicates whether to display a button that lets users add options to the list.\n */\n @Input()\n public showAddButton = false;\n\n /**\n * Specifies configuration options for the picker that displays all options.\n */\n @Input()\n public showMoreConfig: SkyLookupShowMoreConfig;\n\n /**\n * Specifies whether users can select one option or multiple options.\n * @default \"multiple\"\n */\n @Input()\n public set selectMode(value: SkyLookupSelectModeType) {\n const multipleToSingle: boolean =\n value === 'single' && this.selectMode === 'multiple';\n\n this._selectMode = value;\n this.updateForSelectMode();\n\n if (multipleToSingle) {\n if (this.value && this.value.length > 1) {\n // The `setTimeout` is needed to avoid a `ExpressionChangedAfterItHasBeenCheckedError` error in template forms.\n setTimeout(() => {\n this.writeValue([this.value[0]]);\n this.changeDetector.detectChanges();\n });\n }\n }\n }\n\n public get selectMode(): SkyLookupSelectModeType {\n return this._selectMode || 'multiple';\n }\n\n /**\n * @internal\n */\n @Input()\n public wrapperClass?: string;\n\n /**\n * Fires when users select the button to add options to the list.\n */\n @Output()\n public addClick: EventEmitter<SkyLookupAddClickEventArgs> = new EventEmitter();\n\n public get tokens(): SkyToken[] {\n return this._tokens;\n }\n\n public set tokens(value: SkyToken[]) {\n // Collapse the tokens into a single token if the user has selected many options.\n if (this.enableShowMore && this.value.length > 5) {\n this.resourcesService\n .getString('skyux_lookup_tokens_summary', this.value.length.toString())\n .pipe(take(1))\n .subscribe((label) => {\n this._tokens = [\n {\n value: { [this.descriptorProperty]: label },\n },\n ];\n this.changeDetector.markForCheck();\n });\n } else {\n this._tokens = value;\n this.changeDetector.markForCheck();\n }\n }\n\n public get value(): any[] {\n return this._value ? this._value : [];\n }\n\n public set value(newValue: any[]) {\n this._value = newValue;\n\n if (!this.openNativePicker) {\n this.tokens = this.parseTokens(newValue);\n }\n\n this.onChange(this._value);\n this.onTouched();\n }\n\n public autocompleteController = new Subject<SkyAutocompleteMessage>();\n public isInputFocused = false;\n public tokensController = new Subject<SkyTokensMessage>();\n\n @ViewChild(SkyAutocompleteInputDirective, {\n read: SkyAutocompleteInputDirective,\n static: false,\n })\n private set autocompleteInputDirective(value: SkyAutocompleteInputDirective) {\n this._autocompleteInputDirective = value;\n this.updateForSelectMode();\n }\n\n private get autocompleteInputDirective(): SkyAutocompleteInputDirective {\n return this._autocompleteInputDirective;\n }\n\n @ViewChild('showMoreButtonTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private showMoreButtonTemplateRef: TemplateRef<unknown>;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<unknown>;\n\n @ViewChild('lookupWrapper', {\n read: ElementRef,\n })\n private lookupWrapperRef: ElementRef;\n\n @ViewChild('searchIconTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private searchIconTemplateRef: TemplateRef<unknown>;\n\n private ngUnsubscribe = new Subject();\n private idle = new Subject();\n private markForTokenFocusOnKeyUp = false;\n private openNativePicker: SkyModalInstance;\n\n private _autocompleteInputDirective: SkyAutocompleteInputDirective;\n private _data: any[];\n private _selectMode: SkyLookupSelectModeType;\n private _tokens: SkyToken[];\n private _value: any[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n @Self() @Optional() ngControl: NgControl,\n private adapter: SkyLookupAdapterService,\n private modalService: SkyModalService,\n private resourcesService: SkyLibResourcesService,\n @Optional() public inputBoxHostSvc?: SkyInputBoxHostService,\n @Optional() public themeSvc?: SkyThemeService\n ) {\n super();\n ngControl.valueAccessor = this;\n }\n\n public ngOnInit(): void {\n if (this.inputBoxHostSvc) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsTemplate: this.enableShowMore\n ? this.showMoreButtonTemplateRef\n : undefined,\n iconsInsetTemplate: this.enableShowMore\n ? undefined\n : this.searchIconTemplateRef,\n });\n }\n\n /* istanbul ignore else */\n if (this.themeSvc) {\n // This is required for the autocomplete directive to be set after elements\n // are rearranged when switching themes.\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n if (!this.disabled) {\n this.addEventListeners();\n }\n }\n\n public ngOnDestroy(): void {\n this.removeEventListeners();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.tokensController.complete();\n }\n\n public addButtonClicked(): void {\n this.addClick.emit({\n itemAdded: (args: SkyLookupAddCallbackArgs) =>\n this.onAddButtonComplete(args),\n });\n }\n\n public onAutocompleteSelectionChange(\n change: SkyAutocompleteSelectionChange\n ): void {\n /* istanbul ignore else */\n if (change.selectedItem) {\n this.addToSelected(change.selectedItem);\n } else if (this.selectMode === 'single') {\n this.writeValue([]);\n }\n }\n\n public onAutocompleteBlur(): void {\n this.onTouched();\n }\n\n public onTokensChange(change: SkyToken[]): void {\n if (!change) {\n return;\n }\n\n if (this.tokens !== change) {\n if (change.length === 0) {\n this.focusInput();\n }\n\n // NOTE: We do this here instead of just using the `value` setter because we need to use the\n // set of tokens returned here for the purposes of setting focus (see `onTokensKeyUp`).\n this._value = change.map((token) => {\n return token.value;\n });\n this.tokens = change;\n\n this.sendAutocompleteMessage(\n SkyAutocompleteMessageType.RepositionDropdown\n );\n this.onChange(this._value);\n this.onTouched();\n }\n }\n\n public onTokensFocusIndexOverRange(): void {\n this.windowRef.nativeWindow.setTimeout(() => {\n this.focusInput();\n });\n }\n\n public onTokensKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n /* tslint:disable-next-line:switch-default */\n switch (event.key) {\n case 'Backspace':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.sendTokensMessage(SkyTokensMessageType.FocusPreviousToken);\n event.preventDefault();\n break;\n\n case 'Del':\n case 'Delete':\n this.sendTokensMessage(SkyTokensMessageType.RemoveActiveToken);\n this.windowRef.nativeWindow.setTimeout(() => {\n this.sendTokensMessage(SkyTokensMessageType.FocusActiveToken);\n });\n event.preventDefault();\n break;\n }\n }\n }\n\n public writeValue(value: any[]): void {\n this.value = value ? value : [];\n this.updateForSelectMode();\n }\n\n // Angular automatically constructs these methods.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange = (value: any[]) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onTouched = () => {};\n\n public registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Allows Angular to disable the input.\n public setDisabledState(disabled: boolean): void {\n this.removeEventListeners();\n\n if (!disabled) {\n this.addEventListeners();\n }\n\n this.disabled = disabled;\n this.changeDetector.markForCheck();\n }\n\n public clearSearchText(): void {\n this.autocompleteInputDirective.value = undefined;\n this.autocompleteInputDirective.inputTextValue = undefined;\n }\n\n // Handles when to focus on the tokens.\n // Check for empty search text on keydown, before the escape key is fully pressed.\n // (Otherwise, a single character being escaped would register as empty on keyup.)\n // If empty on keydown, set a flag so that the appropriate action can be taken on keyup.\n public inputKeydown(event: KeyboardEvent, value: string): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n if (value) {\n this.markForTokenFocusOnKeyUp = false;\n } else {\n this.markForTokenFocusOnKeyUp = true;\n }\n break;\n default:\n }\n }\n }\n\n public inputKeyup(event: KeyboardEvent): void {\n /* Sanity check as this should only be called when in multiple select mode */\n /* istanbul ignore else */\n if (this.selectMode !== 'single') {\n switch (event.key) {\n case 'Esc':\n case 'Escape':\n this.clearSearchText();\n event.preventDefault();\n break;\n case 'ArrowLeft':\n case 'Backspace':\n case 'Left':\n /* istanbul ignore else */\n if (this.markForTokenFocusOnKeyUp) {\n this.sendTokensMessage(SkyTokensMessageType.FocusLastToken);\n event.preventDefault();\n }\n break;\n default:\n }\n\n event.stopPropagation();\n }\n }\n\n public onSearchButtonClick(): void {\n /*istanbul ignore next*/\n if (this.disabled) {\n return;\n }\n this.sendAutocompleteMessage(SkyAutocompleteMessageType.CloseDropdown);\n let isValueInTextBox = false;\n if (this.selectMode === 'single') {\n isValueInTextBox =\n this.autocompleteInputDirective.value &&\n this.autocompleteInputDirective.inputTextValue ===\n this.autocompleteInputDirective.value[this.descriptorProperty];\n }\n\n this.openPicker(\n isValueInTextBox ? '' : this.autocompleteInputDirective.inputTextValue\n );\n this.autocompleteInputDirective.restoreInputTextValueToPreviousState();\n }\n\n public onShowMoreClick(event: SkyAutocompleteShowMoreArgs): void {\n /* Sanity check */\n /* istanbul ignore else*/\n if (event) {\n this.openPicker(event.inputValue);\n }\n }\n\n private createNativePickerInstance(initialSearch: string): SkyModalInstance {\n const initialValue = this.value;\n const modalConfig = this.showMoreConfig?.nativePickerConfig || {};\n\n if (!modalConfig.itemTemplate) {\n modalConfig.itemTemplate = this.searchResultTemplate;\n }\n\n let contextProviderType:\n | typeof SkyLookupShowMoreNativePickerContext\n | typeof SkyLookupShowMoreNativePickerAsyncContext;\n\n let contextProviderValue:\n | SkyLookupShowMoreNativePickerContext\n | SkyLookupShowMoreNativePickerAsyncContext;\n\n let modalComponentType:\n | typeof SkyLookupShowMoreModalComponent\n | typeof SkyLookupShowMoreAsyncModalComponent;\n\n if (this.searchAsync.observers.length > 0) {\n contextProviderType = SkyLookupShowMoreNativePickerAsyncContext;\n modalComponentType = SkyLookupShowMoreAsyncModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerAsyncContext();\n contextProviderValue.idProperty = this.idProperty;\n contextProviderValue.searchAsync = (args) => {\n this.searchAsync.emit(args);\n return args.result;\n };\n } else {\n contextProviderType = SkyLookupShowMoreNativePickerContext;\n modalComponentType = SkyLookupShowMoreModalComponent;\n\n contextProviderValue = new SkyLookupShowMoreNativePickerContext();\n contextProviderValue.items = this.data;\n contextProviderValue.search = this.search;\n }\n\n contextProviderValue.descriptorProperty = this.descriptorProperty;\n contextProviderValue.initialSearch = initialSearch;\n contextProviderValue.initialValue = initialValue;\n contextProviderValue.selectMode = this.selectMode;\n contextProviderValue.showAddButton = this.showAddButton;\n contextProviderValue.userConfig = modalConfig;\n\n return this.modalService.open(modalComponentType, {\n providers: [\n {\n provide: contextProviderType,\n useValue: contextProviderValue,\n },\n ],\n wrapperClass: this.wrapperClass,\n });\n }\n\n public openPicker(initialSearch: string): void {\n if (this.showMoreConfig?.customPicker) {\n this.showMoreConfig.customPicker.open({\n items: this.data,\n initialSearch: initialSearch,\n initialValue: this.value,\n });\n } else {\n const initialValue = this.value;\n\n this.openNativePicker = this.createNativePickerInstance(initialSearch);\n\n this.openNativePicker.componentInstance.addClick.subscribe(() => {\n this.addButtonClicked();\n });\n\n this.openNativePicker.closed.subscribe((closeArgs) => {\n this.openNativePicker = undefined;\n if (closeArgs.reason === 'save') {\n let selectedItems: any[] = [];\n\n if (this.searchAsync.observers.length > 0) {\n selectedItems = closeArgs.data.map((item) => item.itemData);\n } else {\n this.data.forEach((item: any, dataIndex: number) => {\n if (\n closeArgs.data.some((savedItem: any) => {\n return savedItem.index === dataIndex;\n })\n ) {\n selectedItems.push(item);\n }\n });\n }\n\n this.writeValue(selectedItems);\n } else {\n this.writeValue(initialValue);\n }\n\n this.focusInput();\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public onSearchAsync(args: SkyAutocompleteSearchAsyncArgs): void {\n this.searchAsync.emit(args);\n }\n\n private addToSelected(item: any): void {\n let selectedItems: any[];\n\n if (this.selectMode === 'single') {\n selectedItems = [item];\n } else {\n selectedItems = this.value;\n\n // If items have a unique identifier, don't allow the same item to be added twice.\n if (\n !this.idProperty ||\n !this.value.some(\n (existingItem) =>\n existingItem[this.idProperty] === item[this.idProperty]\n )\n ) {\n selectedItems.push(item);\n }\n\n this.clearSearchText();\n }\n\n this.writeValue(selectedItems);\n }\n\n private addEventListeners(): void {\n this.idle = new Subject();\n this.focusInputOnHostClick();\n }\n\n private removeEventListeners(): void {\n this.idle.next();\n this.idle.complete();\n }\n\n private focusInputOnHostClick(): void {\n let hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n const documentObj = this.windowRef.nativeWindow.document;\n\n // Handles focusing the input when the host is clicked.\n // The input should NOT be focused if other elements (tokens, etc.)\n // are currently focused or being tabbed through.\n\n observableFromEvent(documentObj, 'mousedown')\n .pipe(takeUntil(this.idle))\n .subscribe((event: MouseEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(documentObj, 'focusin')\n .pipe(takeUntil(this.idle))\n .subscribe((event: KeyboardEvent) => {\n hostElement = !this.inputBoxHostSvc\n ? this.elementRef.nativeElement\n : this.lookupWrapperRef.nativeElement;\n this.isInputFocused = hostElement.contains(event.target);\n\n this.changeDetector.markForCheck();\n });\n\n observableFromEvent(hostElement, 'mouseup')\n .pipe(takeUntil(this.idle))\n .subscribe(() => {\n const classList = documentObj.activeElement.classList;\n if (!classList || !classList.contains('sky-token')) {\n this.focusInput();\n }\n });\n }\n\n private focusInput(): void {\n this.adapter.focusInput(this.lookupWrapperRef);\n }\n\n private onAddButtonComplete(args: SkyLookupAddCallbackArgs) {\n if (args.data) {\n this.data = args.data;\n }\n\n if (this.data.indexOf(args.item) >= 0) {\n if (this.openNativePicker) {\n (\n this.openNativePicker\n .componentInstance as SkyLookupShowMoreModalComponent\n ).onItemSelect(true, { value: args.item, selected: false });\n } else {\n let newValue = this.value;\n if (this.selectMode === 'multiple') {\n newValue = this.value.concat(args.item);\n } else {\n newValue = [args.item];\n }\n this.writeValue(newValue);\n }\n }\n }\n\n private parseTokens(data: any[]): SkyToken[] {\n return data.map((item: any) => {\n return {\n value: item,\n };\n });\n }\n\n private sendAutocompleteMessage(type: SkyAutocompleteMessageType): void {\n this.autocompleteController.next({ type });\n }\n\n private sendTokensMessage(type: SkyTokensMessageType): void {\n this.tokensController.next({ type });\n }\n\n private updateForSelectMode(): void {\n if (this.autocompleteInputDirective) {\n if (this.selectMode === 'single') {\n this.autocompleteInputDirective.value = this.value && this.value[0];\n } else {\n this.clearSearchText();\n }\n }\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <div\n class=\"sky-lookup\"\n [ngClass]=\"{\n 'sky-lookup-focused': isInputFocused,\n 'sky-lookup-disabled': disabled,\n 'sky-lookup-single': selectMode === 'single'\n }\"\n #lookupWrapper\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [data]=\"data\"\n [debounceTime]=\"debounceTime\"\n [descriptorProperty]=\"descriptorProperty\"\n [enableShowMore]=\"enableShowMore\"\n [messageStream]=\"autocompleteController\"\n [propertiesToSearch]=\"propertiesToSearch\"\n [search]=\"search\"\n [searchAsyncDisabled]=\"searchAsync.observers.length === 0\"\n [searchFilters]=\"searchFilters\"\n [searchResultsLimit]=\"searchResultsLimit\"\n [searchResultTemplate]=\"searchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n [showAddButton]=\"showAddButton\"\n [wrapperClass]=\"wrapperClass\"\n (addClick)=\"addButtonClicked()\"\n (searchAsync)=\"onSearchAsync($event)\"\n (selectionChange)=\"onAutocompleteSelectionChange($event)\"\n (showMoreClick)=\"onShowMoreClick($event)\"\n >\n <div class=\"sky-lookup-search-flex-wrapper\">\n <div\n class=\"sky-lookup-search\"\n [ngClass]=\"{\n 'sky-field-status-active': isInputFocused && !disabled\n }\"\n >\n <sky-tokens\n *ngIf=\"selectMode === 'multiple'\"\n class=\"sky-lookup-tokens\"\n [disabled]=\"disabled\"\n [displayWith]=\"descriptorProperty\"\n [focusable]=\"false\"\n [messageStream]=\"tokensController\"\n [trackWith]=\"idProperty\"\n [tokens]=\"tokens\"\n (keyup)=\"onTokensKeyUp($event)\"\n (tokensChange)=\"onTokensChange($event)\"\n (tokenSelected)=\"enableShowMore ? openPicker(undefined) : undefined\"\n (focusIndexOverRange)=\"onTokensFocusIndexOverRange()\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n (keydown)=\"inputKeydown($event, $event.target.value)\"\n (keyup)=\"inputKeyup($event)\"\n ></textarea>\n </sky-tokens>\n <div\n *ngIf=\"selectMode === 'single'\"\n class=\"sky-lookup-single-control\"\n >\n <textarea\n class=\"sky-form-control sky-lookup-input\"\n rows=\"1\"\n skyAutocomplete\n wrap=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.placeholder]=\"placeholderText\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [disabled]=\"disabled\"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </div>\n <ng-container *ngIf=\"!inputBoxHostSvc && enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"showMoreButtonTemplateRef\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!inputBoxHostSvc && !enableShowMore\">\n <ng-container\n *ngTemplateOutlet=\"searchIconTemplateRef\"\n ></ng-container>\n </ng-container>\n </div>\n </sky-autocomplete>\n </div>\n</ng-template>\n\n<ng-template #showMoreButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n class=\"sky-btn sky-btn-default\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'sky-btn-disabled': disabled }\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_search_button_show_more' | skyLibResources\n \"\n (click)=\"onSearchButtonClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"search\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #searchIconTemplateRef>\n <div\n class=\"sky-input-group-icon sky-input-box-icon-inset\"\n [ngClass]=\"{ 'sky-lookup-disabled': disabled }\"\n >\n <sky-icon\n *skyThemeIf=\"'default'\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconType=\"skyux\"\n icon=\"search\"\n [attr.aria-label]=\"'skyux_lookup_search_icon' | skyLibResources\"\n ></sky-icon>\n </div>\n</ng-template>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-show-more-native-picker-config.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/lookup/src/lib/modules/lookup/types/lookup-show-more-native-picker-config.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateRef } from '@angular/core';\n\n/**\n * Specifies configuration options to display the native picker when users select\n * the button to view all options.\n */\nexport interface SkyLookupShowMoreNativePickerConfig {\n /**\n * Specifies a template to format each option in the picker. The lookup component\n * injects values into the template as `item` variables that reference all the object\n * properties of the options. If you do not specify a template, the picker uses\n * the same template as the dropdown list.\n */\n itemTemplate?: TemplateRef<
|
|
1
|
+
{"version":3,"file":"lookup-show-more-native-picker-config.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/lookup/src/lib/modules/lookup/types/lookup-show-more-native-picker-config.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateRef } from '@angular/core';\n\n/**\n * Specifies configuration options to display the native picker when users select\n * the button to view all options.\n */\nexport interface SkyLookupShowMoreNativePickerConfig {\n /**\n * Specifies a template to format each option in the picker. The lookup component\n * injects values into the template as `item` variables that reference all the object\n * properties of the options. If you do not specify a template, the picker uses\n * the same template as the dropdown list.\n */\n itemTemplate?: TemplateRef<unknown>;\n\n /**\n * Specifies a title for the picker.\n * @default \"Select an option/Select options\"\n */\n title?: string;\n}\n"]}
|