Skip to content

Commit

Permalink
Add support for isElement in $$(sel) so can be used to wrap elements
Browse files Browse the repository at this point in the history
  • Loading branch information
mythz committed Oct 25, 2023
1 parent 1a25375 commit 2bc25df
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 2,907 deletions.
1 change: 1 addition & 0 deletions dist/index.d.ts
Expand Up @@ -584,6 +584,7 @@ export interface ICreateElementOptions {
} | null;
}
export declare function createElement(tagName: string, options?: ICreateElementOptions): HTMLElement;
export declare function isElement(el: any): boolean;
export declare function $1(sel: string | any, el?: HTMLElement): any;
export declare function $$(sel: string | any, el?: HTMLElement): any;
export declare function on(sel: any, handlers: {
Expand Down
2,894 changes: 0 additions & 2,894 deletions dist/index.js

This file was deleted.

2 changes: 1 addition & 1 deletion dist/servicestack-client.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/servicestack-client.min.mjs

Large diffs are not rendered by default.

11 changes: 8 additions & 3 deletions dist/servicestack-client.mjs
Expand Up @@ -1758,13 +1758,18 @@ function remClass(el, cls) {
? el.className = el.className.replace(/(\s|^)someclass(\s|$)/, ' ')
: null;
}
export function isElement(el) {
return typeof window != "undefined" && (el instanceof window.Element || el == window.document);
}
export function $1(sel, el) {
return typeof sel === "string" ? (el || document).querySelector(sel) : sel || null;
}
export function $$(sel, el) {
return typeof sel === "string"
? Array.prototype.slice.call((el || document).querySelectorAll(sel))
: Array.isArray(sel) ? sel : [sel];
if (typeof sel === "string")
return Array.prototype.slice.call((el || document).querySelectorAll(sel));
if (isElement(sel))
return [sel];
return (Array.isArray(sel) ? sel : [sel]).flatMap(x => $$(x, el));
}
export function on(sel, handlers) {
$$(sel).forEach(e => {
Expand Down
14 changes: 10 additions & 4 deletions dist/servicestack-client.umd.js
Expand Up @@ -58,7 +58,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
"use strict";
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Inspect = exports.createBus = exports.EventBus = exports.alignAuto = exports.alignRight = exports.alignCenter = exports.alignLeft = exports.uniqueKeys = exports.JSV = exports.StringBuffer = exports.toBase64String = exports.toByteArray = exports.fromByteArray = exports.toGuid = exports.fromGuid = exports.toTimeSpan = exports.fromTimeSpan = exports.toDateTime = exports.fromDateTime = exports.isNullOrEmpty = exports.indexOfAny = exports.htmlAttrs = exports.enc = exports.uniq = exports.flatMap = exports.toTimeSpanFmt = exports.toXsdDuration = exports.fromXsdDuration = exports.classNames = exports.NavOptions = exports.UserAttributes = exports.LinkButtonDefaults = exports.NavButtonGroupDefaults = exports.NavbarDefaults = exports.NavLinkDefaults = exports.NavDefaults = exports.btnClasses = exports.btnSizeClass = exports.BootstrapSizes = exports.btnColorClass = exports.BootstrapColors = exports.activeClass = exports.activeClassNav = exports.apiValueFmt = exports.apiValue = exports.mapGet = exports.resolve = exports.each = exports.apply = exports.omit = exports.pick = exports.safeVarName = exports.trimEnd = exports.populateForm = exports.triggerEvent = exports.sanitizeFormData = exports.serializeToFormData = exports.serializeToUrlEncoded = exports.serializeToObject = exports.serializeForm = exports.ajaxSubmit = exports.formSubmit = exports.toVarNames = exports.bootstrapForm = exports.bindHandlers = exports.bootstrap = exports.delaySet = exports.addScript = exports.on = exports.$$ = exports.$1 = exports.createElement = exports.padStart = exports.msToTime = exports.toTime = exports.toLocalISOString = exports.timeFmt12 = exports.dateFmtHM = exports.dateFmt = exports.padInt = exports.toDateFmt = exports.toDate = exports.isDate = exports.errorResponse = exports.errorResponseExcept = exports.errorResponseSummary = exports.toObject = exports.toFormData = exports.parseResponseStatus = exports.getField = exports.normalize = exports.normalizeKey = exports.parseCookie = exports.tryDecode = exports.stripQuotes = exports.bytesToBase64 = exports.setQueryString = exports.appendQueryString = exports.createUrl = exports.createPath = exports.combinePaths = exports.queryString = exports.humanify = exports.splitTitleCase = exports.isDigit = exports.isLower = exports.isUpper = exports.ucFirst = exports.humanize = exports.onlyProps = exports.chop = exports.lastRightPart = exports.lastLeftPart = exports.rightPart = exports.leftPart = exports.splitOnLast = exports.splitOnFirst = exports.css = exports.nameOf = exports.sanitize = exports.camelCaseAny = exports.map = exports.toKebabCase = exports.toPascalCase = exports.toCamelCase = exports.createError = exports.isFormData = exports.createFieldError = exports.createErrorStatus = exports.ApiResult = exports.getResponseStatus = exports.getMethod = exports.JsonApiClient = exports.JsonServiceClient = exports.GetAccessTokenResponse = exports.HttpMethods = exports.ServerEventUser = exports.GetEventSubscribers = exports.UpdateEventSubscriberResponse = exports.UpdateEventSubscriber = exports.ServerEventReceiver = exports.getAllMembers = exports.ServerEventsClient = exports.ReadyState = exports.SingletonInstanceResolver = exports.NewInstanceResolver = exports.MetadataType = exports.MetadataPropertyType = exports.MetadataAttribute = exports.MetadataDataMember = exports.MetadataDataContract = exports.MetadataTypeName = exports.MetadataTypes = exports.MetadataOperationType = exports.MetadataRoute = exports.MetadataTypesConfig = exports.GetNavItemsResponse = exports.GetNavItems = exports.NavItem = exports.EmptyResponse = exports.ErrorResponse = exports.ResponseError = exports.ResponseStatus = void 0;
exports.Inspect = exports.createBus = exports.EventBus = exports.alignAuto = exports.alignRight = exports.alignCenter = exports.alignLeft = exports.uniqueKeys = exports.JSV = exports.StringBuffer = exports.toBase64String = exports.toByteArray = exports.fromByteArray = exports.toGuid = exports.fromGuid = exports.toTimeSpan = exports.fromTimeSpan = exports.toDateTime = exports.fromDateTime = exports.isNullOrEmpty = exports.indexOfAny = exports.htmlAttrs = exports.enc = exports.uniq = exports.flatMap = exports.toTimeSpanFmt = exports.toXsdDuration = exports.fromXsdDuration = exports.classNames = exports.NavOptions = exports.UserAttributes = exports.LinkButtonDefaults = exports.NavButtonGroupDefaults = exports.NavbarDefaults = exports.NavLinkDefaults = exports.NavDefaults = exports.btnClasses = exports.btnSizeClass = exports.BootstrapSizes = exports.btnColorClass = exports.BootstrapColors = exports.activeClass = exports.activeClassNav = exports.apiValueFmt = exports.apiValue = exports.mapGet = exports.resolve = exports.each = exports.apply = exports.omit = exports.pick = exports.safeVarName = exports.trimEnd = exports.populateForm = exports.triggerEvent = exports.sanitizeFormData = exports.serializeToFormData = exports.serializeToUrlEncoded = exports.serializeToObject = exports.serializeForm = exports.ajaxSubmit = exports.formSubmit = exports.toVarNames = exports.bootstrapForm = exports.bindHandlers = exports.bootstrap = exports.delaySet = exports.addScript = exports.on = exports.$$ = exports.$1 = exports.isElement = exports.createElement = exports.padStart = exports.msToTime = exports.toTime = exports.toLocalISOString = exports.timeFmt12 = exports.dateFmtHM = exports.dateFmt = exports.padInt = exports.toDateFmt = exports.toDate = exports.isDate = exports.errorResponse = exports.errorResponseExcept = exports.errorResponseSummary = exports.toObject = exports.toFormData = exports.parseResponseStatus = exports.getField = exports.normalize = exports.normalizeKey = exports.parseCookie = exports.tryDecode = exports.stripQuotes = exports.bytesToBase64 = exports.setQueryString = exports.appendQueryString = exports.createUrl = exports.createPath = exports.combinePaths = exports.queryString = exports.humanify = exports.splitTitleCase = exports.isDigit = exports.isLower = exports.isUpper = exports.ucFirst = exports.humanize = exports.onlyProps = exports.chop = exports.lastRightPart = exports.lastLeftPart = exports.rightPart = exports.leftPart = exports.splitOnLast = exports.splitOnFirst = exports.css = exports.nameOf = exports.sanitize = exports.camelCaseAny = exports.map = exports.toKebabCase = exports.toPascalCase = exports.toCamelCase = exports.createError = exports.isFormData = exports.createFieldError = exports.createErrorStatus = exports.ApiResult = exports.getResponseStatus = exports.getMethod = exports.JsonApiClient = exports.JsonServiceClient = exports.GetAccessTokenResponse = exports.HttpMethods = exports.ServerEventUser = exports.GetEventSubscribers = exports.UpdateEventSubscriberResponse = exports.UpdateEventSubscriber = exports.ServerEventReceiver = exports.getAllMembers = exports.ServerEventsClient = exports.ReadyState = exports.SingletonInstanceResolver = exports.NewInstanceResolver = exports.MetadataType = exports.MetadataPropertyType = exports.MetadataAttribute = exports.MetadataDataMember = exports.MetadataDataContract = exports.MetadataTypeName = exports.MetadataTypes = exports.MetadataOperationType = exports.MetadataRoute = exports.MetadataTypesConfig = exports.GetNavItemsResponse = exports.GetNavItems = exports.NavItem = exports.EmptyResponse = exports.ErrorResponse = exports.ResponseError = exports.ResponseStatus = void 0;
var ResponseStatus = /** @class */ (function () {
function ResponseStatus(init) {
Object.assign(this, init);
Expand Down Expand Up @@ -1983,14 +1983,20 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
? el.className = el.className.replace(/(\s|^)someclass(\s|$)/, ' ')
: null;
}
function isElement(el) {
return typeof window != "undefined" && (el instanceof window.Element || el == window.document);
}
exports.isElement = isElement;
function $1(sel, el) {
return typeof sel === "string" ? (el || document).querySelector(sel) : sel || null;
}
exports.$1 = $1;
function $$(sel, el) {
return typeof sel === "string"
? Array.prototype.slice.call((el || document).querySelectorAll(sel))
: Array.isArray(sel) ? sel : [sel];
if (typeof sel === "string")
return Array.prototype.slice.call((el || document).querySelectorAll(sel));
if (isElement(sel))
return [sel];
return (Array.isArray(sel) ? sel : [sel]).flatMap(function (x) { return $$(x, el); });
}
exports.$$ = $$;
function on(sel, handlers) {
Expand Down
1 change: 1 addition & 0 deletions src/index.d.ts
Expand Up @@ -584,6 +584,7 @@ export interface ICreateElementOptions {
} | null;
}
export declare function createElement(tagName: string, options?: ICreateElementOptions): HTMLElement;
export declare function isElement(el: any): boolean;
export declare function $1(sel: string | any, el?: HTMLElement): any;
export declare function $$(sel: string | any, el?: HTMLElement): any;
export declare function on(sel: any, handlers: {
Expand Down
12 changes: 8 additions & 4 deletions src/index.ts
Expand Up @@ -2144,14 +2144,18 @@ function remClass(el:Element|HTMLElement|null, cls:string) { return !el ? null
? el.className = el.className.replace(/(\s|^)someclass(\s|$)/, ' ')
: null
}

export function isElement(el:any) {
return typeof window != "undefined" && (el instanceof window.Element || el == window.document)
}
export function $1(sel:string|any, el?:HTMLElement) {
return typeof sel === "string" ? (el || document).querySelector(sel) : sel || null
}
export function $$(sel:string|any, el?:HTMLElement) {
return typeof sel === "string"
? Array.prototype.slice.call((el || document).querySelectorAll(sel))
: Array.isArray(sel) ? sel : [sel]
if (typeof sel === "string")
return Array.prototype.slice.call((el || document).querySelectorAll(sel))
if (isElement(sel))
return [sel]
return (Array.isArray(sel) ? sel : [sel]).flatMap(x => $$(x, el))
}
export function on(sel:any, handlers: {[name:string]:Function}) {
$$(sel).forEach(e => {
Expand Down

0 comments on commit 2bc25df

Please sign in to comment.