@aquera/nile-elements 1.9.11 → 2.0.0
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/README.md +4 -0
- package/demo/nxtgen-dark.css +2265 -0
- package/dist/{index-6832c52b.cjs.js → index-3ca67627.cjs.js} +2 -2
- package/dist/{index-6832c52b.cjs.js.map → index-3ca67627.cjs.js.map} +1 -1
- package/dist/{index-f956f56d.cjs.js → index-403841c7.cjs.js} +2 -2
- package/dist/{index-f956f56d.cjs.js.map → index-403841c7.cjs.js.map} +1 -1
- package/dist/{index-50880eb7.cjs.js → index-c3210a9c.cjs.js} +2 -2
- package/dist/{index-50880eb7.cjs.js.map → index-c3210a9c.cjs.js.map} +1 -1
- package/dist/index-ccff99d6.esm.js +1 -0
- package/dist/index-e43755f5.cjs.js +2 -0
- package/dist/index-e43755f5.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +362 -350
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.esm.js +10 -10
- package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel.esm.js +2 -0
- package/dist/nile-code-editor/extensionSetup.cjs.js +7 -7
- package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/index.cjs.js +1 -1
- package/dist/nile-code-editor/index.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.esm.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- package/dist/nile-code-editor/theme.cjs.js +1 -1
- package/dist/nile-code-editor/theme.cjs.js.map +1 -1
- package/dist/nile-code-editor/theme.esm.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.css.cjs.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.css.cjs.js.map +1 -1
- package/dist/nile-color-picker/nile-color-picker.css.esm.js +1 -1
- package/dist/nile-context-menu/index.cjs.js +1 -1
- package/dist/nile-context-menu/nile-context-menu.cjs.js +1 -1
- package/dist/nile-context-submenu/index.cjs.js +1 -1
- package/dist/nile-context-submenu/nile-context-submenu.cjs.js +1 -1
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.css.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.css.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.css.esm.js +2 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-error-message/nile-error-message.css.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.css.cjs.js.map +1 -1
- package/dist/nile-error-message/nile-error-message.css.esm.js +4 -3
- package/dist/nile-error-notification/nile-error-notification.css.cjs.js +1 -1
- package/dist/nile-error-notification/nile-error-notification.css.cjs.js.map +1 -1
- package/dist/nile-error-notification/nile-error-notification.css.esm.js +1 -1
- package/dist/nile-floating-panel/index.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.esm.js +1 -0
- package/dist/nile-lite-tooltip/index.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.css.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.css.cjs.js.map +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.css.esm.js +1 -1
- package/dist/nile-popup/nile-popup.css.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.css.cjs.js.map +1 -1
- package/dist/nile-popup/nile-popup.css.esm.js +5 -4
- package/dist/nile-tooltip/nile-tooltip.css.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.css.cjs.js.map +1 -1
- package/dist/nile-tooltip/nile-tooltip.css.esm.js +7 -1
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/image-view.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/link.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/paste.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/serializer.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
- package/dist/src/nile-calendar/nile-calendar.css.js +1 -1
- package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.js +4 -4
- package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
- package/dist/src/nile-carousel/nile-carousel.js +2 -0
- package/dist/src/nile-carousel/nile-carousel.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.css.js +2 -2
- package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +4 -3
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-code-editor/theme.d.ts +118 -2
- package/dist/src/nile-code-editor/theme.js +169 -19
- package/dist/src/nile-code-editor/theme.js.map +1 -1
- package/dist/src/nile-color-picker/nile-color-picker.css.js +12 -12
- package/dist/src/nile-color-picker/nile-color-picker.css.js.map +1 -1
- package/dist/src/nile-drawer/nile-drawer.css.js +2 -1
- package/dist/src/nile-drawer/nile-drawer.css.js.map +1 -1
- package/dist/src/nile-drawer/nile-drawer.js +1 -1
- package/dist/src/nile-drawer/nile-drawer.js.map +1 -1
- package/dist/src/nile-error-message/nile-error-message.css.js +2 -1
- package/dist/src/nile-error-message/nile-error-message.css.js.map +1 -1
- package/dist/src/nile-error-notification/nile-error-notification.css.js +1 -1
- package/dist/src/nile-error-notification/nile-error-notification.css.js.map +1 -1
- package/dist/src/nile-hero/nile-hero.css.js +1 -0
- package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.css.js +1 -1
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.css.js.map +1 -1
- package/dist/src/nile-popup/nile-popup.css.js +3 -2
- package/dist/src/nile-popup/nile-popup.css.js.map +1 -1
- package/dist/src/nile-tooltip/nile-tooltip.css.js +7 -1
- package/dist/src/nile-tooltip/nile-tooltip.css.js.map +1 -1
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-calendar/nile-calendar.css.ts +1 -1
- package/src/nile-calendar/nile-calendar.ts +4 -4
- package/src/nile-carousel/nile-carousel.ts +2 -0
- package/src/nile-code-editor/nile-code-editor.css.ts +2 -2
- package/src/nile-code-editor/nile-code-editor.ts +3 -3
- package/src/nile-code-editor/theme.ts +172 -19
- package/src/nile-color-picker/nile-color-picker.css.ts +12 -12
- package/src/nile-drawer/nile-drawer.css.ts +2 -1
- package/src/nile-drawer/nile-drawer.ts +1 -1
- package/src/nile-error-message/nile-error-message.css.ts +2 -1
- package/src/nile-error-notification/nile-error-notification.css.ts +1 -1
- package/src/nile-hero/nile-hero.css.ts +1 -0
- package/src/nile-lite-tooltip/nile-lite-tooltip.css.ts +1 -1
- package/src/nile-popup/nile-popup.css.ts +3 -2
- package/src/nile-tooltip/nile-tooltip.css.ts +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-carousel.js","sourceRoot":"","sources":["../../../src/nile-carousel/nile-carousel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,cAAc,CAAC;AACtB,OAAO,gBAAgB,CAAC;AACxB,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,IAAI,mBAAmB,EACpC,SAAS,IAAI,eAAe,EAC7B,MAAM,oBAAoB,CAAC;AAGrB,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,WAAW;IAAtC;;QAGuC,eAAU,GAAG,KAAK,CAAC;QAEnB,eAAU,GAAG,KAAK,CAAC;QAEnB,SAAI,GAAG,KAAK,CAAC;QAEK,uBAAkB,GAA0B,OAAO,CAAC;QAExD,kBAAa,GAAG,CAAC,CAAC;QAElB,kBAAa,GAAG,CAAC,CAAC;QAKnE,gBAAW,GAAG,CAAC,CAAC;QAEhB,cAAS,GAAG,KAAK,CAAC;QAGnB,uBAAkB,GAAG,KAAK,CAAC;QA4F3B,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAE5E,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjE,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAEhC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBAE5E,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBACxD,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjE,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;IA8MJ,CAAC;IAjVC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAES,UAAU,CAAC,iBAA6E;QAChG,IAAI,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACrF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QAC5C,OAAO,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;IAEO,cAAc;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC;IAEO,aAAa;QACnB,OAAO,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEO,aAAa;QACnB,OAAO,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,SAAS;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9B,CAAC,EAAe,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAClB,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,KAAoB;QACxC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3F,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;YAC3C,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,IAAI,CAAC;YAClF,MAAM,MAAM,GACV,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC;YAC1D,MAAM,UAAU,GACd,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC;YAEvD,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC5B,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CACzD,oCAAoC,CACrC,CAAC;oBAEF,IAAI,oBAAoB,EAAE,CAAC;wBACzB,oBAAoB,CAAC,KAAK,EAAE,CAAC;oBAC/B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IA6CO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAGD,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,MAAM,EAAE;oBACN,KAAK,EAAE,IAAI,CAAC,WAAW;oBACvB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;iBAChC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGD,gBAAgB;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,iBAAiB,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,WAA2B,QAAQ;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAA2B,QAAQ;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAEpD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,WAA2B,QAAQ;QAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;QACzC,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClE,mBAAmB,CACjB,MAAM,CAAC,aAAa,EACpB,IAAI,CAAC,eAAe,EACpB,cAAc,EACd,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAC5B,SAA8B,EAC9B,OAAgB,EAChB,OAAmB;QAEnB,MAAM,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC;QAC5C,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,+DAA+D;YACjE,CAAC,CAAC,iEAAiE,CAAC;QACtE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACxF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,KAAK,WAAW,CAAC;QAE3D,OAAO,IAAI,CAAA;;kCAEmB,QAAQ;iBACzB,QAAQ,CAAC;YAChB,6BAA6B,EAAE,IAAI;YACnC,CAAC,gCAAgC,SAAS,EAAE,CAAC,EAAE,IAAI;YACnD,uCAAuC,EAAE,CAAC,OAAO;SAClD,CAAC;kBACQ,CAAC,UAAU;;oBAET,CAAC,OAAO;sBACN,SAAS;;iBAEd,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;;sBAEnB,QAAQ;;;oBAGV,QAAQ;;;;KAIvB,CAAC;IACJ,CAAC;IAEO,qBAAqB;QAC3B,OAAO,IAAI,CAAA;;;;;oCAKqB,IAAI,CAAC,aAAa;qBACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;mBAGnC,IAAI,CAAC,aAAa;mBAClB,IAAI,CAAC,YAAY;qBACf,IAAI,CAAC,eAAe;;;;KAIpC,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,KAAa,EAAE,UAAkB,EAAE,WAAmB,EAAE,aAAqB;QACxG,MAAM,QAAQ,GAAG,KAAK,KAAK,WAAW,CAAC;QACvC,OAAO,IAAI,CAAA;;gCAEiB,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;iBACxD,QAAQ,CAAC;YAChB,2BAA2B,EAAE,IAAI;YACjC,mCAAmC,EAAE,QAAQ;SAC9C,CAAC;;kBAEQ,KAAK,GAAG,CAAC;+BACI,KAAK,GAAG,CAAC;yBACf,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;sBAC9B,QAAQ;YACpB,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE;YACtB,CAAC,CAAC,eAAe,KAAK,GAAG,CAAC,OAAO,UAAU,EAAE;mBACpC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;iBACvB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;mBACzC,IAAI,CAAC,aAAa;;KAEhC,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAA,EAAE,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,OAAO,IAAI,CAAA;;UAEL,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;;KAE9G,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,KAAK,WAAW,CAAC;QAE3D,OAAO,IAAI,CAAA;;UAEL,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;;cAEhC,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;cAC3E,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;;SAExE,CAAC,CAAC,CAAC,EAAE;;YAEF,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACjH,IAAI,CAAC,qBAAqB,EAAE;YAC5B,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;;UAE3G,IAAI,CAAC,gBAAgB,EAAE;;KAE5B,CAAC;IACJ,CAAC;;AAxWM,mBAAM,GAAmB,CAAC,MAAM,CAAC,AAA3B,CAA4B;AAEG;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAoB;AAEnB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAoB;AAEnB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CAAc;AAEK;IAA7D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;wDAAqD;AAExD;IAAzD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;mDAAmB;AAElB;IAAzD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;mDAAmB;AAEhD;IAA3B,KAAK,CAAC,mBAAmB,CAAC;qDAA8B;AACzB;IAA/B,KAAK,CAAC,uBAAuB,CAAC;yDAAkC;AAExD;IAAR,KAAK,EAAE;iDAAiB;AAEhB;IAAR,KAAK,EAAE;+CAAmB;AAwJ3B;IADC,KAAK,CAAC,aAAa,CAAC;qDAepB;AAGD;IADC,KAAK,CAAC,eAAe,CAAC;oDAYtB;AAxMU,YAAY;IADxB,aAAa,CAAC,eAAe,CAAC;GAClB,YAAY,CA0WxB;;AAED,eAAe,YAAY,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport '../nile-icon';\nimport '../nile-button';\nimport './nile-carousel-item/nile-carousel-item';\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { map } from 'lit/directives/map.js';\nimport { range } from 'lit/directives/range.js';\nimport { prefersReducedMotion } from '../internal/animate';\nimport { watch } from '../internal/watch';\nimport { styles } from './nile-carousel.css';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileCarouselItem from './nile-carousel-item/nile-carousel-item';\nimport {\n isCarouselItem,\n findMostVisibleSlide,\n getPageCount,\n getCurrentPage,\n canScrollNext,\n canScrollPrev,\n shouldSnapToSlide,\n scrollToSlide as scrollToSlideHelper,\n goToSlide as goToSlideHelper\n} from './carousel-helpers';\n\n@customElement('nile-carousel')\nexport class NileCarousel extends NileElement {\n static styles: CSSResultArray = [styles];\n\n @property({ type: Boolean, reflect: true }) navigation = false;\n\n @property({ type: Boolean, reflect: true }) pagination = false;\n\n @property({ type: Boolean, reflect: true }) loop = false;\n\n @property({ type: String, attribute: 'navigation-position' }) navigationPosition: 'sides' | 'top-right' = 'sides';\n\n @property({ type: Number, attribute: 'slides-per-page' }) slidesPerPage = 1;\n\n @property({ type: Number, attribute: 'slides-per-move' }) slidesPerMove = 1;\n\n @query('.carousel__slides') scrollContainer: HTMLElement;\n @query('.carousel__pagination') paginationContainer: HTMLElement;\n\n @state() activeSlide = 0;\n\n @state() scrolling = false;\n\n private mutationObserver: MutationObserver;\n private pendingSlideChange = false;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'region');\n this.setAttribute('aria-label', 'carousel');\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n }\n\n protected firstUpdated(): void {\n this.initializeSlides();\n this.mutationObserver = new MutationObserver(this.handleSlotChange);\n this.mutationObserver.observe(this, {\n childList: true,\n subtree: true\n });\n }\n\n protected willUpdate(changedProperties: PropertyValueMap<NileCarousel> | Map<PropertyKey, unknown>): void {\n if (changedProperties.has('slidesPerMove') || changedProperties.has('slidesPerPage')) {\n this.slidesPerMove = Math.min(this.slidesPerMove, this.slidesPerPage);\n }\n }\n\n private getPageCount() {\n const slidesCount = this.getSlides().length;\n return getPageCount(slidesCount, this.slidesPerPage, this.slidesPerMove);\n }\n\n private getCurrentPage() {\n return getCurrentPage(this.activeSlide, this.slidesPerMove);\n }\n\n private canScrollNext(): boolean {\n return canScrollNext(this.getCurrentPage(), this.getPageCount(), this.loop);\n }\n\n private canScrollPrev(): boolean {\n return canScrollPrev(this.getCurrentPage(), this.loop);\n }\n\n private getSlides() {\n return [...this.children].filter(\n (el: HTMLElement) => isCarouselItem(el)\n ) as NileCarouselItem[];\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const target = event.target as HTMLElement;\n const isFocusInPagination = target.closest('.carousel__pagination-item') !== null;\n const isNext =\n event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const isPrevious =\n event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n\n event.preventDefault();\n\n if (isPrevious) {\n this.previous();\n }\n\n if (isNext) {\n this.next();\n }\n\n if (event.key === 'Home') {\n this.goToSlide(0);\n }\n\n if (event.key === 'End') {\n this.goToSlide(this.getSlides().length - 1);\n }\n\n if (isFocusInPagination) {\n this.updateComplete.then(() => {\n const activePaginationItem = this.shadowRoot?.querySelector<HTMLButtonElement>(\n '.carousel__pagination-item--active'\n );\n\n if (activePaginationItem) {\n activePaginationItem.focus();\n }\n });\n }\n }\n }\n\n private handleScroll = () => {\n if (!this.scrollContainer) {\n return;\n }\n\n this.scrolling = true;\n\n if (this.pendingSlideChange) {\n return;\n }\n\n const slides = this.getSlides();\n const mostVisibleSlide = findMostVisibleSlide(slides, this.scrollContainer);\n\n if (mostVisibleSlide) {\n const newActiveIndex = slides.indexOf(mostVisibleSlide);\n if (newActiveIndex !== -1 && newActiveIndex !== this.activeSlide) {\n this.activeSlide = newActiveIndex;\n }\n }\n };\n\n private handleScrollEnd = () => {\n this.scrolling = false;\n this.pendingSlideChange = false;\n \n if (this.scrollContainer) {\n const slides = this.getSlides();\n const mostVisibleSlide = findMostVisibleSlide(slides, this.scrollContainer);\n \n if (mostVisibleSlide) {\n const newActiveIndex = slides.indexOf(mostVisibleSlide);\n if (newActiveIndex !== -1 && newActiveIndex !== this.activeSlide) {\n this.activeSlide = newActiveIndex;\n }\n }\n }\n };\n\n private handleSlotChange = () => {\n this.initializeSlides();\n };\n\n private initializeSlides() {\n const slides = this.getSlides();\n if (!slides.length) {\n return;\n }\n\n slides.forEach((slide, i) => {\n slide.classList.toggle('--is-active', i === this.activeSlide);\n });\n\n this.updateSlidesSnap();\n }\n\n @watch('activeSlide')\n handleSlideChange() {\n const slides = this.getSlides();\n slides.forEach((slide, i) => {\n slide.classList.toggle('--is-active', i === this.activeSlide);\n });\n\n if (this.hasUpdated) {\n this.emit('nile-slide-change', {\n detail: {\n index: this.activeSlide,\n slide: slides[this.activeSlide]\n }\n });\n }\n }\n\n @watch('slidesPerMove')\n updateSlidesSnap() {\n const slides = this.getSlides();\n const slidesPerMove = this.slidesPerMove;\n\n slides.forEach((slide, i) => {\n if (shouldSnapToSlide(i, slidesPerMove)) {\n slide.style.removeProperty('scroll-snap-align');\n } else {\n slide.style.setProperty('scroll-snap-align', 'none');\n }\n });\n }\n\n previous(behavior: ScrollBehavior = 'smooth') {\n const slides = this.getSlides();\n if (this.loop && this.activeSlide === 0) {\n this.goToSlide(slides.length - this.slidesPerMove, behavior);\n } else {\n this.goToSlide(this.activeSlide - this.slidesPerMove, behavior);\n }\n }\n\n next(behavior: ScrollBehavior = 'smooth') {\n const slides = this.getSlides();\n const maxIndex = slides.length - this.slidesPerPage;\n \n if (this.loop && this.activeSlide >= maxIndex) {\n this.goToSlide(0, behavior);\n } else {\n this.goToSlide(this.activeSlide + this.slidesPerMove, behavior);\n }\n }\n\n goToSlide(index: number, behavior: ScrollBehavior = 'smooth') {\n const { slidesPerPage } = this;\n const slides = this.getSlides();\n\n const result = goToSlideHelper(index, slides, slidesPerPage, behavior, this.loop);\n if (!result || !this.scrollContainer) {\n return;\n }\n\n this.activeSlide = result.newActiveSlide;\n const scrollBehavior = prefersReducedMotion() ? 'auto' : behavior;\n scrollToSlideHelper(\n result.slideToScroll,\n this.scrollContainer,\n scrollBehavior,\n (value: boolean) => {\n this.pendingSlideChange = value;\n }\n );\n }\n\n private renderNavigationButton(\n direction: 'previous' | 'next',\n enabled: boolean,\n onClick: () => void\n ): TemplateResult {\n const isPrevious = direction === 'previous';\n const iconName = isPrevious \n ? 'var(--nile-icon-arrow-left, var(--ng-icon-arrow-narrow-left))' \n : 'var(--nile-icon-arrow-right, var(--ng-icon-arrow-narrow-right))';\n const slotName = isPrevious ? 'previous-icon' : 'next-icon';\n const partName = isPrevious ? 'navigation-button--previous' : 'navigation-button--next';\n const ariaLabel = isPrevious ? 'Previous slide' : 'Next slide';\n const isTopRight = this.navigationPosition === 'top-right';\n\n return html`\n <nile-button\n part=\"navigation-button ${partName}\"\n class=\"${classMap({\n 'carousel__navigation-button': true,\n [`carousel__navigation-button--${direction}`]: true,\n 'carousel__navigation-button--disabled': !enabled\n })}\"\n ?circle=${!isTopRight}\n variant=\"tertiary\"\n ?disabled=${!enabled}\n aria-label=\"${ariaLabel}\"\n aria-controls=\"scroll-container\"\n @click=${enabled ? onClick : null}\n >\n <slot name=\"${slotName}\">\n <nile-icon\n library=\"system\"\n name=\"${iconName}\"\n ></nile-icon>\n </slot>\n </nile-button>\n `;\n }\n\n private renderScrollContainer(): TemplateResult {\n return html`\n <div\n id=\"scroll-container\"\n part=\"scroll-container\"\n class=\"carousel__slides\"\n style=\"--slides-per-page: ${this.slidesPerPage};\"\n aria-busy=\"${this.scrolling ? 'true' : 'false'}\"\n aria-atomic=\"true\"\n tabindex=\"0\"\n @keydown=${this.handleKeyDown}\n @scroll=\"${this.handleScroll}\"\n @scrollend=${this.handleScrollEnd}\n >\n <slot></slot>\n </div>\n `;\n }\n\n private renderPaginationItem(index: number, pagesCount: number, currentPage: number, slidesPerMove: number): TemplateResult {\n const isActive = index === currentPage;\n return html`\n <button\n part=\"pagination-item ${isActive ? 'pagination-item--active' : ''}\"\n class=\"${classMap({\n 'carousel__pagination-item': true,\n 'carousel__pagination-item--active': isActive\n })}\"\n role=\"tab\"\n id=\"tab-${index + 1}\"\n aria-controls=\"slide-${index + 1}\"\n aria-selected=\"${isActive ? 'true' : 'false'}\"\n aria-label=\"${isActive\n ? `Slide ${index + 1}`\n : `Go to slide ${index + 1} of ${pagesCount}`}\"\n tabindex=${isActive ? '0' : '-1'}\n @click=${() => this.goToSlide(index * slidesPerMove)}\n @keydown=${this.handleKeyDown}\n ></button>\n `;\n }\n\n private renderPagination(): TemplateResult {\n if (!this.pagination) {\n return html``;\n }\n\n const pagesCount = this.getPageCount();\n const currentPage = this.getCurrentPage();\n const slidesPerMove = this.slidesPerMove;\n\n return html`\n <div part=\"pagination\" role=\"tablist\" class=\"carousel__pagination\">\n ${map(range(pagesCount), index => this.renderPaginationItem(index, pagesCount, currentPage, slidesPerMove))}\n </div>\n `;\n }\n\n render() {\n const prevEnabled = this.canScrollPrev();\n const nextEnabled = this.canScrollNext();\n const isTopRight = this.navigationPosition === 'top-right';\n\n return html`\n <div part=\"base\" class=\"carousel\">\n ${isTopRight && this.navigation ? html`\n <div class=\"carousel__navigation-wrapper--top-right\">\n ${this.renderNavigationButton('previous', prevEnabled, () => this.previous())}\n ${this.renderNavigationButton('next', nextEnabled, () => this.next())}\n </div>\n ` : ''}\n <div class=\"carousel__content-wrapper\">\n ${!isTopRight && this.navigation ? this.renderNavigationButton('previous', prevEnabled, () => this.previous()) : ''}\n ${this.renderScrollContainer()}\n ${!isTopRight && this.navigation ? this.renderNavigationButton('next', nextEnabled, () => this.next()) : ''}\n </div>\n ${this.renderPagination()}\n </div>\n `;\n }\n}\n\nexport default NileCarousel;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-carousel': NileCarousel;\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"nile-carousel.js","sourceRoot":"","sources":["../../../src/nile-carousel/nile-carousel.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport '../nile-icon';\nimport '../nile-button';\nimport './nile-carousel-item/nile-carousel-item';\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { map } from 'lit/directives/map.js';\nimport { range } from 'lit/directives/range.js';\nimport { prefersReducedMotion } from '../internal/animate';\nimport { watch } from '../internal/watch';\nimport { styles } from './nile-carousel.css';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileCarouselItem from './nile-carousel-item/nile-carousel-item';\nimport {\n isCarouselItem,\n findMostVisibleSlide,\n getPageCount,\n getCurrentPage,\n canScrollNext,\n canScrollPrev,\n shouldSnapToSlide,\n scrollToSlide as scrollToSlideHelper,\n goToSlide as goToSlideHelper\n} from './carousel-helpers';\n\n@customElement('nile-carousel')\nexport class NileCarousel extends NileElement {\n static styles: CSSResultArray = [styles];\n\n @property({ type: Boolean, reflect: true }) navigation = false;\n\n @property({ type: Boolean, reflect: true }) pagination = false;\n\n @property({ type: Boolean, reflect: true }) loop = false;\n\n @property({ type: String, attribute: 'navigation-position' }) navigationPosition: 'sides' | 'top-right' = 'sides';\n\n @property({ type: Number, attribute: 'slides-per-page' }) slidesPerPage = 1;\n\n @property({ type: Number, attribute: 'slides-per-move' }) slidesPerMove = 1;\n\n @query('.carousel__slides') scrollContainer: HTMLElement;\n @query('.carousel__pagination') paginationContainer: HTMLElement;\n\n @state() activeSlide = 0;\n\n @state() scrolling = false;\n\n private mutationObserver: MutationObserver;\n private pendingSlideChange = false;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'region');\n this.setAttribute('aria-label', 'carousel');\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n }\n\n protected firstUpdated(): void {\n this.initializeSlides();\n this.mutationObserver = new MutationObserver(this.handleSlotChange);\n this.mutationObserver.observe(this, {\n childList: true,\n subtree: true\n });\n }\n\n protected willUpdate(changedProperties: PropertyValueMap<NileCarousel> | Map<PropertyKey, unknown>): void {\n if (changedProperties.has('slidesPerMove') || changedProperties.has('slidesPerPage')) {\n this.slidesPerMove = Math.min(this.slidesPerMove, this.slidesPerPage);\n }\n }\n\n private getPageCount() {\n const slidesCount = this.getSlides().length;\n return getPageCount(slidesCount, this.slidesPerPage, this.slidesPerMove);\n }\n\n private getCurrentPage() {\n return getCurrentPage(this.activeSlide, this.slidesPerMove);\n }\n\n private canScrollNext(): boolean {\n return canScrollNext(this.getCurrentPage(), this.getPageCount(), this.loop);\n }\n\n private canScrollPrev(): boolean {\n return canScrollPrev(this.getCurrentPage(), this.loop);\n }\n\n private getSlides() {\n return [...this.children].filter(\n (el: HTMLElement) => isCarouselItem(el)\n ) as NileCarouselItem[];\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const target = event.target as HTMLElement;\n const isFocusInPagination = target.closest('.carousel__pagination-item') !== null;\n const isNext =\n event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const isPrevious =\n event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n\n event.preventDefault();\n\n if (isPrevious) {\n this.previous();\n }\n\n if (isNext) {\n this.next();\n }\n\n if (event.key === 'Home') {\n this.goToSlide(0);\n }\n\n if (event.key === 'End') {\n this.goToSlide(this.getSlides().length - 1);\n }\n\n if (isFocusInPagination) {\n this.updateComplete.then(() => {\n const activePaginationItem = this.shadowRoot?.querySelector<HTMLButtonElement>(\n '.carousel__pagination-item--active'\n );\n\n if (activePaginationItem) {\n activePaginationItem.focus();\n }\n });\n }\n }\n }\n\n private handleScroll = () => {\n if (!this.scrollContainer) {\n return;\n }\n\n this.scrolling = true;\n\n if (this.pendingSlideChange) {\n return;\n }\n\n const slides = this.getSlides();\n const mostVisibleSlide = findMostVisibleSlide(slides, this.scrollContainer);\n\n if (mostVisibleSlide) {\n const newActiveIndex = slides.indexOf(mostVisibleSlide);\n if (newActiveIndex !== -1 && newActiveIndex !== this.activeSlide) {\n this.activeSlide = newActiveIndex;\n }\n }\n };\n\n private handleScrollEnd = () => {\n this.scrolling = false;\n this.pendingSlideChange = false;\n \n if (this.scrollContainer) {\n const slides = this.getSlides();\n const mostVisibleSlide = findMostVisibleSlide(slides, this.scrollContainer);\n \n if (mostVisibleSlide) {\n const newActiveIndex = slides.indexOf(mostVisibleSlide);\n if (newActiveIndex !== -1 && newActiveIndex !== this.activeSlide) {\n this.activeSlide = newActiveIndex;\n }\n }\n }\n };\n\n private handleSlotChange = () => {\n this.initializeSlides();\n };\n\n private initializeSlides() {\n const slides = this.getSlides();\n if (!slides.length) {\n return;\n }\n\n slides.forEach((slide, i) => {\n slide.classList.toggle('--is-active', i === this.activeSlide);\n });\n\n this.updateSlidesSnap();\n }\n\n @watch('activeSlide')\n handleSlideChange() {\n const slides = this.getSlides();\n slides.forEach((slide, i) => {\n slide.classList.toggle('--is-active', i === this.activeSlide);\n });\n\n if (this.hasUpdated) {\n this.emit('nile-slide-change', {\n detail: {\n index: this.activeSlide,\n slide: slides[this.activeSlide]\n }\n });\n }\n }\n\n @watch('slidesPerMove')\n updateSlidesSnap() {\n const slides = this.getSlides();\n const slidesPerMove = this.slidesPerMove;\n\n slides.forEach((slide, i) => {\n if (shouldSnapToSlide(i, slidesPerMove)) {\n slide.style.removeProperty('scroll-snap-align');\n } else {\n slide.style.setProperty('scroll-snap-align', 'none');\n }\n });\n }\n\n previous(behavior: ScrollBehavior = 'smooth') {\n const slides = this.getSlides();\n if (this.loop && this.activeSlide === 0) {\n this.goToSlide(slides.length - this.slidesPerMove, behavior);\n } else {\n this.goToSlide(this.activeSlide - this.slidesPerMove, behavior);\n }\n }\n\n next(behavior: ScrollBehavior = 'smooth') {\n const slides = this.getSlides();\n const maxIndex = slides.length - this.slidesPerPage;\n \n if (this.loop && this.activeSlide >= maxIndex) {\n this.goToSlide(0, behavior);\n } else {\n this.goToSlide(this.activeSlide + this.slidesPerMove, behavior);\n }\n }\n\n goToSlide(index: number, behavior: ScrollBehavior = 'smooth') {\n const { slidesPerPage } = this;\n const slides = this.getSlides();\n\n const result = goToSlideHelper(index, slides, slidesPerPage, behavior, this.loop);\n if (!result || !this.scrollContainer) {\n return;\n }\n\n this.activeSlide = result.newActiveSlide;\n const scrollBehavior = prefersReducedMotion() ? 'auto' : behavior;\n scrollToSlideHelper(\n result.slideToScroll,\n this.scrollContainer,\n scrollBehavior,\n (value: boolean) => {\n this.pendingSlideChange = value;\n }\n );\n }\n\n private renderNavigationButton(\n direction: 'previous' | 'next',\n enabled: boolean,\n onClick: () => void\n ): TemplateResult {\n const isPrevious = direction === 'previous';\n const iconName = isPrevious \n ? 'var(--nile-icon-arrow-left, var(--ng-icon-arrow-narrow-left))' \n : 'var(--nile-icon-arrow-right, var(--ng-icon-arrow-narrow-right))';\n const slotName = isPrevious ? 'previous-icon' : 'next-icon';\n const partName = isPrevious ? 'navigation-button--previous' : 'navigation-button--next';\n const ariaLabel = isPrevious ? 'Previous slide' : 'Next slide';\n const isTopRight = this.navigationPosition === 'top-right';\n\n return html`\n <nile-button\n part=\"navigation-button ${partName}\"\n class=\"${classMap({\n 'carousel__navigation-button': true,\n [`carousel__navigation-button--${direction}`]: true,\n 'carousel__navigation-button--disabled': !enabled\n })}\"\n ?circle=${!isTopRight}\n variant=\"tertiary\"\n ?disabled=${!enabled}\n aria-label=\"${ariaLabel}\"\n aria-controls=\"scroll-container\"\n @click=${enabled ? onClick : null}\n >\n <slot name=\"${slotName}\">\n <nile-icon\n library=\"system\"\n name=\"${iconName}\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-secondary-700))\"\n ></nile-icon>\n </slot>\n </nile-button>\n `;\n }\n\n private renderScrollContainer(): TemplateResult {\n return html`\n <div\n id=\"scroll-container\"\n part=\"scroll-container\"\n class=\"carousel__slides\"\n style=\"--slides-per-page: ${this.slidesPerPage};\"\n aria-busy=\"${this.scrolling ? 'true' : 'false'}\"\n aria-atomic=\"true\"\n tabindex=\"0\"\n @keydown=${this.handleKeyDown}\n @scroll=\"${this.handleScroll}\"\n @scrollend=${this.handleScrollEnd}\n >\n <slot></slot>\n </div>\n `;\n }\n\n private renderPaginationItem(index: number, pagesCount: number, currentPage: number, slidesPerMove: number): TemplateResult {\n const isActive = index === currentPage;\n return html`\n <button\n part=\"pagination-item ${isActive ? 'pagination-item--active' : ''}\"\n class=\"${classMap({\n 'carousel__pagination-item': true,\n 'carousel__pagination-item--active': isActive\n })}\"\n role=\"tab\"\n id=\"tab-${index + 1}\"\n aria-controls=\"slide-${index + 1}\"\n aria-selected=\"${isActive ? 'true' : 'false'}\"\n aria-label=\"${isActive\n ? `Slide ${index + 1}`\n : `Go to slide ${index + 1} of ${pagesCount}`}\"\n tabindex=${isActive ? '0' : '-1'}\n @click=${() => this.goToSlide(index * slidesPerMove)}\n @keydown=${this.handleKeyDown}\n ></button>\n `;\n }\n\n private renderPagination(): TemplateResult {\n if (!this.pagination) {\n return html``;\n }\n\n const pagesCount = this.getPageCount();\n const currentPage = this.getCurrentPage();\n const slidesPerMove = this.slidesPerMove;\n\n return html`\n <div part=\"pagination\" role=\"tablist\" class=\"carousel__pagination\">\n ${map(range(pagesCount), index => this.renderPaginationItem(index, pagesCount, currentPage, slidesPerMove))}\n </div>\n `;\n }\n\n render() {\n const prevEnabled = this.canScrollPrev();\n const nextEnabled = this.canScrollNext();\n const isTopRight = this.navigationPosition === 'top-right';\n\n return html`\n <div part=\"base\" class=\"carousel\">\n ${isTopRight && this.navigation ? html`\n <div class=\"carousel__navigation-wrapper--top-right\">\n ${this.renderNavigationButton('previous', prevEnabled, () => this.previous())}\n ${this.renderNavigationButton('next', nextEnabled, () => this.next())}\n </div>\n ` : ''}\n <div class=\"carousel__content-wrapper\">\n ${!isTopRight && this.navigation ? this.renderNavigationButton('previous', prevEnabled, () => this.previous()) : ''}\n ${this.renderScrollContainer()}\n ${!isTopRight && this.navigation ? this.renderNavigationButton('next', nextEnabled, () => this.next()) : ''}\n </div>\n ${this.renderPagination()}\n </div>\n `;\n }\n}\n\nexport default NileCarousel;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-carousel': NileCarousel;\n }\n}\n\n"]}
|
|
@@ -26,6 +26,7 @@ export const styles = css `
|
|
|
26
26
|
border-radius: var(--nile-radius-sm, var(--ng-radius-md));
|
|
27
27
|
border: 1px solid var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));
|
|
28
28
|
position: relative;
|
|
29
|
+
overflow: hidden;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
.no-scroller .cm-scroller{
|
|
@@ -65,8 +66,7 @@ export const styles = css `
|
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
.cm-gutters{
|
|
68
|
-
border-
|
|
69
|
-
border-bottom-left-radius:var(--nile-spacing-spacing-none, var(--ng-radius-md));
|
|
69
|
+
border-radius: 0;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
.expand__icon__container{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-code-editor.css.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * CodeEditor CSS\n */\nexport const styles = css`\n *{\n box-sizing:border-box;\n }\n\n :host {\n display: block;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .code__editor__container {\n display: flex;\n padding: var(--nile-spacing-5px, var(--ng-spacing-none));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n border: 1px solid var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));\n position: relative;\n }\n\n .no-scroller .cm-scroller{\n scrollbar-width: none;\n }\n\n .error {\n border-color: var(--nile-colors-red-500, var(--ng-componentcolors-utility-error-600));\n }\n\n .disabled {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n opacity: var(--nile-opacity-50, var(--ng-opacity-50));\n user-select: none;\n -webkit-user-select: none;\n}\n\n .disabled .cm-editor {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .noborder {\n border: none;\n }\n\n .cm-editor {\n flex: 1;\n min-width: 0;\n }\n\n .ͼ1.cm-focused {\n outline: none;\n }\n\n .cm-gutters{\n border-
|
|
1
|
+
{"version":3,"file":"nile-code-editor.css.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * CodeEditor CSS\n */\nexport const styles = css`\n *{\n box-sizing:border-box;\n }\n\n :host {\n display: block;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .code__editor__container {\n display: flex;\n padding: var(--nile-spacing-5px, var(--ng-spacing-none));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n border: 1px solid var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));\n position: relative;\n overflow: hidden;\n }\n\n .no-scroller .cm-scroller{\n scrollbar-width: none;\n }\n\n .error {\n border-color: var(--nile-colors-red-500, var(--ng-componentcolors-utility-error-600));\n }\n\n .disabled {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n opacity: var(--nile-opacity-50, var(--ng-opacity-50));\n user-select: none;\n -webkit-user-select: none;\n}\n\n .disabled .cm-editor {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .noborder {\n border: none;\n }\n\n .cm-editor {\n flex: 1;\n min-width: 0;\n }\n\n .ͼ1.cm-focused {\n outline: none;\n }\n\n .cm-gutters{\n border-radius: 0;\n }\n\n .expand__icon__container{\n display: none;\n position: absolute;\n border-radius: var(--nile-radius-base-standard, var(--ng-radius-none));\n cursor: pointer;\n right: var(--nile-spacing-none, var(--ng-spacing-1-5));\n top: 5px;\n z-index: 1;\n padding: var(--nile-spacing-5px, var(--ng-spacing-none));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n \n .code__editor__container:hover > .expand__icon__container{\n display: flex;\n }\n\n .code__editor__container.disabled .expand__icon__container{\n display: none;\n }\n`;\n\nexport default [styles];\n"]}
|
|
@@ -11,7 +11,7 @@ import { styles } from './nile-code-editor.css';
|
|
|
11
11
|
import { EditorView } from 'codemirror';
|
|
12
12
|
import { placeholder, tooltips } from '@codemirror/view';
|
|
13
13
|
import { Compartment, EditorState } from '@codemirror/state';
|
|
14
|
-
import { syntaxHighlighting,
|
|
14
|
+
import { syntaxHighlighting, } from '@codemirror/language';
|
|
15
15
|
import { lineNumbers } from '@codemirror/view';
|
|
16
16
|
import { javascript, javascriptLanguage, } from '@codemirror/lang-javascript';
|
|
17
17
|
import { sql } from '@codemirror/lang-sql';
|
|
@@ -21,7 +21,7 @@ import { autocompletion, acceptCompletion, closeCompletion, completionStatus } f
|
|
|
21
21
|
import NileElement from '../internal/nile-element';
|
|
22
22
|
import { basicSetup } from './extensionSetup';
|
|
23
23
|
import { classMap } from 'lit/directives/class-map.js';
|
|
24
|
-
import { customisedThemeCss, fontFamily, readOnlyTheme } from './theme';
|
|
24
|
+
import { customisedThemeCss, fontFamily, readOnlyTheme, nileEditorTheme, nileHighlightStyle } from './theme';
|
|
25
25
|
import { keymap } from '@codemirror/view';
|
|
26
26
|
// Choose the appropriate mode for your use case
|
|
27
27
|
/**
|
|
@@ -335,6 +335,7 @@ let NileCodeEditor = class NileCodeEditor extends NileElement {
|
|
|
335
335
|
defaultSyntaxHighlightingExtension,
|
|
336
336
|
this.autoCompletionComp.of(autocompletion({ aboveCursor: this.aboveCursor })),
|
|
337
337
|
language,
|
|
338
|
+
EditorView.theme(nileEditorTheme),
|
|
338
339
|
customThemeExtension,
|
|
339
340
|
autoCompleteStyleExtension,
|
|
340
341
|
this.getTabCompletionKeymap(),
|
|
@@ -515,7 +516,7 @@ let NileCodeEditor = class NileCodeEditor extends NileElement {
|
|
|
515
516
|
return this.placeholder ? placeholder(this.placeholder) : [];
|
|
516
517
|
}
|
|
517
518
|
getDefaultSyntaxHighlightingExtension() {
|
|
518
|
-
return !this.disableSyntaxHighlighting ? syntaxHighlighting(
|
|
519
|
+
return !this.disableSyntaxHighlighting ? syntaxHighlighting(nileHighlightStyle, { fallback: true }) : [];
|
|
519
520
|
}
|
|
520
521
|
getCustomThemeExtension() {
|
|
521
522
|
if (this.customThemeCSS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-code-editor.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValueMap,\n} from 'lit';\n\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-code-editor.css';\nimport { EditorView } from 'codemirror';\nimport { ViewUpdate, placeholder, tooltips } from '@codemirror/view';\nimport { \n Compartment,\n EditorState,\n Extension\n} from '@codemirror/state';\nimport { StyleSpec } from 'style-mod';\nimport {\n syntaxHighlighting,\n defaultHighlightStyle,\n} from '@codemirror/language';\n\nimport { lineNumbers } from '@codemirror/view';\nimport {\n javascript,\n javascriptLanguage,\n} from '@codemirror/lang-javascript';\nimport { sql } from '@codemirror/lang-sql';\nimport { json } from '@codemirror/lang-json';\nimport { html as htmlLang } from '@codemirror/lang-html';\nimport { autocompletion,acceptCompletion, closeCompletion,CompletionContext,CompletionResult, completionStatus } from '@codemirror/autocomplete';\nimport NileElement from '../internal/nile-element';\nimport { basicSetup } from './extensionSetup';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { Theme as DefaultTheme, customisedThemeCss, fontFamily, readOnlyTheme } from './theme';\nimport { keymap } from '@codemirror/view';\n\n// Choose the appropriate mode for your use case\n\n/**\n * Nile icon component.\n *\n * @tag nile-code-editor\n *\n */\n@customElement('nile-code-editor')\nexport class NileCodeEditor extends NileElement {\n \n @query('.code__editor__container') codeEditor: HTMLInputElement;\n\n @property({ type: String, reflect: true , attribute: true }) value = '';\n\n @property({ type: String, reflect: true , attribute: true }) expandIcon = \"var(--nile-icon-expand-2, var(--ng-icon-expand-06))\";\n\n @property({ type: String, reflect: true , attribute: true }) placeholder = \"\";\n\n @property({ type: Object, reflect: true , attribute: true }) customAutoCompletions: object | any = {};\n\n @property({ type: Array, reflect: true , attribute: true }) customCompletionsPaths: string[] = [];\n\n @property({ type: String, reflect: true , attribute: true}) language: 'javascript' | 'sql' | 'json' | 'html' = 'javascript';\n\n @property({ type: String, reflect: true , attribute: 'error-message' }) errorMessage: string = '';\n\n @property({ type: Boolean, reflect: true , attribute: true }) error: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableSearch: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) noborder: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) multiline: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableFoldGutters: boolean = false;\n \n @property({ type: Boolean, reflect: true , attribute: true }) allowVariableInCustomSuggestion: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbers: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: false }) disableSyntaxHighlighting: boolean = false;\n\n @property({ type: Object, attribute: false }) customThemeCSS: object | null = customisedThemeCss;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbersMultiline: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) hasScroller: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) expandable: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true}) readonly: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) debounce: boolean = false;\n\n @property({ type: Number, reflect: true , attribute: true}) debounceTimeout: number = 200;\n\n @property({ type: Boolean, reflect: true , attribute: true}) aboveCursor: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) tabCompletion: boolean = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) defaultFont: boolean = false;\n\n @property({ type: Object, attribute: false }) autoCompleteStyle: { width?: string; multiline?: boolean } | undefined = undefined;\n\n @property({ type: Boolean, reflect: true, attribute: true }) hideReadOnlyCursor: boolean = false; \n\n public view: EditorView;\n public viewState:EditorState;\n private timeOut: any = null;\n private resizeObserver?: ResizeObserver;\n\n // Compartments for initialiazing and switching extensions\n private lineNumbersComp = new Compartment();\n private restrictSingleLineComp = new Compartment();\n private readOnlyComp = new Compartment();\n private customCompletionComp = new Compartment();\n private placeholderComp = new Compartment();\n private defaultSyntaxHighlightingComp = new Compartment();\n private themeComp = new Compartment();\n private autoCompletionComp = new Compartment();\n private autoCompleteStyleComp = new Compartment();\n\n private isSpacePressed:boolean = false;\n /**\n * The styles for CodeEditor\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit('nile-init',undefined,false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.view.destroy()\n this.emit('nile-destroy',undefined,false);\n }\n\n firstUpdated() {\n this.createNewView()\n \n if (this.autoCompleteStyle?.width) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n \n this.emit('nile-after-init',{ \n codeMirrorInstance: this.view, \n createNewView: this.createNewView, \n insertAtCursor: this.insertBetweenCode \n }, false )\n }\n\n getTabCompletionKeymap() {\n return this.tabCompletion\n ? keymap.of([\n {\n key: 'Tab',\n run: acceptCompletion,\n }\n ])\n : [];\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.updated(changedProperties);\n if (changedProperties.has('value') && this.view.state.doc.toString()!=this.value) {\n // Editor has already been initialized, update its state\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('multiline')) {\n this.view.dispatch({\n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())\n ],\n })\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('readonly')) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('disabled') && this.view) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('aboveCursor')) {\n this.view.dispatch({\n effects: [\n this.autoCompletionComp.reconfigure(\n autocompletion({ aboveCursor: this.aboveCursor })\n )\n ]\n });\n } \n if (changedProperties.has('placeholder')) {\n this.view.dispatch({ \n effects: [\n this.placeholderComp.reconfigure(this.getPlaceholderExtension()),\n ]\n })\n }\n if (changedProperties.has('lineNumbers') || changedProperties.has('lineNumbersMultiline')) {\n this.view.dispatch({ \n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n ]\n })\n }\n if(changedProperties.has('customAutoCompletions') || changedProperties.has('customCompletionsPaths')){\n this.view.dispatch({ \n effects: [\n this.customCompletionComp.reconfigure(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }))\n ]\n })\n }\n if(changedProperties.has('disableSyntaxHighlighting')){\n this.view.dispatch({ \n effects: [\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension())\n ]\n })\n }\n if(changedProperties.has('customThemeCSS')){\n this.view.dispatch({ \n effects: [\n this.themeComp.reconfigure(this.getCustomThemeExtension())\n ]\n })\n }\n if(changedProperties.has('autoCompleteStyle') && this.view){\n if (this.autoCompleteStyle?.width) {\n if (!this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n } else {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n \n this.view.dispatch({ \n effects: [\n this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension())\n ]\n })\n }\n }\n\n public render(): TemplateResult {\n const hasErrorMessage = !!this.errorMessage;\n const hasError = !!this.error;\n const noborder = !!this.noborder;\n const noScrollbar = !this.hasScroller\n return html`<div\n part=\"code-editor-base\"\n class=${classMap({\n 'code__editor__container': true,\n 'noborder': noborder,\n 'error': hasError || hasErrorMessage,\n 'code__editor__singleline': !this.multiline,\n 'no-scroller': noScrollbar,\n 'disabled': this.disabled\n })}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n ${this.expandable && !this.disabled\n ? html` \n <div @click=\"${(e: CustomEvent) => this.emit('nile-expand')}\" class=\"expand__icon__container\">\n <nile-glyph\n name=\"${this.expandIcon}\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-fill))\"\n size=\"16\"\n color=\"black\"\n ></nile-glyph>\n </div>`\n : ''}\n </div>\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}`;\n }\n\n createNewView(emitEvent=true){\n if(this.view) this.view.destroy();\n this.createState()\n this.view = new EditorView({\n state: this.viewState,\n parent: this.codeEditor\n });\n\n this.view.dom.addEventListener('keydown', (e: KeyboardEvent) => {\n this.checkForSpaceKey(e);\n this.handleEscapeKey(e);\n }, true);\n if (emitEvent) this.emit('nile-after-update', { createNewView: this.createNewView, codeMirrorInstance: this.view, }, false );\n }\n\n checkForSpaceKey(e: KeyboardEvent) {\n if (e.code === 'Space' && !e.ctrlKey) {\n this.isSpacePressed = true;\n } else {\n this.isSpacePressed = false;\n }\n }\n\n public closeCompletion() {\n if (this.view) {\n closeCompletion(this.view);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.view && completionStatus(this.view.state) !== null) {\n e.stopPropagation(); \n e.preventDefault(); \n closeCompletion(this.view);\n }\n }\n\n createState(){\n const lineNumbersExtension = this.lineNumbersComp.of(this.getLineNumbersExension());\n const readOnlyExtension = this.readOnlyComp.of(this.getReadOnlyExtension());\n const restrictSingleLineExtension = this.restrictSingleLineComp.of(this.getSingleLineExtension())\n const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())\n const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());\n const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());\n const autoCompleteStyleExtension = this.autoCompleteStyleComp.of(this.getAutoCompleteStyleExtension());\n const language = this.getLanguageExtension()\n const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }));\n\n this.viewState = EditorState.create({\n doc: !this.multiline ? convertToSingleLine(this.value) : this.value,\n extensions: [\n basicSetup({\n highlightActiveLine: false,\n foldGutter: this.enableFoldGutters,\n enableSearch:this.enableSearch\n }),\n lineNumbersExtension,\n readOnlyExtension,\n restrictSingleLineExtension,\n customAutoCompletions,\n placeholderExtension,\n defaultSyntaxHighlightingExtension,\n this.autoCompletionComp.of(\n autocompletion({ aboveCursor: this.aboveCursor })\n ),\n language,\n customThemeExtension,\n autoCompleteStyleExtension,\n this.getTabCompletionKeymap(),\n EditorView.updateListener.of((v: ViewUpdate) => {\n if (v.docChanged) {\n this.debounce ? this.emitAfterTimeout({ value: this.view.state.doc.toString() }) : this.emit('nile-change', { value: this.view.state.doc.toString() })\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.dispatchEvent(new Event('nile-focus')),\n blur: () => this.dispatchEvent(new Event('nile-blur')),\n }),\n ],\n });\n return this.viewState\n }\n /**\n * Custom autocomplete handler for code editor suggestions\n * @param context CompletionContext from CodeMirror\n * @returns CompletionResult with suggestions or null if no suggestions\n */\n customAutocomplete = (context: CompletionContext): CompletionResult | null => {\n // Getting the valid last line, last text from the code editor\n const text = context.state.doc.sliceString(0, context.pos);\n const lastWord = text.split('\\n').at(-1)?.split(' ').at(-1) || '';\n const [textBeforeCursor, baseTextAfterSeperation] = splitStringAtLastSeparator(lastWord);\n \n return this.getNestedSuggestions(context, textBeforeCursor, baseTextAfterSeperation) \n || this.getTopLevelSuggestions(context, textBeforeCursor);\n };\n\n /**\n * Gets nested property suggestions based on the current path\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @param baseTextAfterSeperation Text after the last separator (. or [)\n * @returns CompletionResult with nested suggestions or null\n */\n getNestedSuggestions(context: CompletionContext, textBeforeCursor: string, baseTextAfterSeperation: string) {\n // Return early if not a valid path or not ending with . or [\n if (!isValidPath(textBeforeCursor) || !['.', '['].includes(textBeforeCursor.at(-1)!)) {\n return null;\n }\n\n const path = parsePath(textBeforeCursor);\n if (!path) return null;\n\n const textAfterSeperation = baseTextAfterSeperation.replace(/[\"'\\[]/g, '');\n const isInString = textAfterSeperation !== baseTextAfterSeperation;\n const isBracket = textBeforeCursor.at(-1) === '[';\n\n // Return null if we're in a string after a dot\n if (textBeforeCursor.at(-1) === '.' && isInString) return null;\n\n // Get nested properties and filter by text after separation if it exists\n let resolved = resolveNestedProperties(this.customAutoCompletions, path);\n if (!resolved || typeof resolved !== 'object') return null;\n\n if (textAfterSeperation) {\n resolved = Object.fromEntries(\n Object.entries(resolved).filter(([key]) => \n key.toLowerCase().startsWith(textAfterSeperation.toLowerCase())\n )\n );\n }\n\n return {\n from: context.pos - textAfterSeperation.length,\n options: Object.keys(resolved).map(key => ({\n label: key,\n type: 'property',\n info: `Key of ${path[path.length - 1]}`,\n apply: !this.allowVariableInCustomSuggestion && (isBracket && !isInString) \n ? `'${key}'` \n : key,\n boost: 999\n }))\n };\n }\n\n /**\n * Gets top level suggestions based on custom completions and paths\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @returns CompletionResult with top level suggestions or null\n */\n getTopLevelSuggestions(context: CompletionContext,textBeforeCursor:string){\n const baseMatch: any = textBeforeCursor.match(/([a-zA-Z_$][\\w$]*)$/);\n \n if (!baseMatch) {\n const trimmedText = textBeforeCursor.trim();\n if (trimmedText === '' && !this.isSpacePressed) {\n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length\n );\n \n const options = optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }));\n \n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths.forEach(path => {\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n });\n });\n }\n \n return {\n from: context.pos,\n options: options\n };\n }\n return null;\n }\n \n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length && \n key.toLowerCase().startsWith(textBeforeCursor.toLowerCase())\n );\n \n const options=optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }))\n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths\n .filter(path=>path.toLocaleLowerCase().includes(textBeforeCursor.toLocaleLowerCase()))\n .forEach(path=>{\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n })\n })\n }\n return {\n from: context.pos - baseMatch[1].length,\n options: options\n }\n }\n\n emitAfterTimeout(value:any){\n if(this.timeOut) clearTimeout(this.timeOut);\n this.timeOut=setTimeout(()=> this.emit('nile-change', value, false), this.debounceTimeout)\n }\n \n public focusAtPosition(pos: number=this.view.state.doc.toString().length): void {\n if (this.view) {\n this.view.dispatch({\n selection: { anchor: pos },\n });\n this.view.focus();\n }\n }\n\n public insertBetweenCode=(text: string) => {\n const transaction = this.view.state.changeByRange(range => {\n const { from, to } = range;\n return { changes: { from:from, to, insert: text }, range };\n });\n this.view.dispatch(transaction);\n }\n\n singleLineMultiLineToggle() {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: !this.multiline\n ? convertToSingleLine(this.value)\n : this.value,\n },\n });\n }\n\n //EXTENSION CONFIGURATIONS\n getLineNumbersExension() {\n return (!this.multiline && this.lineNumbers) || (this.multiline && this.lineNumbersMultiline) ? lineNumbers() : [];\n }\n \n getLanguageExtension():Extension{\n switch(this.language){\n case 'sql':\n return sql();\n case 'json':\n return json();\n case 'html':\n return htmlLang();\n default:\n return javascript(); \n }\n }\n\n getReadOnlyExtension() {\n if (this.disabled) {\n return [\n EditorState.readOnly.of(true),\n EditorView.editable.of(false),\n ];\n }\n\n if (this.readonly) {\n const extensions = [EditorState.readOnly.of(true)];\n if (this.hideReadOnlyCursor) {\n extensions.push(EditorView.theme(readOnlyTheme));\n }\n return extensions;\n }\n\n return [];\n }\n\n getSingleLineExtension() {\n return !this.multiline ? EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n ) : [];\n }\n\n getPlaceholderExtension(){\n return this.placeholder ? placeholder(this.placeholder) : [];\n }\n \n getDefaultSyntaxHighlightingExtension(){\n return !this.disableSyntaxHighlighting ? syntaxHighlighting(defaultHighlightStyle, { fallback: true }):[]\n }\n\n getCustomThemeExtension(): Extension {\n if(this.customThemeCSS) {\n if(this.defaultFont){\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss),EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss)];\n }\n if(this.defaultFont){\n return [EditorView.theme(customisedThemeCss), EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(customisedThemeCss)];\n }\n\n getAutoCompleteStyleExtension(width?: number): Extension {\n if (this.autoCompleteStyle?.width) {\n const containerWidth = width || (this.codeEditor ? this.codeEditor.getBoundingClientRect().width : 300);\n const widthPercentage = parseFloat(this.autoCompleteStyle.width.replace('%', ''));\n const codeEditorWidth = (containerWidth * widthPercentage) / 100;\n \n const multilineStyles: { [key: string]: string } = this.autoCompleteStyle.multiline ? {\n overflow: \"visible\",\n textOverflow: \"unset\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\"\n } : {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n \n return [ \n tooltips({\n position: \"fixed\", \n tooltipSpace: () => {\n const rect = this.codeEditor.getBoundingClientRect();\n return {\n left: rect.left,\n top: 0,\n right: rect.right,\n bottom: 1000\n };\n }\n }),\n EditorView.theme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n maxWidth: (codeEditorWidth - 15) + \"px !important\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul > li\": {\n ...multilineStyles,\n maxWidth: \"100%\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n minWidth: \"unset !important\"\n }\n })\n ];\n }\n return [];\n }\n\n private updateAutocompleteWidth(width: number) {\n if (this.view) {\n this.view.dispatch({\n effects: this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension(width))\n });\n }\n }\n\n restrictSingleLine() {\n return EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n );\n }\n /* #endregion */\n}\n\nexport default NileCodeEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-code-editor': NileCodeEditor;\n }\n}\n\n/**\n * Parses a string path into an array of keys representing nested object access\n * @param text The path string to parse (e.g. \"foo.bar[0].baz\")\n * @returns Array of keys if valid path, null otherwise\n * @example\n * parsePath(\"foo.bar[0]\") // returns [\"foo\", \"bar\", \"0\"]\n * parsePath(\"invalid\") // returns null\n */\nfunction parsePath(text: string) {\n const regex = /([a-zA-Z_$][\\w$]*)(\\[(?:[^\\]]+)\\]|\\.[a-zA-Z_$][\\w$]*)*/g;\n const matches = [...text.matchAll(regex)];\n if (matches.length > 0) {\n const base = matches[0][1]; // The base object name\n const keys = [base];\n // Extract keys from dot or bracket notation\n const pathMatches = text.match(/\\[(.*?)\\]|\\.(\\w+)/g) || [];\n for (const match of pathMatches) {\n if (match.startsWith('[')) {\n keys.push(match.slice(1, -1).replace(/['\"]/g, '')); // Remove brackets and quotes\n } else if (match.startsWith('.')) {\n keys.push(match.slice(1));\n }\n }\n return keys;\n }\n return null;\n};\n\n/**\n * Splits a path string at the last separator (. or [)\n * @param input The path string to split\n * @returns Array containing [path up to last separator, remainder after separator]\n * @example\n * splitStringAtLastSeparator(\"foo.bar[0]\") // returns [\"foo.bar[\", \"0\"]\n */\nfunction splitStringAtLastSeparator(input:string) {\n const lastSeparatorIndex = Math.max(input.lastIndexOf('.'), input.lastIndexOf('['));\n if (lastSeparatorIndex === -1) return [input, ''];\n return [input.slice(0, lastSeparatorIndex + 1), input.slice(lastSeparatorIndex + 1)];\n}\n\n/**\n * Traverses an object using an array of keys to access nested properties\n * @param obj The object to traverse\n * @param keys Array of keys defining the path to the desired property\n * @returns The value at the specified path, or null if path is invalid\n * @example\n * resolveNestedProperties({foo: {bar: 123}}, [\"foo\", \"bar\"]) // returns 123\n */\nfunction resolveNestedProperties (obj:any, keys:any[]){\n return keys.reduce((acc, key) => {\n if (acc && typeof acc === 'object') {\n return acc[key];\n }\n return null;\n }, obj);\n};\n\n/**\n * Validates if a string represents a valid object path format\n * @param path The path string to validate\n * @returns Boolean indicating if path format is valid\n * @example\n * isValidPath(\"foo.bar[0]\") // returns true\n * isValidPath(\"foo..bar\") // returns false\n */\nfunction isValidPath(path: string) {\n // Regex to validate the format of the string\n const regex = /^([a-zA-Z_$][\\w$]*)(\\.[a-zA-Z_$][\\w$]*|\\[\\s*(['\"]?[a-zA-Z0-9_$]*['\"]?)\\s*\\])*([\\.\\[])?$/;\n // Test the string against the regex\n return regex.test(path);\n}\n\n/**\n * Converts multi-line code into a single line by removing line breaks and extra whitespace\n * @param code The code string to convert\n * @returns Single line version of the code\n * @example\n * convertToSingleLine(\"foo\\n bar\") // returns \"foo bar\"\n */\nfunction convertToSingleLine(code: string) {\n if (!code) return '';\n // Remove line breaks and unnecessary whitespace\n return code.replace(/\\s+/g, ' ').trim();\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"nile-code-editor.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValueMap,\n} from 'lit';\n\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-code-editor.css';\nimport { EditorView } from 'codemirror';\nimport { ViewUpdate, placeholder, tooltips } from '@codemirror/view';\nimport { \n Compartment,\n EditorState,\n Extension\n} from '@codemirror/state';\nimport { StyleSpec } from 'style-mod';\nimport {\n syntaxHighlighting,\n} from '@codemirror/language';\n\nimport { lineNumbers } from '@codemirror/view';\nimport {\n javascript,\n javascriptLanguage,\n} from '@codemirror/lang-javascript';\nimport { sql } from '@codemirror/lang-sql';\nimport { json } from '@codemirror/lang-json';\nimport { html as htmlLang } from '@codemirror/lang-html';\nimport { autocompletion,acceptCompletion, closeCompletion,CompletionContext,CompletionResult, completionStatus } from '@codemirror/autocomplete';\nimport NileElement from '../internal/nile-element';\nimport { basicSetup } from './extensionSetup';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { Theme as DefaultTheme, customisedThemeCss, fontFamily, readOnlyTheme, nileEditorTheme, nileHighlightStyle } from './theme';\nimport { keymap } from '@codemirror/view';\n\n// Choose the appropriate mode for your use case\n\n/**\n * Nile icon component.\n *\n * @tag nile-code-editor\n *\n */\n@customElement('nile-code-editor')\nexport class NileCodeEditor extends NileElement {\n \n @query('.code__editor__container') codeEditor: HTMLInputElement;\n\n @property({ type: String, reflect: true , attribute: true }) value = '';\n\n @property({ type: String, reflect: true , attribute: true }) expandIcon = \"var(--nile-icon-expand-2, var(--ng-icon-expand-06))\";\n\n @property({ type: String, reflect: true , attribute: true }) placeholder = \"\";\n\n @property({ type: Object, reflect: true , attribute: true }) customAutoCompletions: object | any = {};\n\n @property({ type: Array, reflect: true , attribute: true }) customCompletionsPaths: string[] = [];\n\n @property({ type: String, reflect: true , attribute: true}) language: 'javascript' | 'sql' | 'json' | 'html' = 'javascript';\n\n @property({ type: String, reflect: true , attribute: 'error-message' }) errorMessage: string = '';\n\n @property({ type: Boolean, reflect: true , attribute: true }) error: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableSearch: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) noborder: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) multiline: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableFoldGutters: boolean = false;\n \n @property({ type: Boolean, reflect: true , attribute: true }) allowVariableInCustomSuggestion: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbers: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: false }) disableSyntaxHighlighting: boolean = false;\n\n @property({ type: Object, attribute: false }) customThemeCSS: object | null = customisedThemeCss;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbersMultiline: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) hasScroller: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) expandable: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true}) readonly: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) debounce: boolean = false;\n\n @property({ type: Number, reflect: true , attribute: true}) debounceTimeout: number = 200;\n\n @property({ type: Boolean, reflect: true , attribute: true}) aboveCursor: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) tabCompletion: boolean = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) defaultFont: boolean = false;\n\n @property({ type: Object, attribute: false }) autoCompleteStyle: { width?: string; multiline?: boolean } | undefined = undefined;\n\n @property({ type: Boolean, reflect: true, attribute: true }) hideReadOnlyCursor: boolean = false; \n\n public view: EditorView;\n public viewState:EditorState;\n private timeOut: any = null;\n private resizeObserver?: ResizeObserver;\n\n // Compartments for initialiazing and switching extensions\n private lineNumbersComp = new Compartment();\n private restrictSingleLineComp = new Compartment();\n private readOnlyComp = new Compartment();\n private customCompletionComp = new Compartment();\n private placeholderComp = new Compartment();\n private defaultSyntaxHighlightingComp = new Compartment();\n private themeComp = new Compartment();\n private autoCompletionComp = new Compartment();\n private autoCompleteStyleComp = new Compartment();\n\n private isSpacePressed:boolean = false;\n /**\n * The styles for CodeEditor\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit('nile-init',undefined,false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.view.destroy()\n this.emit('nile-destroy',undefined,false);\n }\n\n firstUpdated() {\n this.createNewView()\n \n if (this.autoCompleteStyle?.width) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n \n this.emit('nile-after-init',{ \n codeMirrorInstance: this.view, \n createNewView: this.createNewView, \n insertAtCursor: this.insertBetweenCode \n }, false )\n }\n\n getTabCompletionKeymap() {\n return this.tabCompletion\n ? keymap.of([\n {\n key: 'Tab',\n run: acceptCompletion,\n }\n ])\n : [];\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.updated(changedProperties);\n if (changedProperties.has('value') && this.view.state.doc.toString()!=this.value) {\n // Editor has already been initialized, update its state\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('multiline')) {\n this.view.dispatch({\n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())\n ],\n })\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('readonly')) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('disabled') && this.view) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('aboveCursor')) {\n this.view.dispatch({\n effects: [\n this.autoCompletionComp.reconfigure(\n autocompletion({ aboveCursor: this.aboveCursor })\n )\n ]\n });\n } \n if (changedProperties.has('placeholder')) {\n this.view.dispatch({ \n effects: [\n this.placeholderComp.reconfigure(this.getPlaceholderExtension()),\n ]\n })\n }\n if (changedProperties.has('lineNumbers') || changedProperties.has('lineNumbersMultiline')) {\n this.view.dispatch({ \n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n ]\n })\n }\n if(changedProperties.has('customAutoCompletions') || changedProperties.has('customCompletionsPaths')){\n this.view.dispatch({ \n effects: [\n this.customCompletionComp.reconfigure(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }))\n ]\n })\n }\n if(changedProperties.has('disableSyntaxHighlighting')){\n this.view.dispatch({ \n effects: [\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension())\n ]\n })\n }\n if(changedProperties.has('customThemeCSS')){\n this.view.dispatch({ \n effects: [\n this.themeComp.reconfigure(this.getCustomThemeExtension())\n ]\n })\n }\n if(changedProperties.has('autoCompleteStyle') && this.view){\n if (this.autoCompleteStyle?.width) {\n if (!this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n } else {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n \n this.view.dispatch({ \n effects: [\n this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension())\n ]\n })\n }\n }\n\n public render(): TemplateResult {\n const hasErrorMessage = !!this.errorMessage;\n const hasError = !!this.error;\n const noborder = !!this.noborder;\n const noScrollbar = !this.hasScroller\n return html`<div\n part=\"code-editor-base\"\n class=${classMap({\n 'code__editor__container': true,\n 'noborder': noborder,\n 'error': hasError || hasErrorMessage,\n 'code__editor__singleline': !this.multiline,\n 'no-scroller': noScrollbar,\n 'disabled': this.disabled\n })}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n ${this.expandable && !this.disabled\n ? html` \n <div @click=\"${(e: CustomEvent) => this.emit('nile-expand')}\" class=\"expand__icon__container\">\n <nile-glyph\n name=\"${this.expandIcon}\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-fill))\"\n size=\"16\"\n color=\"black\"\n ></nile-glyph>\n </div>`\n : ''}\n </div>\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}`;\n }\n\n createNewView(emitEvent=true){\n if(this.view) this.view.destroy();\n this.createState()\n this.view = new EditorView({\n state: this.viewState,\n parent: this.codeEditor\n });\n\n this.view.dom.addEventListener('keydown', (e: KeyboardEvent) => {\n this.checkForSpaceKey(e);\n this.handleEscapeKey(e);\n }, true);\n if (emitEvent) this.emit('nile-after-update', { createNewView: this.createNewView, codeMirrorInstance: this.view, }, false );\n }\n\n checkForSpaceKey(e: KeyboardEvent) {\n if (e.code === 'Space' && !e.ctrlKey) {\n this.isSpacePressed = true;\n } else {\n this.isSpacePressed = false;\n }\n }\n\n public closeCompletion() {\n if (this.view) {\n closeCompletion(this.view);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.view && completionStatus(this.view.state) !== null) {\n e.stopPropagation(); \n e.preventDefault(); \n closeCompletion(this.view);\n }\n }\n\n createState(){\n const lineNumbersExtension = this.lineNumbersComp.of(this.getLineNumbersExension());\n const readOnlyExtension = this.readOnlyComp.of(this.getReadOnlyExtension());\n const restrictSingleLineExtension = this.restrictSingleLineComp.of(this.getSingleLineExtension())\n const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())\n const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());\n const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());\n const autoCompleteStyleExtension = this.autoCompleteStyleComp.of(this.getAutoCompleteStyleExtension());\n const language = this.getLanguageExtension()\n const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }));\n\n this.viewState = EditorState.create({\n doc: !this.multiline ? convertToSingleLine(this.value) : this.value,\n extensions: [\n basicSetup({\n highlightActiveLine: false,\n foldGutter: this.enableFoldGutters,\n enableSearch:this.enableSearch\n }),\n lineNumbersExtension,\n readOnlyExtension,\n restrictSingleLineExtension,\n customAutoCompletions,\n placeholderExtension,\n defaultSyntaxHighlightingExtension,\n this.autoCompletionComp.of(\n autocompletion({ aboveCursor: this.aboveCursor })\n ),\n language,\n EditorView.theme(nileEditorTheme),\n customThemeExtension,\n autoCompleteStyleExtension,\n this.getTabCompletionKeymap(),\n EditorView.updateListener.of((v: ViewUpdate) => {\n if (v.docChanged) {\n this.debounce ? this.emitAfterTimeout({ value: this.view.state.doc.toString() }) : this.emit('nile-change', { value: this.view.state.doc.toString() })\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.dispatchEvent(new Event('nile-focus')),\n blur: () => this.dispatchEvent(new Event('nile-blur')),\n }),\n ],\n });\n return this.viewState\n }\n /**\n * Custom autocomplete handler for code editor suggestions\n * @param context CompletionContext from CodeMirror\n * @returns CompletionResult with suggestions or null if no suggestions\n */\n customAutocomplete = (context: CompletionContext): CompletionResult | null => {\n // Getting the valid last line, last text from the code editor\n const text = context.state.doc.sliceString(0, context.pos);\n const lastWord = text.split('\\n').at(-1)?.split(' ').at(-1) || '';\n const [textBeforeCursor, baseTextAfterSeperation] = splitStringAtLastSeparator(lastWord);\n \n return this.getNestedSuggestions(context, textBeforeCursor, baseTextAfterSeperation) \n || this.getTopLevelSuggestions(context, textBeforeCursor);\n };\n\n /**\n * Gets nested property suggestions based on the current path\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @param baseTextAfterSeperation Text after the last separator (. or [)\n * @returns CompletionResult with nested suggestions or null\n */\n getNestedSuggestions(context: CompletionContext, textBeforeCursor: string, baseTextAfterSeperation: string) {\n // Return early if not a valid path or not ending with . or [\n if (!isValidPath(textBeforeCursor) || !['.', '['].includes(textBeforeCursor.at(-1)!)) {\n return null;\n }\n\n const path = parsePath(textBeforeCursor);\n if (!path) return null;\n\n const textAfterSeperation = baseTextAfterSeperation.replace(/[\"'\\[]/g, '');\n const isInString = textAfterSeperation !== baseTextAfterSeperation;\n const isBracket = textBeforeCursor.at(-1) === '[';\n\n // Return null if we're in a string after a dot\n if (textBeforeCursor.at(-1) === '.' && isInString) return null;\n\n // Get nested properties and filter by text after separation if it exists\n let resolved = resolveNestedProperties(this.customAutoCompletions, path);\n if (!resolved || typeof resolved !== 'object') return null;\n\n if (textAfterSeperation) {\n resolved = Object.fromEntries(\n Object.entries(resolved).filter(([key]) => \n key.toLowerCase().startsWith(textAfterSeperation.toLowerCase())\n )\n );\n }\n\n return {\n from: context.pos - textAfterSeperation.length,\n options: Object.keys(resolved).map(key => ({\n label: key,\n type: 'property',\n info: `Key of ${path[path.length - 1]}`,\n apply: !this.allowVariableInCustomSuggestion && (isBracket && !isInString) \n ? `'${key}'` \n : key,\n boost: 999\n }))\n };\n }\n\n /**\n * Gets top level suggestions based on custom completions and paths\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @returns CompletionResult with top level suggestions or null\n */\n getTopLevelSuggestions(context: CompletionContext,textBeforeCursor:string){\n const baseMatch: any = textBeforeCursor.match(/([a-zA-Z_$][\\w$]*)$/);\n \n if (!baseMatch) {\n const trimmedText = textBeforeCursor.trim();\n if (trimmedText === '' && !this.isSpacePressed) {\n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length\n );\n \n const options = optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }));\n \n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths.forEach(path => {\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n });\n });\n }\n \n return {\n from: context.pos,\n options: options\n };\n }\n return null;\n }\n \n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length && \n key.toLowerCase().startsWith(textBeforeCursor.toLowerCase())\n );\n \n const options=optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }))\n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths\n .filter(path=>path.toLocaleLowerCase().includes(textBeforeCursor.toLocaleLowerCase()))\n .forEach(path=>{\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n })\n })\n }\n return {\n from: context.pos - baseMatch[1].length,\n options: options\n }\n }\n\n emitAfterTimeout(value:any){\n if(this.timeOut) clearTimeout(this.timeOut);\n this.timeOut=setTimeout(()=> this.emit('nile-change', value, false), this.debounceTimeout)\n }\n \n public focusAtPosition(pos: number=this.view.state.doc.toString().length): void {\n if (this.view) {\n this.view.dispatch({\n selection: { anchor: pos },\n });\n this.view.focus();\n }\n }\n\n public insertBetweenCode=(text: string) => {\n const transaction = this.view.state.changeByRange(range => {\n const { from, to } = range;\n return { changes: { from:from, to, insert: text }, range };\n });\n this.view.dispatch(transaction);\n }\n\n singleLineMultiLineToggle() {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: !this.multiline\n ? convertToSingleLine(this.value)\n : this.value,\n },\n });\n }\n\n //EXTENSION CONFIGURATIONS\n getLineNumbersExension() {\n return (!this.multiline && this.lineNumbers) || (this.multiline && this.lineNumbersMultiline) ? lineNumbers() : [];\n }\n \n getLanguageExtension():Extension{\n switch(this.language){\n case 'sql':\n return sql();\n case 'json':\n return json();\n case 'html':\n return htmlLang();\n default:\n return javascript(); \n }\n }\n\n getReadOnlyExtension() {\n if (this.disabled) {\n return [\n EditorState.readOnly.of(true),\n EditorView.editable.of(false),\n ];\n }\n\n if (this.readonly) {\n const extensions = [EditorState.readOnly.of(true)];\n if (this.hideReadOnlyCursor) {\n extensions.push(EditorView.theme(readOnlyTheme));\n }\n return extensions;\n }\n\n return [];\n }\n\n getSingleLineExtension() {\n return !this.multiline ? EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n ) : [];\n }\n\n getPlaceholderExtension(){\n return this.placeholder ? placeholder(this.placeholder) : [];\n }\n \n getDefaultSyntaxHighlightingExtension(){\n return !this.disableSyntaxHighlighting ? syntaxHighlighting(nileHighlightStyle, { fallback: true }):[]\n }\n\n getCustomThemeExtension(): Extension {\n if(this.customThemeCSS) {\n if(this.defaultFont){\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss),EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss)];\n }\n if(this.defaultFont){\n return [EditorView.theme(customisedThemeCss), EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(customisedThemeCss)];\n }\n\n getAutoCompleteStyleExtension(width?: number): Extension {\n if (this.autoCompleteStyle?.width) {\n const containerWidth = width || (this.codeEditor ? this.codeEditor.getBoundingClientRect().width : 300);\n const widthPercentage = parseFloat(this.autoCompleteStyle.width.replace('%', ''));\n const codeEditorWidth = (containerWidth * widthPercentage) / 100;\n \n const multilineStyles: { [key: string]: string } = this.autoCompleteStyle.multiline ? {\n overflow: \"visible\",\n textOverflow: \"unset\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\"\n } : {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n \n return [ \n tooltips({\n position: \"fixed\", \n tooltipSpace: () => {\n const rect = this.codeEditor.getBoundingClientRect();\n return {\n left: rect.left,\n top: 0,\n right: rect.right,\n bottom: 1000\n };\n }\n }),\n EditorView.theme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n maxWidth: (codeEditorWidth - 15) + \"px !important\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul > li\": {\n ...multilineStyles,\n maxWidth: \"100%\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n minWidth: \"unset !important\"\n }\n })\n ];\n }\n return [];\n }\n\n private updateAutocompleteWidth(width: number) {\n if (this.view) {\n this.view.dispatch({\n effects: this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension(width))\n });\n }\n }\n\n restrictSingleLine() {\n return EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n );\n }\n /* #endregion */\n}\n\nexport default NileCodeEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-code-editor': NileCodeEditor;\n }\n}\n\n/**\n * Parses a string path into an array of keys representing nested object access\n * @param text The path string to parse (e.g. \"foo.bar[0].baz\")\n * @returns Array of keys if valid path, null otherwise\n * @example\n * parsePath(\"foo.bar[0]\") // returns [\"foo\", \"bar\", \"0\"]\n * parsePath(\"invalid\") // returns null\n */\nfunction parsePath(text: string) {\n const regex = /([a-zA-Z_$][\\w$]*)(\\[(?:[^\\]]+)\\]|\\.[a-zA-Z_$][\\w$]*)*/g;\n const matches = [...text.matchAll(regex)];\n if (matches.length > 0) {\n const base = matches[0][1]; // The base object name\n const keys = [base];\n // Extract keys from dot or bracket notation\n const pathMatches = text.match(/\\[(.*?)\\]|\\.(\\w+)/g) || [];\n for (const match of pathMatches) {\n if (match.startsWith('[')) {\n keys.push(match.slice(1, -1).replace(/['\"]/g, '')); // Remove brackets and quotes\n } else if (match.startsWith('.')) {\n keys.push(match.slice(1));\n }\n }\n return keys;\n }\n return null;\n};\n\n/**\n * Splits a path string at the last separator (. or [)\n * @param input The path string to split\n * @returns Array containing [path up to last separator, remainder after separator]\n * @example\n * splitStringAtLastSeparator(\"foo.bar[0]\") // returns [\"foo.bar[\", \"0\"]\n */\nfunction splitStringAtLastSeparator(input:string) {\n const lastSeparatorIndex = Math.max(input.lastIndexOf('.'), input.lastIndexOf('['));\n if (lastSeparatorIndex === -1) return [input, ''];\n return [input.slice(0, lastSeparatorIndex + 1), input.slice(lastSeparatorIndex + 1)];\n}\n\n/**\n * Traverses an object using an array of keys to access nested properties\n * @param obj The object to traverse\n * @param keys Array of keys defining the path to the desired property\n * @returns The value at the specified path, or null if path is invalid\n * @example\n * resolveNestedProperties({foo: {bar: 123}}, [\"foo\", \"bar\"]) // returns 123\n */\nfunction resolveNestedProperties (obj:any, keys:any[]){\n return keys.reduce((acc, key) => {\n if (acc && typeof acc === 'object') {\n return acc[key];\n }\n return null;\n }, obj);\n};\n\n/**\n * Validates if a string represents a valid object path format\n * @param path The path string to validate\n * @returns Boolean indicating if path format is valid\n * @example\n * isValidPath(\"foo.bar[0]\") // returns true\n * isValidPath(\"foo..bar\") // returns false\n */\nfunction isValidPath(path: string) {\n // Regex to validate the format of the string\n const regex = /^([a-zA-Z_$][\\w$]*)(\\.[a-zA-Z_$][\\w$]*|\\[\\s*(['\"]?[a-zA-Z0-9_$]*['\"]?)\\s*\\])*([\\.\\[])?$/;\n // Test the string against the regex\n return regex.test(path);\n}\n\n/**\n * Converts multi-line code into a single line by removing line breaks and extra whitespace\n * @param code The code string to convert\n * @returns Single line version of the code\n * @example\n * convertToSingleLine(\"foo\\n bar\") // returns \"foo bar\"\n */\nfunction convertToSingleLine(code: string) {\n if (!code) return '';\n // Remove line breaks and unnecessary whitespace\n return code.replace(/\\s+/g, ' ').trim();\n}\n\n"]}
|
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
import { HighlightStyle } from '@codemirror/language';
|
|
2
|
+
export declare const nileEditorTheme: {
|
|
3
|
+
'&': {
|
|
4
|
+
color: string;
|
|
5
|
+
backgroundColor: string;
|
|
6
|
+
};
|
|
7
|
+
'.cm-content': {
|
|
8
|
+
caretColor: string;
|
|
9
|
+
};
|
|
10
|
+
'.cm-cursor, .cm-dropCursor': {
|
|
11
|
+
borderLeftColor: string;
|
|
12
|
+
};
|
|
13
|
+
'&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection': {
|
|
14
|
+
backgroundColor: string;
|
|
15
|
+
};
|
|
16
|
+
'.cm-gutters': {
|
|
17
|
+
backgroundColor: string;
|
|
18
|
+
color: string;
|
|
19
|
+
borderRight: string;
|
|
20
|
+
};
|
|
21
|
+
'.cm-activeLineGutter': {
|
|
22
|
+
backgroundColor: string;
|
|
23
|
+
color: string;
|
|
24
|
+
};
|
|
25
|
+
'.cm-activeLine': {
|
|
26
|
+
backgroundColor: string;
|
|
27
|
+
};
|
|
28
|
+
'.cm-selectionMatch': {
|
|
29
|
+
backgroundColor: string;
|
|
30
|
+
};
|
|
31
|
+
'.cm-placeholder': {
|
|
32
|
+
color: string;
|
|
33
|
+
};
|
|
34
|
+
'.cm-foldPlaceholder': {
|
|
35
|
+
backgroundColor: string;
|
|
36
|
+
color: string;
|
|
37
|
+
border: string;
|
|
38
|
+
};
|
|
39
|
+
'.cm-matchingBracket, .cm-nonmatchingBracket': {
|
|
40
|
+
backgroundColor: string;
|
|
41
|
+
outline: string;
|
|
42
|
+
};
|
|
43
|
+
'.cm-panels': {
|
|
44
|
+
backgroundColor: string;
|
|
45
|
+
color: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export declare const nileHighlightStyle: HighlightStyle;
|
|
1
49
|
export declare const Theme: {
|
|
2
50
|
'&': {
|
|
3
51
|
fontSize: string;
|
|
@@ -54,7 +102,6 @@ export declare const customisedThemeCss: {
|
|
|
54
102
|
backgroundColor: string;
|
|
55
103
|
display: string;
|
|
56
104
|
fontSize: string;
|
|
57
|
-
background: string;
|
|
58
105
|
border: string;
|
|
59
106
|
borderRadius: string;
|
|
60
107
|
paddingBlock: string;
|
|
@@ -95,8 +142,17 @@ export declare const customisedThemeCss: {
|
|
|
95
142
|
position: string;
|
|
96
143
|
};
|
|
97
144
|
'.cm-completionIcon::after': {
|
|
98
|
-
display: string;
|
|
99
145
|
content: string;
|
|
146
|
+
display: string;
|
|
147
|
+
width: string;
|
|
148
|
+
height: string;
|
|
149
|
+
backgroundColor: string;
|
|
150
|
+
maskImage: string;
|
|
151
|
+
maskSize: string;
|
|
152
|
+
maskRepeat: string;
|
|
153
|
+
WebkitMaskImage: string;
|
|
154
|
+
WebkitMaskSize: string;
|
|
155
|
+
WebkitMaskRepeat: string;
|
|
100
156
|
position: string;
|
|
101
157
|
left: string;
|
|
102
158
|
top: string;
|
|
@@ -108,6 +164,16 @@ export declare const customisedThemeCss: {
|
|
|
108
164
|
};
|
|
109
165
|
'.cm-completionIcon.cm-completionIcon-property::after': {
|
|
110
166
|
content: string;
|
|
167
|
+
display: string;
|
|
168
|
+
width: string;
|
|
169
|
+
height: string;
|
|
170
|
+
backgroundColor: string;
|
|
171
|
+
maskImage: string;
|
|
172
|
+
maskSize: string;
|
|
173
|
+
maskRepeat: string;
|
|
174
|
+
WebkitMaskImage: string;
|
|
175
|
+
WebkitMaskSize: string;
|
|
176
|
+
WebkitMaskRepeat: string;
|
|
111
177
|
position: string;
|
|
112
178
|
left: string;
|
|
113
179
|
top: string;
|
|
@@ -116,6 +182,16 @@ export declare const customisedThemeCss: {
|
|
|
116
182
|
};
|
|
117
183
|
'.cm-completionIcon.cm-completionIcon-keyword::after': {
|
|
118
184
|
content: string;
|
|
185
|
+
display: string;
|
|
186
|
+
width: string;
|
|
187
|
+
height: string;
|
|
188
|
+
backgroundColor: string;
|
|
189
|
+
maskImage: string;
|
|
190
|
+
maskSize: string;
|
|
191
|
+
maskRepeat: string;
|
|
192
|
+
WebkitMaskImage: string;
|
|
193
|
+
WebkitMaskSize: string;
|
|
194
|
+
WebkitMaskRepeat: string;
|
|
119
195
|
position: string;
|
|
120
196
|
left: string;
|
|
121
197
|
top: string;
|
|
@@ -124,6 +200,16 @@ export declare const customisedThemeCss: {
|
|
|
124
200
|
};
|
|
125
201
|
'.cm-completionIcon.cm-completionIcon-variable::after': {
|
|
126
202
|
content: string;
|
|
203
|
+
display: string;
|
|
204
|
+
width: string;
|
|
205
|
+
height: string;
|
|
206
|
+
backgroundColor: string;
|
|
207
|
+
maskImage: string;
|
|
208
|
+
maskSize: string;
|
|
209
|
+
maskRepeat: string;
|
|
210
|
+
WebkitMaskImage: string;
|
|
211
|
+
WebkitMaskSize: string;
|
|
212
|
+
WebkitMaskRepeat: string;
|
|
127
213
|
position: string;
|
|
128
214
|
left: string;
|
|
129
215
|
top: string;
|
|
@@ -132,6 +218,16 @@ export declare const customisedThemeCss: {
|
|
|
132
218
|
};
|
|
133
219
|
'.cm-completionIcon.cm-completionIcon-text::after': {
|
|
134
220
|
content: string;
|
|
221
|
+
display: string;
|
|
222
|
+
width: string;
|
|
223
|
+
height: string;
|
|
224
|
+
backgroundColor: string;
|
|
225
|
+
maskImage: string;
|
|
226
|
+
maskSize: string;
|
|
227
|
+
maskRepeat: string;
|
|
228
|
+
WebkitMaskImage: string;
|
|
229
|
+
WebkitMaskSize: string;
|
|
230
|
+
WebkitMaskRepeat: string;
|
|
135
231
|
position: string;
|
|
136
232
|
left: string;
|
|
137
233
|
top: string;
|
|
@@ -140,6 +236,16 @@ export declare const customisedThemeCss: {
|
|
|
140
236
|
};
|
|
141
237
|
'.cm-completionIcon.cm-completionIcon-function::after': {
|
|
142
238
|
content: string;
|
|
239
|
+
display: string;
|
|
240
|
+
width: string;
|
|
241
|
+
height: string;
|
|
242
|
+
backgroundColor: string;
|
|
243
|
+
maskImage: string;
|
|
244
|
+
maskSize: string;
|
|
245
|
+
maskRepeat: string;
|
|
246
|
+
WebkitMaskImage: string;
|
|
247
|
+
WebkitMaskSize: string;
|
|
248
|
+
WebkitMaskRepeat: string;
|
|
143
249
|
position: string;
|
|
144
250
|
left: string;
|
|
145
251
|
top: string;
|
|
@@ -148,6 +254,16 @@ export declare const customisedThemeCss: {
|
|
|
148
254
|
};
|
|
149
255
|
'.cm-completionIcon.cm-completionIcon-class::after': {
|
|
150
256
|
content: string;
|
|
257
|
+
display: string;
|
|
258
|
+
width: string;
|
|
259
|
+
height: string;
|
|
260
|
+
backgroundColor: string;
|
|
261
|
+
maskImage: string;
|
|
262
|
+
maskSize: string;
|
|
263
|
+
maskRepeat: string;
|
|
264
|
+
WebkitMaskImage: string;
|
|
265
|
+
WebkitMaskSize: string;
|
|
266
|
+
WebkitMaskRepeat: string;
|
|
151
267
|
position: string;
|
|
152
268
|
left: string;
|
|
153
269
|
top: string;
|