@jumpgroup/jump-design-system 0.3.8 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/chunk.H33C3MRM-2c09acb5.js +547 -0
- package/dist/cjs/chunk.H33C3MRM-2c09acb5.js.map +1 -0
- package/dist/cjs/jump-button_2.cjs.entry.js +3 -525
- package/dist/cjs/jump-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/jump-design-system.cjs.js +1 -1
- package/dist/cjs/jump-filter-checkbox.cjs.entry.js +845 -0
- package/dist/cjs/jump-filter-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/jump-filter.cjs.entry.js +5 -4
- package/dist/cjs/jump-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/jump-filtergroup.cjs.entry.js +19 -3
- package/dist/cjs/jump-filtergroup.cjs.entry.js.map +1 -1
- package/dist/cjs/jump-pagination-table.cjs.entry.js +17 -18
- package/dist/cjs/jump-pagination-table.cjs.entry.js.map +1 -1
- package/dist/cjs/jump-pagination.cjs.entry.js +3 -3
- package/dist/cjs/jump-quantity.cjs.entry.js +4 -4
- package/dist/cjs/jump-quantity.cjs.entry.js.map +1 -1
- package/dist/cjs/jump-tab-item.cjs.entry.js +2 -2
- package/dist/cjs/jump-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/jump-tab.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/jump-filter/jump-filter.css +8 -1
- package/dist/collection/components/jump-filter/jump-filter.js +5 -4
- package/dist/collection/components/jump-filter/jump-filter.js.map +1 -1
- package/dist/collection/components/jump-filter/jump-filter.stories.js +5 -4
- package/dist/collection/components/jump-filter/jump-filter.stories.js.map +1 -1
- package/dist/collection/components/jump-filter-checkbox/jump-filter-checkbox.css +31 -0
- package/dist/collection/components/jump-filter-checkbox/jump-filter-checkbox.js +161 -0
- package/dist/collection/components/jump-filter-checkbox/jump-filter-checkbox.js.map +1 -0
- package/dist/collection/components/jump-filter-checkbox/jump-filter-checkbox.stories.js +51 -0
- package/dist/collection/components/jump-filter-checkbox/jump-filter-checkbox.stories.js.map +1 -0
- package/dist/collection/components/jump-filtergroup/jump-filtergroup.js +21 -5
- package/dist/collection/components/jump-filtergroup/jump-filtergroup.js.map +1 -1
- package/dist/collection/components/jump-filtergroup/jump-filtergroup.stories.js +1 -1
- package/dist/collection/components/jump-filtergroup/jump-filtergroup.stories.js.map +1 -1
- package/dist/collection/components/jump-pagination/jump-pagination.js +3 -3
- package/dist/collection/components/jump-pagination-table/jump-pagination-table.js +31 -45
- package/dist/collection/components/jump-pagination-table/jump-pagination-table.js.map +1 -1
- package/dist/collection/components/jump-pagination-table/jump-pagination-table.stories.js +6 -14
- package/dist/collection/components/jump-pagination-table/jump-pagination-table.stories.js.map +1 -1
- package/dist/collection/components/jump-quantity/jump-quantity.css +6 -3
- package/dist/collection/components/jump-quantity/jump-quantity.js +3 -3
- package/dist/collection/components/jump-quantity/jump-quantity.js.map +1 -1
- package/dist/collection/components/jump-tab/jump-tab.js +1 -1
- package/dist/collection/components/jump-tab-item/jump-tab-item.js +2 -2
- package/dist/collection/components/jump-tab-panel/jump-tab-panel.js +1 -1
- package/dist/components/chunk.H33C3MRM.js +529 -0
- package/dist/components/chunk.H33C3MRM.js.map +1 -0
- package/dist/components/jump-filter-checkbox.d.ts +11 -0
- package/dist/components/jump-filter-checkbox.js +865 -0
- package/dist/components/jump-filter-checkbox.js.map +1 -0
- package/dist/components/jump-filter.js +5 -4
- package/dist/components/jump-filter.js.map +1 -1
- package/dist/components/jump-filtergroup.js +20 -4
- package/dist/components/jump-filtergroup.js.map +1 -1
- package/dist/components/jump-icon2.js +6 -528
- package/dist/components/jump-icon2.js.map +1 -1
- package/dist/components/jump-pagination-table.js +22 -21
- package/dist/components/jump-pagination-table.js.map +1 -1
- package/dist/components/jump-pagination.js +3 -3
- package/dist/components/jump-quantity.js +4 -4
- package/dist/components/jump-quantity.js.map +1 -1
- package/dist/components/jump-tab-item.js +2 -2
- package/dist/components/jump-tab-panel.js +1 -1
- package/dist/components/jump-tab.js +1 -1
- package/dist/esm/chunk.H33C3MRM-d1872e67.js +529 -0
- package/dist/esm/chunk.H33C3MRM-d1872e67.js.map +1 -0
- package/dist/esm/jump-button_2.entry.js +6 -528
- package/dist/esm/jump-button_2.entry.js.map +1 -1
- package/dist/esm/jump-design-system.js +1 -1
- package/dist/esm/jump-filter-checkbox.entry.js +841 -0
- package/dist/esm/jump-filter-checkbox.entry.js.map +1 -0
- package/dist/esm/jump-filter.entry.js +5 -4
- package/dist/esm/jump-filter.entry.js.map +1 -1
- package/dist/esm/jump-filtergroup.entry.js +19 -3
- package/dist/esm/jump-filtergroup.entry.js.map +1 -1
- package/dist/esm/jump-pagination-table.entry.js +17 -18
- package/dist/esm/jump-pagination-table.entry.js.map +1 -1
- package/dist/esm/jump-pagination.entry.js +3 -3
- package/dist/esm/jump-quantity.entry.js +4 -4
- package/dist/esm/jump-quantity.entry.js.map +1 -1
- package/dist/esm/jump-tab-item.entry.js +2 -2
- package/dist/esm/jump-tab-panel.entry.js +1 -1
- package/dist/esm/jump-tab.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/jump-design-system/jump-design-system.esm.js +1 -1
- package/dist/jump-design-system/jump-design-system.esm.js.map +1 -1
- package/dist/jump-design-system/{p-95460fa4.entry.js → p-4302b229.entry.js} +2 -2
- package/dist/jump-design-system/p-60849b83.entry.js +2 -0
- package/dist/jump-design-system/p-60849b83.entry.js.map +1 -0
- package/dist/jump-design-system/p-839e054d.entry.js +2 -0
- package/dist/jump-design-system/p-839e054d.entry.js.map +1 -0
- package/dist/jump-design-system/{p-d2ee7b9b.entry.js → p-9d9b0076.entry.js} +2 -2
- package/dist/jump-design-system/p-a00d20d8.entry.js +264 -0
- package/dist/jump-design-system/p-a00d20d8.entry.js.map +1 -0
- package/dist/jump-design-system/p-a41ca036.entry.js +2 -0
- package/dist/jump-design-system/p-a41ca036.entry.js.map +1 -0
- package/dist/jump-design-system/p-a4b9515b.js +66 -0
- package/dist/jump-design-system/p-a4b9515b.js.map +1 -0
- package/dist/jump-design-system/p-aee5a8c3.entry.js +2 -0
- package/dist/jump-design-system/p-c8733544.entry.js +2 -0
- package/dist/jump-design-system/p-c8733544.entry.js.map +1 -0
- package/dist/jump-design-system/{p-8efeaa79.entry.js → p-ed897778.entry.js} +2 -2
- package/dist/jump-design-system/p-fde99383.entry.js +2 -0
- package/dist/jump-design-system/p-fde99383.entry.js.map +1 -0
- package/dist/jump-design-system-elements.json +31 -6
- package/dist/types/components/jump-filter-checkbox/jump-filter-checkbox.d.ts +15 -0
- package/dist/types/components/jump-filter-checkbox/jump-filter-checkbox.stories.d.ts +30 -0
- package/dist/types/components/jump-filtergroup/jump-filtergroup.d.ts +2 -1
- package/dist/types/components/jump-filtergroup/jump-filtergroup.stories.d.ts +1 -1
- package/dist/types/components/jump-pagination-table/jump-pagination-table.d.ts +3 -1
- package/dist/types/components/jump-pagination-table/jump-pagination-table.stories.d.ts +1 -6
- package/dist/types/components.d.ts +42 -12
- package/package.json +1 -1
- package/dist/jump-design-system/p-529a09f6.entry.js +0 -2
- package/dist/jump-design-system/p-529a09f6.entry.js.map +0 -1
- package/dist/jump-design-system/p-594b15ee.entry.js +0 -2
- package/dist/jump-design-system/p-594b15ee.entry.js.map +0 -1
- package/dist/jump-design-system/p-5da7839d.entry.js +0 -2
- package/dist/jump-design-system/p-8628896f.entry.js +0 -2
- package/dist/jump-design-system/p-8628896f.entry.js.map +0 -1
- package/dist/jump-design-system/p-c2bc6395.entry.js +0 -66
- package/dist/jump-design-system/p-c2bc6395.entry.js.map +0 -1
- package/dist/jump-design-system/p-d1e411fd.entry.js +0 -2
- package/dist/jump-design-system/p-d1e411fd.entry.js.map +0 -1
- /package/dist/jump-design-system/{p-95460fa4.entry.js.map → p-4302b229.entry.js.map} +0 -0
- /package/dist/jump-design-system/{p-d2ee7b9b.entry.js.map → p-9d9b0076.entry.js.map} +0 -0
- /package/dist/jump-design-system/{p-5da7839d.entry.js.map → p-aee5a8c3.entry.js.map} +0 -0
- /package/dist/jump-design-system/{p-8efeaa79.entry.js.map → p-ed897778.entry.js.map} +0 -0
|
@@ -82,7 +82,7 @@ const JumpTab = class {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
render() {
|
|
85
|
-
return (index.h(index.Host, { key: '
|
|
85
|
+
return (index.h(index.Host, { key: '8bee60d35e49d0afbc66a258108abc0242897206', class: "JumpTab", id: this.tabGroupName, ref: (el) => { this.JumpTabEl = el; } }, index.h("div", { key: '8328fe6bee0408102e0cba38f90c58b883908d3d', class: "Wrapper " + this.variant }, index.h("slot", { key: '0e4fd0e4d93148cdf01ff78abc36373dda53ae93', name: "tab-item" })), index.h("div", { key: '9540449ea09f1373e8aefd3fa1c503553e2077ae' }, index.h("slot", { key: 'e3bca29c3edb9f3ac12816ddebc8ac7b760d40a2', name: "tab-content" }))));
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
88
|
JumpTab.style = JumpTabStyle0;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -8,7 +8,7 @@ const appGlobals = require('./app-globals-3a1e7e63.js');
|
|
|
8
8
|
const defineCustomElements = async (win, options) => {
|
|
9
9
|
if (typeof window === 'undefined') return undefined;
|
|
10
10
|
await appGlobals.globalScripts();
|
|
11
|
-
return index.bootstrapLazy([["jump-
|
|
11
|
+
return index.bootstrapLazy([["jump-card-ecommerce.cjs",[[1,"jump-card-ecommerce",{"onlyIconButton":[4,"only-icon-button"],"hasBackground":[4,"has-background"],"badge":[1],"favorite":[1540],"hasFavorite":[4,"has-favorite"],"favoriteBtnClass":[1,"favorite-btn-class"],"link":[1],"img":[1],"imgAlt":[1,"img-alt"],"hoverImg":[1,"hover-img"],"hoverImgAlt":[1,"hover-img-alt"],"videoSrc":[1,"video-src"],"notificationUrl":[1,"notification-url"],"notificationText":[1,"notification-text"],"productName":[1,"product-name"],"subtitle":[1],"productId":[1,"product-id"],"price":[2],"salePrice":[2,"sale-price"],"currency":[1],"outOfStock":[1540,"out-of-stock"],"outOfStockText":[1,"out-of-stock-text"],"addToCartText":[1,"add-to-cart-text"],"waitingListText":[1,"waiting-list-text"],"addToWaitingList":[4,"add-to-waiting-list"],"addedToCart":[4,"added-to-cart"],"endAddedToCart":[4,"end-added-to-cart"],"variations":[32],"selectedVariation":[32]},[[0,"jump-card-ecommerce-option-connected","addOption"]]]]],["jump-filter.cjs",[[1,"jump-filter",{"direction":[1],"filterHeading":[1,"filter-heading"],"filterButtonLabel":[1,"filter-button-label"],"filterButtonIcon":[1,"filter-button-icon"],"mobileThreshold":[2,"mobile-threshold"],"filters":[8],"activeFilters":[32],"showMobileFilters":[32],"isMobile":[32],"getFilters":[64]},[[0,"jump-filterchange","filterChangeHandler"],[9,"resize","handleResize"]]]]],["jump-filtergroup.cjs",[[1,"jump-filtergroup",{"name":[1],"heading":[1],"otherLabel":[1,"other-label"],"lessLabel":[1,"less-label"],"maxElements":[2,"max-elements"],"variant":[1],"values":[32],"value":[32],"slotItems":[32],"inputs":[32],"showMore":[32],"getValues":[64],"getActiveAmount":[64],"getInputs":[64],"getName":[64]}]]],["jump-pagination.cjs",[[1,"jump-pagination",{"pagLabel":[1,"pag-label"],"last":[2],"showFirstAndLast":[4,"show-first-and-last"],"current":[32]},null,{"current":["watchcurrent"]}]]],["jump-pagination-table.cjs",[[0,"jump-pagination-table",{"elementsRanges":[1,"elements-ranges"],"pagLabel":[513,"pag-label"],"labelElementsPerPage":[513,"label-elements-per-page"],"total":[514],"first":[514],"last":[514],"showFirstAndLast":[516,"show-first-and-last"],"elementsRangesArray":[32],"elPerPage":[32]},null,{"elementsRanges":["elementsRangesChanged"],"elPerPage":["elPerPageChanged"]}]]],["jump-quantity.cjs",[[65,"jump-quantity",{"min":[2],"max":[2],"step":[2],"label":[1],"type":[1],"variant":[1],"showButtons":[4,"show-buttons"],"value":[2],"getValue":[64],"reset":[64]},null,{"value":["onValueChange"]}]]],["jump-tab-item.cjs",[[1,"jump-tab-item",{"identifier":[1],"iconName":[1,"icon-name"],"iconPosition":[1,"icon-position"],"label":[1],"active":[4],"disabled":[4],"variant":[32]}]]],["jump-accordion.cjs",[[1,"jump-accordion"]]],["jump-card.cjs",[[4,"jump-card",{"horizontal":[4],"dark":[4],"shadow":[4],"border":[4],"borderRadius":[4,"border-radius"],"topBorderContentRadius":[4,"top-border-content-radius"],"boxed":[4],"roundedMedia":[4,"rounded-media"],"imgSrc":[1,"img-src"],"imgAlt":[1,"img-alt"],"videoSrc":[1,"video-src"]}]]],["jump-card-ecommerce-option.cjs",[[1,"jump-card-ecommerce-option",{"code":[1],"imgUrl":[1,"img-url"],"label":[1],"sku":[1],"taxonomy":[1]}]]],["jump-filter-checkbox.cjs",[[1,"jump-filter-checkbox",{"value":[1],"label":[1],"checked":[516],"count":[8],"isChecked":[64]}]]],["jump-tab.cjs",[[1,"jump-tab",{"tabGroupName":[1,"tab-group-name"],"variant":[1]},[[0,"jump-change-active-tab","changeActiveTabHandler"]]]]],["jump-tab-panel.cjs",[[1,"jump-tab-panel",{"identifier":[1],"active":[4]}]]],["jump-badge.cjs",[[1,"jump-badge",{"label":[1],"variant":[513],"dimension":[513],"soft":[516],"outline":[516]}]]],["jump-button_2.cjs",[[1,"jump-button",{"disabled":[4],"variant":[1],"outline":[4],"size":[1],"full":[4],"pill":[4],"text":[4],"onlyIcon":[4,"only-icon"],"href":[1],"target":[1],"type":[1],"name":[1],"value":[1],"ariaLabel":[1,"aria-label"],"class":[1],"buttonId":[1,"button-id"]}],[1,"jump-icon",{"class":[1],"library":[1],"name":[1],"category":[1],"size":[1],"label":[1],"src":[1]}]]]], options);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
exports.setNonce = index.setNonce;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"components/jump-card-ecommerce/jump-card-ecommerce.js",
|
|
8
8
|
"components/jump-card-ecommerce-option/jump-card-ecommerce-option.js",
|
|
9
9
|
"components/jump-filter/jump-filter.js",
|
|
10
|
+
"components/jump-filter-checkbox/jump-filter-checkbox.js",
|
|
10
11
|
"components/jump-filtergroup/jump-filtergroup.js",
|
|
11
12
|
"components/jump-icon/jump-icon.js",
|
|
12
13
|
"components/jump-pagination/jump-pagination.js",
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
:host h3 {
|
|
2
2
|
margin: 0;
|
|
3
3
|
}
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
.filtersDrawer {
|
|
5
6
|
display: flex;
|
|
6
7
|
flex-direction: column;
|
|
7
8
|
gap: 1rem;
|
|
9
|
+
}
|
|
10
|
+
.filtersDrawer .filtersDrawer__header {
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: flex-start;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: 0.5rem;
|
|
8
15
|
}
|
|
@@ -4,7 +4,7 @@ export class JumpFilter {
|
|
|
4
4
|
this.direction = 'vertical';
|
|
5
5
|
this.filterHeading = 'Filtra per';
|
|
6
6
|
this.filterButtonLabel = 'Filtri';
|
|
7
|
-
this.filterButtonIcon = '
|
|
7
|
+
this.filterButtonIcon = 'sliders';
|
|
8
8
|
this.mobileThreshold = 768;
|
|
9
9
|
this.filters = undefined;
|
|
10
10
|
this.activeFilters = 0;
|
|
@@ -39,8 +39,9 @@ export class JumpFilter {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
render() {
|
|
42
|
-
return (h(Host, { key: '
|
|
43
|
-
h("
|
|
42
|
+
return (h(Host, { key: '792f2607cc6d4e4987884b4e1bf06a63e447b296', mobileFilters: this.showMobileFilters }, this.isMobile && h("jump-button", { key: '02e4a491b2d1593a26353ff3886ca5c07319596e', ref: (el) => { this.mobileToggle = el; }, buttonId: this.filterButtonIcon, variant: 'primary', outline: true }, h("slot", { key: 'bf26e0b6de709eb73245754b7bc01fc800a65f54', name: "prefix" }, this.filterButtonIcon &&
|
|
43
|
+
h("jump-icon", { key: '7a6897ca7dcc5ae3e3d7665e938db135e80d05a2', library: "fa", category: "regular", name: this.filterButtonIcon, size: "small" }), this.filterButtonLabel), h("slot", { key: '07639a79439659f99621cbdb187f2c3774c858f7', name: "suffix" }, this.activeFilters > 0 ? `(${this.activeFilters})` : '0')), h("div", { key: '1ad1334d892c929d449cbe24763e28c31b049d47', ref: (el) => { this.filtersDrawer = el; }, class: "filtersDrawer", "data-variant": this.direction }, !this.isMobile &&
|
|
44
|
+
h("div", { key: '7132ae093a15f6fa699beda14b6ca54f568a4fac', class: 'filtersDrawer__header' }, h("jump-icon", { key: '2ec24b4c6fe935de64048e71aff5f02be14655e9', class: "small", name: this.filterButtonIcon }), h("h3", { key: '188eb63f15bfd8426d071ab6dcc43740cd049157' }, this.filterHeading)), h("slot", { key: '6f5d6b88d61a4534060973eef110bc2891b6083b' }))));
|
|
44
45
|
}
|
|
45
46
|
static get is() { return "jump-filter"; }
|
|
46
47
|
static get encapsulation() { return "shadow"; }
|
|
@@ -126,7 +127,7 @@ export class JumpFilter {
|
|
|
126
127
|
},
|
|
127
128
|
"attribute": "filter-button-icon",
|
|
128
129
|
"reflect": false,
|
|
129
|
-
"defaultValue": "'
|
|
130
|
+
"defaultValue": "'sliders'"
|
|
130
131
|
},
|
|
131
132
|
"mobileThreshold": {
|
|
132
133
|
"type": "number",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump-filter.js","sourceRoot":"","sources":["../../../src/components/jump-filter/jump-filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOhF,MAAM,OAAO,UAAU;;yBAE0B,UAAU;6BACzB,YAAY;iCACR,QAAQ;gCACT,
|
|
1
|
+
{"version":3,"file":"jump-filter.js","sourceRoot":"","sources":["../../../src/components/jump-filter/jump-filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOhF,MAAM,OAAO,UAAU;;yBAE0B,UAAU;6BACzB,YAAY;iCACR,QAAQ;gCACT,SAAS;+BACV,GAAG;;6BAGJ,CAAC;iCACI,KAAK;wBACd,KAAK;;IAMlC,mBAAmB,CAAC,KAAkB;QACpC,8FAA8F;QAC9F,IAAI,CAAC,OAAO,mCAAO,IAAI,CAAC,OAAO,KAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAItE,oCAAoC;IACtC,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;IAC3D,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,IAAG,IAAI,CAAC,YAAY,EAAC,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC/C,IAAG,CAAC,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB;YACxC,IAAI,CAAC,QAAQ,IAAI,oEAChB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA,CAAA,CAAC,EACrC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI;gBAClE,6DAAM,IAAI,EAAC,QAAQ;oBAChB,IAAI,CAAC,gBAAgB;wBACpB,kEAAW,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAC,OAAO,GAAa;oBAClG,IAAI,CAAC,iBAAiB,CAClB;gBACP,6DAAM,IAAI,EAAC,QAAQ,IAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CACpD,CACK;YAEb,4DACC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA,CAAA,CAAC,EACtC,KAAK,EAAC,eAAe,kBAAe,IAAI,CAAC,SAAS;gBACjD,CAAC,IAAI,CAAC,QAAQ;oBACf,4DAAK,KAAK,EAAE,uBAAuB;wBACjC,kEAAW,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAc;wBAClE,6DAAK,IAAI,CAAC,aAAa,CAAM,CACzB;gBACN,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, h, State, Listen, Method } from '@stencil/core';\n\n@Component({\n tag: 'jump-filter',\n styleUrl: 'jump-filter.scss',\n shadow: true,\n})\nexport class JumpFilter {\n\n @Prop() direction: 'horizontal' | 'vertical' = 'vertical';\n @Prop() filterHeading: string = 'Filtra per';\n @Prop() filterButtonLabel: string = 'Filtri';\n @Prop() filterButtonIcon: string = 'sliders';\n @Prop() mobileThreshold: number = 768;\n @Prop() filters: any;\n\n @State() activeFilters: number = 0;\n @State() showMobileFilters: boolean = false;\n @State() isMobile: boolean = false;\n\n mobileToggle: HTMLElement | null;\n filtersDrawer: HTMLElement;\n\n @Listen('jump-filterchange')\n filterChangeHandler(event: CustomEvent) {\n //set this.filter as this.filters[event.detail.name] = event.detail.value; even if not present\n this.filters = {...this.filters, [event.detail.name]: event.detail.values};\n console.log('Received the custom filterChange event: ', this.filters);\n\n\n\n //TODO: increment this.activeFilters\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.isMobile = window.innerWidth < this.mobileThreshold;\n }\n\n /**\n * Get the active filters from the component\n */\n @Method()\n async getFilters() {\n return this.filters;\n }\n\n componentDidLoad(){\n this.toggleMobileFilters();\n }\n\n toggleMobileFilters() {\n if(this.mobileToggle){\n this.mobileToggle.addEventListener('click', () => {\n if(!this.isMobile) return;\n this.showMobileFilters = !this.showMobileFilters;\n });\n }\n }\n\n render() {\n return (\n <Host mobileFilters={this.showMobileFilters}>\n {this.isMobile && <jump-button\n ref={(el) => {this.mobileToggle = el}}\n buttonId={this.filterButtonIcon} variant={'primary'} outline={true}>\n <slot name=\"prefix\">\n {this.filterButtonIcon &&\n <jump-icon library=\"fa\" category=\"regular\" name={this.filterButtonIcon} size=\"small\"></jump-icon>}\n {this.filterButtonLabel}\n </slot>\n <slot name=\"suffix\">\n {this.activeFilters > 0 ? `(${this.activeFilters})` : '0'}\n </slot>\n </jump-button>}\n\n {<div\n ref={(el) => {this.filtersDrawer = el}}\n class=\"filtersDrawer\" data-variant={this.direction}>\n {!this.isMobile &&\n <div class={'filtersDrawer__header'}>\n <jump-icon class=\"small\" name={this.filterButtonIcon}></jump-icon>\n <h3>{this.filterHeading}</h3>\n </div>}\n <slot></slot>\n </div>}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -62,11 +62,12 @@ const TemplateWithSelectFilter = (args) => {
|
|
|
62
62
|
export const WithSelectFilter = TemplateWithSelectFilter.bind({});
|
|
63
63
|
const TemplateWithCheckboxFilter = (args) => {
|
|
64
64
|
const attributes = generateAttributesFromArgs(args);
|
|
65
|
-
return formatHtml(
|
|
65
|
+
return formatHtml(`
|
|
66
|
+
<jump-filter ${attributes} name='sort' title='Ordina per'>
|
|
66
67
|
<jump-filtergroup class='filterGroupCheckbox' name='animal' title='Animale' other-label='Mostra di più' max-elements='3'>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
<jump-filter-checkbox value="cane" label="Cane" count="12"></jump-filter-checkbox>
|
|
69
|
+
<jump-filter-checkbox value="gatto" label="Gatto"></jump-filter-checkbox>
|
|
70
|
+
<jump-filter-checkbox value="pesce" label="Pesce"></jump-filter-checkbox>
|
|
70
71
|
</jump-filtergroup>
|
|
71
72
|
</jump-filter>`);
|
|
72
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump-filter.stories.js","sourceRoot":"","sources":["../../../src/components/jump-filter/jump-filter.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE1E,eAAe;IACb,KAAK,EAAE,+BAA+B;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,gBAAgB;QAChB,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;aACpC;SACF;QACD,aAAa,EAAE;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,iBAAiB,EAAE;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE;YACf,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;aACf;YACD,YAAY,EAAE,GAAG;SAClB;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,gBAAgB,UAAU;;;;;;;;;eAS/B,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,EAAE;IACxC,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,qBAAqB,UAAU;;;;;;;oBAO/B,CAAC,CAAC;AACtB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAElE,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,EAAE;IAC1C,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"jump-filter.stories.js","sourceRoot":"","sources":["../../../src/components/jump-filter/jump-filter.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE1E,eAAe;IACb,KAAK,EAAE,+BAA+B;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,gBAAgB;QAChB,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;aACpC;SACF;QACD,aAAa,EAAE;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,iBAAiB,EAAE;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE;YACf,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;aACf;YACD,YAAY,EAAE,GAAG;SAClB;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,gBAAgB,UAAU;;;;;;;;;eAS/B,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,EAAE;IACxC,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,qBAAqB,UAAU;;;;;;;oBAO/B,CAAC,CAAC;AACtB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAElE,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,EAAE;IAC1C,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC;iBACH,UAAU;;;;;;iBAMV,CAAC,CAAC;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEtE,uBAAuB;AACvB,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,EAAE;IACxC,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,gBAAgB,UAAU;;;;;;;;;;;;;;;;;;;;;iBAqB7B,CAAC,CAAC;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAGlE,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,EAAE;IACvC,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,gBAAgB,UAAU;;;;;;;;;;;;;;;;iBAgB7B,CAAC,CAAC;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { generateAttributesFromArgs, formatHtml} from '../../utils/utils';\n\nexport default {\n title: 'Components/Filters/JumpFilter',\n tags: ['autodocs'],\n argTypes: {\n //list all props\n direction: {\n control: {\n type: 'select',\n options: ['horizontal', 'vertical']\n }\n },\n filterHeading: {\n control: {\n type: 'text',\n description: 'Intestazione drawer dei filtri'\n }\n },\n filterButtonLabel: {\n control: {\n type: 'text'\n }\n },\n filterButtonIcon: {\n control: {\n type: 'text'\n }\n },\n mobileThreshold: {\n control: {\n type: 'number'\n },\n defaultValue: 768\n },\n }\n};\n\nconst Template = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`<jump-filter ${attributes}>\n <!-- TODO: Replace with jump components -->\n <jump-filtergroup class='filterGroup' name=\"tax-name\" title=\"Titolo del filtro\" other-label=\"Mostra di più\" max-elements=3>\n <select label=\"Ordina per\" variant=\"primary\" size=\"small\">\n <option value=\"0\">Ordina per</option>\n <option value=\"latest\">Più recenti</option>\n <option value=\"oldest\">Più vecchi</option>\n </select>\n </jump-filtergroup>\n</jump-filter>`);\n};\n\nexport const Default = Template.bind({});\n\nconst TemplateWithSelectFilter = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`<jump-filtergroup ${attributes} name='sort' title='Ordina per'>\n <select class='filterGroupSelect' label=\"Ordina per\" variant=\"primary\" size=\"small\">\n <option value=\"0\">Ordina per</option>\n <option value=\"latest\">Più recenti</option>\n <option value=\"oldest\">Più vecchi</option>\n </select>\n </jump-filtergroup>\n</jump-filtergroup>`);\n}\nexport const WithSelectFilter = TemplateWithSelectFilter.bind({});\n\nconst TemplateWithCheckboxFilter = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`\n <jump-filter ${attributes} name='sort' title='Ordina per'>\n <jump-filtergroup class='filterGroupCheckbox' name='animal' title='Animale' other-label='Mostra di più' max-elements='3'>\n <jump-filter-checkbox value=\"cane\" label=\"Cane\" count=\"12\"></jump-filter-checkbox>\n <jump-filter-checkbox value=\"gatto\" label=\"Gatto\"></jump-filter-checkbox>\n <jump-filter-checkbox value=\"pesce\" label=\"Pesce\"></jump-filter-checkbox>\n </jump-filtergroup>\n </jump-filter>`);\n}\n\nexport const WithCheckboxFilter = TemplateWithCheckboxFilter.bind({});\n\n//mixed kind of filters\nconst TemplateWithMixedFilters = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`<jump-filter ${attributes} name='sort' title='Ordina per'>\n <!-- select group -->\n <jump-filtergroup class='filterGroupSelect' name=\"tax-select-sample\" title=\"Ordinamento\" other-label=\"Mostra di più\" max-elements=3>\n <select class='filterGroupSelect' label=\"Ordina per\" variant=\"primary\" size=\"small\">\n <option value=\"0\">Ordina per</option>\n <option value=\"latest\">Più recenti</option>\n <option value=\"oldest\">Più vecchi</option>\n </select>\n </jump-filtergroup>\n\n <jump-filtergroup class='filterGroupCheckbox' name=\"tax-animal-sample-checkbox\" title=\"Animali\" other-label=\"Mostra di più\" max-elements=3>\n <label><input type='checkbox' value='cane'>Cane</label>\n <label><input type='checkbox' value='gatto'>Gatto</label>\n <label><input type='checkbox' value='pesce'>Pesce</label>\n </jump-filtergroup>\n\n <!-- radio group -->\n <jump-filtergroup class='filterGroupRadio' name=\"tax-animal-sample-radio\" title=\"Animali 2\" other-label=\"Mostra di più\" max-elements=3>\n <label><input type='radio' value='snakes'>Serpenti</label>\n <label><input type='radio' value='spiders'>Ragni</label>\n </jump-filtergroup>\n </jump-filter>`);\n}\n\nexport const WithMixedFilters = TemplateWithMixedFilters.bind({});\n\n\nconst TemplateWithMoreFilters = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`<jump-filter ${attributes} name='sort' title='Ordina per'>\n <jump-filtergroup class='filterGroupCheckbox' name=\"tax-animal-sample-checkbox\" title=\"Animali\" other-label=\"Mostra di più\" max-elements=8>\n <label><input type='checkbox' value='cane'>Cane</label>\n <label><input type='checkbox' value='gatto'>Gatto</label>\n <label><input type='checkbox' value='pesce'>Pesce</label>\n <label><input type='checkbox' value='cavallo'>Cavallo</label>\n <label><input type='checkbox' value='topo'>Topo</label>\n <label><input type='checkbox' value='coniglio'>Coniglio</label>\n <label><input type='checkbox' value='pappagallo'>Pappagallo</label>\n <label><input type='checkbox' value='tartaruga'>Tartaruga</label>\n <label><input type='checkbox' value='criceto'>Criceto</label>\n <label><input type='checkbox' value='canarino'>Canarino</label>\n <label><input type='checkbox' value='pesciolino'>Pesciolino</label>\n <label><input type='checkbox' value='pappagallino'>Pappagallino</label>\n <label><input type='checkbox' value='tartarughina'>Tartarughina</label>\n </jump-filtergroup>\n </jump-filter>`);\n}\n\nexport const WithMoreFilters = TemplateWithMoreFilters.bind({});\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: flex;
|
|
3
|
+
width: 100%;
|
|
4
|
+
}
|
|
5
|
+
:host .count {
|
|
6
|
+
color: var(--neutral-grey-secondary, #707070);
|
|
7
|
+
}
|
|
8
|
+
:host sl-checkbox {
|
|
9
|
+
display: flex;
|
|
10
|
+
width: 100%;
|
|
11
|
+
}
|
|
12
|
+
:host sl-checkbox::part(control) {
|
|
13
|
+
height: 1rem;
|
|
14
|
+
width: 1rem;
|
|
15
|
+
border: 1px solid var(--neutral-grey-secondary, #707070);
|
|
16
|
+
border-radius: 3px;
|
|
17
|
+
}
|
|
18
|
+
:host sl-checkbox::part(control--checked) {
|
|
19
|
+
background-color: var(--status-interaction-standard, #2C6ECB);
|
|
20
|
+
border-color: var(--status-interaction-standard, #2C6ECB);
|
|
21
|
+
color: var(--neutral-ultralight, #fff);
|
|
22
|
+
}
|
|
23
|
+
:host sl-checkbox::part(label) {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: row;
|
|
26
|
+
justify-content: space-between;
|
|
27
|
+
align-items: flex-start;
|
|
28
|
+
flex-grow: 1;
|
|
29
|
+
color: var(--neutral-grey-primary, #1d1d1d);
|
|
30
|
+
font-family: var(--ff-primary), serif;
|
|
31
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { Host, h } from "@stencil/core";
|
|
2
|
+
import "@shoelace-style/shoelace/dist/components/checkbox/checkbox.js";
|
|
3
|
+
export class JumpFilterCheckbox {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.value = undefined;
|
|
6
|
+
this.label = undefined;
|
|
7
|
+
this.checked = false;
|
|
8
|
+
this.count = null;
|
|
9
|
+
}
|
|
10
|
+
componentDidLoad() {
|
|
11
|
+
this.listenSLChange();
|
|
12
|
+
}
|
|
13
|
+
listenSLChange() {
|
|
14
|
+
if (this.host) {
|
|
15
|
+
this.host.addEventListener('sl-change', () => {
|
|
16
|
+
//invert the checked value
|
|
17
|
+
this.checked = !this.checked;
|
|
18
|
+
this.toggleCheckbox.emit({
|
|
19
|
+
//@ts-ignore
|
|
20
|
+
value: this.el.value,
|
|
21
|
+
//@ts-ignore
|
|
22
|
+
checked: this.checked,
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async isChecked() {
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
return this.el.checked;
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
return (h(Host, { key: '8c7ea463a6e26c6f77962cd0295dcb41411fa074', ref: (host) => this.host = host }, this.value && this.label &&
|
|
33
|
+
h("sl-checkbox", { key: '7467e1c364d868c7d58a58937411daf4f8c4e397', value: this.value, ref: (el) => this.el = el, checked: this.checked }, this.label), this.count && h("span", { key: 'e3add7e4ad2024096d8484b93cb276ac714d57d8', class: "count" }, "(", this.count, ")")));
|
|
34
|
+
}
|
|
35
|
+
static get is() { return "jump-filter-checkbox"; }
|
|
36
|
+
static get encapsulation() { return "shadow"; }
|
|
37
|
+
static get originalStyleUrls() {
|
|
38
|
+
return {
|
|
39
|
+
"$": ["jump-filter-checkbox.scss"]
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static get styleUrls() {
|
|
43
|
+
return {
|
|
44
|
+
"$": ["jump-filter-checkbox.css"]
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
static get properties() {
|
|
48
|
+
return {
|
|
49
|
+
"value": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"mutable": false,
|
|
52
|
+
"complexType": {
|
|
53
|
+
"original": "string",
|
|
54
|
+
"resolved": "string",
|
|
55
|
+
"references": {}
|
|
56
|
+
},
|
|
57
|
+
"required": false,
|
|
58
|
+
"optional": false,
|
|
59
|
+
"docs": {
|
|
60
|
+
"tags": [],
|
|
61
|
+
"text": ""
|
|
62
|
+
},
|
|
63
|
+
"attribute": "value",
|
|
64
|
+
"reflect": false
|
|
65
|
+
},
|
|
66
|
+
"label": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"mutable": false,
|
|
69
|
+
"complexType": {
|
|
70
|
+
"original": "string",
|
|
71
|
+
"resolved": "string",
|
|
72
|
+
"references": {}
|
|
73
|
+
},
|
|
74
|
+
"required": false,
|
|
75
|
+
"optional": false,
|
|
76
|
+
"docs": {
|
|
77
|
+
"tags": [],
|
|
78
|
+
"text": ""
|
|
79
|
+
},
|
|
80
|
+
"attribute": "label",
|
|
81
|
+
"reflect": false
|
|
82
|
+
},
|
|
83
|
+
"checked": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"mutable": false,
|
|
86
|
+
"complexType": {
|
|
87
|
+
"original": "boolean",
|
|
88
|
+
"resolved": "boolean",
|
|
89
|
+
"references": {}
|
|
90
|
+
},
|
|
91
|
+
"required": false,
|
|
92
|
+
"optional": false,
|
|
93
|
+
"docs": {
|
|
94
|
+
"tags": [],
|
|
95
|
+
"text": ""
|
|
96
|
+
},
|
|
97
|
+
"attribute": "checked",
|
|
98
|
+
"reflect": true,
|
|
99
|
+
"defaultValue": "false"
|
|
100
|
+
},
|
|
101
|
+
"count": {
|
|
102
|
+
"type": "any",
|
|
103
|
+
"mutable": false,
|
|
104
|
+
"complexType": {
|
|
105
|
+
"original": "number | string",
|
|
106
|
+
"resolved": "number | string",
|
|
107
|
+
"references": {}
|
|
108
|
+
},
|
|
109
|
+
"required": false,
|
|
110
|
+
"optional": false,
|
|
111
|
+
"docs": {
|
|
112
|
+
"tags": [],
|
|
113
|
+
"text": ""
|
|
114
|
+
},
|
|
115
|
+
"attribute": "count",
|
|
116
|
+
"reflect": false,
|
|
117
|
+
"defaultValue": "null"
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
static get events() {
|
|
122
|
+
return [{
|
|
123
|
+
"method": "toggleCheckbox",
|
|
124
|
+
"name": "jump-checkbox-change",
|
|
125
|
+
"bubbles": true,
|
|
126
|
+
"cancelable": true,
|
|
127
|
+
"composed": true,
|
|
128
|
+
"docs": {
|
|
129
|
+
"tags": [],
|
|
130
|
+
"text": ""
|
|
131
|
+
},
|
|
132
|
+
"complexType": {
|
|
133
|
+
"original": "any",
|
|
134
|
+
"resolved": "any",
|
|
135
|
+
"references": {}
|
|
136
|
+
}
|
|
137
|
+
}];
|
|
138
|
+
}
|
|
139
|
+
static get methods() {
|
|
140
|
+
return {
|
|
141
|
+
"isChecked": {
|
|
142
|
+
"complexType": {
|
|
143
|
+
"signature": "() => Promise<any>",
|
|
144
|
+
"parameters": [],
|
|
145
|
+
"references": {
|
|
146
|
+
"Promise": {
|
|
147
|
+
"location": "global",
|
|
148
|
+
"id": "global::Promise"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"return": "Promise<any>"
|
|
152
|
+
},
|
|
153
|
+
"docs": {
|
|
154
|
+
"text": "",
|
|
155
|
+
"tags": []
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=jump-filter-checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jump-filter-checkbox.js","sourceRoot":"","sources":["../../../src/components/jump-filter-checkbox/jump-filter-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,+DAA+D,CAAC;AAOvE,MAAM,OAAO,kBAAkB;;;;uBAIe,KAAK;qBAChB,IAAI;;IAKrC,gBAAgB;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC3C,0BAA0B;gBAC1B,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,YAAY;oBACZ,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK;oBACpB,YAAY;oBACZ,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,SAAS;QACb,aAAa;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,GAAG,EAAE,CAAC,IAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;YAC/C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;gBACvB,oEAAa,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAe,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EACpE,OAAO,EAAE,IAAI,CAAC,OAAO,IACpB,IAAI,CAAC,KAAK,CACC;YACf,IAAI,CAAC,KAAK,IAAI,6DAAM,KAAK,EAAC,OAAO;;gBAAG,IAAI,CAAC,KAAK;oBAAS,CACnD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, h, Event, EventEmitter, Method } from '@stencil/core';\nimport '@shoelace-style/shoelace/dist/components/checkbox/checkbox.js';\n\n@Component({\n tag: 'jump-filter-checkbox',\n styleUrl: 'jump-filter-checkbox.scss',\n shadow: true,\n})\nexport class JumpFilterCheckbox {\n\n @Prop() value: string;\n @Prop() label: string;\n @Prop({ reflect: true }) checked: boolean = false;\n @Prop() count: number | string = null;\n\n host: HTMLElement;\n el: HTMLElement;\n\n componentDidLoad() {\n this.listenSLChange();\n }\n\n listenSLChange() {\n if (this.host) {\n this.host.addEventListener('sl-change', () => {\n //invert the checked value\n this.checked = !this.checked;\n this.toggleCheckbox.emit({\n //@ts-ignore\n value: this.el.value,\n //@ts-ignore\n checked: this.checked,\n });\n });\n }\n }\n\n @Event({ eventName: 'jump-checkbox-change' }) toggleCheckbox: EventEmitter;\n\n @Method()\n async isChecked() {\n // @ts-ignore\n return this.el.checked;\n }\n\n render() {\n return (\n <Host ref={(host: HTMLElement) => this.host = host}>\n {this.value && this.label &&\n <sl-checkbox value={this.value} ref={(el: HTMLElement) => this.el = el}\n checked={this.checked}>\n {this.label}\n </sl-checkbox>}\n {this.count && <span class=\"count\">({this.count})</span>}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { generateAttributesFromArgs, formatHtml } from "../../utils/utils";
|
|
2
|
+
export default {
|
|
3
|
+
title: 'Components/Filters/JumpFilterCheckbox',
|
|
4
|
+
tags: ['autodocs'],
|
|
5
|
+
argTypes: {
|
|
6
|
+
value: {
|
|
7
|
+
name: 'value',
|
|
8
|
+
control: 'text',
|
|
9
|
+
description: 'Il valore del checkbox',
|
|
10
|
+
label: 'ciao',
|
|
11
|
+
},
|
|
12
|
+
label: {
|
|
13
|
+
name: 'label',
|
|
14
|
+
control: 'text',
|
|
15
|
+
description: 'Il testo del label',
|
|
16
|
+
},
|
|
17
|
+
checked: {
|
|
18
|
+
name: 'checked',
|
|
19
|
+
control: 'boolean',
|
|
20
|
+
description: 'Il valore iniziale del checkbox',
|
|
21
|
+
},
|
|
22
|
+
count: {
|
|
23
|
+
name: 'count',
|
|
24
|
+
control: 'number',
|
|
25
|
+
description: 'Il numero da visualizzare',
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const Template = (args) => {
|
|
30
|
+
const attributes = generateAttributesFromArgs(args);
|
|
31
|
+
return formatHtml(`<jump-filter-checkbox ${attributes}>
|
|
32
|
+
</jump-filter-checkbox>`);
|
|
33
|
+
};
|
|
34
|
+
export const Default = Template.bind({});
|
|
35
|
+
const TemplateSampleMultiple = () => {
|
|
36
|
+
return formatHtml(`
|
|
37
|
+
<script>
|
|
38
|
+
document.addEventListener('jump-checkbox-change', (event) => {
|
|
39
|
+
alert('Received the custom jump-checkbox-change event: ' + JSON.stringify(event.detail));
|
|
40
|
+
console.log('Received the custom jump-checkbox-change event: ', event.detail);
|
|
41
|
+
});
|
|
42
|
+
</script>
|
|
43
|
+
<div style="max-width: 200px;">
|
|
44
|
+
<jump-filter-checkbox value="1" label="Dieci" count="10"></jump-filter-checkbox>
|
|
45
|
+
<jump-filter-checkbox value="2" label="Venti" count="20" checked></jump-filter-checkbox>
|
|
46
|
+
<jump-filter-checkbox value="3" label="Trenta" count="30"></jump-filter-checkbox>
|
|
47
|
+
</div>
|
|
48
|
+
`);
|
|
49
|
+
};
|
|
50
|
+
export const TemplateSampleMulti = TemplateSampleMultiple.bind({});
|
|
51
|
+
//# sourceMappingURL=jump-filter-checkbox.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jump-filter-checkbox.stories.js","sourceRoot":"","sources":["../../../src/components/jump-filter-checkbox/jump-filter-checkbox.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE1E,eAAe;IACb,KAAK,EAAE,uCAAuC;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,wBAAwB;YACrC,KAAK,EAAE,MAAM;SACd;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,oBAAoB;SAClC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,iCAAiC;SAC/C;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,2BAA2B;SACzC;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,yBAAyB,UAAU;wBAC/B,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAGzC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,OAAO,UAAU,CAAC;;;;;;;;;;;;CAYnB,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { generateAttributesFromArgs, formatHtml} from '../../utils/utils';\n\nexport default {\n title: 'Components/Filters/JumpFilterCheckbox',\n tags: ['autodocs'],\n argTypes: {\n value: {\n name: 'value',\n control: 'text',\n description: 'Il valore del checkbox',\n label: 'ciao',\n },\n label: {\n name: 'label',\n control: 'text',\n description: 'Il testo del label',\n },\n checked: {\n name: 'checked',\n control: 'boolean',\n description: 'Il valore iniziale del checkbox',\n },\n count: {\n name: 'count',\n control: 'number',\n description: 'Il numero da visualizzare',\n },\n }\n};\n\nconst Template = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`<jump-filter-checkbox ${attributes}>\n</jump-filter-checkbox>`);\n};\n\nexport const Default = Template.bind({});\n\n\nconst TemplateSampleMultiple = () => {\n return formatHtml(`\n <script>\n document.addEventListener('jump-checkbox-change', (event) => {\n alert('Received the custom jump-checkbox-change event: ' + JSON.stringify(event.detail));\n console.log('Received the custom jump-checkbox-change event: ', event.detail);\n });\n </script>\n <div style=\"max-width: 200px;\">\n <jump-filter-checkbox value=\"1\" label=\"Dieci\" count=\"10\"></jump-filter-checkbox>\n <jump-filter-checkbox value=\"2\" label=\"Venti\" count=\"20\" checked></jump-filter-checkbox>\n <jump-filter-checkbox value=\"3\" label=\"Trenta\" count=\"30\"></jump-filter-checkbox>\n </div>\n`);\n};\n\nexport const TemplateSampleMulti = TemplateSampleMultiple.bind({});\n"]}
|
|
@@ -2,7 +2,7 @@ import { Host, h } from "@stencil/core";
|
|
|
2
2
|
export class JumpFiltergroup {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.name = 'tax-name';
|
|
5
|
-
this.
|
|
5
|
+
this.heading = 'Titolo del filtro';
|
|
6
6
|
this.otherLabel = 'Mostra altro';
|
|
7
7
|
this.lessLabel = 'Mostra meno';
|
|
8
8
|
this.maxElements = 8;
|
|
@@ -69,9 +69,25 @@ export class JumpFiltergroup {
|
|
|
69
69
|
values: this.values,
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
+
handleCheckboxChange(event) {
|
|
73
|
+
if (event.detail.checked && !this.values.includes(event.detail.value)) {
|
|
74
|
+
this.values.push(event.detail.value);
|
|
75
|
+
}
|
|
76
|
+
else if (!event.detail.checked && this.values.includes(event.detail.value)) {
|
|
77
|
+
const index = this.values.indexOf(event.detail.value);
|
|
78
|
+
if (index !== -1) {
|
|
79
|
+
this.values.splice(index, 1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
this.change.emit({
|
|
83
|
+
name: this.name,
|
|
84
|
+
values: this.values,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
72
87
|
componentDidLoad() {
|
|
73
88
|
this.slotItems = this.slotItemsWrapper.assignedElements();
|
|
74
89
|
this.slotItemsWrapper.addEventListener('change', this.handleChange.bind(this));
|
|
90
|
+
this.slotItemsWrapper.addEventListener('jump-checkbox-change', this.handleCheckboxChange.bind(this));
|
|
75
91
|
let index = 0;
|
|
76
92
|
this.slotItems.forEach((item) => {
|
|
77
93
|
if (index > this.maxElements) {
|
|
@@ -98,8 +114,8 @@ export class JumpFiltergroup {
|
|
|
98
114
|
});
|
|
99
115
|
}
|
|
100
116
|
render() {
|
|
101
|
-
return (h(Host, { key: '
|
|
102
|
-
h("jump-button", { key: '
|
|
117
|
+
return (h(Host, { key: 'dea99beebc67c24f7d4dd7e72e8c87a2504d8beb' }, this.heading && h("h5", { key: '62e6239ba68ed6a8b3bcbd4a09fb504e0d2546bc' }, this.heading), h("div", { key: '4556c42ac238fe081d09a434d39973a84eb5de7d', class: "filterGroup" }, h("slot", { key: 'e62ab17b893a61bd7db190a0110c7b54827b88c2', ref: (el) => (this.slotItemsWrapper = el) })), this.inputs.length > this.maxElements &&
|
|
118
|
+
h("jump-button", { key: '452b3a669ac521aa3f421bd2d59915fd61af2534', variant: "primary", size: "small", text: true, name: this.showMore ? this.otherLabel : this.lessLabel, "aria-label": this.showMore ? this.otherLabel : this.lessLabel, onClick: () => this.handleShowMore() }, this.showMore ? this.otherLabel : this.lessLabel, h("jump-icon", { key: '55c462c090eb7f2531365cc4618b68ec626af432', slot: "suffix", name: this.showMore ? 'chevron-down' : 'chevron-down' }))));
|
|
103
119
|
}
|
|
104
120
|
static get is() { return "jump-filtergroup"; }
|
|
105
121
|
static get encapsulation() { return "shadow"; }
|
|
@@ -133,7 +149,7 @@ export class JumpFiltergroup {
|
|
|
133
149
|
"reflect": false,
|
|
134
150
|
"defaultValue": "'tax-name'"
|
|
135
151
|
},
|
|
136
|
-
"
|
|
152
|
+
"heading": {
|
|
137
153
|
"type": "string",
|
|
138
154
|
"mutable": false,
|
|
139
155
|
"complexType": {
|
|
@@ -147,7 +163,7 @@ export class JumpFiltergroup {
|
|
|
147
163
|
"tags": [],
|
|
148
164
|
"text": ""
|
|
149
165
|
},
|
|
150
|
-
"attribute": "
|
|
166
|
+
"attribute": "heading",
|
|
151
167
|
"reflect": false,
|
|
152
168
|
"defaultValue": "'Titolo del filtro'"
|
|
153
169
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump-filtergroup.js","sourceRoot":"","sources":["../../../src/components/jump-filtergroup/jump-filtergroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAO/E,MAAM,OAAO,eAAe;;oBACH,UAAU;
|
|
1
|
+
{"version":3,"file":"jump-filtergroup.js","sourceRoot":"","sources":["../../../src/components/jump-filtergroup/jump-filtergroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, Method } from '@stencil/core';\n\n@Component({\n tag: 'jump-filtergroup',\n styleUrl: 'jump-filtergroup.scss',\n shadow: true,\n})\nexport class JumpFiltergroup {\n @Prop() name: string = 'tax-name';\n @Prop() heading: string = 'Titolo del filtro';\n @Prop() otherLabel: string = 'Mostra altro';\n @Prop() lessLabel: string = 'Mostra meno';\n @Prop() maxElements: number = 8;\n //TODO: Add Accordion variant within jump-acccordion component\n @Prop() variant: 'accordion' | 'default' = 'default';\n\n @State() values: string[] = [];\n @State() value: string = '';\n @State() slotItems: any;\n @State() inputs: any = [];\n @State() showMore: boolean = true;\n\n @Event({ eventName: 'jump-filterchange' }) change;\n\n slotItemsWrapper: HTMLSlotElement;\n\n @Method('getValues')\n async getValues() {\n return this.values;\n }\n\n @Method('getActiveAmount')\n async getActiveAmount() {\n return this.values.length;\n }\n\n @Method('getInputs')\n async getInputs() {\n return this.inputs;\n }\n\n @Method('getName')\n async getName() {\n return this.name;\n }\n\n toggleHiddenItems() {\n this.slotItemsWrapper.assignedElements().forEach((item, index) => {\n if(index > this.maxElements) {\n item.setAttribute('data-hide', this.showMore ? 'true' : 'false');\n }\n });\n }\n\n handleShowMore() {\n this.showMore = !this.showMore;\n this.toggleHiddenItems();\n }\n\n handleChange(event: Event) {\n const target = event.target as HTMLInputElement | HTMLSelectElement;\n const newValue = target.value;\n\n if (target.tagName === 'INPUT') {\n if (target.type === 'checkbox') {\n // @ts-ignore\n if (target.checked) {\n this.values.push(newValue);\n } else {\n const index = this.values.indexOf(newValue);\n if (index !== -1) {\n this.values.splice(index, 1);\n }\n }\n } else if (target.type === 'radio') {\n // Se è un input radio selezionato, imposta il valore e aggiorna this.values\n this.value = newValue;\n this.values = [newValue]; // Assicurati che this.values contenga solo il valore selezionato\n }\n } else if (target.tagName === 'SELECT') {\n // Se è un select, aggiorna semplicemente il valore\n this.value = newValue;\n this.values = [newValue];\n }\n\n // Emit event con i valori aggiornati\n this.change.emit({\n name: this.name,\n values: this.values,\n });\n }\n\n handleCheckboxChange(event: CustomEvent) {\n if (event.detail.checked && !this.values.includes(event.detail.value)) {\n this.values.push(event.detail.value);\n } else if (!event.detail.checked && this.values.includes(event.detail.value)) {\n const index = this.values.indexOf(event.detail.value);\n if (index !== -1) {\n this.values.splice(index, 1);\n }\n }\n this.change.emit({\n name: this.name,\n values: this.values,\n });\n }\n\n componentDidLoad() {\n this.slotItems = this.slotItemsWrapper.assignedElements();\n this.slotItemsWrapper.addEventListener('change', this.handleChange.bind(this));\n this.slotItemsWrapper.addEventListener('jump-checkbox-change', this.handleCheckboxChange.bind(this));\n\n let index = 0;\n this.slotItems.forEach((item) => {\n if(index > this.maxElements) {\n item.setAttribute('data-hide', 'true');\n }\n if (item.tagName === 'INPUT' || item.tagName === 'SELECT') {\n this.inputs.push(item);\n if (item.tagName === 'INPUT' && item.type === 'radio') {\n item.name = this.name;\n }\n } else {\n const inputs = item.querySelectorAll('input, select');\n if (inputs.length > 0) {\n inputs.forEach((input) => {\n this.inputs.push(input);\n\n if (input.tagName === 'INPUT' && input.type === 'radio') {\n input.name = this.name;\n }\n });\n }\n }\n index++;\n });\n }\n\n render() {\n return (\n <Host>\n {this.heading && <h5>{this.heading}</h5>}\n <div class=\"filterGroup\">\n <slot ref={(el) => (this.slotItemsWrapper = el as HTMLSlotElement)}></slot>\n </div>\n {this.inputs.length > this.maxElements &&\n <jump-button variant=\"primary\" size=\"small\" text name={this.showMore ? this.otherLabel : this.lessLabel}\n aria-label={this.showMore ? this.otherLabel : this.lessLabel}\n onClick={() => this.handleShowMore() }>\n {this.showMore ? this.otherLabel : this.lessLabel}\n <jump-icon slot=\"suffix\" name={this.showMore ? 'chevron-down' : 'chevron-down'}></jump-icon>\n </jump-button>\n }\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump-filtergroup.stories.js","sourceRoot":"","sources":["../../../src/components/jump-filtergroup/jump-filtergroup.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE1E,eAAe;IACb,KAAK,EAAE,oCAAoC;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,gBAAgB;QAChB,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,iBAAiB;gBAC9B,YAAY,EAAE,UAAU;aACzB;SACF;QACD,
|
|
1
|
+
{"version":3,"file":"jump-filtergroup.stories.js","sourceRoot":"","sources":["../../../src/components/jump-filtergroup/jump-filtergroup.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE1E,eAAe;IACb,KAAK,EAAE,oCAAoC;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,gBAAgB;QAChB,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,iBAAiB;gBAC9B,YAAY,EAAE,UAAU;aACzB;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,6BAA6B;gBAC1C,YAAY,EAAE,6BAA6B;aAC5C;SACF;QACD,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,qCAAqC;gBAClD,YAAY,EAAE,cAAc;aAC7B;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,mCAAmC;gBAChD,YAAY,EAAE,aAAa;aAC5B;SACF;QACD,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD,YAAY,EAAE,CAAC;SAChB;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,qBAAqB,UAAU,sBAAsB,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { generateAttributesFromArgs, formatHtml} from '../../utils/utils';\n\nexport default {\n title: 'Components/Filters/JumpFilterGroup',\n tags: ['autodocs'],\n argTypes: {\n //list all props\n name: {\n control: {\n type: 'text',\n description: 'Nome del filtro',\n defaultValue: 'tax-name'\n }\n },\n heading: {\n control: {\n type: 'text',\n description: 'Titolo del gruppo di filtri',\n defaultValue: 'Titolo del gruppo di filtri'\n }\n },\n otherLabel: {\n control: {\n type: 'text',\n description: 'Label per il pulsante di espansione',\n defaultValue: 'Mostra altro'\n }\n },\n lessLabel: {\n control: {\n type: 'text',\n description: 'Label per il pulsante di chiusura',\n defaultValue: 'Mostra meno'\n }\n },\n maxElements: {\n control: {\n type: 'number',\n description: 'Numero massimo di elementi visibili'\n },\n defaultValue: 8\n }\n }\n};\n\nconst Template = (args) => {\n const attributes = generateAttributesFromArgs(args);\n return formatHtml(`<jump-filtergroup ${attributes}></jump-filtergroup>`);\n};\n\nexport const Default = Template.bind({});\n"]}
|